[發(fā)明專利]一種基于協(xié)議狀態(tài)的工控協(xié)議模糊測(cè)試方法有效
| 申請(qǐng)?zhí)枺?/td> | 201610094014.3 | 申請(qǐng)日: | 2016-02-19 |
| 公開(kāi)(公告)號(hào): | CN105763392B | 公開(kāi)(公告)日: | 2019-03-08 |
| 發(fā)明(設(shè)計(jì))人: | 洪征;吳禮發(fā);張亞豐;田益凡;賴海光;李華波;鄭成輝;黃康宇 | 申請(qǐng)(專利權(quán))人: | 中國(guó)人民解放軍理工大學(xué) |
| 主分類(lèi)號(hào): | H04L12/26 | 分類(lèi)號(hào): | H04L12/26;H04L29/06 |
| 代理公司: | 南京瑞弘專利商標(biāo)事務(wù)所(普通合伙) 32249 | 代理人: | 陳建和 |
| 地址: | 210007*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 協(xié)議 狀態(tài) 模糊 測(cè)試 方法 | ||
1.一種基于協(xié)議狀態(tài)的工控協(xié)議模糊測(cè)試方法,其特征在于,包括以下步驟:
(1)協(xié)議狀態(tài)機(jī)提取:采用協(xié)議狀態(tài)機(jī)提取方法,即采用開(kāi)源協(xié)議逆向分析項(xiàng)目Netzob的協(xié)議狀態(tài)機(jī)提取方法,其基本流程是:在協(xié)議通信報(bào)文樣本集的基礎(chǔ)上,利用請(qǐng)求詢問(wèn)和應(yīng)答反饋不斷擴(kuò)充原始通信報(bào)文樣本集,判斷所推斷的候選協(xié)議狀態(tài)機(jī)是否與真實(shí)協(xié)議狀態(tài)機(jī)一致,當(dāng)滿足協(xié)議狀態(tài)機(jī)等價(jià)條件時(shí)輸出協(xié)議狀態(tài)機(jī);在獲得待測(cè)工控協(xié)議的協(xié)議狀態(tài)機(jī)后,將協(xié)議狀態(tài)機(jī)表示為XML語(yǔ)言描述的腳本文件;
(2)報(bào)文序列庫(kù)的構(gòu)建:基于協(xié)議狀態(tài)機(jī),收集并存儲(chǔ)工控協(xié)議實(shí)體程序間的正常交互報(bào)文;確保對(duì)于一個(gè)工控協(xié)議實(shí)體程序,當(dāng)其處于初始狀態(tài)時(shí),能夠通過(guò)一系列的正常交互報(bào)文,將工控協(xié)議實(shí)體程序引導(dǎo)至協(xié)議狀態(tài)機(jī)中的任意一個(gè)工控協(xié)議狀態(tài),或者說(shuō),報(bào)文序列庫(kù)收集并存儲(chǔ)了足夠多的正常交互報(bào)文,能夠?qū)⒐た貐f(xié)議實(shí)體程序由初始狀態(tài)引導(dǎo)到任意一個(gè)后續(xù)協(xié)議狀態(tài);
(3)協(xié)議狀態(tài)的引導(dǎo):為了提高測(cè)試的深度,增加覆蓋率,需要對(duì)協(xié)議狀態(tài)機(jī)包含的各個(gè)協(xié)議狀態(tài)進(jìn)行測(cè)試,從而有效發(fā)現(xiàn)工控組件處于不同協(xié)議狀態(tài)時(shí)存在的安全漏洞;在測(cè)試過(guò)程中,需要將工控組件通過(guò)正常的交互報(bào)文引導(dǎo)至需要測(cè)試的某一個(gè)工控協(xié)議狀態(tài),在該協(xié)議狀態(tài)下對(duì)工控組件實(shí)施模糊測(cè)試;
(4)測(cè)試用例的發(fā)送與存儲(chǔ):在將工控協(xié)議實(shí)體程序引導(dǎo)到待測(cè)狀態(tài)后,基于模糊測(cè)試的報(bào)文變異知識(shí)對(duì)工控協(xié)議報(bào)文進(jìn)行變異,向工控協(xié)議實(shí)體程序發(fā)送經(jīng)過(guò)變異的報(bào)文實(shí)施測(cè)試;此外,為了便于后續(xù)分析,將存儲(chǔ)所發(fā)送的測(cè)試用例;
(5)基于心跳的異常監(jiān)測(cè):在發(fā)送完一個(gè)測(cè)試用例后,需要發(fā)送用于探測(cè)工控組件活躍情況的心跳報(bào)文,對(duì)被測(cè)工控組件進(jìn)行監(jiān)測(cè),判斷被測(cè)對(duì)象是否處于正常活躍狀態(tài),從而及時(shí)發(fā)現(xiàn)由于測(cè)試用例發(fā)送而導(dǎo)致的協(xié)議異常;
(6)導(dǎo)致異常的測(cè)試報(bào)文定位:工控協(xié)議的處理異常會(huì)由單個(gè)報(bào)文引起,也會(huì)由報(bào)文序列導(dǎo)致;為了準(zhǔn)確定位導(dǎo)致異常的測(cè)試報(bào)文,需要在測(cè)試端存儲(chǔ)近期所發(fā)送的測(cè)試報(bào)文;當(dāng)出現(xiàn)異常時(shí),將被測(cè)工控組件重置為正常工作狀態(tài),依據(jù)所存儲(chǔ)的報(bào)文進(jìn)行回溯,確定導(dǎo)致異常的報(bào)文或者報(bào)文序列。
2.根據(jù)權(quán)利要求1所述的基于協(xié)議狀態(tài)的工控協(xié)議模糊測(cè)試方法,其特征在于,前述步驟(2)報(bào)文序列庫(kù)的構(gòu)建階段的工作流程如下:基于協(xié)議狀態(tài)機(jī),采用網(wǎng)絡(luò)監(jiān)聽(tīng)技術(shù)進(jìn)行報(bào)文信息收集;每個(gè)工控協(xié)議狀態(tài),需要一系列的報(bào)文交互才會(huì)到達(dá);采用網(wǎng)絡(luò)監(jiān)聽(tīng)技術(shù),捕獲從工控協(xié)議初始狀態(tài)開(kāi)始,到達(dá)每個(gè)特定協(xié)議狀態(tài)的報(bào)文交互序列,并將報(bào)文交互序列以及它們所能夠到達(dá)的報(bào)文狀態(tài)一并存儲(chǔ)在報(bào)文序列庫(kù)中。
3.根據(jù)權(quán)利要求1所述的基于協(xié)議狀態(tài)的工控協(xié)議模糊測(cè)試方法,其特征在于,前述步驟(3)協(xié)議狀態(tài)的引導(dǎo)階段的工作流程如下:為了便于將工控組件設(shè)置為不同的協(xié)議狀態(tài)進(jìn)行模糊測(cè)試,需要進(jìn)行協(xié)議狀態(tài)的引導(dǎo);對(duì)于選定的任意一個(gè)協(xié)議狀態(tài),首先將工控組件設(shè)置為初始狀態(tài),依據(jù)報(bào)文序列庫(kù)中的信息,向工控組件發(fā)送報(bào)文,通過(guò)一系列的報(bào)文交互,使工控組件到達(dá)指定的被測(cè)狀態(tài);即需要測(cè)試的工控協(xié)議狀態(tài)。
4.根據(jù)權(quán)利要求1所述的基于協(xié)議狀態(tài)的工控協(xié)議模糊測(cè)試方法,其特征在于,前述步驟(4)測(cè)試用例的發(fā)送與存儲(chǔ)階段的工作流程如下:在將工控組件引導(dǎo)到待測(cè)狀態(tài)后,將對(duì)屬于該協(xié)議狀態(tài)的正常網(wǎng)絡(luò)報(bào)文進(jìn)行變異,生成測(cè)試用例;報(bào)文的變異將依據(jù)模糊測(cè)試的變異知識(shí)實(shí)施,對(duì)于字符串類(lèi)型的數(shù)據(jù)采用超長(zhǎng)或超短字符串、格式化字符串進(jìn)行替代;數(shù)值類(lèi)型采用0xff+1、0xffff能夠觸發(fā)整數(shù)溢出漏洞的數(shù)值替換;在測(cè)試用例生成以后,將用例由測(cè)試端發(fā)送給被測(cè)的工控組件,以期在被測(cè)端觸發(fā)異常;同時(shí),由于在觸發(fā)異常時(shí)需要對(duì)近期發(fā)送的測(cè)試用例加以分析,因此,采用先進(jìn)先出的隊(duì)列對(duì)發(fā)送的測(cè)試用例進(jìn)行存儲(chǔ)。
5.根據(jù)權(quán)利要求1所述的基于協(xié)議狀態(tài)的工控協(xié)議模糊測(cè)試方法,其特征在于,前述步驟(5)基于心跳的異常監(jiān)測(cè)階段的工作流程如下:采用基于心跳的異常監(jiān)測(cè)方法,所述心跳報(bào)文,指的是向被測(cè)設(shè)備發(fā)送的探測(cè)報(bào)文,判斷向被測(cè)設(shè)備是否處于活躍狀態(tài);在模糊測(cè)試過(guò)程中,每向被測(cè)設(shè)備發(fā)送一個(gè)測(cè)試報(bào)文,就在設(shè)定的一小段時(shí)間之后,向被測(cè)設(shè)備發(fā)送心跳報(bào)文,依據(jù)被測(cè)設(shè)備是否發(fā)回預(yù)期的響應(yīng)報(bào)文來(lái)判斷被測(cè)設(shè)備是否處于活躍狀態(tài);如果收到的響應(yīng)報(bào)文,認(rèn)為設(shè)備沒(méi)有出現(xiàn)異常;如果沒(méi)有收到響應(yīng),則認(rèn)為測(cè)試用例在設(shè)備端觸發(fā)了異常。
6.根據(jù)權(quán)利要求1所述的基于協(xié)議狀態(tài)的工控協(xié)議模糊測(cè)試方法,其特征在于,前述步驟(6)導(dǎo)致異常的測(cè)試報(bào)文定位階段的工作流程如下:在模糊測(cè)試過(guò)程中,如果發(fā)現(xiàn)被測(cè)設(shè)備出現(xiàn)異常,需要停止測(cè)試,確定是由于哪個(gè)報(bào)文或者哪個(gè)報(bào)文序列導(dǎo)致的異常;為了便于分析,在測(cè)試端存儲(chǔ)近期所發(fā)送的測(cè)試報(bào)文,同時(shí)記錄最近所測(cè)試的工控協(xié)議狀態(tài);當(dāng)出現(xiàn)異常時(shí),首先依據(jù)最近所測(cè)試的工控協(xié)議狀態(tài),重置被測(cè)工控組件;依據(jù)報(bào)文序列庫(kù),通過(guò)正常的報(bào)文交互,將工控組件引導(dǎo)到最近測(cè)試的協(xié)議狀態(tài),而后開(kāi)始回溯判定;首先發(fā)送最近發(fā)送的第一個(gè)測(cè)試報(bào)文,觀察被測(cè)工控組件是否表現(xiàn)異常;如果沒(méi)有出現(xiàn)異常,則將被測(cè)工控組件重置為正常工作狀態(tài),并依次發(fā)送最近發(fā)送的兩個(gè)測(cè)試報(bào)文,觀察被測(cè)工控組件是否出現(xiàn)異常;如果沒(méi)有出現(xiàn)異常,則將被測(cè)工控組件進(jìn)行狀態(tài)重置,并依次發(fā)送最近發(fā)送的三個(gè)測(cè)試報(bào)文;以此類(lèi)推,直到確定導(dǎo)致異常的報(bào)文序列。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國(guó)人民解放軍理工大學(xué),未經(jīng)中國(guó)人民解放軍理工大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610094014.3/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 圖像診斷裝置、醫(yī)用系統(tǒng)以及協(xié)議管理方法
- 一種自動(dòng)協(xié)議識(shí)別方法及系統(tǒng)
- 客戶端中遞送協(xié)議數(shù)據(jù)單元的方法及相關(guān)裝置
- 遠(yuǎn)程通訊系統(tǒng)
- 一種基于可拼裝通信協(xié)議棧的通信方法及系統(tǒng)
- 一種實(shí)現(xiàn)國(guó)產(chǎn)平臺(tái)PXEBOOT的協(xié)議架構(gòu)
- CBTC通信系統(tǒng)協(xié)議解析方法、協(xié)議庫(kù)管理方法
- 一種協(xié)議轉(zhuǎn)換的方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 一種用于燈光控制的協(xié)議轉(zhuǎn)換系統(tǒng)及方法
- 一種通用工藝人工智能物聯(lián)網(wǎng)網(wǎng)關(guān)
- 狀態(tài)檢測(cè)裝置及狀態(tài)檢測(cè)方法
- 狀態(tài)估計(jì)裝置以及狀態(tài)估計(jì)方法
- 經(jīng)由次級(jí)狀態(tài)推斷管理狀態(tài)
- 狀態(tài)估計(jì)裝置及狀態(tài)估計(jì)方法
- 狀態(tài)估計(jì)裝置、狀態(tài)估計(jì)方法
- 狀態(tài)預(yù)測(cè)裝置以及狀態(tài)預(yù)測(cè)方法
- 狀態(tài)推定裝置、狀態(tài)推定方法和狀態(tài)推定程序
- 狀態(tài)檢測(cè)系統(tǒng)及狀態(tài)檢測(cè)方法
- 狀態(tài)判定裝置、狀態(tài)判定方法以及狀態(tài)判定程序
- 狀態(tài)判斷裝置以及狀態(tài)判斷方法





