高級持續性威脅(Advanced Persistent Threat)是當前信息安全產業界的熱點。作為一種有目標、有組織的攻擊方式,APT在流程上同普通攻擊行為并無明顯區別,但在具體攻擊步驟上,APT體現出以下特點,使其具備更強的破壞性:
攻擊行為特征難以提取:APT普遍采用0 day漏洞獲取權限,通過未知木馬進行遠程控制,而傳統基于特征匹配的檢測設備總是要先捕獲惡意代碼樣本,才能提取特征并基于特征進行攻擊識別,這就存在先天的滯后性。
單點隱蔽能力強:為了躲避傳統檢測設備,APT更加注重動態行為和靜態文件的隱蔽性。例如通過隱蔽通道、加密通道避免網絡行為被檢測,或者通過偽造合法簽名的方式避免惡意代碼文件本身被識別,這就給傳統基于簽名的檢測帶來很大困難。
攻擊渠道多樣化:目前被曝光的知名APT事件中,社交攻擊、0day漏洞利用、物理擺渡等方式層出不窮,而傳統的檢測往往只注重邊界防御,系統邊界一旦被繞過,后續的攻擊步驟實施的難度將大大降低。
攻擊持續時間長:APT攻擊分為多個步驟,從最初的信息搜集,到信息竊取并外傳往往要經歷幾個月甚至更長的時間。而傳統的檢測方式是基于單個時間點的實時檢測,難以對跨度如此長的攻擊進行有效跟蹤。
正是APT攻擊所體現出的上述特點,使得傳統以實時檢測、實時阻斷為主體的防御方式難以有效發揮作用。在同APT的對抗中,我們也必須轉換思路,采取新的檢測方式,以應對新挑戰。
基于記憶的APT檢測原理
在探討APT攻擊檢測之前,我們先分析下檢測的內涵。從本質上講,檢測是將求檢對象從其所依附的環境中識別出來的過程。為了識別求檢對象,我們需要從檢測環境中采樣能體現求檢對象特征的數據,形成被檢測域;需要依賴特定的背景知識,形成判據庫;需要采取一定的判定算法,形成判定機制;最終在被檢測域、判據、判定機制的共同作用下,做出是否存在求檢對象的論斷,整個過程如圖1所示。
圖1. 檢測邏輯模式
以傳統的入侵檢測系統(IDS)為例,求檢對象是網絡攻擊行為,檢測環境就是包含了攻擊行為數據的網絡流量數據。為了檢測攻擊,我們需要實時采集網絡流量,形成IDS的被檢測域;需要提取各類攻擊行為的網絡特征構造特征庫,作為IDS的判據庫;需要采用特征匹配算法,作為IDS判定流量中是否包含攻擊行為的判斷機制。有了流量數據、特征庫、特征匹配算法,我們就能檢測網絡中是否存在已知攻擊行為。
傳統IDS這種檢測模式,在應對常規攻擊曾發揮了巨大作用,但對于APT卻顯得無能為力,主要原因在于:
傳統IDS的被檢測域是實時網絡流量,只判斷實時網絡流量中是否包含攻擊行為;而APT整個過程的時間跨度很長,從單個時間點的角度看APT無法了解全貌,也無法識別攻擊者的真實意圖,只有將長時間的可疑行為進行關聯分析才能實現APT的有效檢測。
傳統IDS的判斷機制是特征匹配,只能檢測出提取過攻擊簽名的已知攻擊行為;而APT過程中往往采用0 day、特種木馬、隱蔽通道傳輸等未知攻擊,無法通過誤用檢測的方式進行準確識別,只有通過異常檢測的方式才有可能識別出可疑的攻擊行為。
[page]
鑒于上述不足,要有效對抗APT,我們一方面要擴大被檢測域,將基于單個時間點的實時檢測轉變為基于歷史時間窗的異步檢測;另一方面要豐富判定機制,在檢測已知攻擊的同時能夠兼顧對未知攻擊的檢測。為此我們提出了基于記憶的新檢測模式,共分為四個步驟:
1、 擴大:即拓寬被檢測域,對全流量數據進行存儲分析。這樣在檢測到可疑行為時,可回溯與攻擊行為相關的歷史流量數據進行關聯分析,之前已發生過、未能引起分析人員注意的報警,有可能隱藏著蓄意攻擊意圖,通過這種回溯關聯分析就有可能進行有效識別。有了全流量的存儲,就有可能回溯到任意歷史時刻,采用新的檢測特征和檢測技術,對已發生的流量進行任意粒度的分析,這是本系統最大的特點。
2、 濃縮:對存儲下來的大數據進行降解操作,刪除與攻擊無關的數據以節省空間,同時保留與攻擊相關的數據以備后續分析。濃縮環節需要借助于攻擊檢測模塊,可通過第三方檢測設備如IDS的報警進行降解,也可直接對全流量數據進行異常檢測產生可疑報警,基于報警事件進行降解。
3、 精確:對產生的可疑攻擊數據做進一步深入分析,產生對攻擊行為的精確報警。可通過多維數據可視化分析,定位可疑會話,再進一步對流量數據進行細粒度協議解析和應用還原,識別異常行為和偽裝成正常業務的攻擊行為。本環節需要分析人員的參與,通過人機結合的方式提升分析效率和準確度。
4、 場景:對各類攻擊報警進行關聯,識別報警之間的攻擊層語義關系,根據孤立報警建立完整攻擊場景。通常的做法是以關聯規則的方式建立攻擊場景知識庫,通過對報警進行匹配和關聯,完成攻擊場景的構建。
系統框架
按照數據—信息—知識逐層提煉的模式,基于記憶的APT攻擊檢測系統結構分為三級,系統整體架構圖如下:
圖2 基于記憶的檢測系統架構圖
1、存儲層
存儲層完成對從互聯網直接獲取的實時數據流的預處理和存儲管理工作。對實時數據流首先進行傳輸層的會話還原,消除因網絡條件造成的亂序、重傳、延遲等對后續分析的干擾;然后進行應用協議識別,判斷數據流上所承載的具體應用;最終從非結構化的數據流中抽取結構化的元數據信息,以便后續的各類統計和關聯分析。
預處理后的原始數據流,既包括完整的全流量數據,又包括提取后的元數據。考慮到海量數據的存儲壓力,可對不同類型的數據采取靈活的管理策略:
對于全流量數據,進行窗口長度為星期級的存儲。由于全流量數據會占用海量存儲空間,不宜進行長期存儲,但全流量數據對于后續的回溯分析又是必須的。為此采用折中的存儲策略:只存儲最近幾周(例如1-2周)的全流量信息,對于超期的數據進行降解處理。
對于元數據,進行年度級的存儲。提取后的元數據只包含應用層會話的關鍵信息,其數據量大約相當于全流量信息的5%,這類信息對后續的統計、關聯和數據挖掘具有重要的作用,且占用的空間在可接受范圍內,因此在平臺中進行長期存儲。
[page]
2、分析層
分析層完成從原始流量數據中產生獨立報警信息的工作,主要方法包括:
對于能引起網絡流量顯著異常的攻擊,如DDoS、掃描、蠕蟲傳播等,可通過異常流量檢測和統計分析的方式進行識別。通過建立全面、完整的安全基準指標體系,可以快速識別網絡流量異常;通過統計分析,可準確定位異常的位置和原因。
對于不引起流量異常的未知攻擊,可通過可疑行為建模的方式進行識別。例如對于尚未提取特征的木馬,其連接控制端的時候可能會存在未知的加密傳輸、疑似心跳信號的間歇性連接、惡意域名訪問、異常的上下行流量比等行為,通過對這些可疑行為進行關聯,就有可能檢測到木馬連接行為。
對于通過異常檢測模塊產生的各類報警,由于缺乏攻擊簽名信息進行驗證,其準確度往往低于基于特征匹配的誤用檢測。為此還需要結合原始報文,對報警的有效性進一步確認。通過報文所承載的應用層對象做細粒度的協議解析和還原,可輔助分析人員判定會話內容是否包含攻擊數據,從而進一步產生精確報警。
3、展示層
展示層完成從孤立的攻擊報警信息生成完整的攻擊場景的關聯工作,并提供可視化分析前端工具,幫助分析人員從存儲的海量歷史數據中獲取知識。對于攻擊場景關聯,常見的方法是基于關聯規則匹配攻擊場景。由于APT攻擊手段的復雜性,在實際環境中往往會因為報警事件的缺失導致無法進行完整攻擊路徑圖的匹配,進而導致建立APT場景失敗,為此要解決基于不完整攻擊路徑的攻擊場景匹配問題。對于多維數據可視化分析,要提供給分析人員一套能從地址、端口、協議類型等維度對數據進行統計展示的工具,并支持按照不同的粒度對數據進行鉆取,方便分析人員在大數據中定位可疑行為。
典型應用場景
一次典型的APT攻擊過程,通常包括信息搜集、獲取入口點、實施遠程控制、攻擊目標橫向轉移、重要資產數據發現、數據泄露等環節。對于攻擊防御方而言,由于特征的時效性和檢測手段的局限性,未必能夠在攻擊的起始階段實現有效檢測。但對于APT這樣的時間跨度長、攻擊目標明確的攻擊行為,在整個攻擊過程中總會存在若干個攻擊暴露點,以此為基礎對相關的流量進行回溯關聯,就有可能獲取攻擊者完整的攻擊意圖。
以某個攻擊過程為例,攻擊者試圖獲取某信息系統中的重要數據。為此,攻擊者先搜集到了該信息系統部分用戶的郵箱地址,然后給這些用戶發送了郵件,其附件中包含了某個利用了0day漏洞的文件,導致用戶打開附件時執行了惡意命令并被植入了未知木馬。攻擊者通過加密的命令控制通道,對用戶主機實施遠程控制,獲取了信息系統中的重要數據。在這個攻擊過程中,由于攻擊者所利用的漏洞、植入的木馬都缺乏特征,采用的遠程控制通道又是進行了加密,現有基于攻擊簽名的檢測方式很難進行有效檢測。
有了本文所述的基于記憶的APT攻擊檢測系統,對整個攻擊過程的數據進行存儲,輔以異常檢測方法,就有可能實現檢測。例如,通過可疑行為識別,系統能檢測到用戶主機上的可疑加密傳輸行為;基于可疑報警,對相關主機的數據進行回溯分析,對相關的歷史流量進行協議解析、應用識別和還原,能夠得到郵件附件、被植入的木馬文件;分析人員再對還原后的內容做進一步的確認,就能夠識別攻擊者的真實意圖和已經發生的攻擊行為,并評估自身的信息資產損失狀況。
總結
APT的出現,既給傳統檢測技術帶來了挑戰,也為新興技術的應用帶來了機遇。硬件技術的發展,使得處理器運算能力不斷增強、單位容量存儲成本不斷降低,這為我們基于大數據進行APT檢測提供了必要條件。
對于APT攻擊,我們的對抗策略是以時間對抗時間,改變傳統基于單時間點進行特征匹配的局面,對長時間窗的數據進行關聯分析,并輔以異常檢測算法,以解決現有檢測手段的不足。通過擴大檢測域、豐富檢測機制,形成了新一代基于記憶的智能檢測系統。隨著大數據技術的發展、各類檢測算法的豐富,基于記憶的智能檢測系統將在應對APT攻擊中發揮更大作用。(啟明星辰 周濤)