◆任艷 李旭 張蕾
APT檢測防御系統的設計與實現
◆任艷 李旭 張蕾
(新疆財經大學 信息管理學院 新疆 830012)
針對目前高級持續性威脅(Advanced Persistent Threat,APT)的攻擊給各大企業帶來的威脅,本文提出了APT的檢測防御系統的設計與實現。本文采用惡意代碼檢測和入侵檢測相結合的模式進行設計和實現,APT檢測包括傳統的IPS檢測、靜態檢測和動態檢測三個部分。傳統的IPS檢測包括特征匹配、av檢測等;靜態檢測包括Yara檢測、暴力破解等;動態檢測是APT防御系統的關鍵,從虛擬機的選型到檢測系統的分析,本文給出了詳細的說明,動態檢測即通過虛擬機模擬運行來判斷文件是否安全,并可以導出結果進行分析。
APT;入侵檢測;動態檢測;靜態檢測
高級持續性威脅(Advanced Persistent Threat,APT),是以盜取核心資料和數據為目的發起的網絡侵襲行為,利用先進的復合式攻擊手段經過策劃對特定的目標數據進行長期持續性網絡攻擊的形式[1]。APT其攻擊途徑跟其他攻擊方式相比更具有隱蔽性,是一種高級持續的攻擊,具有檢測難、持續時間長和攻擊目標明確等特征。在發動APT攻擊前,會搜索攻擊對象受信系統和應用程序的漏洞以對攻擊對象和目標進行精確的數據收集。因此傳統基于攻擊特征的入侵檢測和防御方法在檢測和防御APT方面效果很不理想。
縱觀整個APT攻擊過程發現,有幾個步驟是APT攻擊目標時實施的重點:首先就是信息的非法收集,攻擊者通過將惡意代碼植入私人電腦,進行單點攻破,使用網絡和社會工程學收集關于系統和使用者等關鍵信息,通過網絡流量特點、軟件版本缺陷、網絡端口等信息的整理并分析出系統可能存在的安全缺口。第二步,入侵目標,內部橫向滲透,通過構建的控制通道獲取攻擊者指令,一般采用較多的誘騙手段是釣魚網站,電子郵件病毒,以欺騙手段遠程在后臺運行木馬程序,或者直接進行SQL注入攻擊等。第三步,潛伏及敏感數據外傳,攻擊者成功入侵后,可能會先隱藏自身進一步尋找最佳時機。也可能直接通過跳板電腦訪問目標服務器,再利用0day漏洞等方式,竊取有用信息。然后將竊取的數據重新分割成細小的碎片分時段逐步回傳。第四步,清理痕跡,以竊取信息為目的APT類攻擊一旦完成任務,需要對其網絡中存留的各類痕跡進行銷毀。根據入侵對象之前所收集的各類系統個人數據,將入侵對象訪問過的機器進行還原,恢復各種系統配置及個人用戶參數,清除系統及安全軟件日志數據[2]。
當前的APT攻擊檢測和防御方案其實都是圍繞這些步驟展開,根據對APT攻擊發生的不同,大致分以下四類[3]:
(1)利用惡意代碼檢測的防御方案:此類防御方案主要應用于APT攻擊過程中的單點攻擊突破階段。由于APT攻擊多為利用惡意代碼攻擊個人電腦,以此為突破口,繼而橫向攻擊主機所在網絡的整個防御系統的。因此對惡意代碼的檢查和及時攔截是對APT攻擊的防御前哨,至關重要。
(3)網絡入侵檢測類方案:此類方案主要針對APT攻擊過程中的控制通道構建階段的防御需求。根據對以往大量案例分析可知,攻擊者控制通信通道的方法相似性較大,特征較單一,易被識別。因此可以采用傳統的入侵檢測方法來檢測APT攻擊中對通道的控制命令和方法的特征。此方案的重點在于及時獲取并建立相關的攻擊特征庫。
(4)大數據分析檢測類方案:此類方案主要針對網絡流量以及終端和服務器上的日志文件進行特征提取和分析,發現異常數據并進一步分析其行為的合法性,而非針對APT攻擊的某一特定環節進行。該方案可以通過學習海量正常數據和異常數據,并建立正常行為特征庫和異常行為特征庫,并利用大數據分析方法,對海量實時流量和日志數據進行深入分析。
本文是根據第1方案和第3方案制定APT攻擊及防御方案的。
APT檢測分為傳統的IPS檢測、靜態檢測和動態檢測。IPS進程是一個包含了各種基于特征檢測相關功能及文件還原功能的進程;APT進程是一個包含了各種靜態檢測相關功能及文件識別和解析的進程;Vm進程是一個用于調度虛擬機進行動態檢測的進程。
特征檢測子系統包括報文重組、協議解析、特征檢測、文件還原、網絡異常行為檢測、av檢測等模塊。

圖1 IPS檢測
進程初始化:進程啟動的時候,通過從配置文件獲取相關配置信息,進行進程的初始化。
配置的更新:當進程的配置發生變化時,由配置線程通過負責接收配置命令并更新本進程的相關信息。
4.落實收入分配的改革措施,促進經濟社會發展更加協調。東營工業化進程的推進,最終的目標是進入到后工業社會和現代社會,這不僅意味著工業發展階段的提升,更重要的是發展成果為社會公眾所共享,市民都過上富裕文明的幸福生活。這就需要針對當前收入分配中的突出矛盾,落實十八屆三中全會的精神,努力推進收入分配改革,努力做到“兩個同步”。
進程的執行:進程內的業務線程循環處理報文并根據會話緩存文件,url信息,判斷網絡異常行為。
靜態檢測能夠對文件等對象進行類型識別、文件解析、特征匹配、模擬執行等工作。靜態檢測主要是基于特征匹配的。

圖2 靜態檢測
靜態檢測首先會對文件類型進行識別,做解壓縮等預處理。識別結果是后續檢測的依據,也是動態檢測的輸入模塊。解壓縮支持zip、rar、7zip等格式,文件解析支持pdf、rtf、doc、docx、exl、swf、ppt等格式。
文件的解析是一個遞歸循環解析,并把解析出的片段進行模塊檢測的過程。Yara是基于特征的,在加殼的情況下,Yara是發揮不了威力的,PEid可以快速識別程序使用的加殼軟件。分析文件的PE結構,PE文件內包含的已知的特征碼,PE文件各個段,導入導出信息等。
動態檢測是本系統的主要模塊,是判斷未知文件是否惡意的有效手段,但執行效率比較低。動態檢測需要選取合適的虛擬機,然后再通過虛擬機管理模塊進行調度檢測。
3.3.1虛擬機的選取
VMware是商業化最成功的虛擬化方案,被各大廠商應用、收費,不予考慮。
KVM[4]是基于內核的虛擬機(英語:Kernel-based Virtual Machine,簡稱KVM),是一種用于Linux內核中的虛擬化基礎設施。KVM目前支持Intel VT及AMD-V的原生虛擬技術。
優點:1)開源;2)KVM是內核的一部分,與內核結合的最好;3)目前最火的linux平臺虛擬化方案,redhat,ibm主推
缺點:圖形處理方面不是很好。
Xen是一個開放源代碼虛擬機監視器??稍趩蝹€計算機上運行多達128個有完全功能的操作系統。
優點:1)開源;2)可移植性強;3)獨特類虛擬化支持,提供接近于物理機的性能
缺點:1)需要改內核,易用性差
VirtualBox[5]是一款開源虛擬機軟件。使用者可以在VirtualBox上安裝并且執行Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系統作為客戶端操作系統。
優點:1)使用方便;2)圖形處理突出
缺點:1)版權受限;2)沒有商業案例
Linux平臺下,虛擬化方案選擇不多,入圍的只有Xen、KVM、VBOX。性能上,Xen的類虛擬化速度接近裸機。類虛擬化只使用linux主機上運行linux虛擬機。全虛擬化環境下,Xen、KVM、VirtualBox性能是沒有太大差別。KVM本身就是內核的一部分,可以直接使用內核的進程調度,內存管理,IO等模塊,而Xen需要修改內核;KVM有商業案例很多,背后有OVA支持,開源免費,而VBOX沒有任何的商業案例,且其版權受限。所以經對比可以看出KVM是最佳選擇。
3.3.2檢測過程
虛擬機調度從磁盤中循環讀取文件,并根據靜態檢測中的檢測結果和文件類型識別結果準備每個文件的執行環境和執行優先順序。Win虛擬機是預先安裝了特定版本的軟件和Check檢測工具的操作系統的快照。虛擬機調度和通訊模塊在準備好執行環境后通過文件共享的方式把樣本文件共享給虛擬機內的Check檢測程序。Check的檢測結果通過文件共享的方式返回給虛擬機調度模塊。通過Check判斷出惡意軟件以后需要調用cockoo[6]一次檢測,得到這個軟件的行為分析結果。
文件黑白名單檢查時,使用Ssdeep模糊哈希相似度檢查,模糊哈希用于計算上下文相關的分段哈希值,可檢測相似的或者自修改的惡意文件。

圖3 動態檢測
虛擬機的管理包括啟動、暫停、恢復、關閉等,使用libvirt實現。Libvirt庫的目的是為各種虛擬化工具提供一套方便可靠的編程接口。目前主流linux平臺的虛擬化管理工具都是基于libvirt開發,算是虛擬機管理標準化api。
虛擬機啟動:查找虛擬鏡像的最近快照,然后恢復最近快照。啟動快照??煺諉?,比正常啟動要快得多。每次恢復快照是為了清除上次運行對環境的污染。程序啟動后,會根據配置文件確定虛擬機使用的是xen/kvm/vbox,以及配置了多少臺可用的虛擬機。虛擬機的具體情況會使用數據庫來記錄。
提交分析數據使用了單獨的程序。程序的功能非常簡單:分析參數,將任務加入數據庫。主程序會到數據庫task表中提取任務。任務提交程序只負責提交任務,后續的分析有主程序去調度。主程序沒有啟動的情況下也可以提交任務,因為任務是保存在數據庫中的,待主程序啟動后再分析任務。
主程序是一個死循環。
本方案也具有一定的局限性:APT攻擊檢測和防御方案不能覆蓋到APT攻擊的各個階段,因此可能會導致漏報。理想的APT安全解決方案應該覆蓋APT攻擊的所有攻擊階段,事前階段可通過沙箱技術對可疑程序進行模擬,對可疑程序的反常行為進行分析和評估判斷出系統未知文件是否存在威脅;事中階段采用黑白名單技術在系統終端上檢測所有進程和訪問;事后階段通過大數據分析、網絡鏈路取證,將系統大數據分析技術和沙箱檢測技術相結合,全方位分析APT攻擊。通過三個處置階段,深挖網絡安全隱患,建立立體化檢測手段,最大可能全面的檢測和抵御APT攻擊,維護網絡安全。
[1]曾瑋琳,李貴華,陳錦偉.APT入侵的網絡安全防護系統模型及其關鍵技術研究[J].現代電子技術,2013(17):78-80.
[2]陳煒. 關于等級保護APT攻擊檢測技術的研究[J]. 警察技術,2014(S1).
[3]孫天一.APT攻擊的特征分析與防御策略[J].電子技術與軟件工程,2015(06):222.
[4]孫琳程.虛擬機KVM和XEN的性能分析[J].電腦知識與技術,2013(10).
[5]魚泳.VirtualBox虛擬機的隱形加載探討[J].數字技術與應用,2013(9).
[6]揚凱.病毒行為自動分析與特征庫生成技術研究[D].南開大學,2011.
[7]李靜軒,朱俊虎,邱菡,等.基于非零和隨機博弈的APT攻擊主動防御策略選取[J].計算機應用研究,2020(04).
新疆維吾爾自治區高校科研計劃項目:人工智能背景下的網絡攻擊與檢測技術研究(XJEDU2019Y036);新疆社科基金項目:大數據視域下南疆貧困地區精準脫貧監測與評估研究(No.19BTJ037);新疆財經大學校級科研項目:基于深度學習的網絡攻擊檢測技術研究(2020XYB004)