• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      西門子SCADA網(wǎng)絡(luò)場景指紋自提取及異常檢測

      2017-10-13 20:09:31周安民
      關(guān)鍵詞:工控數(shù)據(jù)包指紋

      ◆何 鋼 周安民

      ?

      西門子SCADA網(wǎng)絡(luò)場景指紋自提取及異常檢測

      ◆何 鋼 周安民

      (四川大學(xué)電子信息學(xué)院 四川 610065)

      本文針對Supervisory Control And Data Acquisition(SCADA)系統(tǒng)中廣泛使用的S7協(xié)議 ,在有限狀態(tài)機(DFA)模型的基礎(chǔ)上提出了SCADA網(wǎng)絡(luò)場景指紋的方法,結(jié)合圖論的中鄰接矩陣的概念,實現(xiàn)了SCADA網(wǎng)絡(luò)場景指紋的自提取,并利用該方法對工控系統(tǒng)SCADA網(wǎng)絡(luò)實時數(shù)據(jù)進行監(jiān)測,該方法減少了大量的人工分析并有效的提升了SCADA系統(tǒng)的安全性。

      S7協(xié)議;場景指紋;自提??;安全

      0 引言

      SCADA系統(tǒng),即數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)。廣泛應(yīng)用于工業(yè)生產(chǎn)的各個領(lǐng)域,例如電力、冶金、石油、水利、化工、燃氣、鐵路等,對現(xiàn)代工業(yè)的生產(chǎn)起著至關(guān)重要的作用。SCADA系統(tǒng)主要包括HMI(人機界面)、PLC(可編程邏輯控制器組成)和RTU(遠程控制終端)。其中,數(shù)據(jù)采集由RTU或PLC負責,包括讀取感測器數(shù)據(jù)、根據(jù)SCADA系統(tǒng)需求發(fā)送設(shè)備的狀態(tài)報告。控制室中的操作員采用HMI了解系統(tǒng)狀態(tài),并決定是否要對PLC或RTU進行控制。

      很多SCADA系統(tǒng)存在安全性方面的不足,如沒有針對惡意攻擊的檢測、網(wǎng)絡(luò)沒有認證機制、所有數(shù)據(jù)傳輸都是明文。目前,對SCADA系統(tǒng)網(wǎng)絡(luò)進行異常檢測是非常必要的。西門子的SCADA系統(tǒng)作為全球應(yīng)用最廣泛的SCADA系統(tǒng)之一,對其進行異常檢測的研究也是眾多研究熱點之一。

      SCADA系統(tǒng)網(wǎng)絡(luò)是由多個HMI-PLC網(wǎng)絡(luò)組成的。Goldenberg[1-3]和Wool[1-3]在2013年和2015年針對Modbus和S7 SCADA網(wǎng)絡(luò)分別提出了基于DFA的入侵檢測模型。但是其模型基于的是Modbus和S7協(xié)議的高度周期特性。本文通過對S7 SCADA網(wǎng)絡(luò)進行分析,發(fā)現(xiàn)在HMI與PLC通信中,S7協(xié)議并沒有保持高度周期特性,因此,針對S7協(xié)議應(yīng)用層數(shù)據(jù),在DFA模型的基礎(chǔ)上提出場景指紋的概念,為每一個HMI-PLC的數(shù)據(jù)交互建立場景指紋,實現(xiàn)了場景指紋的自提取,并利用場景指紋成功檢測出SCADA網(wǎng)絡(luò)異常。

      1 S7協(xié)議

      1.1 數(shù)據(jù)采集

      本文的數(shù)據(jù)來自西門子工控實驗平臺。圖1為西門子工控實驗平臺網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖。整個系統(tǒng)仿真了發(fā)電廠的發(fā)電過程。現(xiàn)場工控層包含一臺工程師站、一臺操作員站和一臺實時服務(wù)器,其中,工程師站主要對PLC進行程序編寫下載,操作員站和實時服務(wù)器安裝了西門子HMI軟件,用于監(jiān)控現(xiàn)場設(shè)備層;現(xiàn)場設(shè)備層包含了兩臺S7-200和一臺S7-300,S7-200控制蜂鳴器報警系統(tǒng),S7-300控制電機轉(zhuǎn)速,從而實現(xiàn)發(fā)電的功能?,F(xiàn)場控制層和現(xiàn)場設(shè)備層通過核心交換機相互連接。利用Tcpdump的網(wǎng)絡(luò)嗅探能力在核心交換機處采集工控系統(tǒng)HMI與PLC實時交互數(shù)據(jù),并保存成PCAP文件。

      圖1 西門子工控實驗平臺網(wǎng)絡(luò)托補圖

      1.2 S7協(xié)議數(shù)據(jù)內(nèi)部結(jié)構(gòu)

      工業(yè)控制網(wǎng)絡(luò)的托補結(jié)構(gòu)相對靜態(tài),其通信模式具有規(guī)律的特性。其中,S7協(xié)議集是西門子SCADA系統(tǒng)網(wǎng)絡(luò)的專有協(xié)議。在西門子SCADA系統(tǒng)網(wǎng)絡(luò)中,S7協(xié)議根據(jù)作用可分為兩大類,第一類是由HMI組態(tài)過程中與PLC協(xié)商的由PLC定時發(fā)送給HMI組態(tài)軟件的工控現(xiàn)場實時數(shù)據(jù);第二類是由HMI發(fā)送給PLC,對工控現(xiàn)場進行控制的實時數(shù)據(jù)。兩類數(shù)據(jù)的可通過S7協(xié)議的ROSCTR字段不同的值進行劃分。第一類數(shù)據(jù)ROSCTR固定值為0x07,第二類數(shù)據(jù)ROSCTR的值為0x01和0x03。通常針對SCADA網(wǎng)絡(luò)的攻擊都是通過獲取上位機權(quán)限控制PLC[6],因此,本文只針對第二類數(shù)據(jù)進行分析研究。通過Wireshark軟件分析,可得到S7協(xié)議數(shù)據(jù)包內(nèi)部數(shù)據(jù)結(jié)構(gòu),如圖2所示。

      圖2 S7 協(xié)議數(shù)據(jù)包結(jié)構(gòu)

      S7 PDU由Header、Parameter和Data三部分組成。其中Data字段是可選的。S7 PDU的Header部分主要由以下幾個字段組成:

      (1)Protocol Id,值固定為0x32;

      (2) ROSCTR(Remote Operating Service Control),通常取值為0x01(job)、0x02(acknowledge)、0x03(ack_data)、0x07(userdata)或者0x08(request server control);

      (3)Protocol Data Unit Reference,主要用來同步j(luò)ob和ack_data;Data Length,Data部分字節(jié)長度Parameter Length,Parameter部分字節(jié)長度。

      因為在S7協(xié)議應(yīng)用層中,Protocol Data Unit Reference字段隨著時間遞增。因此,定義S7協(xié)議數(shù)據(jù)包特征為S7協(xié)議應(yīng)用層除了Protocol Data Unit Reference字段以外的所有數(shù)據(jù)集合。

      1.3 S7協(xié)議特性分析

      圖3以時間為橫軸,10s為刻度,顯示了HMI與PLC之間數(shù)據(jù)交互每10秒通信字節(jié)數(shù)的變化圖。圖中可以觀察到HMI與PLC之間數(shù)據(jù)通信并沒有遵循高度周期性,通信流量在兩個值之間變化。其原因是HMI與PLC之間的數(shù)據(jù)交互是由HMI中的腳本控制,一個HMI上可以運行多個腳本。根據(jù)工藝場景的需要,多個腳本之間運行周期可能不一致,導(dǎo)致了HMI與PLC之間數(shù)據(jù)交互并不遵循高度周期特性。

      圖3 S7協(xié)議數(shù)據(jù)IO圖

      為進一步確認S7協(xié)議在HMI與PLC之間交互時的非周期性,針對S7協(xié)議應(yīng)用層數(shù)據(jù)觀察分析。圖4以包序號為橫軸,每一個數(shù)據(jù)包S7協(xié)議特征集合為縱軸,說明了一段時間內(nèi)HMI與PLC之間通信時每個數(shù)據(jù)包中S7協(xié)議特征集合的變化。圖5以包序號為橫軸,HMI與PLC之間通信數(shù)據(jù)包類別個數(shù)為縱軸,說明了一段時間內(nèi)HMI與PLC之間通信數(shù)據(jù)包類別個數(shù)的變化情況。圖4和圖5說明了在HMI與PLC數(shù)據(jù)交互過程中,S7協(xié)議特征集合沒有遵循高度周期性,并且通信數(shù)據(jù)只在這有限個數(shù)據(jù)包之間來回變動。

      圖4 S7應(yīng)用層數(shù)據(jù)絡(luò)變化趨勢圖

      圖5 數(shù)據(jù)包類別變化圖

      2 場景指紋

      2.1 場景指紋定義

      為了將DFA應(yīng)用于S7協(xié)議,對DFA進行優(yōu)化,提出了場景指紋的概念。場景指紋中規(guī)定了以下兩點:

      (1)場景指紋中一個狀態(tài)表示一個S7數(shù)據(jù)包,其中,一個狀態(tài)定義為S7協(xié)議應(yīng)用層中除Protocol Data Unit Reference字段以外所有數(shù)據(jù)的集合;

      (2)為了應(yīng)用場景指紋達到檢測異常的目的,不限定場景指紋能夠接收的狀態(tài)集合。

      為了場景指紋能夠更好的表示SCADA網(wǎng)絡(luò)中數(shù)據(jù)交互情況。將場景指紋定義為一個六元組。其中,為每一個的有限個狀態(tài)集合;為有限個符號集合,即對于每一個狀態(tài)的定義,在場景指紋中為S7協(xié)議應(yīng)用層除了Protocol Data Unit Reference字段以外的所有數(shù)據(jù)集合;為狀態(tài)轉(zhuǎn)移函數(shù);為初始狀態(tài);為當前狀態(tài);為每個狀態(tài)的經(jīng)過狀態(tài)轉(zhuǎn)移作用后的輸出狀態(tài)集合。

      2.2 狀態(tài)轉(zhuǎn)移函數(shù)

      當場景指紋中當前狀態(tài)接收到一個輸入信號后,狀態(tài)轉(zhuǎn)移函數(shù)根據(jù)輸入信號的特征將當前狀態(tài)轉(zhuǎn)變到目的狀態(tài)。以下定義了Normal,Retrans,MissTrans,Unknown四種狀態(tài)轉(zhuǎn)移函數(shù),在場景指紋運行的過程中,通過不同的狀態(tài)轉(zhuǎn)移函數(shù)被觸發(fā),能夠判斷當前S7協(xié)議數(shù)據(jù)包是否是正常數(shù)據(jù)。假設(shè)場景指紋的當前狀態(tài)為,輸入信號為,目的狀態(tài)為:

      3 場景指紋自提取

      Python的Scapy是一款功能強大的交互式數(shù)據(jù)包處理程序,不僅可以用來發(fā)送、嗅探、解析和構(gòu)造網(wǎng)絡(luò)數(shù)據(jù)包,還能解析網(wǎng)絡(luò)數(shù)據(jù)包文件,提取有用信息。通過Scapy庫強大的功能將PCAP文件處理,并為HMI-PLC建立場景指紋。場景指紋的自提取過程如下:

      (1)采集數(shù)據(jù)

      首先利用Tcpdump或者Wireshark等工具獲取西門子SCADA網(wǎng)絡(luò)中HMI與PLC之間的交互數(shù)據(jù),以PCAP文件形式進行保存,并且保證該PCAP文件中沒有異常數(shù)據(jù),數(shù)據(jù)交互情況能夠完整描述整個HMI與PLC之間的工業(yè)控制過程。

      (2)生成順序列表

      提取PCAP文件中的所有S7協(xié)議應(yīng)用層數(shù)據(jù),并剔除掉其中的Protocol Data Unit Reference字段,然后按照PCAP文件中的數(shù)據(jù)包序號順序,生成順序列表。

      (3)構(gòu)建鄰接矩陣

      遍歷順序列表,對其中的數(shù)據(jù)種類進行計數(shù),假設(shè)計數(shù)為N類,即表明該信道的場景指紋總共包含了N個狀態(tài)。此時構(gòu)建N為方陣A(即鄰接矩陣),并且Aij=1表示第i個狀態(tài)的下一個狀態(tài)是第j個狀態(tài),Aij=0表示第i個狀態(tài)與第j個狀態(tài)沒有邏輯關(guān)系。得到了鄰接矩陣,就可以通過鄰接矩陣為HMI-PLC生成場景指紋。

      4 基于場景指紋的異常檢測

      4.1 異常檢測流程

      在工控系統(tǒng)運行正常的情況下通過Tcpdump的網(wǎng)絡(luò)嗅探能力在核心交換機處采集工控系統(tǒng)采集HMI與PLC之間的實時交互數(shù)據(jù);提取S7協(xié)議特征,按照數(shù)據(jù)包到達序號生成順序列表;利用順序列表構(gòu)建鄰接矩陣并生成場景指紋,最后通過scapy在核心交換機處抓取HMI與PLC通信數(shù)據(jù)流量,并利用場景指紋對HMI與PLC之間的交互數(shù)據(jù)進行實時監(jiān)測。場景指紋接收到實時數(shù)據(jù)包之后,提取S7協(xié)議特征,并將其作為輸入信號發(fā)送至場景指紋當前狀態(tài),當前狀態(tài)根據(jù)輸入信號以及自身輸出狀態(tài)集合觸發(fā)狀態(tài)轉(zhuǎn)移函數(shù),四個狀態(tài)轉(zhuǎn)移函數(shù)中被觸發(fā)的狀態(tài)轉(zhuǎn)移函數(shù)即可表明數(shù)據(jù)包是否屬于正常流量。數(shù)據(jù)正常會觸發(fā)Normal狀態(tài)轉(zhuǎn)移函數(shù),數(shù)據(jù)異常會觸發(fā)Unknown狀態(tài)轉(zhuǎn)移函數(shù),邏輯異常會觸發(fā)MissTrans和Miss狀態(tài)轉(zhuǎn)移函數(shù)。過程如圖6所示:

      4.2 異常檢測實驗結(jié)果分析

      在實驗平臺的工控系統(tǒng)SCADA網(wǎng)絡(luò)正常運行的情況下,通過實驗平臺核心交換機處采集實時數(shù)據(jù)。利用場景指紋對正常的SCADA網(wǎng)絡(luò)進行監(jiān)測,實驗兩次,實驗結(jié)果如表1所示,在5855個數(shù)據(jù)包中5844個為正常數(shù)據(jù),7387個數(shù)據(jù)包中有7366個正常數(shù)據(jù),其中的重傳數(shù)據(jù)是由于Scapy嗅探數(shù)據(jù)包時發(fā)生了丟包。場景指紋能夠很好的識別SCADA網(wǎng)絡(luò)中的正常流量。

      表1 實驗結(jié)果

      為了驗證場景指紋對SCADA網(wǎng)絡(luò)中異常流量的檢測能力。通過中間人攻擊的方式篡改工控系統(tǒng)中的數(shù)據(jù),例如修改HMI發(fā)送給PLC數(shù)據(jù)中指示電機轉(zhuǎn)速的值,以及修改電機轉(zhuǎn)速變化的控制邏輯。其數(shù)據(jù)變化趨勢如圖7所示,工控實驗平臺控制電機轉(zhuǎn)動實驗過程為HMI通過PLC控制電機以600、800、1000(r/min)的速度轉(zhuǎn)動。中間人攻擊攻擊目的過程分為兩種:第一種為修改HMI發(fā)送至PLC轉(zhuǎn)速的順序,如將600、800、1000(r/min)的轉(zhuǎn)速修改為800、600、1000(r/min)以達到修改控制邏輯的目的;第二種是修改HMI發(fā)送至PLC轉(zhuǎn)速的值,即將協(xié)議中表示轉(zhuǎn)速的字段修改成除600、800、1000以外的值,以達到造成數(shù)據(jù)異常的目的。為比較正常流量與異常流量的區(qū)別,同時在HMI處和核心交換機處抓取數(shù)據(jù)包,其中,核心交換機處抓取到的數(shù)據(jù)流量為通過中間人攻擊篡改的異常數(shù)據(jù)流量。相比于正常流量,異常流量的數(shù)據(jù)發(fā)生了位移,證明數(shù)據(jù)包達到順序發(fā)生了變化;并且相比與正常流量,還出現(xiàn)峰值異常突出的點,表明此處出現(xiàn)異常數(shù)據(jù)。

      圖7 異常情況下S7協(xié)議層數(shù)據(jù)變化趨勢圖

      表2 實驗結(jié)果

      如表2所示,為方便觀察,分別進行了兩次實驗。第一次實驗:HMI控制電機的轉(zhuǎn)速,分別發(fā)送600,800,1000(r/min)的指令通過PLC控制電機轉(zhuǎn)速,利用中間人攻擊,篡改HMI與PLC之間的通訊數(shù)據(jù)中表示電機轉(zhuǎn)速的字段,將轉(zhuǎn)速的控制邏輯修改為800,600,1000,其中不會出現(xiàn)觸發(fā)狀態(tài)轉(zhuǎn)移函數(shù)Unknown,因此,通過計算得出準確率為97.04%,誤報率為2.95%;第二次實驗:將HMI控制電機轉(zhuǎn)速的指令中表示電機轉(zhuǎn)速的字段部分修改為除了600,800,1000三個值之外的其它任意值,其中不會觸發(fā)狀態(tài)轉(zhuǎn)移函數(shù)Normal,因此,通過計算得出準確率為97.40%,誤報率為2.60%。

      綜上所述,基于場景指紋的工控系統(tǒng)SCADA網(wǎng)絡(luò)異常檢測能夠有效的檢測出SCADA網(wǎng)絡(luò)中的流量異常,并對異常中的類別進行劃分,能夠成功的檢測出邏輯異常和數(shù)據(jù)異常。并通過實驗觀察到,造成誤報的原因是中間人攻擊并沒有成功的修改HMI與PLC之間的交互數(shù)據(jù),以及Scapy嗅探數(shù)據(jù)時發(fā)生了丟包的現(xiàn)象。

      5 結(jié)束語

      工業(yè)控制系統(tǒng)SCADA網(wǎng)絡(luò)的安全有著重要的現(xiàn)實意義。本文在優(yōu)化了DFA模型的基礎(chǔ)上,重新定義了場景指紋;并基于工業(yè)控制系統(tǒng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)簡單特性,結(jié)合圖論中鄰接矩陣的概念,實現(xiàn)了場景指紋的自提取。該方法最大的優(yōu)點在于在有效減少了大量人工分析的同時,保證了較高的準確率。如何將該方法應(yīng)用于更加復(fù)雜的工業(yè)場景并提高場景指紋自提取效率是下一步的研究重點。

      [1]Goldenberg N,Wool A. Accurate modeling of Mo-dbus/TCP for intrusion detection in SCADA systems[J]. International Journal of Critical Infrastructure Pro-tection,2013.

      [2]Kleinman A,Wool A. Accurate modeling of the Siemens S7 SCADA protocol for intrusion detection and digital forensics[J]. The Journal of Digital Forensi-cs,Security and Law:JDFSL,2014.

      [3]Kleinmann A,Wool A. A Statechart-Based Anoma-ly Detection Model for Multi-Threaded SCADA Systems[C] //International Conference on Critical Information Infrastructures Security. Springer International Publishing,2015.

      [4]Kleinmann A,Wool A. Automatic Construction o-f Statechart-Based Anomaly Detection Models for Mult-i-Threaded SCADA via Spectral Analysis[C] //Proceedings of the 2nd ACM Workshop on Cyber-Physical Systems Security and Privacy. ACM,2016.

      [5]Barbosa R R R,Sadre R,Pras A. Flow whitelisting in SCADA networks[J]. International journal of critical infrastructure protection,2013.

      [6]Beresford D. Exploiting Siemens Simatic S7 PL-Cs[J]. Black Hat USA,2011.

      [7]張騰飛,范啟富,劉偉.基于支持向量機的SCADA系統(tǒng)入侵檢測[J].化工自動化及儀表,2015.

      [8]張云貴,張偉,薛向榮,楊小軍.基于自學(xué)習半監(jiān)督單類支持向量機的SCADA入侵檢測系統(tǒng)[J].冶金自動化,2013.

      [9]王婧.工業(yè)控制系統(tǒng)的入侵檢測系統(tǒng)研究[D].華北電力大學(xué)(北京),2014.

      [10]彭勇,江常青,謝豐,戴忠華,熊琦,高洋.工業(yè)控制系統(tǒng)信息安全研究進展[J].清華大學(xué)學(xué)報(自然科學(xué)版),2012.

      [11]趙華.工業(yè)控制系統(tǒng)異常檢測算法研究[D].冶金自動化研究設(shè)計院,2013.

      [12]張曉玉.SCADA系統(tǒng)安全通信面臨的挑戰(zhàn)及未來發(fā)展趨勢[J].通信技術(shù),2014.

      [13]袁文波,洪波,尤萬方,殷召生,蔣彥,溫柳.S7-PLC基于Modbus/TCP協(xié)議通信研究[J].計算機工程與設(shè)計,2014.

      [14]賈濤.西門子S7-200以太網(wǎng)通訊協(xié)議研究[J].電子技術(shù)與軟件工程,2014.

      [15]廖常初.“S7-200SMARTPLC”講座第7講:S7-200SMART基于以太網(wǎng)的S7協(xié)議通信[J].電世界,2015.

      猜你喜歡
      工控數(shù)據(jù)包指紋
      像偵探一樣提取指紋
      為什么每個人的指紋都不一樣
      SmartSniff
      工控速派 一個工控技術(shù)服務(wù)的江湖
      工控速浱 一個工控技術(shù)服務(wù)的江湖
      熱點追蹤 工控安全低調(diào)而不失重要
      基于自適應(yīng)稀疏變換的指紋圖像壓縮
      基于攻擊圖的工控系統(tǒng)脆弱性量化方法
      可疑的指紋
      基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計與實現(xiàn)
      沅江市| 新田县| 平原县| 寻甸| 松阳县| 洛南县| 工布江达县| 北辰区| 肥乡县| 绿春县| 资中县| 西华县| 偏关县| 马尔康县| 太康县| 韩城市| 阳新县| 南丰县| 大田县| 临西县| 新蔡县| 定陶县| 辽阳县| 蒙阴县| 兰考县| 琼结县| 宜川县| 务川| 萨嘎县| 伊川县| 铁岭市| 天峨县| 蒲江县| 邵东县| 台安县| 舟山市| 宜宾县| 大渡口区| 临夏市| 陆川县| 临猗县|