999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于主動交互式學習的工控協(xié)議逆向分析

2023-09-07 08:47:48付安民張曉明王占豐
西安電子科技大學學報 2023年4期
關鍵詞:語義分析

付安民,毛 安,黃 濤,胡 超,劉 瑩,張曉明,王占豐

(1.南京理工大學 計算機科學與工程學院,江蘇 南京 210094;2.中國人民解放軍陸軍工程大學 指揮控制工程學院,江蘇 南京 210007;3.國家計算機網(wǎng)絡與信息安全管理中心,北京 100029;4.南京萊克貝爾信息技術有限公司,江蘇 南京 210014)

1 引 言

隨著工業(yè)互聯(lián)網(wǎng)的發(fā)展,越來越多的工業(yè)控制(簡稱工控)系統(tǒng)開始連接到網(wǎng)絡,以實現(xiàn)對工控設備的遠程操控[1]。然而,基于商業(yè)性和安全性的考慮,部分工控設備廠商選擇不公開工控協(xié)議文檔,導致目前網(wǎng)絡中存在大量私有、非標準的工控協(xié)議,為工控系統(tǒng)的網(wǎng)絡安全行為管理、模糊測試、入侵檢測等帶來了巨大的挑戰(zhàn)[2]。未知工控協(xié)議逆向分析技術能夠對未知工控協(xié)議的格式、語義和狀態(tài)機等進行推斷,進而提升工控系統(tǒng)的安全[3-4]。

目前工控協(xié)議逆向方法主要包括基于程序執(zhí)行的工控協(xié)議逆向方法[5]和基于流量樣本的工控協(xié)議逆向方法[6]。前者雖然具有較高的準確性,但是非常依賴系統(tǒng)固件,通常難以實現(xiàn),尤其針對一些大型的工控系統(tǒng),幾乎無法實現(xiàn)。而后者雖然準確性不及前者,但其僅通過工業(yè)協(xié)議流量樣本就可以挖掘協(xié)議語法、語義和狀態(tài)機等信息,非常易于實現(xiàn),因而成為目前工業(yè)界主流的協(xié)議逆向方法。然而,基于流量樣本的工控協(xié)議逆向方法[4]通常存在該類方法固有的局限性,即嚴重依賴于協(xié)議樣本的多樣性。特別是針對穩(wěn)定性和可靠性相對較高的工控系統(tǒng),捕獲的工控協(xié)議流量樣本往往會缺乏一些關鍵的字段取值、協(xié)議狀態(tài)和狀態(tài)變遷等信息,比如異常狀態(tài)等,進而導致工控協(xié)議逆向分析結果與真實協(xié)議規(guī)范存在較大偏差,甚至只能得到協(xié)議規(guī)范的子集,無法提取完整的協(xié)議格式和狀態(tài)機等信息。因此,如何針對原始流量樣本中存在的信息量不足等問題,對工控協(xié)議逆向分析初始結果進行完善與優(yōu)化,已經(jīng)成為目前工業(yè)界與學術界關注的熱點[7]。

為此,筆者提出了一種基于主動交互式學習的未知工控協(xié)議逆向分析方法(Reverse Analysis method of unknown Industrial control Protocol based on Active Interactive Learning,RAIPAIL).在流量樣本的逆向基礎上,依據(jù)初始逆向結果構建字段探測和狀態(tài)機探測數(shù)據(jù)包,與工控設備進行主動交互式通信,探測未知協(xié)議的字段與狀態(tài)機,進而對工控協(xié)議格式、字段屬性和狀態(tài)機等分析結果進行深入挖掘與補充。論文的主要工作如下:

(1) 提出一種基于主動學習的工控協(xié)議逆向分析方法,為基于流量逆向方法的字段語義結果驗證、字段取值范圍進行擴充,并重點解決了傳統(tǒng)基于流量的協(xié)議逆向方法無法解決的偽靜態(tài)長字段問題。

(2) 在流量樣本字段分析靜態(tài)分析結果的基礎上,遵循協(xié)議逆向分析初始結果與工控設備進行主動交互式通信,以驗證所推斷的工控協(xié)議字段語義與取值范圍的正確性。

(3) 根據(jù)協(xié)議逆向提取的狀態(tài)機信息,組合多種順序通信序列,通過與工控設備通信,實現(xiàn)對協(xié)議狀態(tài)機的擴展分析,進而對工控協(xié)議格式、字段屬性和狀態(tài)機等分析結果進行深入挖掘與補充。

(4) 選取Modbus、IEC 104、MQTT等主流工控協(xié)議對RAIPAIL的性能進行測試。實驗結果表明,針對基于流量的工控協(xié)議逆向分析結果,RAIPAIL不僅可以有效驗證字段語義的正確性,還能夠進一步準確探測字段的取值范圍,并解決Modbus中存在的偽靜態(tài)長字段問題。特別是,RAIPAIL還可以有效探測協(xié)議狀態(tài)機中未被發(fā)現(xiàn)的新狀態(tài)和狀態(tài)轉化序列等。

2 相關工作

協(xié)議逆向分析[8]能夠基于捕獲的未知協(xié)議通信數(shù)據(jù)包或指令執(zhí)行軌跡[9],對未知協(xié)議的格式、語義和狀態(tài)機等進行推斷。因此,它已經(jīng)逐漸成為入侵檢測、漏洞挖掘等安全分析技術的基礎。

協(xié)議逆向分析包括輸入預處理、協(xié)議格式提取和協(xié)議狀態(tài)機推斷3個階段[10],其中,輸入預處理分別以會話和報文為粒度對輸入樣本進行分割,并剔除樣本中可能出現(xiàn)的重傳、亂序、分片等冗余和干擾信息;協(xié)議格式[11]提取主要包括字段識別、結構提取、語義與取值約束判斷3個步驟,通過識別每個報文對應的格式,并對報文所有格式進行合并,進而提取協(xié)議報文格式、字段屬性等信息;基于提取的協(xié)議格式,協(xié)議狀態(tài)機[12]推斷主要對通信雙方的報文交互次序進行分析,以推斷通信過程中協(xié)議實體的狀態(tài)以及相應的狀態(tài)變遷。

根據(jù)分析對象的不同,目前工控協(xié)議逆向分析技術可以分為兩類:基于執(zhí)行軌跡的協(xié)議逆向分析[13]和基于流量樣本的協(xié)議逆向分析[14]。

基于執(zhí)行軌跡的協(xié)議逆向分析技術[15],通過跟蹤并分析目標工控協(xié)議程序執(zhí)行期間函數(shù)堆棧、指令序列、數(shù)據(jù)、寄存器等信息的變化情況[16],完成工控協(xié)議的字段劃分和語義推斷。目前針對工控協(xié)議的逆向分析技術主要借助污點分析思想實現(xiàn)[17],分為靜態(tài)污點分析和動態(tài)污點分析,兩者的區(qū)別為是否需要運行程序,基于靜態(tài)污點分析的方法需要對程序源代碼進行分析,如文獻[18]將靜態(tài)污點分析思想運用于靜態(tài)二進制分析,提出一種基于靜態(tài)二進制分析的工控協(xié)議分析方法。而基于動態(tài)污點分析的技術需要運行程序,通過調試、代碼注入等方式對目標程序進行分析,如Polyglot[3]通過監(jiān)視協(xié)議體對消息的處理過程以及各消息片段的使用方法,獲得協(xié)議結構與字段語義。文獻[19]根據(jù)“相同協(xié)議字段的字節(jié)在內存中通常具有相同傳播軌跡”的原理,提出一種自動識別工控協(xié)議字段邊界的方法。然而,由于工控程序源代碼通常較難獲取,并且具有高穩(wěn)定性和實時性要求的工控系統(tǒng)不利于反復調試。因此,基于執(zhí)行軌跡的協(xié)議逆向分析技術通常都難以實現(xiàn)。

基于流量樣本的協(xié)議逆向分析技術[20-21],僅通過分析工控協(xié)議的流量數(shù)據(jù)包,就可以實現(xiàn)消息類型識別、協(xié)議格式提取與協(xié)議狀態(tài)機推斷等,進而提取工控協(xié)議的語法、語義和狀態(tài)機信息。這類技術最早由Beddoe在PI項目中[22]提出,該項目使用Needleman Wunsch 序列比對算法進行同一簇內的流量數(shù)據(jù)比對,區(qū)分字段中的可變字段和不變字段值,提取公共部分,構建協(xié)議結果特征,但該方法只適用于結構簡單的未知協(xié)議。之后的Discoverer[23]在PI基礎上為完整協(xié)議格式提取提供算法和工具,主要包含標記和初始化、遞歸聚類、字段合并的3個模塊,進而實現(xiàn)自動挖掘協(xié)議格式。文獻[14]提出一種基于語義的協(xié)議格式推斷工具(Netzob)[14],分為會話切分、噪音過濾、消息聚類、格式推斷、合并、狀態(tài)機重構等步驟,在聚類和字段劃分階段增加了語義的信息,使用基于語義的序列比對算法提取未知協(xié)議特征,它是目前較為完善的協(xié)議逆向工具,然而該方法比較依賴字段語義和聚類的準確度。文獻[7]提出的基于概率性的協(xié)議逆向方法,將關鍵字識別問題表述為一個概率推理問題,深度挖掘關鍵字背后的各種約束關系,以概率量化約束關系的強弱,進而判斷該字段是否為關鍵字字段。然而該方法非常依賴真實的標記數(shù)據(jù)。在協(xié)議狀態(tài)機推斷階段,文獻[24]提出一種基于報文聚類的協(xié)議狀態(tài)機推斷工具,以報文格式相似性作為相似性度量標準,將會話序列進行聚類并標識結果,以獲得數(shù)據(jù)流新的表示,最終實現(xiàn)協(xié)議狀態(tài)機重構。然而該工具忽略部分場景存在協(xié)議格式相似但狀態(tài)類型不同等情況。ReverX[25]和 AutoReEngine[26]都是基于協(xié)議關鍵字分析以重構有限狀態(tài)機。ReverX通過泛化啟發(fā)式構造圖,通過傳統(tǒng)的有限狀態(tài)機(Finite State Machine, FSM) 最小化對其進行縮減; AutoReEngine利用Apriori算法提取最頻繁的字節(jié)串作為關鍵字段,并進一步構造FSM。但是AutoReEngine模型通常包含大量狀態(tài),往往需要進一步化簡。

總之,當前基于流量的工控協(xié)議逆向技術主要集中于流量樣本本身的特征分析和挖掘,但這類方法通常非常依賴協(xié)議樣本的多樣性。因此,如何在樣本多樣性不足的情況下,進一步完善協(xié)議逆向分析結果是未知工控協(xié)議逆向分析研究的難點。

3 RAIPAIL概述

RAIPAIL能夠在流量樣本靜態(tài)分析結果的基礎上,按照協(xié)議逆向分析初始結果與工控設備進行主動交互式通信,以驗證所推斷的工控協(xié)議字段語義與取值范圍的正確性,并根據(jù)協(xié)議逆向提取的狀態(tài)機信息,組合多種順序通信序列,通過與工控設備通信,實現(xiàn)對協(xié)議狀態(tài)機的擴展分析,進而對工控協(xié)議格式、字段屬性和狀態(tài)機等分析結果進行深入挖掘與補充。RAIPAIL的總體框架如圖1所示,該框架主要包括預處理、交互和驗證3個模塊。

圖1 面向未知工控協(xié)議逆向分析的新型探測框架圖

3.1 預處理模塊

針對初始協(xié)議逆向結果,提取工控協(xié)議的字段語義、字段取值和狀態(tài)機序列等信息,這些信息將既作為交互模塊中字段探測和狀態(tài)機探測的輸入數(shù)據(jù),又作為驗證模塊的驗證參照數(shù)據(jù)。

3.2 交互模塊

交互模塊作為RAIPAIL方法的核心模塊,包括字段探測和狀態(tài)機探測兩個功能。字段探測主要包括字段語義驗證、字段取值范圍探測和偽靜態(tài)長字段劃分。

(1) 字段語義驗證。針對前期工控協(xié)議逆向分析結果中的字段語義,設計相應字段變異器,重組原有流量并發(fā)送給目標系統(tǒng),結合相應反饋信息,對字段語義的正確性進行驗證。

(2) 字段取值范圍探測。針對前期工控協(xié)議逆向分析結果中的字段取值集合,通過對字段賦予不同取值,重組原有流量并與目標系統(tǒng)主動交互,以驗證字段取值范圍的正確性。

(3) 偽靜態(tài)長字段劃分。針對前期工控協(xié)議逆向分析結果中字段長度大于一定閾值的靜態(tài)字段進行探測,通過偽靜態(tài)長字段變異器,重組原有流量并與目標系統(tǒng)主動交互,探測該字段是否可劃分。

狀態(tài)機探測主要包含新狀態(tài)與狀態(tài)轉化探測和狀態(tài)依賴挖掘。

(1) 新狀態(tài)與狀態(tài)轉化探測。針對前期工控協(xié)議逆向分析結果,獲得報文格式集合,提取對應的流量樣本,使用全排列算法構建交互流量序列集合,并與目標系統(tǒng)主動交互,獲得交互流量集。

(2) 新狀態(tài)依賴挖掘。 針對包含不同狀態(tài)功能碼的報文流量進行組合排列,形成基于狀態(tài)碼的狀態(tài)機探測序列,并與目標系統(tǒng)主動交互,獲得通信合集。

總之,該模塊主要根據(jù)工控協(xié)議字段和狀態(tài)機的探測結果,生成變異樣本,與工控設備或工控模擬工具進行主動式交互,并收集交互報文集,該報文集也將作為驗證模塊的驗證參照數(shù)據(jù)。需要提及的是,大部分的工控協(xié)議針對錯誤的驗證報文都會有其對應的反饋信息,少數(shù)健壯性不強的協(xié)議只對正確的報文才應答。針對少數(shù)只對正確報文才反饋的協(xié)議,需要對變異樣本進行人工修正后,再進行探測。

3.3 驗證模塊

對比初始逆向分析結果和交互報文集,對字段探測和狀態(tài)機探測結果進行驗證。需要說明的是,這些驗證操作目前大都需要依賴人工分析完成。

(1) 字段驗證。通過對比字段語義驗證、字段取值范圍探測、偽長靜態(tài)長字段劃分的交互流量集與初始流量樣本的區(qū)別,獲取字段語義驗證、取值范圍探測和偽靜態(tài)長字段的分析結果。

(2) 狀態(tài)機驗證。通過分析與目標系統(tǒng)交互的流量集合與初始逆向分析的狀態(tài)機,進行狀態(tài)機補充和狀態(tài)依賴判斷,從而進一步實現(xiàn)對協(xié)議狀態(tài)機的擴展分析。

總之,該模塊根據(jù)初始流量集的會話信息,對比字段探測、狀態(tài)機探測結果與初始報文結果,驗證是否有新報文格式或狀態(tài)轉化結果,完成字段驗證和狀態(tài)機驗證。

4 主動交互式學習的協(xié)議逆向過程

這里重點針對RAIPAIL的交互模塊所涉及的關鍵技術和算法進行詳細介紹,主要包括字段探測和狀態(tài)機探測。

4.1 字段探測

字段探測主要包括字段語義驗證、字段取值范圍探測和偽靜態(tài)長字段劃分。

(1) 字段語義驗證。RAIPAIL依次針對每個協(xié)議字段進行變異和驗證,主要根據(jù)所推斷的各字段語義信息,設計相應的字段變異器,如數(shù)據(jù)字段變異器(TextMutator)、長度字段變異器(LenMutator)、序列號字段變異器(SeqMutator)等,基于這些字段變異器能夠生成各種類型的測試樣本,通過與目標工控設備或系統(tǒng)進行主動式交互,以驗證相應字段語義信息的正確性。若字段語義信息正確,則保持原有分析結果;反之,則判定該字段語義分析錯誤,并修正初始逆向中該字段的分析結果。其中,以TextMutator為例,RAIPAIL采取字段內容填充等變異方法,如重復字段插入、特殊符號插入、隨機刪除部分數(shù)據(jù)、文本內容打亂重組等,并且考慮到文本字段的內容長度通常與長度字段相關,RAIPAIL將同步更新長度字段數(shù)值,使兩者達到一致,以驗證當前字段是否為文本字段。詳細的協(xié)議字段語義驗證過程如算法1所示。

算法1字段語義驗證與擴展算法。

輸入:逆向分析的樣本結果M={m1,m2,…,mn}(初始逆向過的流量樣本)。

輸出:與真實設備交互的數(shù)據(jù)流量集合R。

① 對于每一個樣本結果mi,按順序遍歷所有字段mi·field和其對應的變異器mi·mutator。

② 根據(jù)mi·mutator生成種子序列集合smi·field,若沒有標注的mutator,則不生成。

③ 加入到交互流量集合S里面。

④ 重復上述②~③步,直到遍歷完M。

⑤ 使用目標系統(tǒng)采取的通信方式c,進行數(shù)據(jù)交互。

⑥ 每個種子序列smi·field會話流量 ->R。

⑦ ReturnR。

(2) 字段取值范圍探測。字段取值范圍探測主要對長度固定且取值變化的字段的取值范圍進行探測,如功能碼等。以功能碼字段變異器(FuncMutator)為例,由于捕獲到的流量通常無法包含所有的功能報文,通常只能提取出對應協(xié)議功能碼的子集。然而,針對各類協(xié)議功能碼字段的深入分析,發(fā)現(xiàn)功能碼的有效取值范圍通常都比較接近,特別是工控協(xié)議,如MODBUS等。因此,RAIPAIL針對目標協(xié)議的功能碼數(shù)值進行遞增或遞減,并向目標工控設備或系統(tǒng)發(fā)送重新組合后的測試報文,最終根據(jù)目標設備或系統(tǒng)的反饋報文,實現(xiàn)對功能碼取值范圍的探測。

(3) 偽靜態(tài)長字段變異。偽靜態(tài)字段是目前大多數(shù)協(xié)議逆向分析方法難以解決的問題。由于收集的部分字段樣本存在多樣性不足等問題,導致多序列比對算法提取的部分相鄰字段同時出現(xiàn)固定值的現(xiàn)象,進而導致這兩個不相關的相鄰字段被錯誤地識別為一個偽靜態(tài)長字段。因此,針對這一現(xiàn)象,RAIPAIL采取對于偽靜態(tài)長字段按單字節(jié)進行變異,通過對每個單字節(jié)取值進行遞增或遞減,以生成新樣例與目標系統(tǒng)進行主動式交互,最終實現(xiàn)對當前字段是否為靜態(tài)字段的驗證。

而針對字段長度超過三字節(jié)的長字段驗證劃分,RAIPAIL采取逐字節(jié)變異策略:通過計算當前字節(jié)與0xff之間的差值,填充當前字節(jié)取值,并發(fā)送給目標工控設備或系統(tǒng),對比不同變異字節(jié)的反饋信息,以判斷當前長字段是否包含多個短字段。

4.2 狀態(tài)機探測

協(xié)議狀態(tài)機是對協(xié)議實體間信息交互過程的描述,定義了不同格式類型報文的傳送順序。通常使用FSM模型描述協(xié)議狀態(tài)機,以體現(xiàn)通信過程中協(xié)議實體所處的狀態(tài)以及狀態(tài)之間的轉換關系,一個 FSM 可以用五元組M=(Q,ΣI,ΣO,δ,λ)表示,其中,Q表示有限狀態(tài)集合,ΣI表示有限輸入符號集合,ΣO表示有限輸出符號集合,δ:Q×ΣI→Q表示狀態(tài)轉換函數(shù),λ:Q×ΣI→ΣO表示輸出函數(shù)。

針對捕獲的協(xié)議流量集進行逆向分析,并結合狀態(tài)字段和會話順序構建和化簡協(xié)議狀態(tài)機。然而,由于流量樣本多樣性不足,導致推測的協(xié)議狀態(tài)機通常不完整,比如缺少部分協(xié)議狀態(tài)和狀態(tài)轉化關系等。因此,針對這一不足,RAIPAIL分別從以下兩個角度進行擴充。詳細的協(xié)議狀態(tài)機探測過程如算法2所示。

(1) 新狀態(tài)與狀態(tài)轉化探測。先根據(jù)協(xié)議逆向初始結果,對每種報文流量進行全排列組合,以獲得新報文序列集合,再根據(jù)集合中每條流量序列與目標工控設備進行主動式交互,分析報文反饋信息,填充新狀態(tài)與轉化序列。

(2) 新狀態(tài)依賴探測。針對包含不同狀態(tài)功能碼的報文類型進行全排列組合,形成基于狀態(tài)碼的狀態(tài)機探測序列,依次發(fā)送給目標工控設備,分析報文反饋信息,探測是否存在新狀態(tài)依賴。

算法2狀態(tài)機探測算法。

輸入:逆向分析的樣本結果M={m1,m2,…,mn}(初始逆向過的流量樣本),具有類似功能碼能決定消息格式的樣本結果S={s1,s2,…,sn}。

輸出:與真實設備交互的數(shù)據(jù)流量集合R。

① 對于M,狀態(tài)轉化變異器stateMutator->新狀態(tài)序列集合SMi。

② 使用通信方式c,進行序列交互。

③ 新會話ti加入R。

④ 對于S,功能碼依賴變異器FuncMachineMutator->新狀態(tài)依賴序列集合FSi。

⑤ 使用通信方式c,進行序列交互。

⑥ 新會話ti加入R。

⑦ ReturnR。

5 實驗分析

為了驗證RAIPAIL的性能,選取了目前最常用的Modbus、IEC-104和MQTT這3種工控協(xié)議進行測試。由于Modbus是無狀態(tài)的協(xié)議,因此協(xié)議狀態(tài)機實驗只針對IEC-104和MQTT兩種工控協(xié)議。

5.1 系統(tǒng)測試環(huán)境

系統(tǒng)運行的硬件環(huán)境為兩臺運行Windows操作系統(tǒng)的64bit PC,一臺作為構建包和傳輸包的機器,另一臺用于搭建協(xié)議模擬器以模擬真實工控設備。測試的協(xié)議模擬器在字段驗證推測采用Modbus、IEC104的協(xié)議模擬器和MQTT服務器,狀態(tài)機推測采用IEC104協(xié)議模擬器和MQTT服務器,具體配置如表1所示。

表1 系統(tǒng)測試環(huán)境

5.2 協(xié)議字段驗證與擴充分析

5.2.1 Modbus協(xié)議字段驗證

針對Modbus協(xié)議逆向分析結果,RAIPAIL進行多次主動式交互測試。實驗結果如表2所示。

表2 Modbus字段實驗結果

結合表2中的實驗結果,分別從功能碼取值范圍探測、請求數(shù)目字段語義驗證、請求地址字段語義驗證和長靜態(tài)字段劃分等4個角度進行分析:

(1) 功能碼取值范圍探測。根據(jù)初始協(xié)議逆向分析結果,收集的Modbus樣本只有01、02、03協(xié)議功能碼,而RAIPAIL通過對功能碼字段進行變異,并與服務器主動交互,驗證返回的報文信息來探測有效功能碼。驗證表明有效功能碼區(qū)間為1~24,而超過24以后則返回未知功能碼錯誤。RAIPAIL探測出的功能碼區(qū)間為1~24,明顯超出初始協(xié)議逆向分析結果中的功能碼取值范圍,并且獲得兩種非法數(shù)據(jù)地址和非法功能流量樣本種類。

(2) 請求數(shù)目字段語義驗證。針對初始協(xié)議逆向分析結果中的請求線圈數(shù)目字段語義進行驗證,交互反饋報文中寄存器狀態(tài)數(shù)完全符合請求線圈的寄存器數(shù)目總和,表明該字段語義分析正確。

(3) 請求地址字段語義驗證。針對初始協(xié)議逆向分析結果中的原有地址和變異地址進行驗證,交互反饋報文中數(shù)據(jù)值變化均能夠對應地址變化情況,表明該字段是請求地址字段。

(4) 長靜態(tài)字段劃分。對比Modbus協(xié)議規(guī)范和初始協(xié)議逆向分析結果,可發(fā)現(xiàn)Modbus協(xié)議經(jīng)逆向分析后,協(xié)議標識符、長度和設備地址等字段被劃分為一個長靜態(tài)字段。因此,RAIPAIL分別對“協(xié)議標識符”、“長度”和“設備地址”等字段采用“單字節(jié)變異”。驗證結果:針對“協(xié)議標識符”字段變異,模擬器都未響應,進而確定該字段不可修改,屬于靜態(tài)固定值字段;針對“長度”字段變異,模擬器反饋“畸形數(shù)據(jù)包錯誤”,進而確定該字段可修改,屬于動態(tài)字段;針對“設備地址”字段變異,模擬器反饋“非法數(shù)據(jù)地址異常”,進而確定該字段可修改,屬于動態(tài)字段。最終,確定該偽靜態(tài)長字段可以進一步被細劃分為“靜態(tài)字段+動態(tài)字段+動態(tài)字段”。

5.2.2 IEC-104協(xié)議字段驗證

針對IEC-104協(xié)議逆向分析結果,RAIPAIL進行多次主動式交互測試,實驗結果如表3所示。

表3 IEC104字段實驗結果

結合表3中的實驗結果,可分別從控制字段取值范圍探測、數(shù)據(jù)長度字段語義驗證、傳送原因字段取值探測和請求地址字段驗證等4個角度進行分析:

(1) 控制字段取值范圍探測。根據(jù)初始協(xié)議逆向分析結果,收集的IEC-104樣本中的控制字段主要包括啟動命令、啟動命令確認、測試命令、測試命令確認等功能,而RAIPAIL可以額外探測到停止命令和停止命令確認等新控制功能。

(2) 數(shù)據(jù)長度字段語義驗證。針對初始協(xié)議逆向分析結果中的數(shù)據(jù)長度字段進行驗證,RAIPAIL通過修改字段值并進行主動交互,僅當修改值與數(shù)據(jù)長度完全一致時,才能收到目標設備的正確報文;否則,IEC服務器將不返回錯誤報文信息,進而表明該字段確為數(shù)據(jù)長度字段。

(3) 傳送原因字段取值探測。根據(jù)初始協(xié)議逆向分析結果,收集的IEC-104樣本中的傳送原因字段取值為64和67,而RAIPAIL可以額外探測出新取值01。然而,因傳輸多數(shù)為命令,且IEC104模擬器對錯誤報文不返回狀態(tài),因此,推測傳輸原因字段取值范圍暫定為01~67。

(4) 請求地址字段驗證。針對初始協(xié)議逆向分析結果中的原有地址和變異地址進行驗證,交互反饋報文中數(shù)據(jù)值變化均能夠對應地址變化情況,表明該字段是請求地址字段。

5.2.3 MQTT協(xié)議字段驗證

針對MQTT協(xié)議逆向分析結果,RAIPAIL進行多次主動式交互測試。實驗結果如表4所示。

表4 MQTT字段實驗結果

結合表4中的實驗結果,分別從控制字段取值范圍探測、數(shù)據(jù)長度字段語義驗證、未知字段語義探測和長度字段語義驗證等4個角度進行分析:

(1) 控制字段取值范圍探測。根據(jù)初始協(xié)議逆向分析結果,收集的MQTT樣本中的控制字段僅有01、02、03、04、09等5種取值,而RAIPAIL通過對控制字段進行變異,并與服務器主動交互,觀察訂閱者,服務器對錯誤報文均無響應結果,因此保持原有結果集。

(2) 數(shù)據(jù)長度字段語義驗證。針對初始協(xié)議逆向分析結果中的數(shù)據(jù)長度字段進行驗證,RAIPAIL通過修改字段值并進行主動交互,經(jīng)轉義和對比訂閱者的數(shù)據(jù)流量中的數(shù)據(jù)長度字段相同,驗證該字段確為數(shù)據(jù)長度字段。

(3) 未知字段語義探測。根據(jù)初始協(xié)議逆向分析結果,RAIPAIL對初始字段轉義獲得mqtt/test,并生成大量測試用例,通過與工控設備進行主動交互以獲得反饋結果,對應字段轉義為mqtt/work,進而探測該未知字段是主題名字段。

(4) 長度字段語義驗證。針對初始協(xié)議逆向分析結果中的數(shù)據(jù)長度字段進行驗證,RAIPAIL通過修改字段值并進行主動交互,僅當修改值與數(shù)據(jù)長度完全一致時,才能收到目標設備的正確報文;否則,MQTT服務器將不返回錯誤報文信息,進而表明該字段確為數(shù)據(jù)長度字段。

5.2.4 小 結

通過對Modbus、IEC104和MQTT 3種主流工控協(xié)議的報文字段進行分析,可發(fā)現(xiàn)工控協(xié)議通常采用小包傳輸,使用一個或者幾個字節(jié)來標示相應的功能,并且數(shù)據(jù)包具有相對一致的結構和字段內容結構,具有相對固定的周期,以確定設備處于連接狀態(tài)的時間和行為。基于工控協(xié)議這些特征,RAIPAIL不僅可以有效驗證初始逆向分析結果中字段語義的正確性,還能夠準確探測MQTT協(xié)議中初始協(xié)議逆向無法提取的未知字段語義。此外,RAIPAIL還進一步對字段取值范圍進行探測與擴充,并徹底解決偽靜態(tài)長字段問題。

5.3 協(xié)議狀態(tài)機分析

由于Modbus協(xié)議沒有狀態(tài),RAIPAIL僅針對IEC104和MQTT協(xié)議狀態(tài)機進行分析,分別從新狀態(tài)探測、新狀態(tài)轉化序列和新狀態(tài)依賴等3個角度進行驗證與探測。

5.3.1 IEC104協(xié)議狀態(tài)機探測

針對IEC104協(xié)議,通過分析初始協(xié)議逆向分析結果,IEC104協(xié)議狀態(tài)機主要包括4種協(xié)議狀態(tài),如表5所示。

表5 IEC104初始逆向結果狀態(tài)定義

基于分析初始協(xié)議逆向推斷的IEC104協(xié)議狀態(tài)機,RAIPAIL對各個協(xié)議狀態(tài)的轉化序列進行驗證與測試,并構建協(xié)議狀態(tài)轉化圖,如圖2所示。

圖2 IEC 104協(xié)議狀態(tài)機分析結果圖

結合圖2可以明顯看出,RAIPAIL能夠準確驗證IEC104協(xié)議狀態(tài)機中各種協(xié)議狀態(tài)和狀態(tài)轉換序列,同時,還能夠進一步探測出IEC104協(xié)議中的新協(xié)議狀態(tài)和新狀態(tài)轉換序列。具體結果如表6所示。

表6 IEC104協(xié)議新狀態(tài)和狀態(tài)轉化序列

5.3.2 MQTT協(xié)議狀態(tài)機探測

針對MQTT協(xié)議,通過分析初始協(xié)議逆向分析結果,MQTT協(xié)議狀態(tài)機主要包括3種協(xié)議狀態(tài),如表7所示。

表7 MQTT初始逆向結果狀態(tài)定義

基于分析初始協(xié)議逆向推斷的MQTT協(xié)議狀態(tài)機,RAIPAIL對各個協(xié)議狀態(tài)的轉化序列進行驗證與測試,并構建協(xié)議狀態(tài)轉化圖,如圖3所示。

圖3 MQTT協(xié)議狀態(tài)機分析結果圖

結合圖3可以明顯看出,RAIPAIL能夠準確驗證MQTT協(xié)議狀態(tài)機中各種協(xié)議狀態(tài)和狀態(tài)轉換序列,同時,還能夠進一步探測出MQTT協(xié)議中的新協(xié)議狀態(tài)和新狀態(tài)轉換序列。具體結果如表8所示。

表8 MQTT協(xié)議狀態(tài)機實驗詳解

5.3.3 小 結

通過對IEC104和MQTT的協(xié)議狀態(tài)機進行分析,可發(fā)現(xiàn)工控協(xié)議狀態(tài)機通常較為簡單,甚至沒有狀態(tài)信息,但是由于工控系統(tǒng)的穩(wěn)定性和可靠性要求,工控協(xié)議的報文覆蓋率相對較低,特別是一些異常狀態(tài),導致根據(jù)流量樣本逆向的狀態(tài)機的構建往往只是完整狀態(tài)機的子集。針對這些問題,RAIPAIL不僅可以有效地驗證原有狀態(tài)機的正確性,還能夠基于初始逆向結果探測出新協(xié)議狀態(tài)和狀態(tài)轉化序列。此外,RAIPAIL還實現(xiàn)對工控協(xié)議的控制字段依賴的主動挖掘,增強工控協(xié)議狀態(tài)機的完備性。

6 結束語

筆者提出了一種基于主動交互式學習的未知工控協(xié)議逆向分析方法(RAIPAIL)。該方法根據(jù)不同協(xié)議字段,設計相應變異器以驗證字段語義、擴充字段取值和異常樣本類型,不僅能夠有效驗證未知工控協(xié)議逆向分析結果的準確性,還能夠有效解決因樣本多樣性不足而導致的偽靜態(tài)長字段問題;同時,根據(jù)初始逆向提取的協(xié)議狀態(tài)機,組合多種順序通信序列,與工控設備進行主動式交互通信,以探測新協(xié)議狀態(tài)、狀態(tài)轉化序列、狀態(tài)依賴的關系,能夠進一步提高逆向分析結果的完整性。因此,RAIPAIL對需要依賴協(xié)議逆向分析的入侵檢測、漏洞挖掘等網(wǎng)絡安全技術具有極高的應用價值。然而,RAIPAIL目前僅適用于能夠為第三方工具提供交互功能或模擬器的工控系統(tǒng),并且RAIPAIL的驗證環(huán)節(jié)目前仍需人工操作。未來將針對無法為第三方工具提供交互功能或者模擬器的工控系統(tǒng)的協(xié)議逆向方法進行研究,并重點針對方法的驗證模塊進行改進,以減少對人工專家經(jīng)驗的依賴。比如將探測響應報文與前期逆向結果自動化地進行比對,采用自動化顯示返回報文對應的樣本類型,以提高RAIPAIL的自動化程度,進而降低人工分析的難度。

猜你喜歡
語義分析
隱蔽失效適航要求符合性驗證分析
語言與語義
電力系統(tǒng)不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
電力系統(tǒng)及其自動化發(fā)展趨勢分析
“上”與“下”語義的不對稱性及其認知闡釋
認知范疇模糊與語義模糊
中西醫(yī)結合治療抑郁癥100例分析
在線教育與MOOC的比較分析
“深+N季”組配的認知語義分析
當代修辭學(2011年6期)2011-01-29 02:49:50
語義分析與漢俄副名組合
外語學刊(2011年1期)2011-01-22 03:38:33
主站蜘蛛池模板: 美女高潮全身流白浆福利区| 色亚洲激情综合精品无码视频 | 伊人AV天堂| 久久男人视频| 国产在线第二页| 自慰高潮喷白浆在线观看| 国产又黄又硬又粗| 亚洲天堂色色人体| 国产精品久久自在自线观看| 久久99久久无码毛片一区二区| 日韩成人在线一区二区| 99在线观看国产| 91免费观看视频| 日本少妇又色又爽又高潮| 国产精品青青| 亚洲人成影视在线观看| 久久久久人妻一区精品色奶水| 岛国精品一区免费视频在线观看| 白浆免费视频国产精品视频| 亚洲人成网线在线播放va| 99热这里只有精品在线观看| 一区二区三区在线不卡免费| 成人国产免费| 亚洲国产综合精品一区| 国产精品成人AⅤ在线一二三四| 亚洲中文字幕av无码区| 最新国语自产精品视频在| 国产福利影院在线观看| 波多野结衣视频一区二区| 中文字幕日韩丝袜一区| jizz国产在线| 新SSS无码手机在线观看| 亚洲v日韩v欧美在线观看| 干中文字幕| 精品日韩亚洲欧美高清a| 欧美中文字幕在线视频| 亚洲天堂成人| 久热99这里只有精品视频6| 中文字幕在线日韩91| 欧美在线精品怡红院| 国产91在线|日本| 伊人久久大线影院首页| 欧美日韩激情在线| 国国产a国产片免费麻豆| 亚洲人成亚洲精品| 亚洲精品日产精品乱码不卡| 日本黄网在线观看| 91欧洲国产日韩在线人成| 精品无码国产自产野外拍在线| 91色爱欧美精品www| 不卡国产视频第一页| 国产精品欧美在线观看| 色窝窝免费一区二区三区| 五月婷婷综合网| 精品三级网站| 免费va国产在线观看| 精品人妻AV区| 久久永久视频| 午夜高清国产拍精品| 久久综合九九亚洲一区| 日本国产一区在线观看| 久久大香香蕉国产免费网站| 亚洲成aⅴ人片在线影院八| 综合色在线| 国产午夜一级毛片| 久久久久久久久18禁秘| 国产精品55夜色66夜色| 91亚洲免费| 免费三A级毛片视频| 国产精品视频免费网站| 免费看一级毛片波多结衣| 欧美啪啪视频免码| 免费在线观看av| 国产v精品成人免费视频71pao| 午夜福利在线观看入口| 久久青青草原亚洲av无码| 日本久久免费| 精品少妇人妻无码久久| 91小视频版在线观看www| 国产一级精品毛片基地| 亚洲资源站av无码网址| 国产色伊人|