段濤 向軍 張宏 李千目
摘? ?要:近些年工業(yè)控制系統(tǒng)逐步向通用化、標(biāo)準(zhǔn)化發(fā)展,原有封閉性和專有性被打破,造成易被攻擊,各種滲透、病毒、木馬等安全威脅向工控領(lǐng)域迅速擴(kuò)散,導(dǎo)致了日益嚴(yán)重的信息安全問(wèn)題。文章結(jié)合滲透測(cè)試技術(shù),在傳統(tǒng)網(wǎng)絡(luò)攻擊測(cè)試模擬基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)工控系統(tǒng)攻擊測(cè)試模擬方法。該方法包含三個(gè)功能:一是提出一種基于攻擊期望的攻擊路徑生成算法;二是實(shí)現(xiàn)基于白盒和黑盒測(cè)試的漏洞攻擊測(cè)試模擬;三是結(jié)合工業(yè)以太網(wǎng)基于特征碼進(jìn)行請(qǐng)求應(yīng)答通信的特征,對(duì)工控設(shè)備進(jìn)行信息探測(cè)。這種方法具有三個(gè)優(yōu)勢(shì):從不同角度提供工控系統(tǒng)攻擊試驗(yàn)?zāi)M;無(wú)需對(duì)攻擊建模分析;系統(tǒng)操作簡(jiǎn)單。實(shí)驗(yàn)結(jié)果顯示,與傳統(tǒng)探測(cè)工具相比,基于該方法實(shí)現(xiàn)的系統(tǒng)檢測(cè)率更高。
關(guān)鍵詞:工業(yè)控制系統(tǒng);測(cè)試模擬;白盒測(cè)試;黑盒測(cè)試
中圖分類號(hào):TP391? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
Abstract: In recent years, industrial control systems have gradually developed towards generalization and standardization. The original closeness and exclusiveness have been broken, which makes them vulnerable to attack. Various security threats such as penetration, virus and Trojan horse have spread rapidly to the field of industrial control, resulting in increasingly serious information security problems. Based on penetration test technology and traditional network attack test simulation, this paper designs and implements an attack test simulation method for industrial control system. This method includes three functions: one is to propose an attack path generation algorithm based on attack expectation; the other is to realize vulnerability test simulation based on white-box and black-box test; the third is to detect the information of industrial control equipment by combining the characteristics of industrial Ethernet based on signature-based request-response communication. This method has three advantages: providing attack test simulation of industrial control system from different angles; no need for attack modeling and analysis; and simple operation of the system. The experimental results show that the detection rate of the system based on this method is higher than that of the traditional detection tools.
Key words: industrial control system; test simulation; white box test; black box test
1 引言
工業(yè)控制系統(tǒng)(Industrial Control System,ICS)是一種用于描述工業(yè)領(lǐng)域各種類型的控制系統(tǒng)和相關(guān)設(shè)備的整體概念,它具有網(wǎng)絡(luò)通信、監(jiān)控和自動(dòng)化工業(yè)過(guò)程的能力[1]。工業(yè)控制系統(tǒng)對(duì)各國(guó)的工業(yè)設(shè)施發(fā)展至關(guān)重要,對(duì)基礎(chǔ)設(shè)施建設(shè)尤為重要。工業(yè)控制系統(tǒng)常見(jiàn)威脅包括弱訪問(wèn)控制、弱用戶身份驗(yàn)證、未經(jīng)身份驗(yàn)證的協(xié)議、遠(yuǎn)程訪問(wèn)、較差的網(wǎng)絡(luò)安全性和可見(jiàn)性以及高級(jí)管理層的缺乏。
目前,ICS面臨的安全威脅來(lái)源于五個(gè)方面。一是MES和HMI等關(guān)鍵工業(yè)控制系統(tǒng)組件越來(lái)越多使用商用硬件、通用操作系統(tǒng)(例如Windows和Unix)、TCP/IP協(xié)議套件和開(kāi)源環(huán)境。二是有關(guān)工業(yè)控制系統(tǒng)服務(wù)、協(xié)議及其漏洞的工控知識(shí)文檔在Internet上被廣泛傳播。三是工業(yè)控制系統(tǒng)直接或間接連接到公共網(wǎng)絡(luò),部分工業(yè)控制系統(tǒng)甚至可以由遠(yuǎn)程的平板電腦控制HMI。這使得特洛伊木馬和蠕蟲(chóng)很容易在網(wǎng)絡(luò)連接中發(fā)現(xiàn)工控漏洞并感染工控服務(wù)器和HMI等。通過(guò)Shodan搜索引擎,黑客可以通過(guò)服務(wù)和制造商非常有效地找到Internet可以訪問(wèn)和易受攻擊的工控設(shè)備。四是ICS已經(jīng)成為企業(yè)內(nèi)部個(gè)別人員和黑客的攻擊目標(biāo)。即使他們中有人并不是專業(yè)的黑客,也可以通過(guò)Metasploit等工具執(zhí)行攻擊。這些工具往往是公開(kāi)可用的,不僅適用于系統(tǒng)和安全工程師,同樣也適用于黑客攻擊。五是人為因素。用戶在使用工業(yè)控制系統(tǒng)過(guò)程中,網(wǎng)絡(luò)安全意識(shí)薄弱,在不知情的情況下泄露工業(yè)控制系統(tǒng)的關(guān)鍵信息。同時(shí)部分工作站的員工通過(guò)連接工控組件的USB電線為手機(jī)充電,USB插頭和連接的個(gè)人設(shè)備可能攜帶惡意軟件,這在工業(yè)控制系統(tǒng)環(huán)境中是一個(gè)被忽視的問(wèn)題。
面對(duì)愈加嚴(yán)峻的工控攻擊安全形式,相關(guān)研究也越來(lái)越受到國(guó)內(nèi)外的關(guān)注。工控系統(tǒng)的模擬測(cè)試攻擊涉及到兩大關(guān)鍵技術(shù):測(cè)試方案生成和攻擊方法研究。測(cè)試方案生成主要研究工控系統(tǒng)漏洞威脅量化方法及攻擊路徑生成。評(píng)價(jià)標(biāo)準(zhǔn)[2-4]包括攻擊成功率(或攻擊期望)、攻擊步數(shù)、攻擊時(shí)間消耗等,評(píng)價(jià)指標(biāo)[4-6]包括資產(chǎn)價(jià)值,脆弱性水平和威脅頻度,評(píng)價(jià)方法包括層次分析法、灰色關(guān)聯(lián)分析、主成分分析法等。目前,工控脆弱性量化方面的研究在評(píng)價(jià)指標(biāo)求解方面還比較模糊,相關(guān)影響因子大都直接賦值,缺少一定的合理性和科學(xué)性。攻擊方法研究側(cè)重于工業(yè)控制漏洞掃描,漏洞挖掘和測(cè)試驗(yàn)證技術(shù)。
工控測(cè)試驗(yàn)證技術(shù)目前的研究方向有兩種,一種是通過(guò)對(duì)攻擊建模,實(shí)現(xiàn)對(duì)真實(shí)系統(tǒng)和設(shè)備的攻擊。有許多類型的工控系統(tǒng)攻擊模型,包括擴(kuò)展攻擊、添加攻擊、替換攻擊、最大和最小攻擊等[7,8],可以針對(duì)水利灌溉和電力系統(tǒng)等進(jìn)行攻擊研究。另一種是對(duì)工業(yè)控制系統(tǒng)的攻擊模擬。該方法通常與滲透測(cè)試相關(guān)。研究人員通過(guò)開(kāi)源工具(如Metasoloit)對(duì)系統(tǒng)進(jìn)行滲透,利用特定腳本完成攻擊[9]。本文主要研究攻擊模擬。目前,國(guó)內(nèi)在攻擊模擬方面主要的研究還是集中在傳統(tǒng)互聯(lián)網(wǎng),針對(duì)工控系統(tǒng)的研究較少,主要思路還是利用現(xiàn)有攻擊工具,如Metasploit、W3AF、SQLmap等進(jìn)行攻擊,還沒(méi)有開(kāi)發(fā)出用于工業(yè)控制系統(tǒng)和協(xié)議的攻擊模擬工具。為此,本文提出一種工控系統(tǒng)攻擊的測(cè)試模擬方法,旨在提高針對(duì)工控模擬的測(cè)試效率,保障工控系統(tǒng)可靠性和系統(tǒng)防護(hù)能力。
2 工控漏洞攻擊期望求解方法設(shè)計(jì)
攻擊期望指的是通過(guò)工控漏洞成功入侵的概率,也稱為攻擊成功概率。根據(jù)研究發(fā)現(xiàn),攻擊成功率與漏洞利用概率和漏洞危害性相關(guān)[10]。
定義1:攻擊成功概率()指的是在全面量化漏洞利用概率()和漏洞危害性()的同時(shí),針對(duì)某一漏洞攻擊發(fā)生的概率。攻擊成功概率遵循公式(1)。
基于此,可以計(jì)算出攻擊概率最大的攻擊路徑。作為攻擊成功率最高的一條路徑,可以作為衡量整個(gè)工控系統(tǒng)安全性的指標(biāo)性路徑。在該路徑基礎(chǔ)上實(shí)施模擬攻擊成功率更高。
漏洞全局利用率是指利用漏洞發(fā)起的攻擊的可能性。通常意義上,結(jié)合安全漏洞評(píng)估系統(tǒng)CVSS,漏洞全局利用率可以通過(guò)漏洞被利用的難易程度p來(lái)表示,即公式(2)。
其中,表示攻擊向量,反映漏洞被利用的方式。表示攻擊復(fù)雜度,反映了當(dāng)攻擊者獲得對(duì)目標(biāo)節(jié)點(diǎn)的訪問(wèn)權(quán)限時(shí)利用漏洞的難度。表示身份認(rèn)證,它反映了攻擊者在成功利用漏洞時(shí)必須經(jīng)過(guò)的身份驗(yàn)證頻度。
結(jié)合CVSS以及工控系統(tǒng)的特殊性,列出與脆弱性全局利用率相關(guān)的10條指標(biāo)以及對(duì)應(yīng)的打分[8],如表1所示。
漏洞全局危害性是指漏洞被攻擊者成功利用后造成的損失。這里的損失通常包括物理?yè)p失和信息損失。物理?yè)p失和組件有關(guān),組件越關(guān)鍵,被利用后造成的物理?yè)p失越大。信息損失參考CVSS標(biāo)準(zhǔn),從信息的機(jī)密性、完整性和可用性來(lái)衡量。
(1)物理?yè)p失
在工控系統(tǒng)中,每個(gè)組件的地位不一樣,導(dǎo)致組件的資產(chǎn)價(jià)值也不一樣。例如,在工控系統(tǒng)中PLC控制器的資產(chǎn)價(jià)值顯然要高于用于監(jiān)控的普通用戶機(jī)。因此,在充分考慮工控組件在整個(gè)系統(tǒng)中的地位后,參考《集散控制系統(tǒng)安全評(píng)估指南》,對(duì)常見(jiàn)的工控設(shè)備進(jìn)行等級(jí)劃分及資產(chǎn)價(jià)值打分,如表2所示。
物理?yè)p失除了與設(shè)備資產(chǎn)價(jià)值有關(guān),還與設(shè)備中漏洞利用方式影響系數(shù)以及組件資的可支配權(quán)值有關(guān),因此給出定義2。
定義2:物理?yè)p失()是設(shè)備資產(chǎn)價(jià)值()與漏洞利用方式影響系數(shù)()以及設(shè)備可支配權(quán)值()的乘積,即公式(3)。
(2)信息損失
攻擊者攻擊工控系統(tǒng)的意圖除了對(duì)組件造成破壞,最主要的目的是竊取工控系統(tǒng)中的信息資產(chǎn),例如從數(shù)據(jù)庫(kù)中竊取生產(chǎn)數(shù)據(jù)。信息損失參考CVSS中的機(jī)密性影響(C)、完整性影響(I)和可用性影響(A)[11]。
機(jī)密性影響(C):該指標(biāo)衡量成功利用漏洞后對(duì)機(jī)密性的影響。機(jī)密性是指向授權(quán)用戶限制信息訪問(wèn),以及防止未授權(quán)用戶的訪問(wèn)。表3中列出了該指標(biāo)的可能值。機(jī)密性越高,對(duì)信息損失影響越大。
完整性影響(I):該指標(biāo)衡量成功利用漏洞后對(duì)完整性的影響。完整性是指信息的可靠性和準(zhǔn)確性。表4中列出了該指標(biāo)的可能值。完整性越高,對(duì)信息損失影響越大。
可用性影響(A):該指標(biāo)衡量成功利用漏洞后對(duì)可用性的影響??捎眯允侵感畔①Y源的可訪問(wèn)性。針對(duì)網(wǎng)絡(luò)帶寬、處理器周期或磁盤容量的攻擊都會(huì)影響系統(tǒng)的可用性。表5中列出了該指標(biāo)的可能值??捎眯栽礁撸瑢?duì)信息損失影響越大。
信息損失值與組件機(jī)密性影響、完整性影響和可用性影響有關(guān),因此給出定義3。
定義3:信息損失()是機(jī)密性影響( )、完整性影響()和可用性影響()的有機(jī)組合,即公式4。
根據(jù)攻擊成功概率求解方法可知,需要分別求解漏洞全局利用率和漏洞全局危害性,因此本文采用灰色關(guān)聯(lián)分析方法求解這兩個(gè)值。
(1)漏洞全局利用率求解
對(duì)漏洞全局利用率求解的步驟。
1)建立原始數(shù)據(jù)矩陣。假設(shè)實(shí)際拓?fù)浒▊€(gè)組件,每個(gè)組件包含一個(gè)漏洞,即個(gè)漏洞。對(duì)于每個(gè)漏洞有加密、認(rèn)證等10項(xiàng)指標(biāo)。則可以建立一個(gè)的初始矩陣。
2)確定參考數(shù)據(jù)列。根據(jù)漏洞10項(xiàng)指標(biāo),選擇評(píng)分最高的作為參考值,因此參考序列表示為。
3)計(jì)算的矩陣。求解漏洞初始矩陣序列與參考序列對(duì)應(yīng)元素間差的絕對(duì)值。
(5)
4)求最值。最大值即為上式中矩陣中的最大值,最小值即為上式中矩陣中的最小值。
5)計(jì)算漏洞的關(guān)聯(lián)系數(shù)。對(duì)矩陣中的每一項(xiàng)按照灰色關(guān)聯(lián)度計(jì)算方法進(jìn)行計(jì)算,得到關(guān)聯(lián)系數(shù)矩陣。
6)求解每個(gè)漏洞的關(guān)聯(lián)度,即為漏洞全局利用率。取每個(gè)漏洞的10項(xiàng)指標(biāo),相應(yīng)的權(quán)重值為(0.2,0.05,0.1,0.05,0.15,0.2,0.05,0.05,0.05,0.1)。以關(guān)聯(lián)系數(shù)矩陣第一行為例。
(6)
同理,可以得出其他漏洞的關(guān)聯(lián)度。每個(gè)漏洞的關(guān)聯(lián)度表示為該漏洞的全局利用率。
(2)漏洞全局危害性求解
對(duì)漏洞全局利用率求解的步驟。
1)求解物理?yè)p失值和信息損失值。漏洞全局危害性有兩項(xiàng)指標(biāo):物理?yè)p失和信息損失。
2)建立原始矩陣。同樣假設(shè)實(shí)際拓?fù)浒▊€(gè)組件,每個(gè)組件包含一個(gè)漏洞,即個(gè)漏洞。對(duì)于每個(gè)漏洞有物理?yè)p失值和信息損失值兩項(xiàng)指標(biāo),則可以建立一個(gè)的初始矩陣。
3)確定參考數(shù)據(jù)列。根據(jù)2項(xiàng)指標(biāo),選擇評(píng)分最高的作為參考值。參考值隨拓?fù)渲械穆┒炊兓?/p>
4)計(jì)算的矩陣。逐個(gè)求解每個(gè)漏洞指標(biāo)序列(比較序列)與參考序列的相應(yīng)元素之間的絕對(duì)差值以組成矩陣。
5)求最值。最大值即為上式中矩陣中的最大值,最小值即為上式中矩陣中的最小值。
6)計(jì)算漏洞的關(guān)聯(lián)系數(shù)。對(duì)矩陣中的每一項(xiàng)按照灰色關(guān)聯(lián)度計(jì)算方法計(jì)算,得到關(guān)聯(lián)系數(shù)矩陣。
7)求解每個(gè)漏洞的關(guān)聯(lián)度,即為漏洞全局危害性。取每個(gè)漏洞的兩項(xiàng)指標(biāo),相應(yīng)的權(quán)重值為(0.7,0.3)。以關(guān)聯(lián)系數(shù)矩陣第一行為例。
(7)
同理可以計(jì)算得出其他漏洞的關(guān)聯(lián)度。每個(gè)漏洞的關(guān)聯(lián)度表示為該漏洞的全局危害性。
(3)攻擊期望求解
按照公式1,第一個(gè)漏洞的攻擊期望表示為,第二個(gè)漏洞的攻擊期望表示為 ,…,第個(gè)漏洞的攻擊期望表示為
3 工控系統(tǒng)的漏洞攻擊測(cè)試模擬方法
3.1 基于白盒測(cè)試的漏洞攻擊模擬
基于白盒測(cè)試的漏洞攻擊模擬,結(jié)合工控系統(tǒng)的漏洞分析,識(shí)別工控系統(tǒng)網(wǎng)絡(luò)拓?fù)?、資產(chǎn)等信息計(jì)算漏洞安全等級(jí),完成工業(yè)控制系統(tǒng)的可行攻擊路徑生成。然后,建立測(cè)試序列,利用腳本進(jìn)行攻擊,基本包括四個(gè)步驟。
第一,結(jié)合工控協(xié)議的脆弱性分析技術(shù),在獲知工控系統(tǒng)拓?fù)?、資產(chǎn)等信息前提下,對(duì)收集的數(shù)據(jù)進(jìn)行預(yù)處理,形成XML數(shù)據(jù)格式。拓?fù)湫畔ňW(wǎng)絡(luò)中組件的配置信息(如防火墻等)和主機(jī)的訪問(wèn)規(guī)則、主機(jī)間可達(dá)關(guān)系等。資產(chǎn)信息包括主機(jī)、服務(wù)和端口等信息。
第二,在獲取工控漏洞信息后,利用攻擊圖生成工具產(chǎn)生攻擊圖,在此基礎(chǔ)上,結(jié)合量化漏洞威脅值指標(biāo),采用深度遍歷搜索方法用于建立從攻擊節(jié)點(diǎn)到目的節(jié)點(diǎn)的可行攻擊路徑。
第三,基于測(cè)試路徑的生成,設(shè)計(jì)形式化描述語(yǔ)言來(lái)描述攻擊測(cè)試序列。
第四,在攻擊測(cè)試序列生成后,根據(jù)序列順序調(diào)用攻擊腳本完成攻擊的實(shí)施。
本文采用Mulval進(jìn)行攻擊圖生成,通過(guò)將Nessus工具掃描到的漏洞信息和其他相關(guān)信息加工編碼,可以生成復(fù)雜的邏輯攻擊圖。在此基礎(chǔ)上,對(duì)邏輯攻擊圖進(jìn)行聚合,得到更加容易理解的表現(xiàn)攻擊圖,如圖1所示。
在攻擊圖生成的基礎(chǔ)上,根據(jù)上一節(jié)設(shè)計(jì)的相關(guān)指標(biāo),計(jì)算每個(gè)漏洞的威脅值,得出最具威脅的可行攻擊路徑,把此路徑作為測(cè)試路徑。對(duì)于基于漏洞威脅值的測(cè)試路徑生成,該算法的基本步驟如圖2所示。
步驟1:反向深度優(yōu)先搜索攻擊圖,生成從目標(biāo)節(jié)點(diǎn)到初始節(jié)點(diǎn)的所有可能的攻擊路徑,組成集合。
步驟2:初始化最短集合,令其為空集,搜索中的最短路徑并加入集合。
步驟3:搜索并去掉中包含的路徑以形成中轉(zhuǎn)集合。如果判斷不為空,則中還有其他測(cè)試路徑可以達(dá)到目標(biāo)。令,重新計(jì)算新的最短路徑并將其添加到最小攻擊路徑集合。
步驟4:重復(fù)步驟3直至集合為空,此時(shí)集合即是最小攻擊路徑集合。
根據(jù)測(cè)試路徑,用XML語(yǔ)言描述測(cè)試序列。XML具有屬性靈活,易于描述復(fù)雜數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)。根據(jù)模型需要,為序列定義屬性:序列標(biāo)號(hào)、類型(目的)、攻擊機(jī)理、攻擊實(shí)施過(guò)程。所謂測(cè)試序列類似于攻擊活動(dòng)中的攻擊動(dòng)作,在執(zhí)行攻擊行動(dòng)之前需要對(duì)攻擊序列進(jìn)行分解,對(duì)每個(gè)攻擊動(dòng)作,漏洞庫(kù)中尋找對(duì)應(yīng)的攻擊腳本。
首先,對(duì)每個(gè)攻擊動(dòng)作,也就是每個(gè)漏洞做形式化描述。為每個(gè)漏洞定義屬性:CVE編號(hào)、攻擊腳本編號(hào)、漏洞成功利用后頁(yè)面顯示的輸出信息。與CNVD等漏洞庫(kù)相比,描述性的利用過(guò)程被轉(zhuǎn)換為特定的執(zhí)行腳本,成功時(shí)的輸出信息與對(duì)應(yīng)的漏洞進(jìn)行綁定。
下面是測(cè)試用例信息描述的XML模式:
3.2 基于黑盒測(cè)試的漏洞攻擊模擬
基于黑盒測(cè)試的漏洞攻擊模擬,結(jié)合滲透測(cè)試流程,攻擊者首先需要對(duì)目標(biāo)進(jìn)行網(wǎng)絡(luò)偵察,基于偵察結(jié)果,利用攻擊腳本執(zhí)行滲透操作?;景ㄈ齻€(gè)步驟。
第一,攻擊者基于工控協(xié)議對(duì)目標(biāo)進(jìn)行系統(tǒng)探測(cè),獲取系統(tǒng)的指紋信息和各種服務(wù)的版本信息。指紋信息包括設(shè)備的模塊類型、固件版本等設(shè)備識(shí)別信息。
第二,基于漏洞庫(kù),將探測(cè)信息與漏洞庫(kù)信息進(jìn)行數(shù)據(jù)比對(duì),探查該目標(biāo)系統(tǒng)已知的漏洞信息,并根據(jù)漏洞的可利用性展開(kāi)下一步工作。
第三,在獲知目標(biāo)系統(tǒng)漏洞后,利用漏洞腳本進(jìn)行攻擊。
工控系統(tǒng)與傳統(tǒng)網(wǎng)絡(luò)在特征上存在諸多區(qū)別,因此傳統(tǒng)網(wǎng)絡(luò)的探測(cè)方法無(wú)法有效探測(cè)出網(wǎng)絡(luò)中存在的工控設(shè)備,即使能夠探測(cè),在信息偵察的能力上也比較弱。因此,本文提出一種基于工控協(xié)議的工控設(shè)備系統(tǒng)探測(cè)方法。
工控系統(tǒng)探測(cè)的主要目標(biāo)是發(fā)現(xiàn)連接到傳統(tǒng)網(wǎng)絡(luò)中的常見(jiàn)工控設(shè)備及其信息,我們將其稱為指紋信息。指紋信息一般包括探測(cè)設(shè)備的模塊名、基礎(chǔ)硬件信息、版本、模塊類型、序列號(hào)、版權(quán)等。
工控系統(tǒng)常用協(xié)議包括Modbus、Ethernet、S7 Comm等協(xié)議,本文以S7 Comm協(xié)議為例介紹工控系統(tǒng)探測(cè)。
(1)S7通信協(xié)議分析
S7通信協(xié)議是Siemens專有協(xié)議,在Siemens S7系列的可編程邏輯控制器(PLC)之間運(yùn)行。它用于PLC編程,PLC之間的數(shù)據(jù)交換。如表6所示,S7協(xié)議是一種類似OSI七層模型的以太網(wǎng)通信協(xié)議。
S7協(xié)議包含在TPKT與COTP協(xié)議中,允許PDU(協(xié)議數(shù)據(jù)單元)通過(guò)TCP承載。TPKT,即應(yīng)用層數(shù)據(jù)傳輸協(xié)議,運(yùn)行于TCP之上來(lái)模擬ISO傳輸服務(wù)COTP。TPKT報(bào)文格式如圖3所示。COTP協(xié)議同TCP類似,都用來(lái)保證網(wǎng)絡(luò)可靠地傳輸用戶數(shù)據(jù)。區(qū)別在于TCP連續(xù)傳輸,因此TCP之上的協(xié)議需要自己添加數(shù)據(jù)邊界。而COTP將數(shù)據(jù)包從一個(gè)用戶傳輸?shù)搅硪粋€(gè)用戶,接收方將獲得與發(fā)送方傳輸?shù)財(cái)?shù)據(jù)邊界完全相同的數(shù)據(jù)邊界。COTP報(bào)文格式如圖4所示。S7 Comm數(shù)據(jù)作為COTP數(shù)據(jù)包的有效負(fù)載。第一個(gè)字節(jié)始終為0x32作為協(xié)議標(biāo)識(shí)符。
要建立與S7 PLC的連接,需要通過(guò)三個(gè)步驟:使用PLC地址,在TCP 102端口連接到PLC;COTP發(fā)起連接請(qǐng)求;在S7 Comm層上連接,用于協(xié)商S7 Comm的具體細(xì)節(jié)(PDU大?。?。
(2)設(shè)備指紋信息發(fā)掘
為了達(dá)到通過(guò)實(shí)際環(huán)境中的網(wǎng)絡(luò)消息識(shí)別工業(yè)控制設(shè)備的指紋信息的目的,有必要分析真實(shí)PLC的數(shù)據(jù)包。可以通過(guò)Shodan搜索到聯(lián)網(wǎng)設(shè)備,如圖5所示。
使用Nmap對(duì)Shodan上的公開(kāi)PLC發(fā)起掃描,Wireshark對(duì)報(bào)文進(jìn)行抓取。信息獲取流程報(bào)文如圖6所示。
讀取寄存器信息(組件標(biāo)識(shí)讀?。﹫?bào)文詳細(xì)結(jié)果如圖7所示。
(3)針對(duì)工控系統(tǒng)的指紋獲取
根據(jù)主機(jī)和PLC之間的交互過(guò)程,在數(shù)據(jù)包捕獲分析之后,通過(guò)腳本模擬組態(tài)軟件與PLC之間的通信流程。該腳本實(shí)現(xiàn)S7連接的建立,發(fā)送設(shè)備標(biāo)識(shí)和組件標(biāo)識(shí)信息以讀取數(shù)據(jù)包,并解析PLC以返回報(bào)文。
1) 根據(jù)TPKT和COTP協(xié)議的幀結(jié)構(gòu)構(gòu)造S7協(xié)議數(shù)據(jù)包。
2)啟動(dòng)捕獲數(shù)據(jù)包線程,用于捕獲網(wǎng)絡(luò)中的數(shù)據(jù)包。
3)通過(guò)S7協(xié)議(TCP/102)建立TCP Ocket連接。
4)協(xié)商Source TSAP和Destination TASP。
5)建立S7協(xié)議連接。
6)發(fā)送S7請(qǐng)求查詢數(shù)據(jù)包。
7)提取Ethernet Type為0x0800的回復(fù)數(shù)據(jù)包(S7報(bào)文)。
8)根據(jù)S7協(xié)議的幀結(jié)構(gòu)分析提取的數(shù)據(jù)包,并提取所需的工業(yè)控制設(shè)備信息。
4 實(shí)驗(yàn)驗(yàn)證
4.1 實(shí)驗(yàn)1
在已知現(xiàn)實(shí)環(huán)境拓?fù)浜吐┒葱畔⒌那疤嵯?,采用基于漏洞威脅的測(cè)試路徑生成算法找出測(cè)試路徑,并依托路徑實(shí)現(xiàn)某些攻擊。文中實(shí)驗(yàn)的網(wǎng)絡(luò)拓?fù)漕愃莆墨I(xiàn)[10]的實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)?,如圖8所示。拓?fù)浒鶄€(gè)組件,每個(gè)組件中包含的漏洞信息如表7所示。
(1)測(cè)試路徑生成
1)漏洞攻擊期望計(jì)算
根據(jù)公式1,求解漏洞全局利用率和漏洞全局危害性。
① 求解漏洞全局利用率
根據(jù)漏洞全局利用率的求解過(guò)程,因?yàn)橥負(fù)浒?個(gè)組件,因此算法中n=6。
由此計(jì)算出漏洞的關(guān)聯(lián)系數(shù)矩陣為
其中橫軸表示漏洞編號(hào),縱軸表示各指標(biāo)的關(guān)聯(lián)系數(shù)。
根據(jù)表8漏洞全局利用率指標(biāo)量化和關(guān)聯(lián)度的計(jì)算公式求解出每個(gè)漏洞的漏洞全局利用率,如表9所示。表中的漏洞關(guān)聯(lián)度即為漏洞全局利用率值。
② 求解漏洞全局危害性
如表10所示,根據(jù)設(shè)備的資產(chǎn)價(jià)值、可支配權(quán)值以及漏洞利用方式影響系數(shù)對(duì)利用漏洞造成的物理?yè)p失進(jìn)行計(jì)算。
同樣,采用灰色關(guān)聯(lián)分析方法,相應(yīng)權(quán)重分別為0.7和0.3,可以得到漏洞危害性的關(guān)聯(lián)度,如表12所示。
根據(jù)漏洞全局利用率和漏洞危害性的量化值,得到每個(gè)漏洞的攻擊期望,如表13所示。
結(jié)合拓?fù)浣Y(jié)構(gòu),輸出攻擊圖,如圖10所示,圖中頂部的雙圓圈表示攻擊者,底部的雙圓圈表示攻擊目標(biāo),圓內(nèi)標(biāo)識(shí)代表組件,邊上的信息表示可利用的漏洞以及漏洞的攻擊期望。由此,可計(jì)算出每個(gè)路徑的總攻擊期望,其被定義為攻擊路徑上預(yù)期的每個(gè)漏洞攻擊期望總和,結(jié)果如表14所示。
從表15中可以看出h5的可利用漏洞評(píng)分更高,但是從攻擊全局來(lái)看,評(píng)分高的漏洞不一定適合去攻擊。因此,單憑單個(gè)漏洞不能對(duì)組件的脆弱性進(jìn)行比較。CVE-2013-3175對(duì)應(yīng)的Wincc控制組件,該組件的攻擊期望最高,這也與事實(shí)相符,該漏洞最易被利用且威力巨大,如震網(wǎng)病毒。
(2)測(cè)試序列生成
從上面可知,編號(hào)為2的攻擊路徑攻擊期望最高,因此選擇作為測(cè)試路徑?;诖藴y(cè)試路徑生成測(cè)試序列,如圖11所示。
(3)模擬攻擊
測(cè)試序列生成后,模擬系統(tǒng)根據(jù)序列調(diào)用腳本進(jìn)行滲透攻擊。本文以漏洞CVE-2014-1776為例,演示該漏洞的腳本攻擊。CVE-2014-1776是一種零日漏洞,主要影響Internet Explorer 6 - Internet Explorer 11。該漏洞允許攻擊者繞過(guò)ASLR(Address Space Layout Randomization,緩沖區(qū)溢出保護(hù)機(jī)制)和DEP(Data Execution Prevention,數(shù)據(jù)執(zhí)行保護(hù)),執(zhí)行任意代碼或?qū)е翫oS攻擊。如圖12所示,通過(guò)抓包發(fā)現(xiàn),此時(shí)的網(wǎng)絡(luò)已經(jīng)崩潰。
4.2 實(shí)驗(yàn)2
為了能在真實(shí)環(huán)境中通過(guò)網(wǎng)絡(luò)報(bào)文達(dá)到工控設(shè)備指紋識(shí)別的目的,因此實(shí)驗(yàn)環(huán)境也需要真實(shí)的基本網(wǎng)絡(luò)拓?fù)?,圖13顯示了用戶和PLC之間的最簡(jiǎn)連接關(guān)系圖。在一般場(chǎng)景中,用戶可以選擇工程師站,PLC選擇通用PLC類型。例如,工程師組態(tài)軟件Step7和Siemens SL300。通過(guò)組態(tài)軟件監(jiān)控和查看組網(wǎng)中PLC設(shè)備的流程,抓取設(shè)備信息報(bào)文,分析協(xié)議。本文采用的PLC為Shodan上公開(kāi)PLC。
(1)工控設(shè)備系統(tǒng)探測(cè)
通過(guò)對(duì)PLC通信報(bào)文的抓取和分析,實(shí)現(xiàn)了腳本測(cè)試組態(tài)軟件和PLC通信流程,實(shí)現(xiàn)了基于S7協(xié)議的連接,發(fā)送設(shè)備ID和組件標(biāo)識(shí)信息以讀取報(bào)文,并解析PLC返回?cái)?shù)據(jù)包。腳本的目標(biāo)IP為104.250.125.*和217.112.105.*的工控設(shè)備結(jié)果如圖14和圖15所示。
將探測(cè)結(jié)果與Nmap探測(cè)結(jié)果(如圖16和圖17)對(duì)比,如表16所示。
表中的結(jié)果對(duì)比縱向說(shuō)明了基于工控協(xié)議的系統(tǒng)探測(cè)充分利用工控協(xié)議基于特征碼的狀態(tài)轉(zhuǎn)移(請(qǐng)求和響應(yīng)),構(gòu)建特征碼的請(qǐng)求數(shù)據(jù)包可以最大限度地提高工控目標(biāo)的探測(cè)深度。
(2)模擬攻擊
西門子、施耐德的多款PLC設(shè)備軟件搭載在VxWorks操作系統(tǒng)上。VxWorks是非常有名的嵌入式實(shí)時(shí)操作系統(tǒng),已被應(yīng)用在Mars火星車和C-130飛機(jī)上,但是VxWorks還是存在嚴(yán)重的缺陷。例如,VxWorks的調(diào)試功能使得攻擊者可以完全訪問(wèn)設(shè)備,包括操作內(nèi)存、竊取數(shù)據(jù)乃至劫持整個(gè)操作系統(tǒng);還有VxWorks操作系統(tǒng)存在弱哈希密碼,在對(duì)Telnet和FTP進(jìn)行身份驗(yàn)證時(shí),使用暴力破解的方式,可以獲得VxWorks設(shè)備的訪問(wèn)權(quán)限。因此,本文模擬在獲取設(shè)備為西門子產(chǎn)品時(shí),針對(duì)操作系統(tǒng)VxWorks的攻擊。此攻擊為拒絕服務(wù)攻擊,主要針對(duì)5.x版本,該版本的系統(tǒng)在短時(shí)間內(nèi)接收大量的網(wǎng)絡(luò)數(shù)據(jù)包時(shí),會(huì)造成網(wǎng)絡(luò)崩潰,導(dǎo)致VxWorks無(wú)法再與外界主機(jī)通信,結(jié)果如圖18所示。
5 結(jié)束語(yǔ)
針對(duì)當(dāng)前面向工業(yè)控制系統(tǒng)攻擊測(cè)試模擬相關(guān)研究較少的情況,本文設(shè)計(jì)一種面向工業(yè)控制系統(tǒng)的攻擊測(cè)試模擬方法。首先,設(shè)計(jì)了一種基于灰色關(guān)聯(lián)分析的工控漏洞期望求解方法,該方法可以有效地對(duì)單步攻擊的脆弱性進(jìn)行評(píng)估。通過(guò)關(guān)聯(lián)分析對(duì)評(píng)價(jià)因子的指標(biāo)進(jìn)行關(guān)聯(lián),定量地評(píng)估脆弱性影響因子,求解出單步攻擊期望實(shí)驗(yàn)結(jié)果表明,該工具能有效針對(duì)工控系統(tǒng)進(jìn)行脆弱性分析、系統(tǒng)探測(cè)和攻擊測(cè)試,且結(jié)構(gòu)簡(jiǎn)明、易于拓展。其次,設(shè)計(jì)了基于白盒測(cè)試的漏洞攻擊模擬和基于黑盒測(cè)試的漏洞攻擊模擬。實(shí)驗(yàn)結(jié)果表明,本方法適用于工控系統(tǒng)的漏洞攻擊測(cè)試模擬。
參考文獻(xiàn)
[1] M. J. Mack. Security and Threat Analysis of Industrial Control Systems and Applicable Solutions[D]. Order No. 10810754, Utica College, Ann Arbor, 2018.
[2] Dave McMillen. Attacks Targeting Industrial Control Systems (ICS) Up 110 Percent[EB/OL]. https://securityintelligence.com/attacks-targeting-industrial-control-systems-ics-up-110-percent/,2016-12-27.
[3] Kelly Sheridan. Take (Industrial) Control: A Look at the 2018 ICS Threat Landscape[EB/OL]. https://www.darkreading.com/risk/take-(industrial)-control-a-look-at-the-2018-ics-threat-landscape/d/d-id/1332754,2018-9-6.
[4] N. Falliere, L. OMurchu and E. Chien. W32.Stuxnet Dossier, Symantec, Mountain View, California[EB/OL]. www.symantec.com/content/en/us/enterprise /media/security response/whitepapers/w32 stuxnet dossier.pdf, 2011.
[5] Morris T , Gao W . Industrial Control System Cyber Attacks[C]. International Symposium on Ics & Scada Cyber Security Research. BCS, 2013.
[6] Sener E,Davraz A.Assessment of groundwater vulnerability based on a modified DRASTIC model,GIS and an analytic hierarchy process(AHP) method:the case of Egirdir Lake basin(Isparta,Turkey).Hydrogeology Journal,2013,21(3):701-714.
[7] Formby D, Srinivasan P, Leonard A, et al. Who's in Control of Your Control System? Device Fingerprinting for Cyber-Physical Systems[C]. Network and Distributed System Security Symposium. 2016.
[8] Amin S, Litrico X, Sastry S S, et al. Stealthy deception attacks on water SCADA systems[C]. ACM International Conference on Hybrid Systems: Computation and Control. ACM, 2010:161-170.
[9] Huang Y L, Cárdenas A A, Amin S, et al. Understanding the physical and economic consequences of attacks on control systems[J]. International Journal of Critical Infrastructure Protection, 2009, 2(3):73-83.
[10] Teixeira A, Amin S, Sandberg H, et al. Cyber security analysis of state estimators in electric power systems[C]. Decision and Control. IEEE, 2012:5991-5998.
[11] Berhe A B , Kim K H , Tizazu G A . [IEEE 2017 Ninth International Conference on Ubiquitous and Future Networks (ICUFN) - Milan, Italy (2017.7.4-2017.7.7)] 2017 Ninth International Conference on Ubiquitous and Future Networks (ICUFN) - Industrial control system security framework for ethiopia[J]. 2017:814-817.
[12] Ritchey, R.W. & Ammann, P. Using model checking to analyze network vulnerabilities. In Proceedings of the IEEE Symposium on Security and Privacy. Washington, DC, USA: IEEE Computer Society, 2000:156-165.
[13] CVSS v2.0.[EB/OL]. https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator?calculator, 2018.