劉懿
(中國移動通信集團北京有限公司,北京 100007)
隨著互聯網應用的快速發展,從網絡衍生出來的產品(如網上購物、微信聊天、網上銀行等)越來越多,這些互聯網應用在給人類生活帶來極大便利的同時,也將個人信息泄露和數據安全推到了風口浪尖,不法分子利用網絡存在的漏洞對網絡系統進行破壞,產生了網絡安全事件,如:2014 年,摩根銀行大樓遭受網絡攻擊,致使7 600 萬個人賬戶和700 萬企業賬戶的關鍵信息被泄露;2020 年,丹麥稅收網遭到黑客攻擊,超過120 萬丹麥納稅人詳細信息被惡意軟件意外收集,經調查,這種行為已長達5 年之久;2021 年,一黑客篡改可遠程控制的計算機數據,將佛羅里達州奧德馬爾的一家水處理廠中的氫氧化鈉含量調高到了極其危險水平,差點讓整個城市居民集體中毒。由此可見,隨著網絡攻擊技術不斷變化,互聯網金融網站的安全情況令人擔憂。而攻擊手段的日新月異,傳統的網絡安全防護技術顯得力不從心。面對新的安全的形勢變化,網絡安全防護技術應運而生,很多學者都投入了大量的精力去研究網絡安全防護技術以及相關的防護模型。Xu 等人[1]提出一個基于語義本體和用戶定義規則的情境推理方法,構造物聯網網絡安全態勢感知模型,該模型通過4 個關鍵子域來反映物聯網安全情況,并利用用戶定義規則補償4 個關鍵子域的描述能力,以此提升模型的推理能力;Liu 等人[2]提出一種基于風險評估的NSSA 模型,該模型通過收集漏洞信息并使用相應的風險水平定性地衡量系統的安全狀況,方便管理員監控系統并對系統可能的威脅保持警惕;Jiagen 等人[3]提出一種基于RBF 神經網絡的網絡安全態勢感知方法,該模型利用網絡安全態勢值具有非線性時間序列的特點,使用RBF 神經網絡找出網絡安全態勢值的非線性映射關系;Zuo 等人[4]提出一種基于安全感知的SDN 物聯網網絡安全架構,該架構可以在SDN 的每一層部署不同的網絡安全模塊,并通過整合、分析不同安全模塊的數據以實現提升網絡安全的性能。通過分析現有的網絡防護模型構建可知,大多數學者將網絡防護過程進行了多層次多角度的分析,很少利用知識發現的角度將網絡攻擊行為生成相應的圖或者算法,并用于解決現有模糊識別網絡防護的問題。因此,本文提出一種基于頻繁模式挖掘的網絡安全防護方法,該方法采用頻繁模式挖掘報警的規則進而獲得高層次的攻擊語義和攻擊證據;然后,采用DS 方法融合主機攻擊的多條證據并量化網絡主機的威脅態勢,從而很好地刻畫主機的安全態勢,實現網絡安全態勢的有效評估。
網絡安全防護技術[5-7]通過采集網絡空間中各種設備的報警數據,并對這些報警數據進行處理、分析和理解,從而對當前網絡安全狀況進行評估,使得網絡安全管理人員能夠更加全面了解網絡安全狀態。
(1)態勢要素提取
態勢要素提取包含網絡安全數據采集和網絡安全數據預處理2 個步驟。
網絡安全數據采集包含2 類采集方式,一類是主動式采集,包括通過網絡管理協議、Telnet、文件傳輸協議、代理、漏洞和端口掃描、“蜜罐”等方式對數據進行主動式采集;另一類是被動式采集,包括系統日志、NetFlow、Web Service 等方式進行數據采集。
網絡數據預處理是指對網絡采集的數據進行數據缺失處理、噪音數據處理、數據不一致處理、數據融合處理、數據關聯處理等。
(2)網絡安全態勢理解
在對態勢要素提取的基礎上,對態勢要素進行數據挖掘,提取網絡安全語義信息,從整體上評估網絡安全態勢值。因此,網絡安全態勢理解是以數據融合為核心,將各方面的安全事件進行融合和挖掘,獲取高層次的語義信息,從而對網絡安全進行綜合評估,輔助網絡管理員進行決策。
(3)網絡安全態勢預測
網絡安全態勢預測作為網絡安全態勢感知不可或缺的部分,是實現網絡安全事件預警、預報的有效手段,只有對網絡未來一段事件的發展趨勢進行預測才能從根本上實現網絡防護。為了有效實現網絡安全防護,需要采用數據挖掘的算法對攻擊意圖和入侵進行行為預測。然而,網絡攻擊行為具有很大的不確定性,如何有效地挖掘網絡攻擊意圖,利用知識發現將網絡攻擊行為生成相應的網絡攻擊圖,是解決現有網絡安全態勢有效預警的關鍵問題。
(1)貝葉斯網絡
貝葉斯網絡作為一種模擬推理過程中因果關系的不確定處理模型,是一個有向無環圖;其由變量的結點和連接這些結點有向邊構成,是一種概率圖模型[8]。貝葉斯網絡的數學表達:G=。其中I表示所有結點的集合,E表示有向邊的集合。如果兩個結點之間由箭頭相連,那么箭尾相連的結點是“父結點”,箭頭相連的結點是“子結點”,這兩個結點將產生一個條件概率值。貝葉斯使用條件概率值來表示各個結點依賴關系的強弱,通過將先驗的信息和樣本知識結合來促進先驗知識和數據集成,結點之間產生的條件概率值一旦更新,那么整個貝葉斯網絡中的知識就自動更新。在網絡安全態勢預測過程中,由于網絡節點之間依賴拓撲關系很難確定,輸入變量之間的相關性一旦產生較大的偏差,其結果會對網絡安全態勢預測產生很大的影響;另外,貝葉斯網絡當參數過多時會造成計算代價非常大,因此,基于貝葉斯網絡的網絡安全態勢預測僅適用于網絡規模較小的場景。
(2)支持向量機
支持向量機[9-10]以間隔最大化為學習策略,在特征空間中尋找間隔最大的線性分類器,并最終轉化為一個凸二次規劃問題。為了降低支持向量機在高維或無線維空間中構造超平面確定分類邊界的計算復雜度,研究者采用核函數來實現樣本的線性劃分。核函數的核心是使用一個非線性映射將原始樣本變換到另一個特征空間中,在這個空間中,樣本變得線性可分。假設一個二維空間中,有數據集D=(x1,y1),(x2,y2),…(xn,yn),其中y∈{-1,1}。支持向量機的目標是使用一個合適的超平面f(x)=wTx+b將數據分開,其中w為法向量,b為位移。超平面以虛線為邊界,兩條虛線間的距離稱為“間隔”。支持向量機訓練樣本的示意圖如圖1 所示。

圖1 支持向量機訓練樣本示意圖
(3)BP 神經網絡
BP 神經網絡[11-12]作為一種按誤差逆傳播算法訓練的多層前饋網絡,其依據信號的前向傳播和誤差的反向傳播來計算網絡神經元連接之間的參數,最終實現任務的分類。BP神經網絡的過程主要分為兩個階段,第一階段是信號的前向傳播,從輸入層經過隱含層,最后到達輸出層;第二階段是誤差的反向傳播,從輸出層到隱含層,最后到輸入層,依次調節隱含層到輸出層的權重和偏置,輸入層到隱含層的權重和偏置。BP 神經網絡的示意圖如圖2 所示:

圖2 BP神經網絡訓練樣本示意圖
網絡攻擊是一種系統行為,不是依靠分析一系列的報警事件的相互關系就能準確判斷該行為是正常的行為還是異常的行為,而是需要分析各種報警事件之間的邏輯關系,才能將攻擊者的一系列相關的步驟進行有效梳理。如今,隨著網絡規模的不斷發展,如何從海量的報警數據中獲得隱藏在其中的網絡攻擊步驟,是網絡安全態勢感知的一個十分重要的課題。為此,本文提出一種基于頻繁模式的網絡安全防護方法,通過對報警數據進行頻繁多步攻擊序列挖掘,對單個攻擊事件(信息探測、漏洞掃描、漏洞利用、權限提升、發動攻擊、留下后門)之間的邏輯關系進行關聯,挖掘其中的頻繁項集,有助于發現因果關系不明確的多步攻擊模式,能夠更好地對攻擊行為進行識別。
各類安全檢測設備在檢測網絡攻擊行為時會產生大量的報警日志,而這些報警日志很有可能是針對同一個攻擊行為產生的,因此,需要對大量的冗余報警信息進行預處理,避免現有的報警數據對后期的攻擊行為分析和處理帶來巨大的計算量。因此,需要對相似度較高的報警日志進行融合處理,通過把相似度較高的報警日志融合到同一個類別,將同一個類別的報警進行處理,并生成網絡攻擊事件。
首先,需要對報警數據進行數據提取,本文參考文獻[13] 對報警數據的提取格式,將報警數據格式定義為(Id,Src_ip,Dst_ip,Src_port,Dst_port,Attack_type,StartTime,EndTime,Protocol),具體如表1 所示。

表1 報警數據格式
其次,基于多個報警數據,需要對各個屬性進行相似度衡量,結合各個屬性的相似度進行加權平均,得到每一條報警數據與基報警之間的相似度。本文將每一個報警數據轉化成向量,通過計算兩個向量的夾角的余弦值來衡量向量之間的相似度值。

然后,按照屬性的重要程度對各個屬性賦予權重,采用加權平均方法計算每一條報警數據與基報警數據之間的相似度。
最后,結合相似度閾值判斷每一條報警數據是否能夠與基報警數據進行融合,如果每一條報警數據與基報警數據的相似度大于設定的閾值(閾值在0.5~1,按照實際的需求設置,一般設在0.8 以上),那么則將其納入基報警數據中,否則,將其作為一條新的基報警數據,如此不斷循環。
在對報警數據進行融合之后,將會產生多條報警基數 據(Id,Src_ip,Dst_ip,Src_port,Dst_port,Attack_type,StartTime,EndTime,Protocol),然后將這些數據按照時間進行排序組成報警事務數據庫,采用FP-樹全局頻繁項集對攻擊系列進行挖掘,挖掘多步攻擊模式。具體步驟如下。
相比Apriori 算法挖掘頻繁項集,FP-樹能夠壓縮所有事務記錄的關聯項集,并且以其獨特的結構提供一種方便深度優先挖掘最大頻繁項集的方法,在深度優先遍歷搜索空間樹時建立FP-樹,對于每個結點,保存該結點到根結點搜索路徑上的每一個結點對應的FP 子樹,FP子樹表示與其相關結點挖掘有關的頻繁信息,在當前結點上,通過在相應項集之中添加對應的FP 子樹頭表中的某個項,來生成搜索空間中的子結點。基于FP-樹全局頻繁項集的多步攻擊模式挖掘的步驟如下:
首先,采用滑動窗口法產生候選攻擊序列集。由于報警數據按照時間排序而成的,因此,為了更有效挖掘攻擊序列,需要采用滑動窗口的方法來劃分攻擊數據的時間序列。窗口每滑動一次就會產生一個序列s,直到窗口滑動到指定時間段的攻擊數據時間序列的最后一個數據為止。滑動窗口產生的攻擊序列集為Alert_seg=(s1,s2,…,sn)。
然后,采用FP-樹挖掘頻繁攻擊序列集,篩選大于最小支持度的頻繁項集。
最后,針對上一步挖掘出來的所有頻繁攻擊序列集,對頻繁攻擊序列進行剪枝,剪去頻繁攻擊序列集中的非頻繁項集,篩選出最大頻繁攻擊序列。基于FP-樹的多步攻擊模式挖掘的流程圖如圖3 所示。

圖3 基于FP-樹全局頻繁項集的多步攻擊模式挖掘
基于FP-樹得到多步攻擊序列,每一條Lk項攻擊序列其實或多或少解揭示了每一個攻擊行為發生的成功率與對主機的威脅值,從而計算出每一條Lk項攻擊序列的初始信任度;在此基礎上,利用DS 方法對Lk項攻擊序列進行合成,從而評估Lk項攻擊序列對主機的威脅態勢值;最后,根據每個網絡中每個主機的重要程度,計算整個網絡的威脅態勢值。
根據漏洞評價系統CVSS 中Access Complexity 去衡量信息探測、漏洞掃描、漏洞利用、留下后門、權限提升、發動攻擊6 個攻擊的成功率,攻擊成功率如下:

其中,SAi表示第i個時間周期Lk項攻擊序列的成功率,saij表示第i個時間周期Lk項攻擊序列第j項攻擊的成功率。隨著攻擊步數的增多,攻擊者對網絡發起多步攻擊后,攻擊行為對主機的攻擊成功率越高。多步攻擊對主機的威脅如下:

其中,TAi表示第i個時間周期Lk項攻擊序列的威脅值,Ci表示第i個時間周期Lk項攻擊序列的主機資產機密性損失;Ii表示第i個時間周期Lk項攻擊序列的主機完整性損失;Ai表示第i個時間周期Lk項攻擊序列的主機可用性損失。α、β、γ表示主機機密性、完整性、可用性的權重,α+β+γ=1。
在獲取第i個時間周期Lk項攻擊序列成功率和威脅值得基礎上,計算多步攻擊的初始信任度:

基于DS 理論,可對不同時間周期(比如將一周分為7 個周期,每1 天作為一個周期)的攻擊序列進行合成,采用M(D) 來衡量主機的風險情況,其公式表示為:

結合主機的重要性,整個網絡的安全態勢可以表示為:

其中,DW為網絡風險值,wi為不同設備對網絡安全的重要性。
本文采用的數據集是DARPA2000 數據集中的LLDoS1.0 數據集,該數據集包含104 萬個數據包,它描述新手攻擊者運行分布式DDOS 拒絕攻擊服務攻擊的過程:攻擊者采用掃描的方式獲取活動的主機列表,并對主機進行端口掃描,試圖找出主機存在的漏洞;然后,通過留下后門等待權限提升,待權限提升后對主機漏洞進行攻擊,采用遠程登錄的方式對主機進行多次操作后入侵網絡系統;最后,將DDOS 安裝到主機上,通過啟動軟件對目標主機發動攻擊。基于上述的攻擊順序,CVSS 相關定義[14],結合單步攻擊利用漏洞復雜度為攻擊者分配相應的訪問復雜度,并基于訪問復雜度作為單步攻擊的成功率,單步攻擊的成功率分配如表2 所示:

表2 單步攻擊成功率
表2 的結果是基于第2.3 節中的公式(2) 計算信息探測、漏洞掃描、漏洞利用、留下后門、權限提升、發動攻擊6 個攻擊的成功率。
基于表2 單步攻擊成功率,結合歷史數據統計值,計算單步攻擊對主機的威脅值如表3 所示:

表3 單步攻擊對主機的威脅值
在歷史數據統計的基礎上,結合專家經驗,主機機密性、完整性、可用性的權重如表4 所示:

表4 主機機密性、完整性、可用性的權重值
在獲取單步攻擊對主機的威脅值和機密性、完整性、可用性的權重值后,采用DS 理論結合公式(3)—公式(5)計算不同時間周期的攻擊序列進行合成,計算不同時間周期主機的風險。
最后,專家通過網絡拓撲分析網絡設備的重要性,對不同設備的重要性進行賦值,并利用公式(6) 計算整個網絡的安全態勢。網絡中不同設備對網絡安全影響的重要性如表5 所示:

表5 不同設備對網絡安全影響重要性
將數據劃分固定周期(按照60 分鐘作為一個周期計算),采用FP-樹挖掘某一個主機在不同周期最大頻繁多步攻擊序列,得到10 個周期的網絡安全態勢值,如表6 所示:

表6 10個周期多步攻擊序列
基于公式(2)—公式(6),通過合成不同周期的多步攻擊序列的網絡安全,可以計算每一個周期的某一個網絡風險值,如圖4 所示:

圖4 某主機隨著時間推進的網絡風險值
由圖4 可知,某主機在不同階段的網絡風險值隨著時間推進,風險值越來越大。在開始階段,攻擊者采用信息探測、漏洞掃描等方式獲取安全信息,此時并不會對主機造成很大的威脅性,此時網絡的安全風險在0.15 左右;一旦攻擊者探測到漏洞后,將會查找哪些主機存在漏洞,并利用存在漏洞的主機進行攻擊,此時,網絡的風險呈上升趨勢,達到0.20;隨著時間推移,攻擊者基于主機現有的漏洞采用權限提升、滲透性攻擊等手段登錄到主機內部,獲取用戶權限,此時,主機的風險逐漸增高,增至0.44;一旦攻擊者獲得主機權限后,嘗試獲得管理者權限,一旦獲得權限后,將會采用遠程攻擊的手段,試圖遠程登錄目標主機,網絡風險進一步增大,達到0.85;最后主機在目標主機上安裝DDoS 攻擊程序,并發動網絡流量攻擊,此時,網絡將會出現癱瘓情況,網絡風險值達到0.93。
而在上一小節中對DARPA2000 數據集中的LLDoS1.0 數據集的介紹可知,該數據集的攻擊過程是攻擊者采用掃描的方式獲取活動的主機列表—對主機進行端口掃描—找出主機存在的漏洞—留下后門等待權限提升—遠程登錄的方式對主機進行多次操作—DDOS 安裝到目標主機上并對目標主機發動攻擊。由此可知,本文采用的基于頻繁模式挖掘的網絡安全態勢變化情況與DARPA2000 數據集的攻擊過程基本吻合,由此可知,本文提出的網絡安全防護方法具有合理性。
本文針對多源安全檢測設備產生的誤報、漏報進而無法應對變化多樣的網絡攻擊手段的問題,在采用FP-樹挖掘多步攻擊序列的基礎上,使用DS 方法來合成單個主機的風險值,最后基于每一個主機在網絡中的影響程度來計算整個網絡安全風險值。實驗表明,本文提出的方法能夠較為準確地對網絡安全態勢進行有效的評估,具有一定的擴展性。