本文一開始先講解何謂入侵偵測與入侵防禦,藉由入侵偵測系統或入侵防禦系統的幫助,企業在日常營運時就能夠更即時且有效率地應對資安事故並早防範。接著,也說明了入侵偵測及入侵防禦的原則,並且分析它們的主要性能與常見的偵測技術。
在網管人雜誌第158期「發生資安事故先別慌,分析紀錄通報SOP有撇步」及第159期「資安事故前後完整對策,準備預防/處理善後都要」文中,提及了針對資安事故的一系列做法,從日常營運到發生事故後如何善後。其中在事故的徵兆和跡象來源,有很大一部分需要藉助入侵偵測系統或入侵防禦系統的力量,方得使組織在日常營運上對於資安事故及早防範方面能夠更即時且有效率。所以,接下來將細部探究入侵偵測和入侵防禦,以期組織在資安事故防範方面能夠做得更紮實穩固。
本文將採一系列多篇幅的方式來探討,包含入侵偵測暨防禦原則、入侵偵測暨防禦系統技術、網路型入侵偵測暨防禦系統、無線型入侵偵測暨防禦系統、網路行為分析系統、主機型入侵偵測暨防禦系統、採用並整合多重入侵偵測暨防禦系統技術,以及如何挑選入侵偵測暨防禦系統等主軸線。
何謂入侵偵測暨防禦原則
入侵偵測(Intrusion Detection)是監控那些在電腦系統或網路發生的事件,並且分析它們來尋找可能是事故的記號,而這個記號就是已經發生的或即將發生的各種違反行為,不論是對於電腦安全政策的違反、對可接受的使用行為的違反,或是對於安全實務的違反行為,都算在其中。
事故有很多種原因,例如蠕蟲、病毒等惡意軟體,攻擊者從網路上對系統取得未經授權的存取,而且系統被授權的使用者誤用了他們的權限,或者企圖想要取得原本未被授權的額外權限,這些都可能是事故原因之一。雖然有許多事故本質上都是惡意的,但其實也有許多並非惡意,例如有人可能誤打了電腦IP位址而意外地和其他人的IP位址相衝突。
入侵偵測系統(Intrusion Detection System,IDS)把入侵偵測流程給自動化,而入侵防禦系統(Intrusion Prevention System,IPS)有入侵偵測系統的所有能力而且也可以去阻止潛在事故的能力。本文在講IDS和IPS的基本概觀,有了這個基本概念之後,對於文章中後段比較容易理解。
先介紹如何運用入侵偵測系統和入侵防禦系統,接著講解入侵偵測系統和入侵防禦系統的主要功能,它們執行的方法和偵測的方法為何。最後,說明入侵偵測系統與入侵防禦系統的主要等級。
入侵偵測系統和入侵防禦系統提供許多相同的性能,而且管理者通常可以把入侵防禦系統產品裡面的防禦功能給關閉,讓它們變回入侵偵測系統。因此,入侵偵測暨防禦系統這個名詞,在接下來的文章都是指稱入侵偵測系統和入侵防禦系統,如果有例外的話,會特別指出來。
運用入侵偵測暨防禦系統技術
入侵偵測暨防禦系統主要聚焦在識別可能的事故。舉例來說,入侵偵測暨防禦系統可以偵測到當駭客已經透過系統弱點而成功滲透系統。入侵偵測暨防禦系統可能接著把該事故通報給安全管理人員(負責快速發起事故回應,以便將事故帶來的損害最小化)。入侵偵測暨防禦系統也可以記錄一些可被事故處理者所用的相關資訊,許多入侵偵測暨防禦系統也能夠被設定成去識別違反安全政策。
舉例來說,一些入侵偵測暨防禦系統可以被設定成和防火牆規則相像的設定,讓它們去識別那些違反組織安全政策,或可接受行為的網路流量。而且,某些入侵偵測暨防禦系統可以監控檔案傳輸並且識別那些可能是可疑的行為,例如複製大量資料到個人筆電上。
許多入侵偵測暨防禦系統也能夠識別偵查活動,偵查活動可能意味著有個攻擊即將要發生。例如某些攻擊工具和惡意軟體的型態,尤其是蠕蟲,會執行偵查活動,像是掃主機、掃Port,以識別目標來當作接下來的攻擊對象。入侵偵測暨防禦系統可能可以封鎖這種偵查活動並且通報安全管理人員,這樣他們就可以採取行動,去警告其他安全控管的負責人員。因為偵查活動在網路上是如此頻繁地發生,所以通常要去偵測偵查活動的話,會鎖定那些在受到保護的內網裡面。
除了識別事故和支援事故回應,組織也已經發現入侵偵測暨防禦系統的其他用途,包含以下:
‧識別安全政策本身的問題所在。入侵偵測暨防禦系統在某種程度上可以提供在安全政策落實上的品質管控,例如複製防火牆政策,並且在網路行為理論上應該要被防火牆封鎖卻沒有被封鎖的時候發出組態設定錯誤的警告。
‧記錄對於組織的既定威脅。入侵偵測暨防禦系統會把它們偵測到的威脅資訊記錄起來。了解攻擊的頻率和攻擊的特徵,對於組織在識別適當的安全控管措施上是蠻有幫助的,而這樣的資訊也可以被用來教育管理階層關於組織所面對的威脅。
‧個人違反安全政策之嚇阻。如果個人已經意識到他們的行為被入侵偵測暨防禦系統所監控,他們可能就比較不會去做一些違反的行為。
因為組織對於資訊系統的依賴性已經不可或缺,再加上網路入侵的普遍性和對於組織的潛在衝擊,入侵偵測暨防禦系統基本上已經變成一個必需品。
入侵偵測暨防禦系統主要性能
入侵偵測暨防禦系統有許多種類,主要是根據它們可以辨別的事件種類和採用的方法來分類。除了監控和分析事件、識別不想要的活動外,不管是哪一種入侵偵測暨防禦系統,通常都會執行下面的功能:
‧記錄關於觀察到的事件的資訊。資訊通常會在本的端被記錄起來,而且也可能被發送到其他分開的系統上,例如中央化Log Server、安全性資訊與事件管理,或者組織的其他管理系統。
‧將觀察到的重要事件通知予安全管理者。這個通知就是所謂的警告,可能會透過E-mail、網頁、入侵偵測暨防禦系統使用者介面的訊息、SNMP Trap、Syslog訊息,以及使用者自定義的程式碼或Script。而通知的訊息通常只會包含關於事件的基本資訊;管理者須要存取入侵偵測暨防禦系統,來獲取額外的資訊。
‧產生報告。報告本身會總結那些監控到的事件,或對於特定事件提供更多細節的資訊。
當偵測到有一個新威脅的時候,某些入侵偵測暨防禦系統也可能變更它們的安全資訊庫。舉例而言,入侵偵測暨防禦系統可能會為特定Session去收集更多細節的資訊,尤其是在偵測到該Session有惡意活動之後。入侵防禦系統和入侵偵測系統不同,其差異在於入侵防禦系統可以對於被偵測到的威脅做出回應,防止其成功或防止其繼續。入侵防禦系統採用的回應手法有以下幾類:
‧入侵防禦系統會阻止攻擊。下面來談談這件事情到底怎麼完成的,包括:終止網路連線,或者終止被用來攻擊的User Session;封鎖惡意使用者帳號、惡意IP位址,或其他惡意的屬性;封鎖所有連到目標主機、目標服務、目標應用系統或連接到其他資源的存取權限。
‧入侵防禦系統改變了安全環境。IPS可以改變其他安全控管措施的組態設定來中斷攻擊。常見的範例是重新設定一台網路設備(例如防火牆、路由器、交換器)去封鎖來自駭客的存取。某些IPS甚至在偵測到主機有弱點時,就會把補丁上到某台主機。
‧入侵防禦系統改變攻擊內容。某些IPS可以移除該攻擊,或者將攻擊的惡意部分替換成良性的。舉個簡單範例,像是一台IPS把電子郵件受到感染的檔案附件移除掉,接著允許洗乾淨的電子郵件到接收端。較複雜的範例則是,扮演代理伺服器的IPS並且把進來的請求正規化,這意味著代理伺服器把該請求的Payload重新包裝,丟棄標頭資訊。這就可能會丟棄特定攻擊,而這個動作就是正規化的過程。
另一個常見的入侵偵測暨防禦系統特性是,它們無法提供完全正確的偵測。當入侵偵測暨防禦系統把良善活動識別成惡意的,這時候就是型一錯誤(False Positive)。當入侵偵測暨防禦系統無法識別惡意活動,這就是型二錯誤(False Negative)。現實生活中不可能汰除所有的型一錯誤和型二錯誤,而且在大多數案例當中,型一錯誤和型二錯誤這兩個東西是彼此消長的。
組織如果選擇去減少型二錯誤,當然就要伴隨著型一錯誤的增加。這意味著會偵測到愈多的惡意事件,但是會需要更多的分析資源從真正的惡意事件當中判斷型一錯誤。改變入侵偵測暨防禦系統的組態設定去拉升偵測的準確性,就是所謂的調校。大部分入侵偵測暨防禦系統也都提供一個特色:「彌補常見的躲避技術」。所謂的躲避是,修改惡意活動的格式或時間,這樣它的樣貌會變化但是效果仍然相同。舉例來說,駭客可能用特殊方式將文字編碼,為了要讓標的物仍然可以解讀這樣的編碼,但是不讓入侵偵測暨防禦系統能夠解讀。大部分入侵偵測暨防禦系統,可以透過複製特殊的處理來克服常見的躲避技術。如果入侵偵測暨防禦系統可以用一種與標的物相同的方式看見該活動的話,那麼躲避技術就不會成功。
常見的偵測技術說明
入侵偵測暨防禦系統可以使用許多方法去偵測事故。就面就來談主要的偵測分類:特徵法(Signature-based)、異常行為法(Anomaly-based)、協定狀態分析(Stateful Protocol Analysis)。大部分入侵偵測暨防禦系統都使用多重偵測方法來提供更廣泛和更準確的偵測。
特徵偵測法
所謂的特徵(Signature),是一個對應到已知威脅的模式。特徵偵測(Signature-based Detection)是將特徵比對觀察到的事件來判斷可能的事故。下面是關於特徵的一些範例:
1. 違反組織的安全政策,企圖用root權限去執行Telnet。
2. 有個以「免費照片」為主旨的電子郵件附帶著「PhotoForYou.exe」檔案,這是一種惡意軟體的特徵。
3. 作業系統Log紀錄當中出現645,就意味著主機的稽核功能已經被關閉。
特徵偵測在偵測已知的威脅是非常有效的,但如果想要偵測那些未知的威脅、或者要偵測那些已經採用躲避技巧的威脅,甚至是想要偵測那些已經變種的已知威脅,用特徵偵測常常會無功而返。舉例來說,如果駭客將前面範例的惡意軟體附加檔案名稱變更成PhotoForYou2.exe,那麼只看PhotoForYou.exe就無法比對成功。
特徵偵測是最簡單的偵測方式,因為它去比對當下的活動,例如一個封包或者一筆Log紀錄去比對特徵清單。特徵偵測對於眾多網路或應用系統的通訊協定要有一些基礎了解,但無法追蹤及了解複雜的通訊。舉例而言,它們無法把一個請求和回應配對起來,例如知道對網頁伺服器發出請求,卻回傳403,意味著伺服器拒絕實現該請求。而它們處理當下請求的時候,也不會去記得前一個請求。這麼一來,如果有一種攻擊是因為拆分成多個小事件,而各個小事件又未被特徵偵測到的話,就無法發現這個攻擊。
異常偵測法
異常偵測(Anomaly-based Detection)是把觀察到的事件與正常的行為相比對的過程,來識別出行為是否有重大偏離。使用異常活動偵測的入侵偵測暨防禦系統,有個基本檔案來代表正常的行為,所謂的正常行為可能包含使用者、主機、網路連線或應用系統的行為。透過監控一段期間的典型活動的特徵,來打造基本檔案。
舉例來說,一個網路的基本檔案可能顯示出在正常的上班時間電子郵件活動大概占據了網路邊界的網路頻寬15%。入侵偵測暨防禦系統接著使用統計方法去比對當下活動的特徵和相關基本檔案的門檻,例如偵測到當電子郵件活動比原本預期的更多頻寬,並且警告管理者有異常狀態出現。基本檔案可以涵蓋多種行為特性,例如網頁瀏覽數量、登入主機失敗的次數,以及特定期間內處理器的使用率等等。
異常活動偵測方法大部分的益處是,針對未知的威脅,它們可以很有效率。舉例來說,假設有一台電腦被一個新型的惡意軟體感染。惡意軟體會消耗電腦的處理資源、送出大量的電子郵件、發起大量的網路連線,或者做其他行為,而這些行為都已經與原本被建立起來的基本檔案大不相同。
其實,要經過一段時間才會產生所謂的初始基本檔案,通常是幾個星期或更久,有時候把這段期間稱為訓練期間。異常活動偵測的基本檔案可以是靜態或者動態。一旦被產生了,基本檔案就維持在靜態的狀態,除非入侵偵測暨防禦系統專門用來生成新的基本檔案。
所謂的動態基本檔案是持續調整的,每當有額外事件被觀察到的時候,基本檔案都持續被調整。因為系統和網路隨著時間會變動,對於所謂的正常行為的相對應措施也要隨之變動;靜態基本檔案會隨著時間推移而變成不正確的,所以需要定期重新產生。動態基本檔案沒有這個問題,但是容易遭受駭客的躲避技巧加以攻擊。舉例而言,駭客可以偶爾執行小量的惡意活動,接著慢慢增加頻率和活動的數量。如果變更的速度足夠慢,那麼入侵偵測暨防禦系統可能會認為這個惡意活動是個正常行為,並且把它納入自己的基本檔案中。
不小心把惡意活動納入自己的基本檔案當中,是異常偵測法常見的問題。在某些案例中,管理者可以修改基本檔案去排除裡面的惡意活動。而建立基本檔案的另一個問題是,要讓基本檔案維持永遠準確,其實是相當有挑戰性的,因為計算活動可以非常複雜。舉例而言,如果特定的維護活動,每個月都要執行一個大檔案的移轉,在訓練期間可能就不會把它納入觀察;但是當實際上在進行維護的時候,就有可能被判斷成重大偏離,接著就會觸發警告。異常偵測法的入侵偵測暨防禦系統,通常因為善良的活動偏離基本檔案太多而產生許多型一錯誤,尤其在更多變和動態的環境中。
另一個值得注意的問題是,因為事件的複雜性和事件的數量可能已經產生警告了,分析人員要判斷為何會產生特定警告,並且核實該警告是正確的而非誤判。所以,即便入侵防禦可以自動化,但其實仍然有部份作業需要藉由人工判斷。
狀態協定分析
狀態協定分析偵測(Stateful Protocol Analysis)把已經預先定義的各種通訊協定狀態的善良活動基本檔案和觀察到的事件比對,來看看是否有行為偏離。不像異常活動偵測,狀態協定分析偵測採用主機或者網路特定的基本檔案,而狀態協定分析偵測依賴的是廠商開發的一般性基本檔案,這裡面具體說明了特定的通訊協定應該如何被使用和不該如何被使用。
所謂狀態的意思是說,入侵偵測暨防禦系統能夠了解並且追蹤網路層通訊協定、傳輸層通訊協定、應用層通訊協定這些狀態。舉例而言,當使用者開始FTP Session,這個Session最開始是個尚未驗證的狀態。而尚未驗證的狀態在這個狀態應該只能執行少部分的指令,例如檢視「請求協助」或者提供使用者名稱和密碼。把請求和回應配對起來,是了解狀態很重要的一部分,所以當要發生FTP驗證的時候,入侵偵測暨防禦系統可以經由相對應的回應找到狀態碼來決定是否有成功驗證。一旦使用者成功驗證,該Session就在已被驗證狀態,接著使用者就可以執行許多指令。如果你還在未驗證的狀態卻又要執行大部分的這些指令,看起來就很可疑的行為,但如果是在已經驗證的狀態來執行這些指令,看起來就是正常的行為。
狀態協定分析偵測可以識別非預期的指令順序,例如反覆地發布相同指令,或者發布某指令卻沒有該有的第一個指令。狀態協定分析偵測的另一個狀態追蹤是,對於執行驗證的通訊協定,入侵偵測暨防禦系統可以追蹤被用在各個Session的驗證碼(Authenticator),並且記錄被用在可疑活動的驗證碼。當調查事故的時候這是有幫助的。某些入侵偵測暨防禦系統也可以使用驗證碼資訊,去定義可接受的活動給多種使用者分類或特定的使用者。
由狀態協定分析偵測執行的通訊協定分析,通常包含各個指令的合理性檢查,例如參數的最小和最大長度。如果指令通常有使用者名稱的參數,而且使用者名稱的最大長度是20碼,那麼如果有人輸入40碼的參數,那當然就會被視為可疑活動。如果參數裡面還包含Binary Data的話,當然就是更為可疑。
狀態協定分析偵測方法使用通訊協定模型(Protocol Model),通常主要根據軟體廠商和標準制定單位的通訊協定標準。通訊協定模型通常也考慮了各種通訊協定在實作上的差異性。許多標準在描述各種通訊協定時並無完全說明,但這也導致了各種實作上的差異。而且,有些廠商要嘛違反標準,要嘛就增加私人特色,某些甚至可能把標準裡面的特色替換掉。
對私人的通訊協定而言,關於通訊協定的完整細節,因為外界通常都無法取得,所以使得入侵偵測暨防禦系統難以執行全面性且精確地分析。隨著通訊協定被修訂和廠商修改自家的通訊協定實作,入侵偵測暨防禦系統的通訊協定模型就需要被更新,來反應這些變更。
狀態協定分析偵測主要的缺點是非常消耗資源,因為分析本身的複雜度,以及追蹤那些同時發生之Session狀態的成本上。另一個嚴重的問題是,狀態協定分析偵測無法偵測到那些沒違反通訊協定行為特徵的攻擊,例如短時間內執行許多無害的行為而造成的DoS。而另一個問題是,入侵偵測暨防禦系統使用的通訊協定模型,可能與通訊協定被實作出來的版本有所衝突。
入侵偵測暨防禦系統種類
根據入侵偵測暨防禦系統監控的事件種類以及被部署的方式,共分成四種:
1. 網路型(Network-Based)入侵偵測暨防禦系統:監控特定網段或特定網路設備的網路流量,並且分析網路和應用系統通訊協定的活動來識別可疑活動。這可以識別許多種不同的事件種類。最常部署在網路的邊界,例如靠近邊界防火牆或路由器的地方、VPN伺服器等。
2. 無線型(Wireless)入侵偵測暨防禦系統:監控無線網路流量並且分析它的無線網路通訊協定來識別可疑活動,但無法識別那些在應用層或較高層的網路協定(例如TCP、UDP)。通常會部署在組織的無線網路範圍內去監控,但也可以被部署到那些可能會發生未經授權的無線網路的地方。
3. 網路行為分析(Network Behavior Analysis,NBA):網路行為分析檢查網路流量以識別出產生不尋常網路流量的威脅,例如DDoS攻擊、特定型態的惡意軟體和政策違規。網路行為分析系統最常被部署在組織內部網路來監控流量,但有時候也被部署在它們可以監控公司內對外部的流量。
4. 主機型(Host-based)入侵偵測暨防禦系統:監控了單一台主機的特徵,以及發生在該台主機的事件,來識別可疑的活動。可能監控的特徵類型,包括該台主機的網路流量、系統Log、執行的行程、應用系統活動、檔案存取和檔案修改、系統的組態設定變更等等。主機型入侵偵測暨防禦系統最常被部署在關鍵主機上,例如那些可公開被存取的伺服器或包含敏感資訊的伺服器。
某些入侵偵測暨防禦系統比其他入侵偵測暨防禦系統更成熟,因為它們已經被使用如此之久的時間了。網路型的入侵偵測暨防禦系統與某些型態的主機型入侵偵測暨防禦系統已經被商業化超過20年。比起那些早期單純為了偵測DDoS攻擊的入侵偵測暨防禦系統而言,和比起監控內部網路流量而言,網路行為分析軟體某種程度上都是比較新型。至於無線網路的技術,對入侵偵測暨防禦系統來說又是相對更新。
<本文作者:黃信智,目前為久揚科技服務有限公司營運總監,提供資安管理、隱私保護、營運持續管理等顧問諮詢服務、以及滲透測試、源碼檢測等資安服務。擁有CEH、ECIH、CISSP、ISO 27001 LA等資安證照。>