廖鐸烽
(廣州市香江中學國際部,廣東 廣州 511340)
近年高級可持續威脅(Advanced Persistent Threat,APT)逐漸引起人們的關注。APT 攻擊也稱為定向攻擊,通常是具有高水平專業知識和豐富資源的組織對特定重要對象開展的持續的網絡攻擊活動,相較于傳統的網絡攻擊模式更加難以防范,造成的危害更加嚴重[1]。
傳統的防御方法,如入侵檢測、防火墻等,主要適用于應對模式固定的網絡攻擊。APT 攻擊往往具有“多步驟”和“低姿態”的特點,在一個很長的時間段內,運用釣魚郵件、系統漏洞、社會工程學等各種手段,繞過邊界防護潛伏在系統中。如何有效地檢測APT 攻擊過程中相關的異常事件仍然是比較困難的問題。
為了應對這種復雜的網絡攻擊手段,本文對APT攻擊原理和防護技術進行研究,提出一種基于網絡攻擊鏈模型和循環神經網絡的檢測方法,在時間和空間上對APT 攻擊鏈條中相關的網絡行為進行關聯,提高對APT 攻擊的識別能力。
國內外學者圍繞APT 檢測已開展了廣泛的研究和實踐,其成果主要集中于入侵檢測技術方面。入侵檢測技術可分為特征檢測和異常檢測,前者使用基于規則庫的入侵檢測系統等安全設備對計算機網絡中的事件進行分析,與規則相匹配的網絡行為則被檢測為攻擊[2-4];后者采用統計機器學習的方法,通過收集正常數據訓練行為模型,當網絡中出現偏離該模型限值的情況時會被認為是網絡攻擊行為[5-6]。從實際應用情況來看,上述研究成果對于改善APT 攻擊的檢測水平起到了重要作用,但是也存在一些問題。一方面,現有的入侵檢測系統缺乏對安全威脅特征代碼庫中尚未簽名的未知威脅的實時有效的安全防護能力[7];另一方面,基于常規機器學習模型的檢測方法,對于時間跨度大、攻擊行為不明顯的APT 攻擊的效果相對有限[8]。
APT 攻擊行為不僅是直接的破壞行為,其攻擊的各階段是混雜交織的,需要引入更細粒度的模型來指導防御[9]。經典網絡攻擊鏈(Cyber Attack Chain,CAC)模型是美國洛克希德-馬丁公司于2011 年提出的從攻擊者角度描述的一種有針對性的分階段攻擊的網絡安全模型。該模型協助安全人員識別潛在攻擊每個階段的可疑活動,如未能在某一步中發現攻擊跡象,也可以在后續階段中找到線索,以期盡早發現并阻止攻擊行為,使防御效果最大化。通過CAC 模型側寫出惡意攻擊的邏輯關系,為網絡安全事件追蹤溯源、關系抽取和攻擊預測提供了先決條件。
如圖1 所示,CAC 模型包含7 個攻擊階段:偵查跟蹤通常通過充分利用社會工程學了解目標系統和網絡信息;武器構建主要是指制作定向攻擊工具,例如帶有惡意代碼的PDF 文件或Office 文件;載荷投遞將輸送攻擊工具到目標系統上,常用的手法包括郵件的附件、網站(掛馬)、U 盤等;攻擊利用是利用目標系統的應用或操作系統漏洞,在目標系統觸發已制作的攻擊工具使其運行;安裝植入與互聯網控制器服務器建立一個命令與控制信道;通信控制是指執行所需要的攻擊行為,例如偷取信息、篡改信息等;最后目標行動階段創建攻擊據點,并持續潛伏擴大攻擊戰果。

圖1 經典攻擊鏈模型
與傳統神經網絡不同,循環神經網絡(Recurrent Neural Network,RNN)內置循環的網絡,允許信息持續存在,從而能夠對輸入時間點前后的事件進行關聯。
神經單元A 接收輸入X 并輸出一個值h,循環允許信息從網絡的一個步驟傳遞到下一個步驟。可以將循環神經網絡視為同一網絡的在不同時刻的復制,每個復制都將消息傳遞給下一個時刻,因此理論上來看,循環神經網絡能夠處理“長期依賴性”問題。
前面所述的經典攻擊鏈模型僅適合建模外部攻擊,不適用于內部威脅[10]。在APT 攻擊中,大量攻擊行為都是在獲得了內部系統權限后進行的,所以需要對經典攻擊鏈模型進行擴展,擴展后的攻擊鏈模型如圖2所示。相對于經典攻擊鏈,擴展CAC 細分了內部行為,在達成目標階段中增加了內部攻擊鏈。內部攻擊鏈是為了獲得對目標系統的訪問,包含內部偵察、目標利用、權限提升、橫向移動和內部目標操縱。

圖2 擴展攻擊鏈模型
在實踐中RNN 模型對于學習“長期依賴”的能力仍然存在不足,并且會有梯度消失的問題存在,因此一種特殊結構的RNN,即長短期記憶網絡(Long-Short Term Memory,LSTM)被提出[11]。LSTM 對RNN 中的神經單元進行了擴展,引入了三個門,即輸入門、遺忘門和輸出門,以及記錄額外的信息的記憶細胞(見圖3)。

圖3 長短期記憶網絡單元
具體來說,令隱藏單元個數為h,給定時間步為t,輸入為Xt,上一時間步隱藏狀態Ht?1,時間步t 的輸入門It、遺忘門Ft和輸出門Ot分別計算如下:

其中的Wxi,Wxf,Wxo和Whi,Whf,Who是對應的權重參數,bi,bf,bo是對應的偏差參數。
結合以上定義,基于擴展攻擊鏈和LSTM 的APT檢測方法的總體框架,具體可以分為以下四個步驟:
1.擴展攻擊鏈映射。將寬度為j 的窗口內的網絡事件序列ei-j,…ei-1,ei輸入至LSTM,與此同時,對事件與擴展攻擊鏈模型進行映射。
2.事件權重更新。根據攻擊鏈映射的結果獲得各個事件ei 的權重wi,并將其更新至“1”已輸入至LSTM模型的事件序列中。
3.事件序列表示學習。使用LSTM 模型來結合不同時刻事件的信息提取事件的變化特征,并進行表示向量的學習,將該窗口內的整個事件序列表示成一維的向量。
4.流數據的異常檢測。使用成熟的數據流上的異常檢測算法RRCF[12]給出異常分數。為了確定異常事件序列,可以設定一個閾值并認為該分數超過閾值的序列存在異常。
現有網絡攻擊防御措施主要側重于檢測固定模式的網絡攻擊行為,對APT 攻擊檢測效果不佳。本文在分析APT 攻擊原理和攻擊特點的基礎上,提出了一種新的APT 檢測方法。在經典網絡攻擊鏈模型基礎上,考慮內部威脅部分,提出了擴展攻擊鏈模型,并結合LSTM 神經網絡模型對網絡行為進行廣泛關聯,為APT攻擊檢測的應用實踐提供了一種新的思路。