黃旭 梁效寧
摘要:隨著工業(yè)化和信息化的融合,傳統(tǒng)信息網(wǎng)絡的攻擊在工控網(wǎng)絡也愈發(fā)頻繁,尤其工業(yè)控制網(wǎng)絡的使用專用的工控協(xié)議如Modbus,S7,profine等,這些協(xié)議在設計的時候一般只考慮功能,缺乏安全驗證,所以通信數(shù)據(jù)容易被攔截,甚至篡改,影響工控網(wǎng)絡安全。在遭遇攻擊以后,使用傳統(tǒng)的電子取證方法面臨協(xié)議無法解析,且攻擊日志保留難等問題。在研究西門子S7協(xié)議重放攻擊基礎上,結合實際工作環(huán)境,提出了一種工控網(wǎng)絡協(xié)議電子取證方法,根據(jù)實際工作環(huán)境的設備數(shù)據(jù)信息,建立安全模型,通過安全模型建立正常通信安全基線,所有的通信協(xié)議通過攔截設備進行過濾,通信數(shù)據(jù)和安全基線對比,和安全基線不一致的則認定為篡改,攔截設備則發(fā)出告警信息,同時通信數(shù)據(jù)被攔截,所有的過濾和攔截數(shù)據(jù)和分析過程都會被作為日志記錄。經(jīng)實驗證明,該方法可以有效檢測通信數(shù)據(jù)是否被篡改,所有的過濾和攔截數(shù)據(jù)都被有效分析并記錄,對于電子取證起到了良好的幫助作用。
關鍵詞:電子取證;協(xié)議解析;工控網(wǎng)絡;工控協(xié)議;S7;重放攻擊
1.背景
工業(yè)控制系統(tǒng)廣泛用于冶金、電力、石油石化、核能等工業(yè)生產(chǎn)領域,以及航空、鐵路、公路、地鐵等公共服務領域,是國家關鍵生產(chǎn)設施和基礎設施運行的“中樞”。從工業(yè)控制系統(tǒng)自身來看,隨著計算機和網(wǎng)絡技術的發(fā)展,尤其是信息化與工業(yè)化深度融合,工業(yè)控制系統(tǒng)越來越多地采用通用協(xié)議、通用硬件和通用軟件,通過互聯(lián)網(wǎng)等公共網(wǎng)絡連接的業(yè)務系統(tǒng)也越來越普遍,這使得針對工業(yè)控制系統(tǒng)的攻擊行為大幅度增長,也使得工業(yè)控制系統(tǒng)的脆弱性正在逐漸顯現(xiàn),面臨的信息安全問題日益突出。2010 年的“震網(wǎng)”病毒、 2012 年的超級病毒“火焰”、 2014 年的 Havex 病毒等等專門針對工業(yè)控制系統(tǒng)的病毒爆發(fā)給用戶帶來了巨大損失,同時直接或間接地威脅到國家安全。2015 年發(fā)生的烏克蘭電力遭受攻擊事件看到,在不需要利用復雜攻擊手段、不需要完整還原業(yè)務系統(tǒng)運行過程的情況下,就可以達到對工控系統(tǒng)的運行影響。從實際的攻擊過程看,攻擊的成本在降低,而攻擊所帶來的影響在進一步加重。
2.電子取證
電子取證一直以在公檢法等政府部門、知識產(chǎn)權機構、數(shù)據(jù)服務機構、情報分析機構和企業(yè)網(wǎng)絡安全部門等發(fā)揮著巨大作用。隨著工業(yè)化和信息化的融合,傳統(tǒng)信息網(wǎng)絡的攻擊在工控網(wǎng)絡也愈發(fā)頻繁,工控網(wǎng)絡也需要進行電子取證,通過網(wǎng)絡狀態(tài)和數(shù)據(jù)包分析,日志文件分析,文件內容調查,使用痕跡調查等分析,發(fā)現(xiàn)入侵的行為和動作,以便采取相應的應對措施。
但是,工控網(wǎng)絡和傳統(tǒng)信息網(wǎng)絡有著巨大的區(qū)別,表現(xiàn)之一就是公開網(wǎng)絡采用專有通信協(xié)議,這些協(xié)議很多并不公開協(xié)議內容,常規(guī)的取證方法無法分析協(xié)議包數(shù)據(jù)。同時,由于工業(yè)控制網(wǎng)絡的使用專用的工控協(xié)議如Modbus,S7,profine等,這些協(xié)議在設計的時候一般只考慮功能,缺乏安全驗證,所以通信數(shù)據(jù)容易被攔截,甚至篡改,影響工控網(wǎng)絡安全,這些協(xié)議的執(zhí)行一般是通過上位機向下位機下發(fā)執(zhí)行指令,日志記錄在上位機日志中,下位機日志記錄簡單,無法提供取證完整的技術支撐。
針對這種困難,在研究西門子S7協(xié)議重放攻擊基礎上,結合實際工作環(huán)境,提出了一種工控網(wǎng)絡被攻擊時的電子取證方法,根據(jù)實際工作環(huán)境的設備數(shù)據(jù)信息,建立數(shù)據(jù)安全模型,通過數(shù)據(jù)安全模型建立正常通信安全基線,所有的通信協(xié)議從上位機發(fā)送下位機時必須通過攔截設備進行過濾,通信數(shù)據(jù)和安全基線對比,和安全基線不一致的則認定為異常篡改,攔截設備發(fā)出告警信息,同時通信數(shù)據(jù)被攔截,所有的過濾和攔截數(shù)據(jù)和分析過程都會被作為日志被記錄。經(jīng)實驗證明,該方法可以有效檢測通信數(shù)據(jù)是否被篡改,所有的過濾和攔截數(shù)據(jù)都被有效分析并記錄,記錄的日志是經(jīng)過解析的可以閱讀的內容,電子取證可以直接使用,這對于工控網(wǎng)絡攻擊時的快速安全的電子取證起到了良好的幫助作用。
3.工控協(xié)議分析
3.1.基本功能分析
S7 協(xié)議是西門子專有協(xié)議,廣泛用于各種通訊服務,S7 協(xié)議獨立于西門子各種通訊總線,可以在 MPI,PROFIBUS,Ethernet ,PROFINET上運行。S7協(xié)議是西門子的私有協(xié)議,不對外公開,我們通過PLC通信過程的偵聽來分析S7協(xié)議的實現(xiàn)。
通過分析,我們得到了S7協(xié)議的通信過程,數(shù)據(jù)讀取分為三個步驟:
PLC和應用程序通過TCP三次握手,建立連接關系;
通過PCL 和客戶應用程序通過RFC1006 建立連接請求和應答關系;
PLC使用S7協(xié)議和應用程序S7協(xié)議之間建立請求應答關系;
重復第三步,直至數(shù)據(jù)讀取過程結束。
協(xié)議字段解釋如下:
請求應答:0x1為發(fā)送命令,0x3為應答幀。
保留:保留,填充為0。
事務處理標識:請求、應答事務標識。
命令長度:幀長度。
保留:保留,填充為0。
命令符:0x4 位讀取命令,0x5位寫命令。
讀取數(shù)據(jù)段數(shù):讀取數(shù)據(jù)段的個數(shù)。
讀取數(shù)據(jù)段命令域:讀取多個不連續(xù)的數(shù)據(jù)時,該部分可以重復出現(xiàn)。
命令域字段標識頭:讀取數(shù)據(jù)段命令域的標識頭。
命令域字段長度:命令域字段的長度。
未知:通常為0x10,暫不清楚具體含義。
數(shù)據(jù)類型:0x1bit,0x2 byte,0x4位float。
讀取字節(jié):讀取字節(jié)的長度。
數(shù)據(jù)塊編號:讀取數(shù)據(jù)塊編號,I、Q、M等區(qū)為0。
寄存器類型:讀取寄存器類型。
偏移地址:開始讀取量的偏移地址,按bit計算。
數(shù)據(jù)段:根據(jù)讀取不聯(lián)系的地址命令,一個應答幀可以包含過個讀取的數(shù)據(jù)段。其中,標示頭為 XFF,有效性標示該數(shù)據(jù)段數(shù)據(jù)的有效性,數(shù)據(jù)長度為返回的數(shù)據(jù)長度,子數(shù)據(jù)段數(shù)據(jù)為返回的數(shù)據(jù)。
3.2.安全性分析
S7是典型的工控網(wǎng)絡協(xié)議,研究其安全性對于加強工業(yè)控制網(wǎng)絡安全有重要意義。經(jīng)過分析可知,S7存在如下安全問題。
???? 缺少認證
認證的目的是保證收到的信息來自于合法的用戶,未認證的用戶向設備發(fā)送命令不會被執(zhí)行。在S7的通信過程中,沒有任何認證方面的相關定義,任何人只要找到一個合法地址即可使用功能碼建立S7通信會話,從而擾亂控制過程。
???? 缺少授權
授權是保證不同的特權操作由擁有不同權限的認證用戶來完成,這樣可以降低誤操作與內部攻擊的概率。任意用戶可以執(zhí)行任意功能,如PLC啟停,程序上載,后門植入等。
???? 缺少加密
加密可以保證通信過程中雙方的信息不被第三方非法獲取。在S7通信過程中,地址和命令全部采用明文傳輸,所以可以很容易被攻擊者捕獲和解析,然后篡改報文,發(fā)送出去,從而影響控制過程。截取的非加密數(shù)據(jù)如圖1所示:
4.安全防護研究
4.1.風險攻擊分析
???? 病毒和蠕蟲
西門子的PLC通信端口都是102端口,所以病毒和蠕蟲可以通過不定時掃描102端口,通過發(fā)送獲取cpu信息的數(shù)據(jù)包對PLC的類型進行判斷,然后加載適合的payload程序。可以發(fā)送已經(jīng)編寫好的程序程序控制PLC,比如停止PLC工作,清空plc程序,在DB中寫入垃圾指令等;還可以通過FB塊TCON、TDISCON、TSEND、TRCV模塊進行PLC之間的傳播感染。
???? 重放攻擊
通過抓包截取PLC和應用程序之間的通信數(shù)據(jù),即從開始連接到結束連接這一段的數(shù)據(jù)包,然后記錄,修改再進行重新發(fā)送,因為S7協(xié)議缺少認證授權及加密特性,重放被攻擊者經(jīng)常使用。
4.2.安全防護流程
為了避免S7協(xié)議的篡改風險,保護通信環(huán)境安全,針對工控環(huán)境通信流量相對單一,上位機和PLC通信模型相對固定,經(jīng)過分析實際環(huán)境使用的機械手的部件抓手、貨物、吊臂和板車的關系,本文提出一種工控網(wǎng)絡協(xié)議攔截保護方法,基本思路就是通過分析上位機和PLC的通信流量,建立通信關系模型,形成安全基線。上位機和下位機的通信數(shù)據(jù)都需要經(jīng)過通信模型驗證過濾,通信數(shù)據(jù)和安全基線對比,和安全基線不一致的則認定為篡改,攔截設備則發(fā)出告警信息,同時通信數(shù)據(jù)被攔截。
在實際PLC使用過程中,正常狀態(tài)下,通過設置貨物的X,Y坐標,吊臂的X坐標,抓手X,Y坐標,板車X坐標的值,可以通過機械手把貨物放在板車上。
4.3.安全防護實驗驗證
根據(jù)模型的算法,我們設計了三組實驗來驗證。
(1)正常未篡改實驗
實驗所用相關數(shù)據(jù)表1所示:
實驗過程中對數(shù)據(jù)抓包,抓包數(shù)據(jù)如圖2所示:
從效果圖可以看出,滿足安全基線的數(shù)據(jù),,板車、貨物、吊臂、抓手關系顯示正常,且貨物被正確放在板車上如圖3所示:
(2)未攔截的篡改實驗
實驗所用相關數(shù)據(jù)表2所示:
實驗過程中對數(shù)據(jù)抓包,抓包數(shù)據(jù)如圖3所示:
效果圖如圖4所示,從圖中可以看出,貨物半掉在空中,這很顯然不符合常規(guī),篡改成功,也就是說重放攻擊成功。
(3)攔截的篡改實驗
實驗所用相關數(shù)據(jù)表3所示:
5.總結
基于西門子S7協(xié)議的特點,本文對針對S7重放攻擊威脅進行了研究,并結合實際工控網(wǎng)絡環(huán)境,提出了攔截算法并做實驗進行驗證,在攔截的過程中實現(xiàn)電子取證的功能,實驗結果表明,該算法能有效地攔截針對S7的篡改攻擊,同時保證了電子取證的有效性,不僅可以有效的保護工控網(wǎng)絡環(huán)境的安全還可以對電子取證做出有效幫助。
參考文獻
[1]馬多賀.基于POF的網(wǎng)絡竊聽攻擊移動目標防御方法[J],通信學報,2018,39(2):1-15
[2]姚羽.工業(yè)控制網(wǎng)絡安全技術與實踐[M].機械工業(yè)出版社,2017:100-110
[3]房強.一種單獨運行在PLC中的蠕蟲病毒研究[J],信息安全與通信保密,2016(9):46-47.