王麗娜 談 誠 余榮威 尹正光
(軟件工程國家重點實驗室(武漢大學) 武漢 430072) (空天信息安全與可信計算教育部重點實驗室(武漢大學) 武漢 430072) (武漢大學計算機學院 武漢 430072)
?
針對數據泄漏行為的惡意軟件檢測
王麗娜 談 誠 余榮威 尹正光
(軟件工程國家重點實驗室(武漢大學) 武漢 430072) (空天信息安全與可信計算教育部重點實驗室(武漢大學) 武漢 430072) (武漢大學計算機學院 武漢 430072)
(lnwang.whu@gmail.com)
高級可持續威脅(advanced persistent threat, APT)級網絡攻擊對企業和政府的數據保護帶來了極大的挑戰.用0day漏洞制作惡意軟件來進行攻擊是APT級網絡攻擊的常用途徑,傳統基于特征的安全系統很難檢測這類攻擊.為了檢測泄漏敏感信息的惡意軟件,首先分析已出現的APT惡意軟件,描繪出竊取信息的攻擊步驟,以此為基礎提出1個針對數據泄漏行為的惡意軟件檢測方案用于檢測同種攻擊類型的惡意軟件.該方案結合異常檢測和誤用檢測,對被保護的主機和網絡進行低開銷的持續監控,同時提出一系列推斷規則來描述攻擊步驟中可以觀察到的高級惡意事件.一旦監控到可疑事件,進一步收集主機和網絡的低級行為,根據推斷規則關聯低級行為和高級惡意事件,據此重構竊取信息的攻擊步驟,從而檢測出攻擊的存在.通過仿真實驗驗證了該方案的有效性.
信息泄漏;惡意軟件;攻擊步驟;低級行為;高級惡意事件;推斷規則
信息網絡面臨著無處不在、無時不在的安全威脅[1].黑客們通常使用0day漏洞制作惡意軟件,并不斷更新自己的漏洞庫來保證威脅性,部分精心設計的攻擊被稱為高級可持續威脅(advanced persistent threat, APT).海蓮花組織[2]通過魚叉攻擊和水坑攻擊等方法,配合多種社會工程學手段進行滲透,向境內特定目標人群傳播特種木馬程序,秘密控制部分政府人員、外包商和行業專家的電腦系統,竊取系統中相關領域的機密資料;Duqu[3]和Duqu 2.0[4]木馬用于收集與其攻擊目標有關的各種情報如收集密碼、抓取桌面截圖(暗中監視用戶的操作)、盜取各類文件等,并采取隱蔽通信方式傳輸數據;sKyWIper[5]又稱為Flame病毒,是全新的網絡間諜武器,可以通過USB存儲器以及網絡復制和傳播,并能接受來自世界各地多個服務器的指令,感染病毒的電腦將自動截屏、自動錄音、記錄用戶密碼和鍵盤敲擊規律,并將結果和其他重要文件發送給遠程操控病毒的服務器.
近年來,研究者針對APT攻擊的檢測和防御做了大量的工作.從檢測的方法來看主要分為2類:1)檢測0day漏洞利用的異常檢測,包括網絡流量異常檢測[6-9]和惡意代碼異常檢測[10-12];2)基于現有安全分析結果的誤用檢測,包括針對攻擊底層特征的特征檢測[3]和關聯底層安全檢測結果的安全事件關聯分析.前者檢測范圍過于單一,應對結合多種攻擊手段的APT攻擊時存在局限性;后者關聯對象較為單一,難以發現不同位置不同時間段內安全事件潛在的隱藏關系.同時,APT攻擊種類繁多,攻擊手段復雜,很難設計統一的檢測方案.因此,利用各類安全事件的內在聯系,以具體攻擊的過程和特點為指導,對信息系統中的所有安全事件進行綜合關聯分析是個很大的挑戰.
針對以上問題,本文計劃針對信息竊取類型的惡意軟件進行分析并提出新的檢測方案,設計擴展攻擊樹模型,結合異常檢測和誤用檢測,通過多時間窗口關聯分析和主機網絡事件關聯分析來檢測惡意軟件的信息竊取行為.為了構建檢測方案,本文深度分析了著名的竊取信息的惡意軟件,找到這些惡意軟件的3個特點:
1) 竊取信息的惡意軟件采用高級定制化工具和入侵技術,使用0day或1day的漏洞利用,滲透能力極強,依靠安全邊界阻止攻擊幾乎不可能;
2) 這類惡意軟件操作隱秘,持續滲透,還采取各種偽裝技術例如使用Hash碰撞偽造證書來繞過主流的安全產品,因此采取傳統安全產品的報警作為輸入的檢測方法很難起到效果,因為攻擊方的隱秘技術很可能繞過了這些安全產品;
3) 攻擊步驟中惡意軟件的運行存在可觀測的主機行為和網絡行為,這些惡意程序通常是自動程序,不需要人的行為驅動,存在異常的訪問系統資源(注冊表修改和文件讀寫)來開機自啟動和偷取信息,惡意程序和命令與控制系統(command & control, C&C)的通信會盡可能的小并采取偽裝技術來減小暴露的可能性.
本文計劃根據這些可觀測的行為來建模檢測,將這些行為投射到竊取信息的攻擊步驟[13]上:信息收集、切入、命令與控制通信、橫向移動、資產數據發現、數據提取.這些行為分布于各個階段.本文設計針對性的方案直接對這些行為進行監控和檢測,避免了偽裝技術的干擾,并通過對結果的關聯分析來判斷是否存在竊取信息的惡意軟件.
本文的主要貢獻有2點:
1) 分析已出現的竊取信息的惡意軟件,描繪它們的攻擊步驟,從中提取可觀測的高級惡意事件,再分解為低級行為,最后完成推斷規則.
2) 提出一系列推斷規則來描述攻擊步驟中的高級惡意事件,提出新穎的方案檢測竊取信息的惡意軟件.該方案對被保護的主機和網絡進行持續監控,結合基于主機的入侵檢測系統(host-based intrusion detection system, HIDS)和網絡入侵檢測系統(network intrusion detection system, NIDS)獲得的低級行為如文件訪問或通信創建等,通過多時間窗口關聯分析和主機網絡事件關聯分析,關聯低級行為和高級惡意事件,重構竊取信息的攻擊步驟,從而檢測惡意軟件.該方案是異常檢測和誤用檢測的結合,對攻擊步驟過程的分析和檢測規則的生成屬于誤用檢測,監控和檢測的實現屬于異常檢測,根據推斷規則從收集到的看似正常的數據中推斷惡意軟件進行操作的高級惡意事件.
本文研究竊取信息的惡意軟件是基于高級可持續威脅的應用,針對高級可持續威脅的研究非常熱門,這里介紹一些與本文相關的檢測技術.
一些學者通過對現有APT攻擊的分析開發對應的檢測工具.文獻[3]首先具體分析了Duqu病毒,然后開發了1套檢測工具,包括簡單的啟發工具,在系統中尋找確定類型的異常.
一些學者提出抗APT攻擊安全框架,為各項APT防御和檢測技術提供運行環境.文獻[14]對威脅進行建模,提出基于異常發現的“慧眼”架構,將網絡安全監測過程分為低位監測和高位監測,低位監測機制監控主機的應用環境、系統環境、通信環境、傳輸環境和數據環境,高位監測機制對網絡協議特征和流量統計特征進行分析;文獻[15]提出基于入侵檢測事件的檢測和預測APT惡意軟件來阻止安全事件,使用基于入侵檢測事件的預測模型,預測詳細事件發生和入侵的詳細信息.這2篇論文的數據收集方法極具創新性,但是檢測方法太過寬泛難以實用.
許多學者研究基于網絡大數據分析的攻擊檢測技術來檢測APT攻擊[16],基于高層事件融合的檢測技術是研究的熱點,尤其是安全事件關聯分析.文獻[17]介紹安全設備報警關聯分析方法,以Snort等安全設備的海量報警作為輸入,通過報警融合得到更有概括性且更準確的安全報警.該文獻提出基于上下文驗證的網絡入侵檢測模型,結合環境上下文、弱點上下文、反饋上下文和異常上下文等多種上下文信息,構建虛警處理平臺,實現告警的自動驗證以及攻擊行為能否成功的自動判定.這篇文章存在的問題是安全事件關聯分析的關聯對象類型不夠全面.
文獻[18-21]介紹網絡和主機安全關聯分析方法,首先給出網絡流量和主機特征異常程度的度量指標,然后利用科學的模型對以上2類指標進行綜合來有效提高安全檢測的準確率.文獻[18]首次提出結合主機行為和網絡活動的僵尸網絡檢測方法,對注冊表、文件系統、網絡堆棧行為進行監視獲取1個特征向量,在網絡邊緣抓取網絡通信的Netflow流量數據進行過濾和聚類分析,最后通過關聯算法將主機行為與網絡活動結合,判斷主機是否感染僵尸;文獻[19]提出主機網絡協作檢測框架,使用關聯方法對主機進程和網絡通信的多個模塊檢測結果進行關聯,最終判斷主機是否感染僵尸程序;文獻[20]提出基于信任的網絡群體異常行為發現模型,使用網絡交互拓撲信息建立網絡節點間的信任矩陣,結合直接信任度和相關信任度計算網絡節點間的相似度,通過松弛譜聚類算法中的約束條件,增強類數目的自動識別能力,提高節點聚類準確性;文獻[21]借鑒推薦算法的思想,利用聚類方法得到網絡節點間的流量相似度,利用反病毒工具得到主機的可疑度,將主機可疑度作為推薦模型的節點、流量相似度作為連邊,通過關聯得到網絡中所有主機的綜合可疑度,準確檢測惡意程序和入侵.這些論文關聯分析中攻擊模型建立過程的主觀性過強.
文獻[22-24]介紹攻擊步驟關聯分析,利用專家經驗建立攻擊模型,通過將已檢測到的攻擊與攻擊模型進行匹配來識別攻擊意圖,為下一階段的攻擊檢測提供依據.文獻[22]基于威脅狀態轉移圖挖掘威脅事件的時空關聯關系,獲得當前有效威脅及實時狀態;基于網絡實體價值、威脅嚴重度、威脅成功3個要素,提出多粒度的層次化遞推算法,從威脅狀態、威脅路徑、網絡全局3個層面上量化評估安全威脅,以反映不同粒度的威脅態勢;文獻[23]提出面向內部威脅的安全防護策略概率攻擊圖模型,在該模型中討論內部攻擊的3類不確定性,并引入安全防護措施節點及其對攻擊成功的概率影響;文獻[24]在攻擊圖模型中引入轉移概率表,刻畫單步攻擊檢測結果的不確定性,從觀測事件推導出某步攻擊發生的概率,提出面向內部攻擊意圖推斷的概率攻擊圖模型,基于該模型提出1種推斷內部攻擊意圖的算法以及針對攻擊目標的最大概率攻擊路徑的計算方法.這些方法重在理論研究,實際應用討論不夠.
文獻[25-26]介紹了動態惡意分析技術,一些研究者使用該技術來還原惡意程序的生命周期,以更好地分析和檢測惡意程序,本文也從中借鑒了一些經驗.文獻[25]實現基于裸機的動態惡意分析系統BareCloud來檢測躲避型惡意軟件,并與其他基于仿真和虛擬化的分析系統作比較;文獻[26]提出透明通用的僵尸網絡追蹤系統BotWatcher,利用動態分析和內存取證技術周期性的記錄系統狀態,基于系統狀態的不同使用推理規則重構高級惡意事件,最終推斷出僵尸網絡的生命周期.
本文深度分析了著名的APT惡意軟件Duqu,Flame,Duqu2,總結這些惡意軟件的攻擊步驟,描繪竊取信息的攻擊步驟,根據這個步驟設計對應的檢測模型和檢測方案.
2.1 攻擊步驟
這類竊取信息的攻擊步驟如圖1所示.
攻擊者嘗試從1個組織中竊取機密信息,已經完成偵查和武器化步驟,部署了C&C服務器來隱蔽自身.而目標組織的機器處在1個局域網內,通過網關與外網連接,安全設備齊全.
攻擊步驟分為滲透過程和泄漏過程2個部分.滲透過程如圖1(a)所示,攻擊者通過釣魚、魚叉攻擊、社會工程學、中間人攻擊等方式誘使組織內某一成員下載惡意軟件,利用該成員主機上的漏洞隱蔽執行惡意軟件,在受害者一無所知的情況下控制他的主機并連接到外網的C&C服務器,與攻擊者建立遠程連接,等待進一步指令;C&C服務器會下達的命令包括控制惡意軟件獲取當前網絡拓撲、掃描其他主機漏洞、攻擊并控制其他主機等.

Fig. 1 Attack steps圖1 攻擊步驟
這類攻擊的目標是竊取機密信息,必然存在著信息泄漏的過程.泄漏過程如圖1(b)所示,攻擊者以局域網內1臺被控制主機為本地C&C服務器(服務器1),與外網C&C服務器(服務器2)建立遠程連接等待進一步命令;攻擊步驟中服務器2給服務器1發送信息收集命令,服務器1執行該命令并將該命令轉發到局域網內其他被控主機,其他主機將收集到的信息匯總到服務器1,由服務器1統一發送給服務器2.
2.2 擴展攻擊樹模型
分析2.1節所述的攻擊步驟,本文提出1個對應的擴展攻擊樹模型來檢測入侵.在該擴展攻擊樹中,父節點是子節點的目標,根節點為最終攻擊結果,它的子節點為各個攻擊步驟,攻擊步驟的子節點是每個階段的典型高級惡意事件,葉子節點則是組成高級惡意事件的低級行為.為了適應本文的應用,本文重新對擴展攻擊樹做定義.
定義1. 擴展攻擊樹T{Mark|V,E,S}.擴展攻擊樹可以定義為T{Mark|V,E,S}的1個樹形結構,其中Mark是該攻擊樹的目標信息,V是節點集合,E為邊的集合,S表示達到節點攻擊狀態的可疑性,True表示可疑,False表示正常.如果存在邊e(vi→vj),則節點i是節點j的父節點,并且表示節點j要達到節點i狀態,父節點包括若干個AND節點或者OR節點.
定義2. AND關系.AND關系表示同一AND關系下所有子節點全部完成后才會實現父節點,這樣的節點關系構成AND關系樹.
定義3. OR關系.R節點表示同一OR關系下只要任一子節點實現后父節點就能實現,這樣的節點關系構成OR關系樹.
分析已有攻擊樣本獲得信息泄漏的高級惡意事件集合,本文計劃通過AND與OR關系將檢測到的行為投影到竊取信息的攻擊步驟上,自上而下構建擴展攻擊樹.其攻擊樹的構建過程如算法1.
算法1. 擴展攻擊樹模型構建算法.
輸入:高級惡意事件集合A={A1,A2,…,An};
輸出:擴展攻擊樹T{Mark|V,E,S}.
① 標記根節點的S值為False;
② 標記攻擊階段為根節點的子節點,它們的S值為False;
③ 分別判斷A中每個事件與攻擊階段的關系;
④ WhileA中還存在未遍歷的事件Am
⑤ If存在惡意事件屬于同一攻擊階段而且它們之間屬于OR關系
⑥ 根據定義3標記這些事件為對應攻擊階段的子節點,它們的S值為False;
⑦ Else If存在惡意事件屬于同一攻擊階段而且它們之間屬于AND關系
⑧ 根據定義2標記這些事件為對應攻擊階段的子節點,它們的S值為False;
⑨EndIf
⑩EndWhile
算法1按照定義2和定義3的“AND”和“OR”關系構建擴展攻擊樹,攻擊樹實例如圖2所示:

Fig. 2 Instance of extended attack tree model圖2 擴展攻擊樹模型實例
根節點為最終攻擊結果,子節點為6個攻擊步驟,“AND”關系.攻擊步驟的子節點是高級惡意事件,如魚叉攻擊、網絡掃描等.高級惡意事件由多個低級行為組成,如端口訪問、文件訪問等.高級事件與攻擊步驟之間的關系由專家經驗確定,低級行為與高級事件之間的關系通過推斷規則表現.
本文對注冊表修改行為、可疑的自動網絡通信行為進行持續監控,如果發現可疑則進入檢測階段,檢測對象包括可疑的網絡傳輸、可疑的通信對象、可疑的文件訪問等低級行為.然后將檢測到的低級行為記作序列SA={SA1,SA2,…,SAi},此序列用于跟擴展攻擊樹匹配.
我們設計了1個針對擴展攻擊樹的匹配算法,其思想是:將SA序列在擴展攻擊樹中做遞歸查詢,若查詢到,則將對應的攻擊樹中的節點的S值為True,算法2給出匹配過程.
算法2. 擴展攻擊樹匹配.
輸入:擴展攻擊樹T{Mark|V,E,S}、行為序列SA={SA1,SA2,…,SAi};
輸出:匹配結果result.
① ForSA中的元素SAi
② If存在可疑行為與擴展攻擊樹的葉子節點匹配
③ 設該節點的S值為True;
④ End If
⑤ End For
⑥ While攻擊樹T中存在S值設為True的節點
⑦ If存在AND關系的所有子節點的S值均為True
⑧ 設父節點S值為True,將它們自己的S值置為False;
⑨ElseIf存在OR關系的子節點中有節點的S值為True
⑩ 設父節點S值為True,將它們自己的S值置為False;







算法2遍歷可疑行為序列SA,將每個行為與擴展攻擊樹的葉子節點匹配,如果比配成功,則給該節點S值設為True.接下來對S值設為True的節點進行分析,如果AND關系的所有子節點的S值均為True,或者OR關系的子節點中有節點的S值為True,則設父節點S值為True.如果能得到根節點的S值為True,則認為存在攻擊,報警.
3.1 檢測方案的有限狀態機模型
作為理論基礎,給出本文檢測方案的形式化描述,該方案可以抽象為確定的有限狀態自動機模型,用自動機M=(S,Σ,F,S0,Z)來表示.
狀態轉換如圖3所示.其中S是1個有限狀態集合,S={S0,S1,S2,S3,Z},S0={主機監控},S1={主機檢測},S2={網絡檢測},S3={綜合判斷},Z={攻擊報警};Σ表示在主機和網絡中檢測到的低級事件集合;F表示狀態遷移函數.F={F0,F1,F2,F3,F4},F0={安置后門行為},F1={自動通信行為},F2={主機行為異常},F3={網絡行為異常},F4={存在攻擊事件}.本文在實際應用中以推斷規則的形式來表述遷移函數,推斷規則在3.4節中具體介紹.S0={主機監控}是唯一的初態,Z={攻擊報警}是最終狀態.

Fig. 3 State machine model圖3 有限狀態機模型
3.2 部署方案
根據2.2節所述的攻擊樹模型和3.1節所述的狀態機模型,本文計劃部署3個模塊來檢測攻擊:觸發模塊、檢測模塊、判斷模塊.
1) 觸發模塊A部署于被監控的主機上,負責持續監控注冊表更新和網絡交互情況.觸發模塊包括注冊表監控子模塊和網絡監控子模塊.注冊表監控子模塊在每次開機后自動檢測注冊表修改,發現新增加的開機自啟動項,則記錄進程號pid傳給檢測模塊并觸發檢測過程.網絡監控子模塊監控人與進程的交互和進程與網絡的交互,判斷通信是否由人手動產生.如果不是,記錄通信地址、進程號并傳給檢測模塊并觸發檢測過程.
2) 檢測模塊分為主機檢測子模塊B和網絡檢測子模塊C.主機檢測子模塊部署于被監控的主機上,根據進程號pid檢測主機上的低級行為;網絡檢測子模塊部署于網絡監控主機上,根據通信地址檢測網絡中的低級行為.2個模塊將檢測到的低級行為組合為高級事件,并發給判斷模塊.
3) 判斷模塊D部署于網絡監控主機上,根據收集到的高級事件使用推斷規則和擴展攻擊樹重構竊取信息的攻擊步驟,判斷是否存在攻擊.
本文借鑒文獻[26]的方法使用推理規則重構高級惡意事件,最終推斷出竊取信息的攻擊步驟.主機檢測子模塊和網絡檢測子模塊從執行特征中提取低級行為,根據推斷規則將低級行為組合為高級事件,將結果匯總到判斷模塊,判斷模塊重構竊取信息的攻擊步驟判斷是否存在攻擊.
3.3 低級行為收集
主機端可獲取的低級行為有4種:
1)R[time,entry,pid]:進程pid在時間time修改注冊表、入口entry.
注冊表.惡意軟件修改注冊表來獲得開機自啟動的能力,并且關閉防火墻和其他工具.為了識別修改注冊表開機自啟動的可疑程序,觸發模塊監控注冊表的修改,每次注冊表修改為1次低級行為.
2)F[time,pid,file]:進程pid在時間time訪問文件file.
文件.惡意軟件訪問主機中的文件、竊取信息,安裝新模塊,進一步傳播等.為了識別竊取信息的可疑程序,主機檢測子模塊檢測進程對文件的操作,記錄1次文件訪問為1次低級行為.
3)I[time,pid]:進程pid在時間time存在外設輸入.
外設輸入.惡意軟件通過后臺程序利用網絡與C&C服務器通信,這類通信通常是自動產生的,不是由外設輸入產生的.為了識別自動發包的可疑程序,觸發模塊監控外設輸入,記錄對1個進程的外設輸入為1次低級行為.
4)N[time,pid,srcadd,destadd]:進程pid在時間time創建本地端口port的網絡通信.源地址srcadd由srcip和srcport組成,目的地址destadd由destip和destport組成.
網絡通信.惡意軟件通過后臺程序利用網絡與C&C服務器通信,這類通信通常是自動產生的,不是由外設輸入產生的.為了識別自動發包的可疑程序,觸發模塊監控本機的自動網絡通信,記錄1個進程的1次通信過程為1次低級行為.
網絡端在網絡檢測子模塊啟動后截取流量獲取低級行為,具體情況如下:
數據包檢測獲得的低級行為output——網絡通信輸出數據大小,input——網絡通信輸入數據大小,encryption——通過熵值計算判斷數據包是否加密或壓縮.
通信對象檢測獲得的低級行為DNSsus——特征查詢檢測DNS是否可疑,whitelist——通信白名單(本文以常見的域名和IP建立白名單).
3.4 推斷規則
高級惡意事件表示竊取信息的攻擊步驟中的典型攻擊事件.推斷規則如表1所示,分子是前提,分母為滿足前提做出的聲明.有限狀態機的遷移函數中,F0={安置后門行為}對應推斷規則1——注冊表修改添加開機自啟動,F1={自動通信行為}對應推斷規則3——自動網絡連接,F2={主機行為異常}對應推斷規則9——可疑文件訪問,F3={網絡行為異常}對應推斷規則7——可疑上傳和推斷規則8——可疑下載,F4={存在攻擊事件}對應推斷規則10——數據泄漏.本文根據這些規則構建出竊取信息的攻擊步驟并檢測攻擊.

Table 1 Inference Rules表1 推斷規則表
推斷規則1. 注冊表修改添加開機自啟動:惡意程序運行后會修改注冊表獲得開機自啟動權限.進程pid在時間time對注冊表entry進行了操作,則聲明該進程獲得了持續運行于主機的權限.
推斷規則2. 網絡通信:進程pid在時間time1建立網絡連接,在時間time2結束網絡連接,則聲明該進程進行了1次網絡通信.
推斷規則3. 自動網絡連接:惡意程序通過后臺進程與C&C服務器建立遠程連接,這類進程不存在外設輸入.進程pid在時間time1建立了網絡連接,而且該進程在外設輸入記錄中查詢不到,認為不存在外設輸入,則聲明該進程進行了自動網絡連接.
推斷規則4. 上傳:進程pid進行了1次網絡通信,其下載流量小于上傳流量,則聲明該進程進行了1次數據上傳行為.
推斷規則5. 下載:進程pid進行了1次網絡通信,其下載流量大于上傳流量,則聲明該進程進行了1次數據下載行為.
推斷規則6. 可疑地址:竊取信息攻擊中,可能需要通過DNS查詢來與外網的C&C服務器通信.在存在可疑行為的前提下對通信地址做判斷,如果該域名可疑且通信地址不在IP白名單中,則聲明該通信地址可疑.
推斷規則7. 可疑上傳:為了減小被傳統安全產品檢測到的幾率,惡意通信一般使用隧道通信或加密通信,或者將敏感數據存于圖片中以為偽裝.進程pid進行了1次數據上傳行為,如果判斷這次通信為加密通信且IP地址可疑,則聲明該進程進行了可疑的數據上傳行為.
推斷規則8. 可疑下載:為了減小被傳統安全產品檢測到的幾率,惡意通信一般使用隧道通信或加密通信,或者將敏感數據存于圖片中以為偽裝.進程pid進行了1次數據下載行為,如果判斷這次通信為加密通信且IP地址可疑,則聲明該進程進行了可疑的數據下載行為.
推斷規則9. 可疑文件訪問:進程pid在1個時間段內訪問了數量超過閾值的文件,或訪問了屬于敏感文件列表的文件,則聲明該進程進行了可疑的文件訪問.
推斷規則10. 數據泄漏:進程pid首先進行了可疑的文件訪問,然后進行了可疑的數據上傳行為,則聲明該進程泄漏了數據到可疑的目的地址.
4.1 實驗環境的搭建

Fig. 4 Network configuration圖4 實驗網絡拓撲結構
網絡配置如圖4所示,網絡分為外網區域和內網區域,外網與內網通過防火墻系統邏輯隔離.外網部署1臺Kali Linux攻擊機;內網由1臺Ubuntu 14.04網關、1臺Windows XP工作機和1臺Windows Server服務器組成,以下簡稱為Kali,Ubuntu,XP,Server.XP通過網關訪問外網,也可以訪問Server,Server設置為禁止與外網交互通信.Ubuntu檢測內外網絡之間的通信,本文使用Bro[27]來檢測網絡通信.在Server上建立4個文件夾放置不同格式的文件作為攻擊目標,包括TXT,PDF,JPG,ZIP文件.XP和Server上均存在漏洞MS08-067和MS10-046.部署于XP上和Server上的觸發模塊A1,A2根據推斷規則1和3監控本機內的注冊表修改和自動網絡連接,部署于XP上和Server上的主機檢測子模塊B1和B2根據推斷規則9檢測可疑主機事件,部署于Ubuntu上的網絡檢測子模塊C根據推斷規則4~8檢測可疑網絡事件,部署于Ubuntu上的判斷模塊D根據推斷規則10和擴展攻擊樹模型判斷是否存在攻擊.
4.2 模擬攻擊檢測
模擬攻擊檢測的目標是,在發動1次完整的攻擊的同時,本文的檢測方案可以檢測到攻擊的存在并發出帶有詳細信息的警報.整個攻擊步驟中,觸發模塊持續運行監控系統,檢測模塊和判斷模塊在觸發模塊發送觸發信息后才運行.考慮到信息收集階段與其他階段關聯性不強且多誤報,檢測方案不考慮對信息收集階段可疑事件的檢測,而是以攻擊切入階段的權限獲取和C&C通信階段的自動連接為觸發檢測的監控對象,網絡監控主要監控自動連接的TCP包.
我們根據算法1構建完整的擴展攻擊樹模型,如圖5所示.對著名的APT惡意軟件Duqu,Flame,Duqu2進行分析,從它們的攻擊步驟中提取高級事件作為攻擊步驟的子節點,根據推斷規則關聯低級行為與高級事件的關系,將低級行為作為高級事件的子節點.魚叉攻擊中必然存在對附件的可疑下載,對應推斷規則8;獲取權限的1種方式是修改注冊表,對應推斷推斷規則1;可疑的通信必然是自動的網絡連接,可能有自動的DNS查詢,對應推斷規則3和推斷規則6;自動更新必然存在可疑下載,可能有自動的DNS查詢,對應推斷規則8和推斷規則6;可疑的文件掃描可能是過量的文件訪問,也可能是對敏感數據的非法訪問,對應推斷規則9;加密傳輸事件是對可疑地址的可疑上傳,對應推斷規則6和推斷規則7.

Fig. 5 Complete extended attack tree model圖5 完整擴展攻擊樹模型
在該實驗中,Kali首先攻擊XP,再以XP為跳板攻擊并遠程訪問Server,最終從Server竊取信息并傳回Kali.我們進行了5次實驗,每次攻擊竊取不同類型的信息,持續不等的時間,來驗證檢測方案的可靠性,實驗結果如表2所示.分析實驗結果可知,攻擊時間的長短并不會對檢測造成影響,說明我們的方案可以有效檢測基于時間的規避攻擊.漏報的1次是獲取txt格式的目標,經過分析是因為被竊取目標小于攻擊流量且無加密壓縮,所以網絡檢測子模塊未報告可疑上傳異常導致漏報.在實際攻擊中,攻擊者會嘗試最小化攻擊流量以減少被常規特征檢測安全設備檢測到的概率.在復雜的攻擊后,為規避本方案的檢測而將竊取的信息壓縮到比攻擊流量更少,可以規避本方案,但這樣會明顯降低攻擊的效果,提高攻擊的代價.

Table 2 Experimental Result表2 實驗結果

Fig. 6 Vulnerability exploitation process圖6 漏洞利用過程
以第1次實驗竊取JPG文件為例介紹實驗過程.
1) Kali利用MS10-046漏洞制作1個惡意軟件作為魚叉攻擊的附件發送到XP,在工作機下載惡意軟件自動觸發漏洞,構建后門修改注冊表開機自啟動,通過反向TCP建立與Kali的遠程連接,如圖6所示.
2) 以XP為跳板利用MS08-067漏洞攻擊Server,在溢出成功后可以遠程連接到服務器,構建后門修改注冊表開機自啟動,遍歷機密信息并傳回Kali,如圖7所示.

Fig. 7 Data breach process圖7 竊取信息過程
3) 在攻擊機的指定目錄下,看到竊取的文件,證明攻擊已成功,如圖8所示,攻擊完成.

Fig. 8 Data breach result圖8 竊取信息結果

Fig. 9 Integrated information output圖9 綜合信息輸出
報警情況下判斷模塊D的輸出如圖9所示.根據圖9中“1.AUTORUN”和“2.AUTONETWORK”中有關XP的記錄,A1根據推斷規則1監控到留后門修改注冊表的行為并獲取進程pid:4148,基于該pid,A1根據推斷規則3監控到XP與Kali和XP與Server之間的自動發包行為,隨后觸發B1和C.根據圖9中“1.AUTORUN”和“2.AUTONETWORK”中有關Server的記錄,A2根據推斷規則1監控到攻擊者橫向移動后為留后門在Server中進行注冊表修改的行為并獲取進程pid:2580,基于該pid,A2根據推斷規則3監控到Server與XP之間的自動發包行為,隨后觸發B2.圖9中“3.SUSFA”記錄在Server主機上B2根據推斷規則9和可疑pid:2580檢測到對敏感文件的訪問行為.圖9中“4.CONNECTION”,“5.SUSDEST”,“6.ENCRYPTION”記錄顯示,根據A1獲取的信息如通信IP和端口號,C檢測到XP將自Server獲取的敏感文件轉發到Kali的可疑上傳通信,判斷依據是:根據推斷規則4判斷上傳流量大于下載流量;根據推斷規則6判斷通信地址192.168.21.41不屬于白名單因此可疑;對通信流量進行熵值計算,結果大于閾值,認為通信數據進行了加密或壓縮.圖9中“7.BREACH”是D總結以上信息根據推斷規則10得出的結論,報警認為存在數據泄漏行為,并標明可疑的pid和可疑的目的地址.
4.3 效率和開銷
我們進行了5次實驗,通過不同的端口(443,4444)獲取不同格式(txt,jpg,pdf,zip)的目標,在攻擊的同時靶機一直處于正常使用中,有正常的外設輸入和網絡通信.5次檢測4次成功,漏報的1次是因為目標大小小于攻擊機發往靶機的流量大小,而且無加密壓縮,所以網絡檢測子模塊未報告異常.對正常運行的主機進行多次長時間的誤報測試,均無誤報.
我們在第4次實驗時測量了每個模塊的開銷來驗證系統可靠性,即測量時間在3 h.檢測系統分為觸發、檢測、判斷3個模塊.觸發模塊和主機檢測子模塊部署于被監控的主機上,網絡監控子模塊和判斷模塊部署于網關上,網關屬于專用安全主機,不會影響別的主機的性能,所以主要測量觸發模塊和主機檢測子模塊對被監控主機的影響.
被監控主機一直處于正常運行狀態,有正常的上網操作和瀏覽器使用,我們在關閉和開啟模塊的2種情況下測量了被監控主機CPU和內存的開銷,結果如表3所示,在關閉模塊的情況下,主機CPU開銷平均30%左右;內存開銷平均57%左右.開啟模塊后運行3 h并進行記錄,主機CPU開銷平均仍是30%左右;內存開銷有所增長,平均在62.5%左右.由分析可知,檢測系統對CPU的影響可忽略不計,占用了5.5%左右的內存開銷.

Table 3 Overhead of the Modules in the Host表3 主機上模塊的開銷 %
攻擊者不斷挖掘和使用0day漏洞來制作惡意軟件,配備完整安全防護系統的組織仍有可能遭到APT級惡意軟件的攻擊.減小這類攻擊帶來的損失非常重要.本文深度分析了3個著名的APT級惡意軟件并提出1種新穎的方案來檢測竊取信息的惡意軟件.該方案結合異常檢測與誤用檢測,使用HIDS和NIDS收集主機和網絡的低級行為,根據推斷規則關聯低級行為和高級惡意事件,由檢測到的高級惡意事件構建出竊取信息的攻擊步驟,最終檢測攻擊.同時,本文提出了一系列推斷規則來描述攻擊步驟中可以觀察到的高級惡意事件.我們實現了原型系統并評估,認為本文的方案可以有效檢測到惡意軟件竊取信息的痕跡.
當然,本文中提到的方案也存在一些問題.持續監控鼠標鍵盤的輸入來查找自動發包的可疑進程,開銷略大,同時效果較低,未來需進一步縮小監控范圍.由于實驗環境的限制,本文中的方案只通過實驗室小規模模擬實驗驗證,對于真實復雜環境的適用情況還有待驗證.關聯低級行為與高級事件之間關系的推斷規則和構建高級事件與攻擊步驟之間關系的檢測算法1來自于對過去惡意軟件學習的專家經驗,十分有限.未來計劃嘗試使用機器學習算法來自動的生成推斷規則和檢測算法,提高可用性.
[1]Chen P, Desmet L, Huygens C. A study on advanced persistent threats[C]Proc of IFIP CMS’14. Berlin: Springer, 2014: 63-72
[2]SkyEye. APT OceanLotus (APT-C-00)[EBOL]. (2015-05-29) [2016-06-16]. http:bobao.360.cnnewsdetail1601.html (in Chinese)(天眼實驗室. OceanLotus(海蓮花)APT報告[EBOL]. (2015-05-29) [2016-06-16]. http:bobao.360.cnnewsdetail1601.html)
[3]Bencsáth B, Pék G, Buttyán L, et al. Duqu: Analysis, detection, and lessons learned[C]Proc of ACM EuroSec’12. New York: ACM, 2012: 15-26
[4]CrySyS Lab. Duqu 2.0: A comparison to Duqu v1.0[R]. Budapest: Department of Telecommunications, Budapest University of Technology and Economics, 2015
[5]CrySyS Lab. sKyWIper: A complex malware for targeted attacks v1.05[R]. Budapest: Department of Telecommunications, Budapest University of Technology and Economics, 2012
[6]Mu Xiangkun, Wang Jingsong, Xue Yufeng, et al. Abnormal network traffic detection approach based on alive entropy[J]. Journal on Communications, 2013, 34(Z2): 51-57 (in Chinese)(穆祥昆, 王勁松, 薛羽豐, 等. 基于活躍熵的網絡異常流量檢測方法[J]. 通信學報, 2013, 34(Z2): 51-57)
[7]Tang Chenghua, Liu Pengcheng, Tang Shensheng, et al. Anomaly intrusion behavior detection based on fuzzy clustering and features selection[J]. Journal of Computer Research and Development, 2015, 52(3): 718-728 (in Chinese)(唐成華, 劉鵬程, 湯申生, 等. 基于特征選擇的模糊聚類異常入侵行為檢測[J]. 計算機研究與發展, 2015, 52(3): 718-728)
[8]Zheng Liming, Zou Peng, Jia Yan, et al. How to extract and train the classifier in traffic anomaly detection system[J]. Chinese Journal of Computers, 2012, 35(4): 719-729 (in Chinese)(鄭黎明, 鄒鵬, 賈焰, 等. 網絡流量異常檢測中分類器的提取與訓練方法研究[J]. 計算機學報, 2012, 35(4): 719-729)
[9]Yang Yahui, Huang Haizhen, Shen Qingni, et al. Research on intrusion detection based on incremental GHSOM[J]. Chinese Journal of Computers, 2014, 37(5): 1216-1224 (in Chinese)(楊雅輝, 黃海珍, 沈晴霓, 等. 基于增量式GHSOM 神經網絡模型的入侵檢測研究[J]. 計算機學報, 2014, 37(5): 1216-1224)
[10]Han Xiaoguang, Qu Wu, Yao Xuanxia, et al. Research on malicious code variants detection based on texture fingerprint[J]. Journal on Communications, 2014, 35(8): 125-136 (in Chinese)(韓曉光, 曲武, 姚宣霞, 等. 基于紋理指紋的惡意代碼變種檢測方法研究[J]. 通信學報, 2014, 35(8): 125-136)
[11]Zhu Kenan, Yin Baolin, Mao Yaming, et al. Malware classification approach based on valid window and naive Bayes[J]. Journal on Computer Research and Development, 2014, 51(2): 373-381 (in Chinese)(朱克楠, 尹寶林, 冒亞明, 等. 基于有效窗口和樸素貝葉斯的惡意代碼分類[J]. 計算機研究與發展, 2014, 51(2): 373-381)
[12]Xu Xiaolin, Yun Xiaochun, Zhou Yonglin, et al. Online analytical model of massive malware based on feature clustering[J]. Journal on Communications, 2013, 34(8): 146-153 (in Chinese)(徐小琳, 云曉春, 周勇林, 等. 基于特征聚類的海量惡意代碼自動分析模型[J]. 通信學報, 2013, 34(8): 146-153)
[13]Hutchins E M, Cloppert M J, Amin R M. Intelligence-driven computer network defense informed by analysis of adversary campaigns and intrusion kill chains[J]. Leading Issues in Information Warfare & Security Research, 2011, 1: 80-106
[14]Du Yuejin, Zhai Lidong, Li Yue, et al. Security architecture to deal with APT attacks: Abnormal discovering[J]. Journal of Computer Research and Development, 2014, 51(7): 1633-1645 (in Chinese)(杜躍進, 翟立東, 李躍, 等. 一種應對 APT 攻擊的安全架構: 異常發現[J]. 計算機研究與發展, 2014, 51(7): 1633-1645)
[15]Kim Y H, Park W H. A study on cyber threat prediction based on intrusion detection event for APT attack detection[J]. Multimedia Tools and Applications, 2014, 71(2): 685-698
[16]Fu Yu, Li Hongcheng, Wu Xiaoping, et al. Detecting APT attacks: A survey from the perspective of big data analysis[J]. Journal on Communications, 2015, 36(11): 1-14 (in Chinese)(付鈺, 李洪成, 吳曉平, 等. 基于大數據分析的 APT 攻擊檢測研究綜述[J]. 通信學報, 2015, 36(11): 1-14)
[17]Tian Zhihong, Wang Bailing, Zhang Weizhe, et al. Network intrusion detection model based on context verification[J]. Journal of Computer Research and Development, 2013, 50(3): 498-508 (in Chinese)(田志宏, 王佰玲, 張偉哲, 等. 基于上下文驗證的網絡入侵檢測模型[J]. 計算機研究與發展, 2013, 50(3): 498-508)
[18]Zeng Yuanyuan, Hu Xin, Shin K G. Detection of botnets using combined host-and network-level information[C]Proc of 2010 IEEEIFIP Int Conf on Dependable Systems & Networks (DSN). Piscataway, NJ: IEEE, 2010: 291-300
[19]Shin S, Xu Zhaoyan, Gu Guofei. EFFORT: A new host-network cooperated framework for efficient and effective bot malware detection[J]. Computer Networks, 2013, 57(13): 2628-2642
[20]Li Qiao, He Hui, Fang Binxing, et al. Awareness of the network group anomalous behaviors based on network trust[J]. Chinese Journal of Computers, 2014, 37(1): 1-14 (in Chinese)(李喬, 何慧, 方濱興, 等. 基于信任的網絡群體異常行為發現[J]. 計算機學報, 2014, 37(1): 1-14)
[21]He Yukun, Li Qiang, Ji Yuede, et al. Detecting response-delayed bot by correlating host behavior and network activity[J]. Chinese Journal of Computers, 2014, 37(1): 50-61 (in Chinese)(何毓錕, 李強, 嵇躍德, 等. 一種關聯網絡和主機行為的延遲僵尸檢測方法[J]. 計算機學報, 2014. 37(1): 50-61)
[22]Lu Huiying, Peng Wu, Wang Ruimei, et al. A real-time network threat recognition and assessment method based on association analysis of time and space[J]. Journal of Computer Research and Development, 2014, 51(5): 1039-1049 (in Chinese)(呂慧穎, 彭武, 王瑞梅, 等. 基于時空關聯分析的網絡實時威脅識別與評估[J]. 計算機研究與發展, 2014, 51(5): 1039-1049)
[23]Chen Xiaojun, Shi Jinqiao, Xu Fei, et al. Algorithm of optimal security hardening measures against insider threat[J]. Journal of Computer Research and Development, 2014, 51(7): 1565-1577 (in Chinese)
(陳小軍, 時金橋, 徐菲, 等. 面向內部威脅的最優安全策略算法研究[J]. 計算機研究與發展, 2014, 51(7): 1565-1577)
[24]Chen Xiaojun, Fang Binxing, Tan Qingfeng, et al. Inferring attack intent of malicious insider based on probabilistic attack graph model[J]. Chinese Journal of Computers, 2014, 37(1): 62-72 (in Chinese)(陳小軍, 方濱興, 譚慶豐, 等. 基于概率攻擊圖的內部攻擊意圖推斷算法研究[J]. 計算機學報, 2014, 37(1): 62-72)
[25]Kirat D, Vigna G, Kruegel C. Barecloud: Bare-metal analysis-based evasive malware detection[C]Proc of the 23rd USENIX Security Symp. Berkeley, CA: USENIX Association, 2014: 287-301
[26]Barabosch T, Dombeck A, Yakdan K, et al. BotWatcher-transparent and generic botnet tracking[C]Proc of RAID 2015. Berlin: Springer, 2015: 565-587
[27]Paxson V. Bro: A system for detecting network intruders in real-time[J]. Computer Networks, 1999, 31(23): 2435-2463

Wang Lina, born in 1964. Professor and PhD supervisor in Wuhan University. Senior member of CCF. Her main research interests include network security, multimedia security and cloud computing security.

Tan Cheng, born in 1989. PhD candidate of Wuhan University. Student member of CCF. His main research interests include network security and cloud security (cheng_tan@whu.edu.cn).

Yu Rongwei, born in 1981. Lecturer in Wuhan University. Member of CCF. His main research interests include cloud security and content security (rongwei_yu@163.com)

Yin Zhengguang, born in 1989. Master of Wuhan University. His main research interests include network security and cloud security (547316291@qq.com).
The Malware Detection Based on Data Breach Actions
Wang Lina, Tan Cheng, Yu Rongwei, and Yin Zhengguang
(StateKeyLaboratoryofSoftwareEngineering(WuhanUniversity),Wuhan430072) (KeyLaboratoryofAerospaceInformationSecurityandTrustedComputing(WuhanUniversity),MinistryofEducation,Wuhan430072) (SchoolofComputerScience,WuhanUniversity,Wuhan430072)
The advanced persistent threat (APT) attack is a big challenge towards enterprise and governmental data protection. The use of 0-day exploits is prevalent with malwares capable of APT attacks, and traditional security systems relying on known features can hardly detect them. In order to detect malwares which steal sensitive information, first of all we analyze existing APT malwares and describe the steps of their attacks. Based on the analysis, we propose a malware detection method focusing on data breach actions to the same kind of malwares. Combining anomaly detection with misuse detection, this method enables persistent monitoring, protecting hosts and network with low cost. Also proposed are inference rulesets which describe high-level malicious events observed in attack steps. Once suspicious events are detected, low-level actions from the hosts and the network will be further collected and correlated to high-level malicious events by the inference rules. Eventually we reconstruct the data breach attack procedure to judge the existence of the attacks. Simulation experiment verify the effectiveness of the method.
data breach; malware; attack steps; low-level actions; high-level malicious events; inference rules
2016-06-14;
2016-10-10
國家自然科學基金項目(61373169);國家“八六三”高技術研究發展計劃基金項目(2015AA016004);國家科技支撐計劃基金項目(2014BAH41B00);NSFC-通用技術基礎研究聯合基金項目(U1536204) This work was supported by the National Natural Science Foundation of China (61373169), the National High Technology Research and Development Program of China (863 Program) (2015AA016004), the National Key Technology Research and Development Program of China (2014BAH41B00), and the NSFC-General Technology Basic Research Joint Funds (U1536204).
TP393