亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于R-DFA狀態(tài)機的工控系統(tǒng)異常流量檢測

        2019-03-12 12:27:52周宇鄭榮鋒劉嘉勇
        現(xiàn)代計算機 2019年5期
        關(guān)鍵詞:實驗檢測模型

        周宇,鄭榮鋒,劉嘉勇

        (1.四川大學電子信息學院,成都 610065;2.四川大學網(wǎng)絡(luò)空間安全學院,成都610065)

        0 引言

        在工業(yè)控制系統(tǒng)ICS發(fā)展過程中,采取的是封閉隔離形式,具有固定的業(yè)務(wù)流程,是自動閉環(huán)的處理方式,并采用大量私有協(xié)議,但是隨著ICS開放性的提升和協(xié)議逆向技術(shù)的發(fā)展,安全的私有協(xié)議漸漸變成暴露在網(wǎng)絡(luò)上極易受到攻擊的公有協(xié)議。

        ICS需要符合其特殊性的入侵檢測系統(tǒng),Golden?berg和Wool分別提出了針對Modbus和S7協(xié)議的基于狀態(tài)機的入侵檢測方法[1-2],但只是在HMI到PLC方向的下行信道建立DFA(有限狀態(tài)自動機),不能檢測PLC到HMI方向的數(shù)據(jù)。Zhang J[3]等人提出了基于工控流量數(shù)據(jù)周期性的特點進行異常檢測,并將請求數(shù)據(jù)的響應(yīng)時間也加入?yún)⒖紬l件,但并沒有檢測上行信道的數(shù)據(jù)。Xu J、Feng D[4]提出了SF-FSM模型(包含響應(yīng)參數(shù)的有限狀態(tài)機)將下行信道PLC響應(yīng)HMI的數(shù)據(jù)作為狀態(tài)機的參數(shù),但如果通過中間人構(gòu)造響應(yīng)數(shù)據(jù),則此狀態(tài)機就會失效。

        針對上述的問題,提出了R-DFA模型,R-DFA模型是特殊的有限自動機,其輸入?yún)?shù)包含請求數(shù)據(jù)信息,響應(yīng)數(shù)據(jù)信息和響應(yīng)時間信息三元組。最后為了彌補一般自動機的狀態(tài)轉(zhuǎn)移只依賴前一個狀態(tài)的缺點,在R-DFA模型后面添加周期狀態(tài)序列模型以提高準確率??紤]到S7協(xié)議語義公開,便于提取特征,本文實驗環(huán)境基于S7協(xié)議的工控系統(tǒng),實驗結(jié)果表明R-DFA模型具有較高的準確率,也能夠有效的對上行異常流量進行檢測。

        1 異常流量檢測方法

        1.1 數(shù)據(jù)預(yù)處理

        本文將工控系統(tǒng)的一個PLC和一個上位機的通信稱為一個信道,R-DFA模型異常流量檢測是建立在單一信道中。數(shù)據(jù)預(yù)處理有兩個目的,一是獲得所有信道信息,建立信道白名單模型,過濾異常的信道,二是提取出單一信道,并從單一信道中提取次信道的工控規(guī)則信息數(shù)據(jù),為后續(xù)訓練R-DFA模型。

        數(shù)據(jù)預(yù)處理分為二步:

        (1)通過三元組(s_port,m_IP,s_IP)分離通信信道。其中s_port為S7協(xié)議的端口號,s_IP為PLC的IP,m_IP為上位機的IP,并將正常信道的三元組進行記錄,組建會話白名單;

        (2)在一個信道會話中提取會話規(guī)則,過濾掉對規(guī)則無用的包,例如心跳包(PLC定時對HMI發(fā)送的工控現(xiàn)場實時的數(shù)據(jù),ROSCTR為0x07)等,過濾這些包根據(jù)S7 PDU的Header中的ROSCTR字段來過濾,僅僅保留 ROSCTR字段為 0x01(JOB packet)和 0x03(ACK packet)的數(shù)據(jù)包。

        1.2 數(shù)據(jù)包特征提取

        先對S7協(xié)議字段和語義進行分析,根據(jù)先驗知識確定S7協(xié)議中的關(guān)鍵字段來作為特征,提取出一個能代表這個數(shù)據(jù)包和PLC狀態(tài)的唯一特征,并記錄。

        圖1 S7協(xié)議PDU結(jié)構(gòu)

        本文將S7協(xié)議的數(shù)據(jù)包特征定義為S7 PDU除去Header字段包含的Protol Data Unit Reference字段的其他所有數(shù)據(jù)的集合。提取后數(shù)據(jù)包字段特征進行md5產(chǎn)生一個32位的數(shù)據(jù),本文稱為特征指紋,用特征指紋來代替原始的特征數(shù)據(jù),這樣既能夠用特征指紋表現(xiàn)出不同數(shù)據(jù)包的唯一性,也能夠忽略請求數(shù)據(jù)包和響應(yīng)數(shù)據(jù)包的不同所表現(xiàn)出來的特征長度的區(qū)別。

        1.3 RR--DDFFAA模型

        工業(yè)控制系統(tǒng)網(wǎng)絡(luò)一般具有明顯的規(guī)律性,可以將工控系統(tǒng)一個信道的工作流程定義為一個有限自動機,R-DFA和普通的DFA一樣定義一個五元組(S,s0,∑,δ,F(xiàn))。

        S是一個有限非空的狀態(tài)集合,需要用PLC的實際狀態(tài)來定義,第二個參數(shù)s0為狀態(tài)機的初始狀態(tài),是S的一個元素,所以S為:

        ∑為輸入的信號,是本文狀態(tài)機的特點,一般的工控系統(tǒng)的狀態(tài)機的輸入信號都是單向的請求(JOB)數(shù)據(jù)包,這樣不能檢測出由PLC向上位機HMI的注入攻擊,例如響應(yīng)注入攻擊?!频脑亍苅是一個三元組為(Preq,i,Presp,i,ΔTi),因此S為:

        Preq是從JOB(request)數(shù)據(jù)包中提取的特征指紋,Presp是從ACK(response)數(shù)據(jù)包中提取的特征指紋。ΔT是JOB包和ACK包的到達時間差,稱為響應(yīng)時間。使用信道流量上下行的特征作為輸入信號,能夠建立一個信道上下行的關(guān)系,有效的檢測出響應(yīng)注入攻擊,響應(yīng)時間ΔT的加入是為了防止攻擊者構(gòu)造響應(yīng)數(shù)據(jù)包,從而欺騙上位機HMI。

        δ為狀態(tài)轉(zhuǎn)移函數(shù),能夠通過現(xiàn)在的狀態(tài)si,三維輸入?yún)?shù)Si,轉(zhuǎn)移到下個狀態(tài)si+1。F為狀態(tài)機的最后一個狀態(tài)。

        定義了狀態(tài)機的各項參數(shù)后,開始建立狀態(tài)機模型。建立一個二維的狀態(tài)轉(zhuǎn)換表,第一行為前一個狀態(tài),第一列為后一個狀態(tài),如果兩個狀態(tài)能夠轉(zhuǎn)化則對應(yīng)表中位置寫入輸入信號參數(shù),異常檢測模型根據(jù)狀態(tài)轉(zhuǎn)換表來確定狀態(tài)轉(zhuǎn)換是否異常。

        例如假設(shè)一共有三種狀態(tài),建立的狀態(tài)轉(zhuǎn)換表如表1所示。

        表1 狀態(tài)轉(zhuǎn)換表

        可以看出,s1可以通過三維輸入信號(Preq,2,Presp,2,ΔT)轉(zhuǎn)換為s2,且s1只能轉(zhuǎn)換為s2狀態(tài),如果s1收到其他輸入信號,會觸發(fā)異常狀態(tài)轉(zhuǎn)化函數(shù),從而報出異常。s1狀態(tài)轉(zhuǎn)化為穩(wěn)定的s2狀態(tài)過程如圖2所示。

        圖2 s1到s2穩(wěn)定狀態(tài)轉(zhuǎn)換過程

        異常狀態(tài)轉(zhuǎn)化函數(shù)能夠根據(jù)不同的錯誤輸入信號觸發(fā)不同的異常狀態(tài),例如Preq錯誤則報請求異常,Presp和DT錯誤,則報響應(yīng)異常。此狀態(tài)機模型理論上能夠有效檢測出以往的工控狀態(tài)機模型無法檢測的響應(yīng)注入攻擊。

        1.4 周期狀態(tài)序列模型

        狀態(tài)機模型雖然能夠檢測出異常攻擊,但狀態(tài)機的狀態(tài)轉(zhuǎn)換是依賴于上一個狀態(tài)的,因此狀態(tài)機模型有一定的局限性,當發(fā)生圖3情況時,狀態(tài)機模型可能會出錯。

        圖3 狀態(tài)機模型無法檢測的狀態(tài)順序

        在圖4中,s2和s3都能轉(zhuǎn)化為s1狀態(tài)或者從s1轉(zhuǎn)化而來,都保存在了狀態(tài)轉(zhuǎn)化表中。只使用狀態(tài)機模型進行異常檢測,則上圖中錯誤的順序也會被狀態(tài)機認為是正確的,產(chǎn)生漏報。為了解決這種問題,完善異常檢測模型,本文又在狀態(tài)機模型之后添加了周期狀態(tài)序列模型。

        周期狀態(tài)序列模型由下面步驟建立。

        (1)找到單一信道中工控數(shù)據(jù)流量的最小正周期n,根據(jù)JOB數(shù)據(jù)包的特征指紋順序建立一個周期內(nèi)的狀態(tài)序列模型;

        (2)周期狀態(tài)序列模型會在一開始進行檢測時進行計數(shù)標記,確保預(yù)測的狀態(tài)和狀態(tài)機模型將要正確轉(zhuǎn)化的下一個狀態(tài)一致;

        (3)當狀態(tài)機模型轉(zhuǎn)化為下一個狀態(tài)時,就會與當前周期狀態(tài)序列模型所預(yù)測的狀態(tài)進行比對,以確保當前轉(zhuǎn)化狀態(tài)的正確性。

        周期狀態(tài)序列模型的位于狀態(tài)機模型后面,當一個周期的狀態(tài)預(yù)測完成后,周期狀態(tài)序列模型又會從周期初始狀態(tài)開始預(yù)測,循環(huán)反復,減低了異常檢測系統(tǒng)的負擔。

        如果只用周期狀態(tài)序列模型進行異常檢測,無法確定工控系統(tǒng)即時的狀態(tài),而且少了輸入信號量的檢測,模型檢測不出響應(yīng)注入等攻擊。將狀態(tài)機模型和周期狀態(tài)序列模型結(jié)合起來,能夠避免圖3的漏報,也能夠有效地提高異常檢測系統(tǒng)的準確性。

        圖4 周期狀態(tài)序列的檢測

        11.. 55異常檢測系統(tǒng)

        以R-DFA為核心的異常檢測系統(tǒng)由以下步驟建立:

        (1)通過正常流量建立會話白名單,提取目標信道的數(shù)據(jù)包,過濾掉其中的心跳包。

        (2)提取目標信道上下行流量的特征,根據(jù)目標信道的通信規(guī)則建立狀態(tài)轉(zhuǎn)換表,訓練R-DFA模型。

        (3)根據(jù)目標信道通信規(guī)則,提取出周期,建立周期序列模型。

        (4)將以上的模型按照圖5順序組合起來,對實時的流量進行檢測,對不正常的行為發(fā)出警告。

        圖5 異常流量檢測系統(tǒng)

        異常警告可以告知檢測出的異常行為發(fā)生在異常檢測系統(tǒng)的哪個階段,也能將對應(yīng)的異常的行為記錄。這樣能夠通過異常警告的記錄獲得流量中異常行為個數(shù),從而驗證本文異常檢測系統(tǒng)的性能。表2為異常警告階段會記錄的異常行為及其階段。

        表2 異常警告記錄的行為和對應(yīng)階段

        2 實驗與結(jié)果分析

        2.1 實驗環(huán)境和實驗數(shù)據(jù)

        為了檢測以上方法的可行性,在本地搭建一個小型的工控系統(tǒng)仿真環(huán)境進行實驗。本文的實驗場景如圖5示的西門子工控實驗平臺的網(wǎng)絡(luò)拓撲圖。現(xiàn)場設(shè)備包含兩個S7-200和一個S7-300的PLC。S7-300控制發(fā)電機的轉(zhuǎn)速,S7-200控制蜂鳴器。其中工程師站能夠根據(jù)設(shè)定的流程邏輯編寫PLC對應(yīng)的程序。

        在控制設(shè)備和現(xiàn)場設(shè)備之間有換機,能夠鏡像工控網(wǎng)絡(luò)中的流量到工控異常檢測服務(wù)器中,并用抓包工具捕獲PLC與HMI的實時數(shù)據(jù)。

        實驗先通過正常的工控流量數(shù)據(jù)在服務(wù)器中訓練出本文提出的異常檢測模型,然后將訓練完成的異常檢測模型監(jiān)聽鏡像端口的實時數(shù)據(jù),驗證異常檢測模型的效果。

        圖6 工控網(wǎng)絡(luò)仿真拓撲圖

        在本次實驗中,選取S7-300與上位機的通信信道,此信道能夠體現(xiàn)出工控系統(tǒng)的流量數(shù)據(jù)的特征。

        本文實驗數(shù)據(jù)是通過Python的Scapy庫嗅探正常流量和異常的攻擊流量,使用正常流量來建立模型,使用惡意的攻擊流量驗證異常流量檢測系統(tǒng)的性能。本文使用以下的攻擊方式進行攻擊,并捕獲異常流量,表3為獲取實驗數(shù)據(jù)集,數(shù)量和實際攻擊的單位都是數(shù)據(jù)包個數(shù)。

        序列攻擊:修改數(shù)據(jù)包的傳送順序,導致工控邏輯出現(xiàn)異常,從而影響正常的工控系統(tǒng)的運作。

        snap7連接:通過在工控網(wǎng)絡(luò)中用另外一臺設(shè)備編寫S7的程序,利用PLC不會對HMI設(shè)備認證的缺點,控制PLC達到攻擊的目的。

        手動操作:手動的從HMI向PLC發(fā)送一些數(shù)據(jù)包,使其與正常情況的狀態(tài)不符合,例如在本實驗場景中,HMI向PLC發(fā)送的不正常的請求包。

        響應(yīng)構(gòu)造:通過中間人攻擊,構(gòu)造PLC到HMI的響應(yīng)包,讓HMI誤以為PLC已經(jīng)改變狀態(tài),達到欺騙HMI的目的。

        異常響應(yīng):直接通過中間人構(gòu)造異常的響應(yīng)數(shù)據(jù)包,從而從上行信道對HMI的主機進行攻擊。

        表3 實驗數(shù)據(jù)集

        2.2 實驗檢測

        利用表3的正常數(shù)據(jù)流,建立信道白名單模型,RDFA模型和周期序列模型,并將三者根據(jù)圖5串聯(lián)起來,形成異常檢測系統(tǒng),對表3的異常數(shù)據(jù)流進行檢測,本實驗使用工具是Python3。

        其中R-DFA模型的三元輸入?yún)?shù)中的響應(yīng)時間DT需要一個可靠的取值范圍,在本文實驗環(huán)境中,正常的S7數(shù)據(jù)流量的響應(yīng)時間如圖7所示。

        圖7 正常流量的響應(yīng)時間

        可以看出在本文的實驗環(huán)境中工控數(shù)據(jù)響應(yīng)時間集中在0.002s到0.005s之間,但也會有些超過0.005s,這些響應(yīng)時間也是正常的,原因可能是網(wǎng)絡(luò)延遲。

        為了規(guī)避正常的網(wǎng)絡(luò)延遲的情況,實驗使用核密度估計ΔT的概率密度估計,從而定義其取值范圍,核密度估計是一種用于估計概率密度函數(shù)的非參數(shù)方法,正常 n 個樣本點 Δ T1,Δ T2,…,Δ Tn為獨立同分布的,設(shè)其概率密度函數(shù)為f,則其核密度估計為:

        K為核函數(shù),根據(jù)實驗,K選用Epanechnikov函數(shù),此核函數(shù)的均方誤差是最優(yōu)的。h為帶寬,根據(jù)實驗得出帶寬的最優(yōu)值為0.001。實驗使用Python 3的scikit-learn機器學習庫對圖6的正常響應(yīng)時間數(shù)據(jù)集進行訓練得出ΔT的核密度估計,如圖8所示,選用ΔT 的范圍為(0.0017,0.0095)。

        圖8 響應(yīng)時間核密度估計

        2.3 結(jié)果分析

        將每個異常數(shù)據(jù)集的數(shù)據(jù)包分為兩類,正常數(shù)據(jù)包(normol)和異常數(shù)據(jù)包(abnormol),經(jīng)過實驗后得到以下的數(shù)據(jù),TP為真陽性,即abnormol被識別為ab?normol;TN 為真陰性,即 normol被識別為 normol;FP 為假陽性,即normol被識別為abnormal;FN為假陰性,即abnormal被識別為normal。

        本實驗采用精確召回率調(diào)和平均數(shù)(F)、召回率(Rec)、精確率(Pre)來衡量:

        對異常數(shù)據(jù)集進行異常檢測實驗結(jié)果如表4所示,表5還包括此類攻擊被檢測到的階段和對應(yīng)的異常警報。

        表4 異常攻擊流量檢測結(jié)果

        根據(jù)表4的結(jié)果,可以看出基于R-FSM異常檢測系統(tǒng)性能良好,對常見的攻擊的異常檢測精確率Pre,召回率Rec和精確召回率調(diào)和平均數(shù)F都在90%以上,也能夠檢測出PLC對上位機方向上行行道的流量異常,也有很高的精確率Pre,召回率Rec和精確召回率調(diào)和平均數(shù)F。

        3 結(jié)語

        本文在普通的DFA模型上添加了PLC到HMI的數(shù)據(jù)信息,能夠檢測出普通工控DFA模型無法檢測的響應(yīng)注入的問題,并在DFA模型后添加了周期狀態(tài)序列模型,解決了DFA狀態(tài)轉(zhuǎn)移僅僅依靠前一個狀態(tài)的不足。在本地基于S7協(xié)議仿真實驗中,異常檢測模型運行效果良好,能夠準確地識別出工控網(wǎng)絡(luò)的異常流量。另外此方法也應(yīng)該能夠用在不是S7協(xié)議的工業(yè)控制系統(tǒng)中,這需要后續(xù)的研究和確定。

        猜你喜歡
        實驗檢測模型
        一半模型
        記一次有趣的實驗
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        做個怪怪長實驗
        3D打印中的模型分割與打包
        NO與NO2相互轉(zhuǎn)化實驗的改進
        国产精品福利自产拍久久| 谷原希美中文字幕在线| 亚洲第一页综合av免费在线观看| 久久国产精品二国产精品| 欧美人与动牲交a欧美精品| 国产成人无码a区在线观看视频 | 色综合久久丁香婷婷| 欧美三级不卡视频| 国产一区二区精品在线观看| 91社区视频在线观看| 在线观看国产高清免费不卡黄| 巨大欧美黑人xxxxbbbb| 人妻无码中文专区久久五月婷| 久久精品免视看国产明星| 亚洲AV伊人久久综合密臀性色| 欧美俄罗斯乱妇| 国内精品大秀视频日韩精品| 亚洲av乱码专区国产乱码| 亚洲男人堂色偷偷一区| 亚州AV无码乱码精品国产| 三级国产女主播在线观看| 国产成人福利在线视频不卡| 亚洲欧美成人中文在线网站| 国产精品无码mv在线观看| 亚洲综合国产成人丁香五月小说| 亚洲av第二区国产精品| 日韩精品免费观看在线| 国语对白自拍视频在线播放| 免费看黄片视频在线观看| 91国产熟女自拍视频| 成人自拍偷拍视频在线观看 | 亚洲美女毛片在线视频| 国产一区二区av免费在线观看 | 天天躁日日躁aaaaxxxx| 奶头又大又白喷奶水av| 亚洲日韩欧美一区、二区| 久久www免费人成精品| 久久精品国产亚洲av无码娇色| 国产尤物av尤物在线观看| 一本一道波多野结衣av中文| 国产情侣久久久久aⅴ免费|