王建華,陳永樂,張壯壯,連曉偉,陳俊杰
(太原理工大學(xué) 信息與計算機(jī)學(xué)院,太原 030024)
隨著工業(yè)互聯(lián)網(wǎng)技術(shù)的推廣普及,工業(yè)控制系統(tǒng)(Industrial Control System,ICS)安全為國家安全和社會經(jīng)濟(jì)發(fā)展提供重要保障。然而,網(wǎng)絡(luò)環(huán)境下的不安全因素對ICS構(gòu)成極大威脅,2010年的“震網(wǎng)病毒”事件以及2015年的“波蘭航空公司黑客攻擊”事件等,充分顯示出ICS遭遇攻擊后的嚴(yán)重危害性。因此,如何保障ICS安全是當(dāng)今網(wǎng)絡(luò)安全領(lǐng)域廣泛關(guān)注的問題。攻擊者溯源能夠為ICS安全提供主動防護(hù),蜜罐技術(shù)是實現(xiàn)攻擊者溯源追蹤的手段之一[1-2],通過蜜罐技術(shù)收集攻擊者信息,分析攻擊者的攻擊行為、攻擊特征等,能夠?qū)た鼐W(wǎng)絡(luò)的組織和安全態(tài)勢進(jìn)行更準(zhǔn)確的分析。目前,IP溯源技術(shù)是攻擊者溯源的主要手段,但是,IP溯源需要對路由設(shè)備進(jìn)行更改,存在資源開銷大、識別精度低以及有效驗證難等問題。此外,現(xiàn)有的攻擊手段多數(shù)采用攻擊代理來實施攻擊行為[3],提高了IP溯源的難度。事實上,目前多數(shù)工控系統(tǒng)攻擊是有組織、有規(guī)模的攻擊行為,攻擊者并非單一個體,對惡意組織進(jìn)行全面溯源更有實際價值。然而,IP溯源往往針對單個IP進(jìn)行溯源,對于惡意IP所屬組織的識別效率較低。
本文借鑒惡意代碼常用的家族同源判斷分析方法[4-5],將具有相同攻擊者信息或相似攻擊特征的攻擊定義為同源攻擊。使用基于粗、細(xì)粒度功能碼特征結(jié)合的特征提取和建模方法來判定具有攻擊特征的攻擊者是否屬于同一惡意組織,從而實現(xiàn)攻擊者溯源。此外,針對蜜罐數(shù)據(jù)同一攻擊源判定驗證較難的問題,使用開源威脅情報庫驗證惡意IP所屬組織[6-7]。
攻擊者溯源的研究主要依賴于IP溯源技術(shù),IP溯源技術(shù)作為網(wǎng)絡(luò)安全主動防護(hù)的關(guān)鍵手段,主要包括概率包標(biāo)記溯源法和日志溯源法2類。概率包分組標(biāo)記技術(shù)[8]將標(biāo)識信息(如IP地址)寫入轉(zhuǎn)發(fā)分組的頭域,也即標(biāo)記域中,然后受害者從收到的分組中找回標(biāo)記信息,最終確定攻擊路徑。日志溯源法[9]是路由器在轉(zhuǎn)發(fā)分組前記錄下分組相關(guān)的信息并進(jìn)行重構(gòu)。然而,設(shè)備的修改以及日志格式的不統(tǒng)一,使得傳統(tǒng)IP溯源技術(shù)成本開銷高、誤報率高、可操作性低,在工控領(lǐng)域難以實現(xiàn)。
工控蜜罐技術(shù)通過搜集信息來分析工控系統(tǒng)攻擊者的行為,包括攻擊方式、攻擊手段等。Glastopf項目發(fā)布了第一個開源工控蜜罐框架Conpot[10],其實現(xiàn)了協(xié)議棧上的請求-應(yīng)答交互。文獻(xiàn)[11]提出了一種基于物聯(lián)網(wǎng)設(shè)備的蜜網(wǎng)系統(tǒng),提升了蜜罐的交互能力和仿真度。對蜜罐數(shù)據(jù)中攻擊者行為進(jìn)行分析依賴于攻擊特征的提取,Honeycomb[12]作為Honeyd蜜罐的擴(kuò)展模塊,其提出了利用蜜罐捕獲數(shù)據(jù)進(jìn)行攻擊特征提取的基礎(chǔ)方法。Nemean系統(tǒng)[13]改進(jìn)了Honeycomb,其將原始數(shù)據(jù)包轉(zhuǎn)換為會話樹,生成基于語義特征最后轉(zhuǎn)換為入侵檢測系統(tǒng)的特征規(guī)則格式。但是,上述特征提取技術(shù)多數(shù)沒有基于工控協(xié)議數(shù)據(jù)特性的攻擊特征提取方法。
攻擊行為的相似性分析有助于更加全面地對攻擊者進(jìn)行溯源。文獻(xiàn)[14]將一個攻擊源發(fā)送的有效載荷轉(zhuǎn)換為字符串并進(jìn)行連接生成攻擊指紋,然后通過簡單的字符串距離度量比較指紋,從而分析攻擊源。文獻(xiàn)[15]使用Micro-Honeypot框架內(nèi)瀏覽器指紋來追蹤攻擊者,并提出一種指紋關(guān)聯(lián)算法,將瀏覽器中cookie、IP信息和指紋進(jìn)行關(guān)聯(lián),生成字符串并作比較,從而確定同源攻擊者。然而,上述同源攻擊者判斷方法仍無法直接應(yīng)用于工控網(wǎng)絡(luò)。文獻(xiàn)[16]部署分布式蜜罐系統(tǒng)來收集威脅數(shù)據(jù)庫,根據(jù)3種不同的工控協(xié)議蜜罐數(shù)據(jù)對攻擊方法、攻擊模式和攻擊源進(jìn)行分析,提出一種針對攻擊組織的聚類算法。然而,人工劃分攻擊模式無法分析大規(guī)模數(shù)據(jù),且該算法識別的攻擊源組織并未進(jìn)行結(jié)果驗證。網(wǎng)絡(luò)攻擊同源性是指不同的網(wǎng)絡(luò)攻擊事件具有內(nèi)在相似性,源自同一個人或同一組織等[4]。現(xiàn)有同源攻擊的分析主要集中在惡意代碼家族判定方面,此外,也有部分針對蜜罐數(shù)據(jù)進(jìn)行組織判定的研究[16-17]。針對工控協(xié)議進(jìn)行同源判定及組織分析的研究較少,且結(jié)果驗證不足,為此,本文依據(jù)工控蜜罐數(shù)據(jù)進(jìn)行同源攻擊分析,并重點研究同一組織的判定問題。
根據(jù)工控協(xié)議規(guī)約,功能碼用于標(biāo)明一個信息幀的用途,當(dāng)主設(shè)備向從設(shè)備發(fā)送信息時,功能碼將通知從設(shè)備需要執(zhí)行哪些行為。文獻(xiàn)[18]使用Modbus功能碼來界定某一攻擊者對于設(shè)備的請求,根據(jù)請求報文中的意圖進(jìn)行分類并總結(jié)出攻擊方法。然而,在真實情況下,單一功能碼無法較好地體現(xiàn)整個攻擊序列的企圖。文獻(xiàn)[18]將連續(xù)的Modbus TCP數(shù)據(jù)包抽象簡化為Modbus功能碼序列,利用序列順序進(jìn)行系統(tǒng)異常檢測。wireshark為常用的網(wǎng)絡(luò)封包分析軟件,圖1所示為wireshark解析器下工控協(xié)議Modbus蜜罐數(shù)據(jù)流PCAP文件的各字段解析示例。其中,加框字段為功能碼字段。基于Modbus協(xié)議報文格式,利用python腳本對蜜罐數(shù)據(jù)流PCAP文件進(jìn)行處理,提取出Modbus TCP數(shù)據(jù)包中的初始數(shù)據(jù)包特征以便進(jìn)行后續(xù)處理。對PCAP數(shù)據(jù)流進(jìn)行處理后的工控信息庫示例如表1所示。

圖1 Modbus蜜罐數(shù)據(jù)流PCAP文件

表1 工控信息庫示例
根據(jù)文獻(xiàn)[19]提出的249個基于流量的特征,結(jié)合所搜集的工控蜜罐中Modbus TCP數(shù)據(jù)包信息特征,本文提出一種基于統(tǒng)計信息的功能碼粗粒度特征,其中包括功能碼類型占比、攻擊頻率和稀有評級占比。攻擊頻率屬于數(shù)據(jù)流特征,其余屬于數(shù)據(jù)包內(nèi)功能碼信息特征。圖2所示為Modbus協(xié)議的報文格式以及功能碼在整個報文中的位置。

圖2 Modbus協(xié)議報文格式
功能碼類型占比是功能碼序列的功能碼類型占整體功能碼的比例。功能碼類型占比表示為Ti=Tf/T,其中,Tf為功能碼序列中功能碼類型個數(shù),T為蜜罐數(shù)據(jù)中功能碼類型個數(shù)。
攻擊頻率體現(xiàn)功能碼序列中的時間特征,其值為功能碼數(shù)量與交互總時長的比例,即Fi=Num/Time,其中,Num代表序列中功能碼數(shù)量,Time代表序列交互總時長。由于存在自動化攻擊單位時間內(nèi)發(fā)包數(shù)大于1的情況,因此本文對攻擊頻率進(jìn)行0-1標(biāo)準(zhǔn)歸一化處理。
稀有評級可以反映功能碼序列在蜜罐數(shù)據(jù)中的特殊程度。以Modbus協(xié)議數(shù)據(jù)為例,在超過1.7萬條Modbus數(shù)據(jù)包中,0x2b、0x11出現(xiàn)頻率最高,將其分別劃為1、2級,其余按表2所示進(jìn)行評級。稀有評級占比為Ri=Di/Dmax,其中,Ri表示稀有評級占比,Di為功能碼序列i中的最高稀有評級,Dmax表示整體數(shù)據(jù)中的最高評級5。表3所示為基于wireshark解析器的報文解析樣例,其中包括2個Modbus TCP粗粒度特征提取過程。從表2可以看出,蜜罐中的功能碼類型數(shù)為5,因此,計算出這一組Modbus TCP功能碼類型占比為0.4。出現(xiàn)功能碼的稀有評級最高為2,即其稀有評級占比為0.4。攻擊頻率則根據(jù)時間戳進(jìn)行計算,值為3.876 8,后續(xù)再依據(jù)所有蜜罐數(shù)據(jù)整合進(jìn)行歸一化處理。

表2 功能碼稀有評級

表3 基于wireshark解析器的報文解析樣例
細(xì)粒度特征即功能碼序列特征,十六進(jìn)制Modbus功能碼序列為07、01、01、11、2b、11、2b。由于Modbus功能碼序列的有序性,本文使用窗口滑動的方法,通過一個大小為2的窗口對整個功能碼序列進(jìn)行截取,通過計算該功能碼組合在整個序列各項組合中出現(xiàn)的概率,對vector內(nèi)的相同功能碼組合進(jìn)行概率值填充,進(jìn)而得到所有蜜罐數(shù)據(jù)中攻擊IP的細(xì)粒度特征向量。
圖3所示為細(xì)粒度特征提取方法示意圖,其中,左半部分為樣例功能碼序列的處理過程,其得到對應(yīng)攻擊者IP和所有攻擊者IP的向量值。功能碼序列特征劃分如表4所示,其中,n=2,n代表維度。

圖3 細(xì)粒度特征提取方法示意圖

表4 功能碼序列特征劃分樣例
在表4中,功能碼組合表示當(dāng)窗口長度n=2時得到的十六進(jìn)制值,次數(shù)表示功能碼組合出現(xiàn)的次數(shù),概率表示某二元功能碼出現(xiàn)的幾率。
將功能碼組合進(jìn)行功能碼排序,得到有關(guān)功能碼序列的多維向量。根據(jù)蜜罐數(shù)據(jù)以及功能碼序列的有序性,向量種類表示為(0101,0107,0111,…,5a5a),特征向量為vector=(P0101,P0107,P0111,…,P5a5a)。
2.2節(jié)介紹了功能碼類型占比、攻擊頻率和稀有評級占比3個粗粒度行為特征。基于粗糙集思想的粗粒度特征建模方法,使用Canopy聚類算法將這3個行為特征轉(zhuǎn)換為(Ti,Fi,Ri)三維向量。文獻(xiàn)[20]實現(xiàn)了傳統(tǒng)的Canopy算法,其具有快捷、簡單等特點,為后續(xù)聚類算法消除了K值的不確定性,以便合理地使用初始聚類中心。
在機(jī)器學(xué)習(xí)中有一些基于標(biāo)識數(shù)據(jù)的有監(jiān)督機(jī)器學(xué)習(xí)算法,如SVM、KNN和決策樹等。對于組織溯源領(lǐng)域,除一部分公開的設(shè)備掃描安全廠商外,其余攻擊者的IP均沒有樣例標(biāo)識。因此,需要通過無監(jiān)督或半監(jiān)督的機(jī)器學(xué)習(xí)算法來進(jìn)行聚類分析。本文提出基于K-Medoids的改進(jìn)圍繞中心點劃分(Partitioning Around Medoid,PAM)聚類算法,建立基于攻擊行為的聚類模型,并使用基于密度的離群點檢測方法對離群點進(jìn)行檢測和處理。
引入輪廓系數(shù)(Silhouette coefficient,S)來體現(xiàn)簇內(nèi)數(shù)據(jù)的緊湊程度和簇間距離的分離程度。設(shè)數(shù)據(jù)集中的每個對象為O,對象O與O所屬的簇內(nèi)其他對象之間的平均距離為A(O),B(O)指對象O到不包含O的所有簇的最小平均距離。所有點的輪廓系數(shù)平均值越接近1,則顯示聚類模型內(nèi)聚度和外分離度越好,模型性能越優(yōu)。輪廓系數(shù)的計算如式(1)所示:
(1)
本文使用改進(jìn)的PAM聚類算法對攻擊行為向量進(jìn)行聚類并對攻擊行為實現(xiàn)建模,流程如圖4所示。

圖4 改進(jìn)的PAM聚類算法流程
本文算法具體步驟如下:
1)根據(jù)粗粒度、細(xì)粒度特征對數(shù)據(jù)集數(shù)據(jù)進(jìn)行預(yù)處理。
2)使用基于粗糙集思想的粗粒度特征處理方法將粗粒度特征轉(zhuǎn)換為三維向量,使用Canopy聚類算法計算最優(yōu)類簇數(shù)量并進(jìn)行第一次聚類。
3)使用基于功能碼序列的細(xì)粒度特征處理方法將細(xì)粒度特征轉(zhuǎn)換為攻擊行為特征向量,并通過改進(jìn)的PAM聚類算法對K簇進(jìn)行聚類。基于K-Medoids改進(jìn)的PAM聚類算法的基本思想為:
(1)任選k (2)迭代使用Medoids外的其余非代表對象點來代替初始點進(jìn)行聚類,找出更好的中心點,并根據(jù)部分已知組織信息,用半監(jiān)督的方式取得更好的輪廓系數(shù)和聚類性能。 (3)由于相同IP可能有幾種不同的掃描方式,因此引入懲罰因子ξ用于減小相同IP的不同向量間歐式距離的差異值。懲罰因子ξ計算公式如式(2)所示: (2) 其中,N為集合{IPs}中相同IP攻擊信息向量的個數(shù),EDvector(i,i+1)表示2個向量的歐式距離差異值。 (3) 4)使用基于密度的離群點檢測方法對離群點進(jìn)行檢測和處理,并根據(jù)半監(jiān)督標(biāo)識實現(xiàn)迭代學(xué)習(xí),迭代輪廓系數(shù)S(O),直到得到更好的聚類精度。 5)使用本文提出的驗證方法并應(yīng)用第三方惡意IP庫進(jìn)行數(shù)據(jù)驗證,計算精度和召回率,得到聚類結(jié)果。 (4) 則局部離群因子LOF計算如式(5)所示: (5) 通過已有方法找出聚類模型中的離群點因子,為了得到更好的輪廓系數(shù)、聚類性能和結(jié)果,本文提出收縮因子α(0≤α≤1)進(jìn)行離群點處理,α的迭代取值遵循α=arctanx+1,以降低生成粗糙集時隨機(jī)質(zhì)心對離群點的判斷誤差并迭代出更優(yōu)的輪廓系數(shù)S(O)。聚類精確度不再提高時收縮停止。 本文數(shù)據(jù)來源于文獻(xiàn)[16]收集到的分布式工控協(xié)議蜜罐數(shù)據(jù),時間跨度超過12個月。實驗及數(shù)據(jù)驗證部分使用Modbus協(xié)議蜜罐數(shù)據(jù),該協(xié)議是工控系統(tǒng)中常用的具有公開協(xié)議規(guī)約的通信協(xié)議。圖5記錄了Modbus蜜罐在一段時間期間的數(shù)據(jù)收集情況,其中,在2018年8月收集到了2 987條數(shù)據(jù)包,總數(shù)據(jù)包數(shù)量超過1.7萬條。 圖5 Modbus協(xié)議數(shù)據(jù)量 文獻(xiàn)[16]指出,由于沒有相似性實驗,工控蜜罐數(shù)據(jù)攻擊源分析后很難進(jìn)行結(jié)果對比與驗證。本文通過反向解析攻擊者IP發(fā)現(xiàn),只有很少一部分公開的設(shè)備掃描網(wǎng)站信息。在尋找公開數(shù)據(jù)集時,得知AbuseIPDB[22]和ipvoid[23]可以對濫用IP(通常包括與可疑主機(jī)公司、僵尸網(wǎng)絡(luò)、被黑客入侵的服務(wù)器或其他由黑客控制的機(jī)器相關(guān)的IP地址)進(jìn)行記錄、將網(wǎng)絡(luò)中自動化軟件掃描和攻擊事件進(jìn)行存儲,而IBM X-Force Exchange[24]公開的情報分析庫甚至可以找到近5年內(nèi)某一IP的活動情況,包括其何時被識別為掃描IP、何時自動運行木馬以及是否運行惡意軟件。本文的數(shù)據(jù)驗證方式是將同源判定的結(jié)果與公開網(wǎng)站數(shù)據(jù)進(jìn)行匹配驗證。當(dāng)無法在開源濫用IP數(shù)據(jù)庫中找到其明顯組織后,使用物理位置判定方法,在數(shù)據(jù)驗證時將同一網(wǎng)段的攻擊者默認(rèn)歸于同一攻擊源。 文獻(xiàn)[25]在觀察大規(guī)模蜜罐攻擊數(shù)據(jù)時發(fā)現(xiàn),可追溯同源的類似DDOS攻擊源的惡意服務(wù)器TTL值經(jīng)常在某2個連續(xù)值之間波動。本次實驗將對比本文同源攻擊判定方法與TTL方法[22]、位置信息方法[3]的聚類性能。從圖6可以看出,在Modbus協(xié)議數(shù)據(jù)集中,使用Canopy方法和PAM方法后,通過粗粒度特征向量生成k1個類簇,簇中的細(xì)粒度聚類結(jié)果隨著k2值的變化而變化,其中,k2是對粗糙集中細(xì)粒度特征向量使用改進(jìn)的PAM算法后的結(jié)果。當(dāng)k1=1時,F1值最高的是k2=4,即k21=4,F1值為0.60,表示在類簇1中,繼續(xù)細(xì)分為4個簇時精確度和召回率的綜合表現(xiàn)最佳。在其余3組中,F1值最高的分別是類簇2k2=3,F1值為0.81;類簇3k2=2,F1值為0.90;類簇4k2=1,F1值為1.00。因此,類簇組織的最優(yōu)數(shù)量為k21+k22+k23+k24=10,平均F1值為0.827 5。 圖6 不同k1和k2值時算法聚類性能比較 不同的同源攻擊分析方法性能對比如圖7所示。圖7(a)顯示了不同初始簇數(shù)下方法的精確度,圖7(b)為召回率,圖7(c)使用F1值計算分析方法的精確率和召回率,圖7(d)顯示聚類模型隨類簇數(shù)改變時SSE值的變化情況。從中可以看出,本文方法較其他2種方法具有更高的F1值,數(shù)據(jù)的綜合精確度和查全率具有更好的表現(xiàn)。理論上來說,隨著類簇數(shù)k的增大,樣本劃分會更精細(xì),每個簇的聚合程度會逐漸提高,則SSE值會逐漸變小。實驗結(jié)果也證明,當(dāng)k小于某一類簇數(shù)時,由于k的增大會大幅增加每個簇的聚合程度,而當(dāng)k到達(dá)某一數(shù)值時,再增加k時所得到的聚合程度反饋會迅速變小,所以SSE的下降幅度會隨著k值的繼續(xù)增大而趨于平緩,這意味著當(dāng)k值為12時,聚類模型具有更合理的SSE值,約為7.376。然而,觀察其F1值的結(jié)果可知,當(dāng)k為10或11時,達(dá)到最高F1值0.792。而且,在實驗過程中,當(dāng)k值大于10時,結(jié)果出現(xiàn)了測試集為空的情況,這顯示出實驗中可能存在過擬合現(xiàn)象。綜合圖6、圖7,本文選取最優(yōu)的類簇數(shù)為10。 圖7 同源攻擊分析方法性能對比結(jié)果 蜜罐數(shù)據(jù)分析的驗證是一個難題,本文通過反查DNS,調(diào)用開源濫用IP庫進(jìn)行同源攻擊者結(jié)果驗證,相比于TTL值判別方法,本文方法具有更高的精確度和F1值。在判別威脅情報庫中識別的shodan IP時具有100%的精確度和召回率,而對于其余惡意IP所屬組織,如plcscan、censys[26]、University of Michigan等的判別,精確度達(dá)到0.91。4種協(xié)議攻擊IP數(shù)前10的組織溯源結(jié)果如表5所示。其中,包括物聯(lián)網(wǎng)設(shè)備識別企業(yè)和安全服務(wù)提供商,如shodan、plcscan和censys等。 表5 同源攻擊分析結(jié)果 本文提出一種基于工控功能碼序列的同源攻擊分析方法,根據(jù)攻擊者特征找到其物理位置特征,依據(jù)細(xì)粒度特征和粗粒度特征生成攻擊行為模型。分析結(jié)果表明,該方法針對開源濫用IP庫識別時具有較高的精確率,能夠識別出shodan、censys和plcscan等10個組織。下一步將擴(kuò)展工控蜜罐的適用協(xié)議,包括S7comm、BACnet等使用率較高的工控協(xié)議。此外,將攻擊行為處理方法加入到入侵檢測系統(tǒng)中實現(xiàn)一定程度的安全防護(hù)也是今后的研究方向。

3.3 基于密度的離群點檢測方法

4 實驗結(jié)果與分析
4.1 數(shù)據(jù)集

4.2 數(shù)據(jù)驗證
4.3 結(jié)果分析


4.4 實驗結(jié)論

5 結(jié)束語