作者:劉家維 / 北區學術網路資訊安全維運中心資安工程師、李美雯 / 臺灣大學計算機及資訊網路中心程式設計師
隨著網路應用服務的快速成長,網路架構的規模、複雜度大幅成長,加上駭客攻擊手法推陳出新,易遭受網路攻擊之可能性也隨之提高。傳統的防火牆與防毒軟體,已無法提供完善的資安防護,需整合網路閘道的入侵偵測防禦系統才能夠建構起階層式的防護架構,以確保外到內及內到外完善安全的網路環境。而透過深入解析網路封包並提供即時告警及阻擋威脅行為的網路型入侵偵測防禦系統(Network-based IPS, Network-based Intrusion Prevention System, 以下簡稱IPS)成為較佳的解決方案。
本篇將著重於討論網路型入侵偵測防護系統之運作流程與威脅偵測機制。
網路式入侵偵測防禦系統
IPS系統是IDS(Intrusion Detection System)功能延伸的加強版,具備了異常偵測告警和即時阻擋等雙重功能,透過解析TCP/IP網路封包建?入侵偵測資?庫,提供至Layer 7的異常偵測層級,彌補傳統防火牆只能控管Layer 4 層級的問題。
圖1. IPS事件偵測流程
- IPS的運作流程
IPS系統的運作流程可區分為三個階段(如圖1所示),第一階段透過資料庫內的動態黑名單進行IP、URL及Domain等資訊比對,Drop符合的網路封包以降低佔用系統資源。第二階段透過存取控制列表將不同屬性的網路流量進行分類處理,例如黑名單、白名單及須檢測之網路流量。第三階段將須檢測之網路流量導入Intrusion Rule進行深入檢測。
- IPS入侵偵測技術
一般的IPS主要透過下列三種偵測技術防護已知及未知威脅的入侵。
- 2.1 特徵值偵測(Signature-based Detection)
利用病毒特徵碼與攻擊手法制定入侵偵測規則及建立特徵值資料庫,當符合該特徵碼的攻擊發生時,系統透過相對應的規則觸發防護措施並發出告警,此種偵測方式準確率較高。然而特徵值偵測須逐一檢測所有網路封包,與大量的特徵碼作比對,大型網路佈署入侵偵測防禦系統時應考量偵測設備in-line之效能。特徵碼偵測的方式無法偵測未知型的攻擊,需要靠其他機制偕同運作才能達成完善的偵測防禦效果。
- 2.2 異常行為偵測(Anomaly-based Detection)
利用IPS系統自動學習機制,學習一段時間的網路連線數值後制定閥值,透過比對定義的數值與觀察到的網路使用行為,以此來識別是否出現異常狀態。例如,登入失敗次數、主機DNS查詢次數等等,此種偵測方式面對未知的攻擊手法時有相當好的效果。若使用於較開放的網路環境例如學術網路時,則因多樣性的網路連線行為容易造成誤判,需要以告警方式提醒資安人員確認,如能搭配大數據或AI進階分析,可增強其偵測防禦能力。
- 2.3 狀態協定分析(Stateful Protocol Analysis)
利用IPS系統預先定義好的通訊協定連線狀態閥值資料庫,比對網路通訊進行時各種通訊協定於個別連線狀態下,是否出現異常的行為,例如於HTTP 連線進行時出現不正常的網頁存取行為,或是於使用者名稱欄位出現不正確的系統指令參數等。狀態協定分析能夠細緻的偵測到網路通訊時不符合該協定規範的異常行為,但由於其細緻的分析與需要追查整段網路通訊的Session 通訊狀態,非常消耗系統資源,需視個別情況調整。
- 入侵規則(Intrusion Rule)
包含特徵值比對的入侵規則是IPS系統最為關鍵的核心要素,為提供快速的規則更新與客製化撰寫規則的功能,部分IPS系統會採用Snort這種社群式的開源入侵規則,以避免設備廠商自行撰寫偵測規則所付出的龐大成本。
Snort是一套開放原始碼的網路入侵預防軟體與網路入侵檢測軟體,偵測規則是透過開放方式發展,擁有廣大的社群用戶共同維護,及允許自行撰寫並客製化防護規則,並透過特徵值比對的方式判斷入侵行為,可用於檢測各種類的攻擊行為,例如緩衝區溢位,端口掃描,CGI攻擊,SMB探測等等。因Snort針對安全威脅快速更新的特性,已成為IDS/IPS指標性的威脅偵測規則。
圖2. Snort LOGO(來源:https://medium.com/@acaremrullahkku/what-is-snort-547916bece5f)
Snort Rule使用基本的規則語言進行撰寫,透過簡易的語法定義異常事件的觸發條件。以前幾年造成嚴重災情的WannaCry加密勒索軟體的規則為例,當主機感染WannaCry時會對任意DNS Server發出特定的Domain查詢,可以使用以下格式撰寫Snort rule,偵測WannaCry的連線行為。
alert udp[通訊協定] any[來源IP] any [來源PORT] -> any [目的地IP] 53 [目的地PORT] (msg:"DNS request for known malware - WannaCry" [自定義規則名稱]; flow:to_server [連線方向性]; content:"|29|iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea|03|com|00|" [特徵值]
入侵偵測案例
近年來挖礦劫持(Cryptojacking)惡意攻擊活動相當頻繁,攻擊者透過大量散佈惡意的挖礦程式進而盜用主機資源挖掘加密貨幣營利。此種攻擊手法通常分為三個階段,首先利用系統漏洞植入惡意程式,接著透過SSH、SMB、RDP等方式在內部擴散,最後連線礦池執行加密貨幣的運算。圖3為遭挖礦劫持並安裝Xmrig挖礦程式的裝置,被IPS系統攔截的網路封包。
圖3. 礦池連線請求封包內容
IPS系統阻擋挖礦程式連線分成兩個階段,第一階段透過雲端情資列表阻擋加密貨幣礦池的IP或Domain連線。若礦池IP或Domain未被收錄於情資之中,則進入第二階段利用連線礦池封包所夾帶的Payload 進行特徵值比對並中斷該連線的session,以下為Snort用於偵測該事件之特徵值規則。
alert tcp IP any -> IP any (msg:" XMRig cryptocurrency mining pool connection attempt"; flow:to_server,established; content:"|22|method|22|"; nocase:; content:"|22|agent|22|"; nocase:; content:"|22|XMRig";
挖礦程式與礦池的連線採用JSON-RPC發送請求,IPS系統將封包內包含的jsonrpc格式之method、agent等等欄位與程式版本號作為挖礦程式與礦池間連線的特徵值。
結論
位於網路閘道口的網路型入侵偵測防禦系統,可以說是面對惡意入侵行為的第一道防線,卻也不應該是資安防護唯一的一道關卡,聯合不同層次的資安設備達成縱深防禦,並配合專業的資安管理人員維持最新的特徵碼資料庫及撰寫精準防護的偵測規則,並定期的檢討與改進,才能夠達到完善的防護效果。保持資安防護能量必須與時俱進,透過不間斷充實新知,了解新形態的攻擊手法才能夠達到真正的減少誤判和阻絕來自外部惡意的入侵攻擊。
參考資料
- 入侵防禦系統設計之研究:http://itech.ntcu.edu.tw/Tanet%202007/5%5C137.pdf
- Medium Blog(what-is-snort): https://medium.com/@acaremrullahkku/what-is-snort-547916bece5f
- 行政院研究發展委員會(入侵偵測與預防系統簡介與應用):http://avp.toko.edu.tw/docs/class/3/%E5%85%A5%E4%BE%B5%E5%81%B5%E6%B8%AC%E8%88%87%E9%A0%90%E9%98%B2%E7%B3%BB%E7%B5%B1%E7%B0%A1%E4%BB%8B%E8%88%87%E6%87%89%E7%94%A8.pdf
- 網管人(開源Suricata入侵偵測 揪出網路攻擊與異常行為):https://www.netadmin.com.tw/netadmin/zh-tw/technology/F332544D7A274E8AAAF7D0295328B744?page=3
- Cloudmax部落格 https://blog.cloudmax.com.tw/2019-10-security-protection-introduction/
- 資安人(入侵偵測與入侵預防的差異性): https://www.informationsecurity.com.tw/article/article_detail.aspx?aid=83