,,
(浙江工業大學 信息工程學院,杭州 310023)
隨著工業化,信息化的發展與深入,新一代的高級持續性威脅(advanced persistent threat, APT)已成為當今工業控制系統安全的首要威脅[1]。據美國國土安全部下屬的工業控制系統網絡應急響應小組(ICS-CERT)發布的報告披露,2014年9月~2015年2月期間共發生了245起網絡安全事件,其中超過半數屬于APT攻擊,并且對重要能源工業,化工,核工業等均造成了重大的危害[2-3]。盡管企業在網絡安全防護領域的能力有所提高,傳統的基于模式匹配的入侵檢測系統已經能夠檢測出大部分的網絡攻擊,如分布式拒絕服務(Distributed Denial of Service, DDOS),蠕蟲病毒,已知的木馬病毒等,但是卻無法有效檢測出攻擊手段高明,持續時間長久,隱蔽性極高的APT攻擊,因為APT攻擊者通常利用零日漏洞,并使用標準協議和加密通信(如HTTPS)來逃避檢測[4-5]。針對未知APT攻擊的防范,全球一些安全公司在對APT攻擊展開持續跟蹤與分析后的報告[6-7]中指出,雖然無法預知新變體的文件特征,但是APT攻擊中惡意軟件在竊密階段與C&C服務器的通信模式卻是不變的,因此分析惡意軟件與控制命令(Control and Command, C&C)服務器建立通信時產生的深度流特性是APT攻擊檢測一個重大的突破口。戴震,程光等人根據安全公司對已有APT活動通信特征的描述,將全球安全公司APT活動報告中出現的特征進行提取并存入特征庫,并提出一種雙層特征匹配的方法對網絡報文進行分析[8]。該方法對已有的APT攻擊檢測具有較高的檢測率,但是利用傳統特征匹配的方法缺乏對未知攻擊的檢測能力。Sana Siddiqui等人分析APT攻擊時惡意軟件與C&C服務器產生的TCP流特征,提出一種利用分形維數并使用機器學習思想的APT攻擊檢測方法[9],該方法能較為有效地檢測出APT攻擊,但是提取的特征只有單個TCP會話的數據包總數以及TCP會話的持續時間,兩類特征并不能很好的區分正常流量與異常流量。孫易安等人認為傳統以單純隔離為手段的工業防護系統已經無法檢測出新型APT攻擊,提出一種以縱深防御為手段的“4+1”安全防護模型,對工業控制系統進行全網防護,該模型只是提出一種可行的框架[10],但是并未對具體的檢測模塊進行相應的分析論證。MircoMarchetti等人利用大數據方法以天為檢測時間窗口提取某大型企業的主機流量特征,從特征向量與特征中心點的歐式空間測度與向量時間變化測度對主機流量行為進行評分,最后輸出系列可疑主機名單用于人工分析判別[11]。然而目前針對的APT攻擊流量異常檢測方法大多基于骨干網流量異常分析或者基于應用層流量異常分析[12-14]的方法,而這些基于粗粒度檢測方法很難檢測出擅長隱匿潛伏的APT攻擊,并且實時性不足,容易在攻擊被發現前就造成巨大的危害。
為此,設計了一種基于深度流特性的APT攻擊檢測系統,提取最能反映APT可疑通信行為的深度流特征,利用基于多特征空間的加權組合SVM分類器對APT可疑行為進行判別。實驗表明,本文提取的可疑APT攻擊行為的深度流特征對檢測APT攻擊具有良好的檢測效果,而利用基于多特征空間的組合SVM分類器方法能進一步提高檢測精度并且降低誤報率,對工控網絡安全防護具有較高的借鑒價值。
隨著工業控制系統的“兩化融合”的逐步推進,原本處于隔離狀態的工業控制系統與管理系統可以直接通信,甚至能直接連入互聯網。使得工業控制系統也面臨了來自互聯網的威脅。而工控系統管理網絡通常會是APT攻擊者攻擊的首要目標。為此,本文設計了一套應用于工控網絡環境下的深度流檢測軟件系統,針對工控網絡中的管理網絡層的深度流數據進行異常檢測。深度流檢測技術應用在工控網絡環境下APT攻擊檢測中即是以流為檢測單位,提取APT竊密通信產生的異于正常通信行為的流的特征,并利用機器學習方法判別流是否異常。由于基于深度流的APT攻擊檢測方法不對應用層數據深入分析,只對流特征數據進行深入挖掘與分析,因而即使對利用加密隧道通信的隱匿APT攻擊也具備良好的檢測性能。基于深度流檢測模型框架分為數據采集模塊,數據預處理模塊,檢測模塊和報警模塊4個部分。系統總體架構如圖1所示。

圖1 系統總體架構示意圖
1)數據采集模塊:系統的數據采集模塊部署在工控網絡系統的脆弱節點與敏感節點處,在linux系統環境下利用Libpcap函數庫實現對數據包的采集,通過BPF(BSD packet filter)算法進行數據包過濾,由于本文只分析基于TCP流的通信特征,并以TCP流數據作為特征提取的基礎數據,因而需要對其它協議的數據包進行丟棄。
2)數據預處理模塊:對于采集到的數據包需要將其暫時存儲到內存中,為了節省內存空間,只提取數據包部分信息存儲以作為下一步TCP流重組的元數據,元數據記錄信息包括數據包采集時間戳,源目IP,源目端口,數據包長度,SYN位數值, FIN位數值。將采集到的數據包進行會話還原,消除因網絡條件造成的亂序,重傳,延遲等異常對判別造成干擾,并從非結構化的數據流中抽取結構化的元數據信息。進一步,采用TCP流重組算法提取TCP會話流。
3)檢測模塊:從會話流元數據中通過簡單組合計算等獲取所需的檢測特征并向量化,將檢測向量輸入到組合SVM檢測模型中判定是否為異常會話流,檢測模塊是本文研究的關鍵技術與方法,因此將在下一節作詳述。
4)告警模塊:當檢測模塊的輸出結果大于給定閾值時,記錄異常的時間戳,源目IP,源目端口信息,并向網絡管理員發出告警。
在一個深度流檢測系統中,特征選取往往決定檢測模型性能的好壞,本文對APT惡意軟件與工控網絡C&C服務器通信特征進行深入分析,提取最具代表性的7維特征。其中APT攻擊流量樣本數據來自于Contagio malware database[15],正常流量數據則是利用浙大中控的WebField JX-300XP工業控制系統搭建實驗平臺,采集管理用戶與外界聯網的流量數據。
2.1.1 間隔時間特征
大多數正常TCP通信模式是一個簡單的客戶端請求資源并得到服務器端響應的過程,工控環境中數據包的傳輸時間間隔往往比較穩定,并且由于服務器的性能較高,處理客戶端請求的速度往往很快,所以時間間隔也比較小。而APT攻擊則是一個交互的通信過程,攻擊者對惡意軟件發出指令得到響應后可能還需要一定的思考時間發送下一個指令,所以時間間隔序列的平穩性更低,并且被控主機作為服務器端完成攻擊者的指令任務,其處理能力肯定不如服務器,因此數據包時間間隔較大。因此選取一條TCP流的平均間隔時間TaveΔ,最大間隔時間TmaxΔ,間隔時間序列的標準差σTΔ作為該項檢測特征。對數據集中APT與正常通信產生的TCP流間隔時間特征進行統計分析,統計結果如表1所示,APT攻擊的間隔時間相對較大并且時間間隔序列標準差也更高。

表1 間隔時間特征比較
2.1.2 數據包特征
惡意軟件與C&C服務器通信時內網工控主機會接收到大量來自服務器端的小數據包,這些小數據包往往攻擊者的指令數據,因此數據包的長度往往較短,而正常通信情況內網主機接收的下載數據包則為服務器對主機請求的響應,通常采用大數據包傳輸,因而數據包長度總體偏大。根據經驗,定義數據包字節長度小于100 byte的數據包為小數據包。
提取下載數據包平均長度Lave以及下載小數據包數與下載數據包總數之比Fsp作為待檢測檢測特征。
(1)
(2)
其中:ltotal表示下載數據包總字節數。Nspdown代表下載小數據包總數,Npdown代表下載數據包總數。

圖2 數據包特征分布
數據包特征的實驗分析結果如圖2(a),圖2(b)所示,我們發現APT攻擊產生的下載數據包平均長度Lave大多分布在150 byte以內,下載小數據包數占總下載數據包總數之比Fsp大多分布在0.6以上,而正常通信數據中Lave則大多分布在200 byte以上,而Fsp值則大都分布在0.6以內。
2.1.3 上下行流量比特征
正常情況下,工控主機向外網服務器發出資源請求,資源請求的數據包一般都很小,服務器響應該請求并發送相應內容,此時服務器傳輸的數據包一般較大。因此,正常通信情況下上行流量會明顯小于下行流量。而受攻擊的工控主機與C&C服務器通信時的情況正好完全相反,外網C&C服務器作為控制端向被控主機發送指令,工控主機返回指令結果,并且回傳相應的數據信息這就導致了存在APT攻擊行為的TCP流的上行流量常常會大于上行流量。提取一條TCP流中上傳數據包與下載數據包數量之比Fp與上傳數據包字節長與下載數據包字節長度之比Fl作為待檢測的特征向量。
(3)
其中:Npup代表上傳數據包總數,Npdown代表下載數據包總數。
(4)
其中:Nlup代表上傳數據包字節數總長,Nldown代表下載數據包字節數總長。

圖3 上下行流量比特征分布
上下行流量比特征的實驗分析結果如圖3 (a),圖3(b)所示,APT攻擊樣本的上下行流量比特征分布區間Fl與Fp大多大于1,而正常樣本此類特征的值分布為Fp大都分布在0.5~1之間,而Fl大多分布在0~0.6之間。
構建由上述7種特征組成的特征表,如表2所示。

表2 特征表

p=p1S1+p2S2+p3S3
(5)

(p1>δ)∩(p2>δ)∩(p2>δ)∩(p>τ)
(6)
正是由于輸入數據的海量性,并且針對APT攻擊的防范,流量檢測只是其中的一個關鍵環節,因而更希望檢測分類結果趨向于正常,以減少虛警率。因此,取δ=0.4,τ=0.6。這樣設定的意義在于δ是每個分類器的否決閾值,當三個基分類器中的任意一個的得分小于設定閾值時,都可以將直接將樣本歸于正常樣本,而τ則表示最終的投票得分輸出的判定閾值,因此適當提高閾值則能夠降低誤報率。檢測模型如圖4所示,將提取到的特劃分為3個特征子空間模塊,輸入到不同以不同特征集訓練的SVM基分類器中,每個SVM基分類器輸出一個APT攻擊預測值,將這些預測值輸入當決策器中,如果滿足公式(6)的判別條件,則認為該樣本數據為可疑攻擊數據,否則為正常通信會話流數據。

圖4 組合分類器檢測模型
本文的實驗環境包括操作系統64位Ubuntu16.04,處理器英特爾酷睿i5 2467M,4核8線程,內存32G,硬盤大小1TB,使用Libcap庫對離線流量數據進行處理,機器學習模塊使用LIBSVM庫。實驗數據主要來自于兩方面,APT攻擊數據樣本來自于Contagio malware database[15],正常流量數據則是采集浙大中控的WebField JX-300XP工業控制系統管理用戶與外界聯網的流量數據。將APT攻擊數據注入到背景流量當中的融合流量數據輸入到檢測系統中,經過數據包采集與預處理,提取出會話流特征,并輸入到組合分類器檢測模型進行異常會話流檢測。
為了準確評價檢測模型的性能,引入準確率,精確率,召回率(True Positive Rate, TPR),誤報率(False Negative Rate, FPR),F值(F-measure),曲線面積(Area Under Curve, AUC) 6個評價指標。其中,準確率表示所有預測正確的樣本數目占樣本總數目的比例,精確率表示預測為APT攻擊數據的分類正確率,召回率表示正確預測APT攻擊的樣本數目占所有APT攻擊樣本數目的比例,誤報率正常通信數據被預測為APT攻擊數據占正常樣本數目的比例,F-measure與AUC用于評價分類器ROC曲線,F-measure是精確率與召回率的加權調和平均,AUC表示ROC曲線下面的面積。
將本文的基于并聯SVM組合分類器檢測模型檢測結果與基于單一特征集的SVM單分類器檢測模型檢測結果進行比較,實驗結果如表3所示。

表3 不同SVM檢測模型效果
由表3可知,選用本文所述的特征集訓練的SVM1分類器的性能比選用NSL-KDD特征集訓練出的分類器精確率更高而誤報率更低,說明本文選取的特征對APT攻擊描述更加具有代表性,而SVM2與SVM3的召回率分別為78.1%與77.2%誤報率為9.1%與8.7%,說明SVM2與SVM3選用的特征空間也能較為有效地描述APT攻擊特性。準確率比召回率高10%左右,這是因為制定的決策準則適度提高了的判定攻擊閾值,因此正常通信樣本被誤分數目減少,誤報率顯得更低,而正常通信樣本的數目遠多于APT攻擊樣本數目,因而準確率比召回率更高。通過對比本文組合SVM分類器與其余分類器的實驗結果,我們發現本文所述組合分類器方法在大多數時候的性能都優于SVM1分類器,組合分類器的準確率召回率更高,而誤報率更低。這是因為不同特征描述的單一分類器誤分集合并不完全重疊,因此不同特征訓練得到分類器往往擁有互補信息,本文組合分類器的檢測模型正是綜合利用這些互補信息而提高了分類器的性能。

圖5 組合SVM與單一分類器ROC曲線對比圖
各SVM分類器檢測效果ROC曲線圖如圖5所示,ROC曲線圖的檢測閾值為決策準則中的投票判定閾值。圖4中組合SVM分類器的F-measure值以及AUC值在絕大多數時候均是所有分類器里面最高的,說明組合SVM分類器的檢測性能最優。而SVM1與組合SVM分類器的AUC值都達到90%以上,說明二者的性能都較為不錯。
APT攻擊是當今工業控制系統安全的首要威脅,針對傳統基于模式匹配的入侵檢測系統無法有效檢測新型APT攻擊,設計了一種基于深度流特性的APT攻擊檢測系統,在工控網絡脆弱節點與敏感節點部署流量采集模塊,將采集到的數據經過預處理后輸入組合SVM分類檢測模型進行異常會話流判別,實驗結果表明,基于深度流特性的APT攻擊檢測方法具有較高的準確率,同時,基于投票法的組合分類器算法較傳統單一分類器檢測精度更高,誤報率更低,具有良好的實用價值。然而,APT攻擊是一系列極為復雜的攻擊過程的總和,僅僅根據異常會話流無法斷定存在攻擊,在今后的研究中,還應對可疑郵件,可疑HTTP傳輸等作進一步深入研究,關聯APT攻擊各個階段的異常行為事件,準確快速地發現威脅所在,降低工業控制系統受害的風險與損失。