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

        ?

        面向工控的協(xié)議解析方法應(yīng)用研究*

        2021-03-09 08:07:24韓鵬軍
        關(guān)鍵詞:語義特征分析

        董 健 ,韓鵬軍

        (1.公安部第三研究所,北京100004;2.國家能源集團,北京100007)

        0 引言

        伴隨著互聯(lián)網(wǎng)信息技術(shù)、工業(yè)自動化技術(shù)的革命性突破和兩化深度融合,工業(yè)控制系統(tǒng)(ICS)從原先獨立、封閉的環(huán)境逐漸走向開放。 企業(yè)也越來越意識到除了自動化技術(shù),信息安全也決定著工控系統(tǒng)的質(zhì)量和可持續(xù)發(fā)展。 工控系統(tǒng)的安全性很大程度上取決于所采用的工控協(xié)議。 工控協(xié)議種類繁多且缺少固有安全驗證機制,而通過對工控協(xié)議的解析能夠從指令級和語義級對潛在網(wǎng)絡(luò)攻擊進行檢測、感知和防護[1],研究面向工控的協(xié)議解析方法,對促進工控安全具有重大意義。 目前,工控網(wǎng)絡(luò)安全行業(yè)內(nèi)對協(xié)議解析方面的研究深度還不夠,大部分方法不具備對協(xié)議的深度解析能力,對協(xié)議通信內(nèi)容的語義級解析則更是難以實現(xiàn)。因此,本文在分析現(xiàn)有的協(xié)議解析方法的基礎(chǔ)上,提出兩種面向工控的協(xié)議解析方法:網(wǎng)絡(luò)報文序列解析法和二進制代碼分析法,實現(xiàn)對工控協(xié)議的語義級解析。

        1 相關(guān)知識介紹

        1.1 工控協(xié)議

        網(wǎng)絡(luò)協(xié)議即網(wǎng)絡(luò)上設(shè)備之間的通信規(guī)則,它對通信時信息必須采用的格式以及這些格式的意義進行了規(guī)定。 現(xiàn)有的網(wǎng)絡(luò)協(xié)議由一些專門的組織(如IEC、ISO 等)制定或者從早期的實驗室協(xié)議(如TCP/IP 協(xié)議)中演進而來。 根據(jù)這些協(xié)議是否應(yīng)用于工業(yè)互聯(lián)網(wǎng)領(lǐng)域,可以劃分為傳統(tǒng)互聯(lián)網(wǎng)協(xié)議和工控協(xié)議。 常見的傳統(tǒng)互聯(lián)網(wǎng)協(xié)議主要有HTTP、FTP、TCP/IP、VPN 等協(xié)議;常見的工控協(xié)議主要有S7、Modbus、GOOSE、MMS 等協(xié)議。

        1.2 協(xié)議解析

        1.2.1 協(xié)議識別技術(shù)

        在協(xié)議解析前需要通過協(xié)議識別技術(shù)準確識別網(wǎng)絡(luò)協(xié)議,識別網(wǎng)絡(luò)協(xié)議對于基于通信數(shù)據(jù)的網(wǎng)絡(luò)安全檢測和防御有著重要的意義。 網(wǎng)絡(luò)協(xié)議識別的主流技術(shù)主要有:基于行為特征的識別技術(shù)、基于報文負載特征的識別技術(shù)、基于TCP/UDP 端口的識別技術(shù)以及基于關(guān)聯(lián)分析的檢測和識別技術(shù)。

        (1)基于行為特征的識別技術(shù)

        不同的應(yīng)用協(xié)議有不同的會話連接狀態(tài)或者數(shù)據(jù)流狀態(tài)[2]。 例如,在統(tǒng)計學(xué)特征上,基于P2P 下載應(yīng)用的流量表現(xiàn)為長流大報文,下載時間長,連接速率高,且平均包長都在450 B 以上。 基于行為特征的識別技術(shù)利用了統(tǒng)計學(xué)原理,根據(jù)應(yīng)用協(xié)議數(shù)據(jù)流的統(tǒng)計學(xué)特征,實現(xiàn)識別應(yīng)用類型,即所使用的協(xié)議類型。

        (2)基于報文負載特征的識別技術(shù)

        基于報文負載特征的識別技術(shù)是通過數(shù)據(jù)報文的負載部分對應(yīng)用協(xié)議進行識別[3-5]。 此技術(shù)需要事先找出待識別的應(yīng)用協(xié)議的“指紋”特征,即該應(yīng)用協(xié)議不同于其他任何應(yīng)用協(xié)議的內(nèi)容特征。 在識別過程中,檢查數(shù)據(jù)流中每個數(shù)據(jù)包TCP 或UDP首部之上的應(yīng)用層負載部分,若匹配到某應(yīng)用協(xié)議的“指紋”特征,則將該數(shù)據(jù)流標記為相應(yīng)的應(yīng)用協(xié)議。 這種識別方法準確性較高。

        (3)基于TCP/UDP 端口的識別技術(shù)

        基于TCP/UDP 端口的識別技術(shù)是傳統(tǒng)的僅使用TCP/UDP 端口進行協(xié)議識別的技術(shù)。 在Internet編號分配管理機構(gòu)IANA 中有各個協(xié)議詳細的注冊端口號[6]。 由于基于TCP/UDP 端口的識別算法簡單,需要的相關(guān)信息少,因此該識別算法的時間復(fù)雜度和空間復(fù)雜度是所有協(xié)議識別算法中最低的。

        (4)基于關(guān)聯(lián)分析的檢測和識別技術(shù)

        在網(wǎng)絡(luò)中,有一些應(yīng)用協(xié)議使用不止一條連接流傳輸數(shù)據(jù)。 此類業(yè)務(wù)應(yīng)用的控制通道和數(shù)據(jù)通道是分離的,數(shù)據(jù)通道沒有任何指紋特征和端口特征,因此,需要使用關(guān)聯(lián)分析的識別技術(shù)對數(shù)據(jù)流進行識別。 該技術(shù)首先識別出控制通道,其次分析控制通道數(shù)據(jù)流中協(xié)商數(shù)據(jù)通道信息的數(shù)據(jù),得到數(shù)據(jù)通道的IP 和端口特征,最后,根據(jù)上述IP 和端口特征來識別數(shù)據(jù)流。 常見的FTP、OPC DA 等協(xié)議的數(shù)據(jù)通道就需要靠關(guān)聯(lián)分析的檢測和識別技術(shù)來進行識別。

        關(guān)聯(lián)分析具有特殊的適用性,因此一般需要和基于TCP/UDP 端口的識別技術(shù)等其他技術(shù)配合使用,能夠很大程度提高應(yīng)用協(xié)議識別的準確率。 由于工業(yè)網(wǎng)絡(luò)中常見的協(xié)議OPC DA 也使用多條數(shù)據(jù)流的方式傳輸數(shù)據(jù),因此,此技術(shù)也適用于工業(yè)網(wǎng)絡(luò)。

        上述識別技術(shù)對比如表1 所示。

        表1 協(xié)議識別技術(shù)對比

        1.2.2 應(yīng)用程序分析技術(shù)

        應(yīng)用程序分析技術(shù)的主要原理是使用文件掃描工具,識別出ICS 系統(tǒng)(軟件)中網(wǎng)絡(luò)通信相關(guān)的子模塊,采用反匯編工具將前述獲取的網(wǎng)絡(luò)通信子模塊進行反匯編,獲得程序腳本進行分析并最終獲得該程序所使用的通信協(xié)議幀,再通過逆向技術(shù)對數(shù)據(jù)幀的指令和語義進行提取,然后使用程序或腳本對其進行格式化處理進而可以實現(xiàn)對該應(yīng)用程序所用的通信協(xié)議的解析。

        通過應(yīng)用程序分析實現(xiàn)對其通信協(xié)議的解析,其關(guān)鍵在于能夠從程序的反匯編語言中分析出該程序在進行通信時所采用的通信協(xié)議,進而實現(xiàn)對目標協(xié)議的解析。

        1.2.3 逆向解析技術(shù)

        逆向解析技術(shù)是一種設(shè)計技術(shù)再現(xiàn)過程,即對一項目標產(chǎn)品進行逆向分析及研究,從而演繹并得出該產(chǎn)品的處理流程、組織結(jié)構(gòu)、功能特性及技術(shù)規(guī)格等設(shè)計要素。

        在協(xié)議解析過程中,最常用的逆向解析技術(shù)即分析通過信息交換所得的觀察。 在接入計算機總線或網(wǎng)絡(luò)并成功截取通信數(shù)據(jù)后,對總線或網(wǎng)絡(luò)行為進行分析,將獲取的通信數(shù)據(jù)進行指令級和語義級的解析。

        2 面向工控的協(xié)議解析方法

        2.1 網(wǎng)絡(luò)報文序列解析法

        網(wǎng)絡(luò)報文解析的技術(shù)路線主要是直接從網(wǎng)絡(luò)通信的數(shù)據(jù)包出發(fā),通過數(shù)據(jù)包的獲取、協(xié)議的識別、協(xié)議封頭的剝除和必要的逆向技術(shù)等手段進行網(wǎng)絡(luò)協(xié)議解析。

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

        基于網(wǎng)絡(luò)通信的基本原理,在進行網(wǎng)絡(luò)協(xié)議解析時需要首先通過專門的網(wǎng)絡(luò)工具獲取足夠數(shù)量的數(shù)據(jù)包。

        (2)數(shù)據(jù)包預(yù)處理

        數(shù)據(jù)包預(yù)處理是指在對收集到的數(shù)據(jù)包進行分類、分組前所進行的審核、篩選、排序等處理。

        (3)網(wǎng)絡(luò)協(xié)議識別與分析

        即采用1.2.1 節(jié)所述的協(xié)議識別技術(shù)對網(wǎng)絡(luò)通信所使用的協(xié)議進行識別。

        (4)協(xié)議解析

        對于公有通信協(xié)議,其相關(guān)的管理組織會將報文結(jié)構(gòu)文檔和詳細的說明文檔等技術(shù)資料公開,供廣大廠商進行研究和應(yīng)用,例如Modbus 協(xié)議。 對于這類公有通信協(xié)議的解析而言,基本思路是:基于OSI 的七層協(xié)議模型,協(xié)議數(shù)據(jù)在發(fā)送時,是經(jīng)過從上到下層層封裝的,因而在解析時,需要從下至上層層去除封頭。 在對網(wǎng)絡(luò)層的協(xié)議進行識別、組包還原后,首先去除網(wǎng)絡(luò)層協(xié)議封頭,將里面的數(shù)據(jù)交給傳輸層,然后層層去除封頭,直至應(yīng)用層,即可以獲取相應(yīng)通信的內(nèi)容。 然后再通過對大量通信數(shù)據(jù)的分析和逆向解析等,實現(xiàn)對目標協(xié)議的最終解析。

        基于網(wǎng)絡(luò)報文的私有通信協(xié)議解析方法主要是在通過抓包工具抓取現(xiàn)場設(shè)備和其上位軟件之間的通信報文之后,利用相關(guān)工具對報文進行逐字節(jié)的分析比較,找出其規(guī)律,摸索各個報文之間的不同之處以及與界面配置參數(shù)的關(guān)系。

        考慮到工控協(xié)議的特點, 提出包含預(yù)處理、單報文處理、多報文處理、語義推斷四個階段的工控協(xié)議分析方法,如圖1 所示。

        圖1 工控協(xié)議解析圖

        2.2 二進制代碼分析法

        二進制代碼分析法主要是有針對性地對目標工控網(wǎng)絡(luò)所采用的上位機軟件通信模塊進行分析,通過工具軟件對其通信相關(guān)的內(nèi)容進行交叉引用分析、協(xié)議幀重構(gòu)、語義提取、格式化處理等,進而實現(xiàn)對目標協(xié)議的解析工作。

        (1)文件掃描

        工控軟件通常由眾多功能模塊構(gòu)成,體積較為龐大。 若對工控軟件的所有功能模塊執(zhí)行協(xié)議解析算法,則不但造成了較高的時間開銷,且降低了分析的準確度。 其實,只對其中的通信模塊執(zhí)行協(xié)議解析算法是更好的選擇。 文件掃描就是為協(xié)議分析過濾掉與通信無關(guān)的內(nèi)容,其目的即在眾多功能模塊中定位協(xié)議分析的對象:通信模塊。

        (2)協(xié)議提?、贁?shù)據(jù)預(yù)處理

        通過反匯編器IDA Pro 將目標代碼轉(zhuǎn)換為匯編代碼,讀取匯編代碼,對DLL 中的函數(shù)進行標記處理,剔除與通信過程無關(guān)的函數(shù)。 具體采用兩種方法進行篩選,第一種方法利用了函數(shù)調(diào)用的層次結(jié)構(gòu),依據(jù)向上的代碼交叉引用進行篩選;第二種方法源于動態(tài)二進制逆向分析中常用的污點算法,經(jīng)修改后基于數(shù)據(jù)交叉引用實現(xiàn),用于此處的靜態(tài)二進制分析場景。

        交叉引用分析階段即通過函數(shù)之間的引用信息推斷函數(shù)類型。 調(diào)用IDC 函數(shù)獲取交叉引用信息,對獲得的引用信息進行統(tǒng)計分析以推斷函數(shù)類型。 例如,一般與控制幀相關(guān)的函數(shù)被調(diào)用的次數(shù)少,其與底層函數(shù)間的距離短,調(diào)用底層函數(shù)的次數(shù)多。 函數(shù)類型推斷時使用的分界值與協(xié)議的復(fù)雜度有關(guān),具體根據(jù)協(xié)議復(fù)雜度指定分界值。

        ③協(xié)議幀重構(gòu)

        以獲得的函數(shù)調(diào)用關(guān)系和推定的函數(shù)類型為參考,在協(xié)議幀重構(gòu)階段判斷函數(shù)代碼特征,對目標協(xié)議中存在的幀進行重構(gòu)與分類。 涉及的函數(shù)代碼特征主要包括與底層函數(shù)的距離是否為1、是否定長、是否存在較多的函數(shù)賦值操作等。

        ④識別協(xié)議字段信息

        協(xié)議的字段信息包括:分隔符、關(guān)鍵字、校驗域、長度域、指示域等,通過檢索處理協(xié)議幀字段的二進制代碼是否存在相關(guān)的特征,可以提取到協(xié)議幀的字段信息。 例如:分隔符和關(guān)鍵字會涉及常量賦值操作,主要區(qū)別在于,分隔符的值通常可以映射成 ASCII 表中的特定字符,關(guān)鍵字通常為一般數(shù)據(jù);校驗域通常伴隨著大量的移位運算。 對于一些不存在顯著特征的代碼段,直接提取相關(guān)的二進制代碼,轉(zhuǎn)儲到文件后,在數(shù)據(jù)結(jié)構(gòu)中記錄該二進制代碼段與對應(yīng)的協(xié)議字段的關(guān)聯(lián)。

        ⑤去冗余及格式化處理

        經(jīng)以上過程處理后,得到的協(xié)議格式有可能存在冗余,例如,同一種變長幀可能因個別字段值不同而被記錄為多種幀。 在該階段,通過比對已知語義實現(xiàn)對幀的去冗余。 同一種變長幀之間雖然具有不同的長度和字段值,但通過已知語義比對能發(fā)現(xiàn)其較高的重復(fù)率。 將重復(fù)率超過閾值的兩種幀判定為同一種幀,對二者執(zhí)行合并操作,實現(xiàn)去冗余。最后,通過對幀進行格式化處理,將協(xié)議信息以一種標準格式輸出。

        3 實驗

        3.1 網(wǎng)絡(luò)報文序列解析實驗

        (1)數(shù)據(jù)包抓取

        主要教學(xué)內(nèi)容:針對某一具體裝配對象進行系統(tǒng)研究,完成裝配流程設(shè)計、視頻采集、達寶易軟件分析、標準作業(yè)指導(dǎo)書制訂等,加強培養(yǎng)學(xué)生的實踐應(yīng)用能力。教學(xué)地點:實驗室;教學(xué)課時:1周。

        通過wireshark 抓包軟件抓取工業(yè)網(wǎng)絡(luò)數(shù)據(jù)包,在工作站執(zhí)行指令前,啟動wireshark,指令執(zhí)行完畢后,關(guān)閉wireshark。 對wireshark 抓取到的數(shù)據(jù)包,如圖2 所示,先通過篩選地址過濾掉部分無關(guān)數(shù)據(jù)包,再根據(jù)指令的唯一性找出對應(yīng)的數(shù)據(jù)包。 通過上述方法, 獲取下發(fā)不同指令時對應(yīng)的數(shù)據(jù)包。圖3、圖4 分別為下發(fā)繼電器閉合、斷開指令時獲得的數(shù)據(jù)包。

        圖2 工控協(xié)議數(shù)據(jù)包

        (2)語義解析和格式推斷

        圖3 繼電器閉合

        圖4 繼電器斷開

        排除數(shù)值與位置相同的部分,重點關(guān)注同一位置發(fā)生變化的部分。 利用先驗知識,以及整型數(shù)據(jù)轉(zhuǎn)換、浮點數(shù)據(jù)轉(zhuǎn)換、十六進制轉(zhuǎn)換成 ASCII 碼等方式解析發(fā)生變化的字段的含義。 圖3、圖4 中有兩處位置的數(shù)值發(fā)生了變化,第一處d4 變?yōu)閐5,第二處00 變?yōu)?1。 此時難以確定控制繼電器閉合斷開的位置是哪處。 繼續(xù)重復(fù)執(zhí)行閉合、斷開指令抓取數(shù)據(jù)包,發(fā)現(xiàn)處于第一處位置上的數(shù)值會繼續(xù)增加,第二處位置上的00、01 繼續(xù)交替出現(xiàn)。 因此可以確定第一處變化是一種遞增關(guān)系,由第二處控制繼電器狀態(tài)。 按照上述方法不斷進行實驗比對后,解析出協(xié)議格式,如圖5 所示。

        圖5 協(xié)議格式

        3.2 二進制代碼分析實驗

        (1)搭建環(huán)境

        首先,在Ubuntu 系統(tǒng)中啟動搭建好的TEMU 分析平臺,同時啟動QEMU 仿真器中安裝的客戶機系統(tǒng)Windows XP2;然后,加載TEMU 插件,通過命令“l(fā)oad_plugin”加載指定路徑下的跟蹤插件,調(diào)用回調(diào)函數(shù)處理和監(jiān)控某些對應(yīng)的指令操作行為;最后,通過使能仿真系統(tǒng)模擬真實操作系統(tǒng)所有的CPU、存儲、IO 設(shè)備等功能模塊。

        (2)協(xié)議提取

        通過跟蹤指令trace 監(jiān)控目標進程的運行情況,將跟蹤到的結(jié)果信息存放在指定的文件里。 如圖6所示,圖中“736”是目標進程server.exe 的id 號,“./temu_tracefiles/server.trace”是存放跟蹤產(chǎn)生的二進制信息的指定文件。server.exe 是本文設(shè)計的處理網(wǎng)絡(luò)通信的服務(wù)端程序,具有發(fā)送、接收和處理網(wǎng)絡(luò)數(shù)據(jù)的功能。

        在客戶機系統(tǒng)中運行server.exe 應(yīng)用程序,通過指令trace 跟蹤進程server.exe 的動態(tài)二進制執(zhí)行軌跡,生成一個二進制記錄文件:server.trace。 該文件里包含了跟蹤插件監(jiān)控的所有指令對應(yīng)的二進制代碼。 通過反匯編器IDA pro 將二進制文件轉(zhuǎn)化為匯編代碼。 跟蹤目標應(yīng)用程序server.exe 完成后,卸載跟蹤插件,停止模擬跟蹤功能。

        通過TEMU 動態(tài)分析后,生成server.exe動態(tài)執(zhí)行的匯編指令文件:trace.asm,繼而按照2.2 節(jié)描述的方法進行協(xié)議解析。

        查看TEMU 動態(tài)跟蹤生成的匯編文件、顯示應(yīng)用程序server.exe 處理的十六進制污點源數(shù)據(jù)以及啟動協(xié)議逆向分析,這些功能都可在讀取協(xié)議數(shù)據(jù)對話框中實現(xiàn),如圖7 所示。

        圖8 是提取協(xié)議語法字段和語義信息的界面示圖,主要由協(xié)議分析結(jié)果呈現(xiàn)和特征信息錄入兩部分構(gòu)成。 協(xié)議分析結(jié)果模塊是呈現(xiàn)通過后臺協(xié)議逆向分析算法所解析出的協(xié)議語法要素和語義信息。 特征信息錄入模塊是對協(xié)議分析結(jié)果的特征信息進行錄入操作,以避免重復(fù)分析,提高分析效率。

        4 結(jié)論

        實驗證明,本文提出的面向工控協(xié)議的網(wǎng)絡(luò)報文序列解析法和二進制代碼分析法,均得以在實際環(huán)境中發(fā)揮效用,實現(xiàn)對工控協(xié)議的語義級解析。其中,網(wǎng)絡(luò)報文序列解析法采用報文比對方式,對技術(shù)能力要求較低,但需要獲取大量報文并進行比對分析, 公有協(xié)議可配合協(xié)議公開文檔進行分析,但私有協(xié)議往往需要靠語義猜測來進行解析,解析的完整性、準確性較低;二進制代碼分析法采用固件逆向解析方式,通過直接提取協(xié)議固件、數(shù)據(jù)預(yù)處理、反編譯等一系列的操作解析出協(xié)議格式,實現(xiàn)深度語義級解析,即實現(xiàn)解析到功能碼后面的內(nèi)容或值,但解析周期長,對技術(shù)能力要求較高。

        圖6 TEMU 監(jiān)控目標進程截圖

        圖7 讀取協(xié)議數(shù)據(jù)對話框

        圖8 協(xié)議分析結(jié)果和特征錄入

        猜你喜歡
        語義特征分析
        隱蔽失效適航要求符合性驗證分析
        語言與語義
        如何表達“特征”
        不忠誠的四個特征
        電力系統(tǒng)不平衡分析
        電子制作(2018年18期)2018-11-14 01:48:24
        抓住特征巧觀察
        電力系統(tǒng)及其自動化發(fā)展趨勢分析
        “上”與“下”語義的不對稱性及其認知闡釋
        認知范疇模糊與語義模糊
        線性代數(shù)的應(yīng)用特征
        河南科技(2014年23期)2014-02-27 14:19:15
        老太脱裤让老头玩ⅹxxxx| 伊人久久这里只有精品| 久久婷婷五月综合色欧美| 夜夜高潮夜夜爽夜夜爱爱| av色综合网站| 色妞一区二区三区免费视频| 亚洲国产高清精品在线| 激情航班h版在线观看| 亚洲成年网站在线777| 国产91熟女高潮一曲区| 激情精品一区二区三区| 看黄a大片日本真人视频直播 | 久久久久麻豆v国产精华液好用吗| 亚洲欧美日韩精品久久亚洲区色播| 在线久草视频免费播放| 内射人妻无套中出无码| 无码手机线免费观看| 国内精品久久久久国产盗摄| 一本色道久久综合亚洲精品不| 日本中国内射bbxx| 久久亚洲av成人无码国产| 日韩AV无码乱伦丝袜一区| 福利利视频在线观看免费| 一二三四日本中文在线| 国产在线一区观看| 亚洲大片一区二区三区四区| 亚洲av无码乱码国产麻豆| 国产精品国产午夜免费看福利| 亚洲欧洲日韩另类自拍| 91久久精品美女高潮喷白浆| 国产婷婷色一区二区三区在线| 狠狠久久久久综合网| 手机在线免费看av网站| 成人免费自拍视频在线观看| 男受被做哭激烈娇喘gv视频| 精品一区二区三区在线视频观看| 成人大片免费在线观看视频| 狠狠躁夜夜躁人人爽天天古典| 亚洲伊人久久大香线蕉影院| 女同另类一区二区三区| 女人下边被添全过视频|