《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于Q-學(xué)習(xí)算法的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測試方法研究
基于Q-學(xué)習(xí)算法的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測試方法研究
2020年電子技術(shù)應(yīng)用第4期
荊 琛1,,2,,傅曉彤1,董 偉2,,趙云飛2
1.西安電子科技大學(xué) 網(wǎng)絡(luò)與信息安全學(xué)院,,陜西 西安710071,;2.華北計(jì)算機(jī)系統(tǒng)工程研究所,,北京102209
摘要: 現(xiàn)有的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測試技術(shù)在測試時,,輔助類型報(bào)文重復(fù)交互,測試效率低,,且為確保測試用例有效性,僅向協(xié)議實(shí)體輸入報(bào)文類型與被測狀態(tài)相對應(yīng)的測試用例,,導(dǎo)致無法發(fā)現(xiàn)由報(bào)文異常輸入順序所引出的協(xié)議缺陷,。針對這些問題,基于Q-學(xué)習(xí)算法設(shè)計(jì)出一種有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測試方法,,不需要引導(dǎo)狀態(tài)的輔助報(bào)文,,且能在確保一定的測試用例有效性前提下,,進(jìn)行報(bào)文異常輸入順序測試。實(shí)驗(yàn)結(jié)果表明,,所提出的模糊測試方法可以顯著提高測試效率和漏洞挖掘能力,。
中圖分類號: TN915.08
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.191091
中文引用格式: 荊琛,傅曉彤,,董偉,,等. 基于Q-學(xué)習(xí)算法的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測試方法研究[J].電子技術(shù)應(yīng)用,2020,,46(4):49-52,,56.
英文引用格式: Jing Chen,F(xiàn)u Xiaotong,,Dong Wei,,et al. Research on fuzzing method of stateful network protocol based on Q-learning algorithm[J]. Application of Electronic Technique,2020,,46(4):49-52,,56.
Research on fuzzing method of stateful network protocol based on Q-learning algorithm
Jing Chen1,2,,F(xiàn)u Xiaotong1,,Dong Wei2,Zhao Yunfei2
1.School of Cyber Engineering,,Xidian University,,Xi′an 710071,China,; 2.National Computer System Engineering Research Institute of China,,Beijing 102209,China
Abstract: For the current stateful network protocol fuzzing technology, the auxiliary type message repeated interaction affects the test efficiency and ensures the validity of the test case by inputting the corresponding test case according to the state of the protocol entity, so that the message abnormality input sequence test cannot be performed. In this paper, a stateful network protocol fuzzing method is designed based on Q-learning algorithm. The auxiliary message of the boot state is not required, and the message abnormality input sequence test can be performed under the premise of ensuring the validity of the test case. Experimental results show that this fuzzing method can significantly improve test efficiency and vulnerability mining capabilities.
Key words : fuzzing,;vulnerability mining,;Q-learning algorithm;reinforcement learning

0 引言

    協(xié)議漏洞挖掘是保證網(wǎng)絡(luò)通信安全的重要手段,,傳統(tǒng)漏洞挖掘技術(shù)主要包括逆向分析[1-2]模糊測試[3],。其中,模糊測試具有準(zhǔn)確率高,、不要求源代碼,、適用性高等優(yōu)點(diǎn),是目前最常用的協(xié)議漏洞挖掘方法,。有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測試技術(shù)的主要發(fā)展歷程如下,。

    最初,使用傳統(tǒng)的模糊測試方法對包括有狀態(tài)網(wǎng)絡(luò)協(xié)議在內(nèi)的所有網(wǎng)絡(luò)協(xié)議進(jìn)行測試,,通過變異或生成的方法產(chǎn)生大量測試用例,,將其作為協(xié)議實(shí)體程序的輸入,,期望這些不尋常的輸入能引發(fā)協(xié)議實(shí)體異常,從中找到協(xié)議的安全漏洞[4-5],。這種測試方法對于有狀態(tài)網(wǎng)絡(luò)協(xié)議來說,,當(dāng)測試用例與協(xié)議實(shí)體狀態(tài)不匹配時,測試用例可能會被協(xié)議實(shí)體直接丟棄,,測試用例有效性低[6],。

    于是,研究人員提出了根據(jù)協(xié)議狀態(tài)機(jī)構(gòu)造測試序列的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測試方法[7-9],,主要包括3個步驟:(1)通過正常的報(bào)文交互,,將協(xié)議實(shí)體引導(dǎo)至某個待測狀態(tài),這些正常交互報(bào)文所構(gòu)成的序列稱為前置引導(dǎo)序列,;(2)向協(xié)議實(shí)體輸入報(bào)文類型與被測狀態(tài)相對應(yīng)的測試用例,,檢測是否存在異常,如果檢測到協(xié)議實(shí)體在處理測試用例后出現(xiàn)系統(tǒng)崩潰或者停止響應(yīng)等異常情況,,則保存錯誤現(xiàn)場以待進(jìn)一步分析,;(3)若未檢測到異常,還需按照特定順序輸入正常報(bào)文將協(xié)議實(shí)體引導(dǎo)至終止?fàn)顟B(tài),,準(zhǔn)備下一輪測試,,這些正常報(bào)文所構(gòu)成的序列被稱為回歸序列。這種測試方法提高了測試用例有效性,,但前置引導(dǎo)序列和回歸序列這些輔助報(bào)文在測試過程中的重復(fù)交互降低了測試效率,,且因是根據(jù)協(xié)議實(shí)體所處的協(xié)議狀態(tài)輸入報(bào)文類型相對應(yīng)的測試用例,導(dǎo)致無法發(fā)現(xiàn)由報(bào)文異常輸入順序所引出的協(xié)議缺陷,。

    因此,,本文針對有狀態(tài)網(wǎng)絡(luò)協(xié)議提出了一種基于Q-學(xué)習(xí)算法的模糊測試方法,不需要引導(dǎo)狀態(tài)的輔助類型報(bào)文,,且能在確保一定的測試用例有效性前提下,,引入報(bào)文異常輸入順序測試。

1 關(guān)于有狀態(tài)網(wǎng)絡(luò)協(xié)議的模糊測試

1.1 有狀態(tài)網(wǎng)絡(luò)協(xié)議

    根據(jù)輸入報(bào)文相互之間是否存在關(guān)聯(lián),,網(wǎng)絡(luò)通信協(xié)議可分為無狀態(tài)協(xié)議和有狀態(tài)協(xié)議兩類[10],。無狀態(tài)協(xié)議是指報(bào)文發(fā)送方輸出的各個報(bào)文之間沒有關(guān)聯(lián)性,而對于有狀態(tài)協(xié)議,,協(xié)議實(shí)體會記錄所接收到的報(bào)文信息,,在處理報(bào)文后可能會出現(xiàn)協(xié)議狀態(tài)的變化。有狀態(tài)網(wǎng)絡(luò)通信協(xié)議通常采用確定有限狀態(tài)機(jī)(Deterministic Finite Automation,,DFA)[11]作為協(xié)議交互的形式化描述模型,。

    將DFA定義為一個六元組M=(S,I,O,,δ,β,,T),,其中:S={s0,s1,,…,,sn}是有限狀態(tài)集合,其中s0表示為M的初始狀態(tài),,且在任意時刻,,M只能處于某一狀態(tài)si,有限狀態(tài)機(jī)由s0狀態(tài)開始接收輸入,;I={i1,,i2,…,,im}是有限輸入符號集合,;O={o1,o2,,…,,om}是有限輸出符號集合;δ:S×I→S是狀態(tài)遷移函數(shù),;β:S×I→O是狀態(tài)輸出函數(shù),;T是終結(jié)狀態(tài)集合。當(dāng)DFA應(yīng)用于網(wǎng)絡(luò)協(xié)議描述時,,I表示協(xié)議實(shí)體可接受并正常處理的輸入報(bào)文類型集合,,O表示協(xié)議實(shí)體輸出的報(bào)文類型集合,以M表示協(xié)議狀態(tài)機(jī),。

    以FTP協(xié)議[12]狀態(tài)機(jī)為例,,其輸入輸出報(bào)文類型的抽象符號如表1所示,M包括8個狀態(tài),,狀態(tài)集合S={s0,,s1,s2,,s3,,s4,s5,,s6,,s7}。狀態(tài)機(jī)M如圖1所示,,其中s0到s1的遷移表示為i1/o1,,它表示協(xié)議實(shí)體處于s0狀態(tài)時,,如果接收USER類型報(bào)文(用i1表示),將輸出331類型報(bào)文(用o1表示),,同時協(xié)議實(shí)體狀態(tài)遷移至s1狀態(tài),。

ck1-b1.gif

ck1-t1.gif

1.2 關(guān)于有狀態(tài)網(wǎng)絡(luò)協(xié)議的模糊測試

    在實(shí)施模糊測試時,協(xié)議實(shí)體對每個測試用例會給出相應(yīng)的反饋信息[13],,例如當(dāng)測試用例不能被正確地接收處理時,,協(xié)議實(shí)體會通過響應(yīng)報(bào)文的形式告知。當(dāng)協(xié)議實(shí)體處于狀態(tài)si,,輸入報(bào)文im,,根據(jù)協(xié)議狀態(tài)機(jī)將協(xié)議在狀態(tài)si處理報(bào)文im后輸出的響應(yīng)報(bào)文on稱為由狀態(tài)si與輸入im確定的期望響應(yīng)報(bào)文,如果得到的輸出不是響應(yīng)報(bào)文on,,則稱之為由狀態(tài)si與輸入im確定的非期望響應(yīng)報(bào)文,;若根據(jù)協(xié)議狀態(tài)機(jī),狀態(tài)si與報(bào)文im并無對應(yīng)關(guān)系,,則將得到的任何響應(yīng)報(bào)文都稱為由狀態(tài)si與輸入im確定的非期望響應(yīng)報(bào)文,。另外,在測試時,,若在設(shè)定時間閾值內(nèi)未返回任何報(bào)文,,也視為得到的是非期望響應(yīng)報(bào)文。關(guān)于有狀態(tài)網(wǎng)絡(luò)協(xié)議的模糊測試,,測試用例可以分為以下4類:

    (1)第一類測試用例導(dǎo)致協(xié)議實(shí)體崩潰,;

    (2)第二類測試用例能夠被程序正確接收處理,可以引發(fā)協(xié)議實(shí)體狀態(tài)跳轉(zhuǎn)并輸出期望響應(yīng)報(bào)文,;

    (3)第三類是導(dǎo)致協(xié)議實(shí)體輸出非期望響應(yīng)報(bào)文的被協(xié)議實(shí)體直接丟棄的測試用例,,沒有進(jìn)行程序執(zhí)行過程,不會引發(fā)協(xié)議實(shí)體程序異常和狀態(tài)的轉(zhuǎn)換,;

    (4)第四類是導(dǎo)致協(xié)議實(shí)體輸出非期望響應(yīng)報(bào)文的引出協(xié)議實(shí)體缺陷的測試用例,。

    對網(wǎng)絡(luò)協(xié)議的模糊測試過程主要是為了發(fā)現(xiàn)能夠觸發(fā)協(xié)議實(shí)體異常的測試用例,對于確定的測試用例集,,如何能讓這些測試用例在模糊測試過程中達(dá)到最佳效果,?考慮降低第三類測試用例的出現(xiàn)率,提高第一,、四類測試用例的出現(xiàn)率,。關(guān)于一個測試用例,它是觸發(fā)協(xié)議實(shí)體異常的第一,、四類測試用例,,還是被程序正確處理的第二類測試用例,或是被丟棄的第三類測試用例?這與輸入該測試用例時協(xié)議實(shí)體所處的狀態(tài)密切相關(guān),。因此,,考慮在測試時根據(jù)協(xié)議實(shí)體狀態(tài)選取測試用例。對協(xié)議實(shí)體的狀態(tài)推斷主要依據(jù)于協(xié)議實(shí)體的響應(yīng)報(bào)文,。對于在si狀態(tài)下輸入由im變異生成的測試用例,,如果協(xié)議實(shí)體的響應(yīng)報(bào)文是協(xié)議狀態(tài)si和輸入im所對應(yīng)的期望響應(yīng)報(bào)文,那么表明測試用例為第二類測試用例,,被協(xié)議實(shí)體正常接收處理,協(xié)議實(shí)體狀態(tài)已經(jīng)處于sj狀態(tài),,可以根據(jù)狀態(tài)sj選取測試用例進(jìn)行下一步測試,。如果協(xié)議實(shí)體的響應(yīng)報(bào)文屬于協(xié)議狀態(tài)si和輸入im所對應(yīng)的非期望響應(yīng)報(bào)文,那么協(xié)議實(shí)體可能仍處于si狀態(tài),,也可能由于測試用例的作用,,跳轉(zhuǎn)到狀態(tài)si之外的狀態(tài)。在這種情況下,,需要輸入與狀態(tài)si相對應(yīng)的正常輸入報(bào)文in,,觀察協(xié)議實(shí)體的響應(yīng),如果響應(yīng)報(bào)文是狀態(tài)si和輸入in所對應(yīng)的期望響應(yīng)報(bào)文,,那么表明測試用例為第三類測試用例且此時協(xié)議實(shí)體已經(jīng)被引導(dǎo)至sq狀態(tài),,繼續(xù)輸入根據(jù)狀態(tài)sq選取的測試用例進(jìn)行測試;如果響應(yīng)報(bào)文是狀態(tài)si和輸入in所對應(yīng)的非期望響應(yīng)報(bào)文,,那么在輸入報(bào)文in之前,,協(xié)議實(shí)體可能出現(xiàn)異常,表明測試用例為第四類測試用例,,需要保存輸入數(shù)據(jù)以待進(jìn)一步分析,。

2 基于Q-學(xué)習(xí)算法的模糊測試方法

2.1 強(qiáng)化學(xué)習(xí)

    強(qiáng)化學(xué)習(xí)是一種從環(huán)境狀態(tài)映射到動作的學(xué)習(xí),目標(biāo)是使智能體在與環(huán)境的互動過程中獲得最大累積獎賞[14],。強(qiáng)化學(xué)習(xí)把學(xué)習(xí)看作試探評價過程,,如圖2所示,智能體根據(jù)環(huán)境狀態(tài)st選擇一個動作at作用于環(huán)境,,環(huán)境在動作at的作用下轉(zhuǎn)移到狀態(tài)st+1,,同時產(chǎn)生一個獎賞rt反饋給智能體,智能體再根據(jù)獎賞rt與狀態(tài)st+1選擇下一個動作,,選擇原則是使獎賞最大化,。

ck1-t2.gif

    強(qiáng)化學(xué)習(xí)的目的是尋找一個策略π:S→A,使得每個狀態(tài)s的值函數(shù)Vπ(s)或狀態(tài)-動作值函數(shù)Qπ(s,,a)達(dá)到最大,。“值函數(shù)”與“狀態(tài)-動作值函數(shù)”分別表示指定“狀態(tài)”上以及指定“狀態(tài)-動作”上的累積獎賞[15]

ck1-gs1-4.gif

    Q-學(xué)習(xí)算法[16]是一種異策略時序差分強(qiáng)化學(xué)習(xí)算法,,Q-學(xué)習(xí)算法中狀態(tài)-動作值函數(shù)采用實(shí)際Q值增量式更新,,對于狀態(tài)-動作對(s,a)的值函數(shù)Q(s,,a),,根據(jù)每次采樣得到的立即獎賞r進(jìn)行一次更新:

ck1-gs5.gif

2.2 基于Q-學(xué)習(xí)算法的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測試方法

    在1.2小節(jié),已經(jīng)提出根據(jù)協(xié)議實(shí)體狀態(tài)選取測試用例的思想,。由于主要是想通過輸入報(bào)文類型與被測狀態(tài)不對應(yīng)的測試用例引入報(bào)文異常輸入順序測試,,提高漏洞挖掘能力,因此,,考慮根據(jù)協(xié)議實(shí)體狀態(tài)選擇報(bào)文類型,,然后根據(jù)報(bào)文類型選取測試用例進(jìn)行測試。那么,,應(yīng)該以何種策略來根據(jù)協(xié)議實(shí)體狀態(tài)選擇報(bào)文類型,,以使得在引入報(bào)文異常輸入順序測試后仍能確保一定的測試用例有效性呢?這一問題可以通過制定恰當(dāng)?shù)莫勝p規(guī)則轉(zhuǎn)化為強(qiáng)化學(xué)習(xí)中尋找策略π的問題來加以解決,,下面就通過Q-學(xué)習(xí)算法來解決該問題,。

    (1)狀態(tài)集合

    S={s0,s1,,…,,sn},即協(xié)議的狀態(tài)集合,。

    (2)動作集合

    A={a1,,a2,…,,am}={i1,,i2,…,,im},,即協(xié)議的輸入報(bào)文類型集合。

    (3)動作探索策略

    Q-學(xué)習(xí)通過探索-利用過程發(fā)現(xiàn)最優(yōu)獎賞,,“利用”過程選擇最大Q值所對應(yīng)的輸入報(bào)文類型,,“探索”過程則是隨機(jī)選擇輸入報(bào)文類型以防止發(fā)現(xiàn)不了最優(yōu)獎賞。本文采用“ck1-2.2-x1.gif-貪婪探索策略”,,在協(xié)議狀態(tài)s下以小概率ck1-2.2-x1.gif隨機(jī)選擇輸入報(bào)文類型,,以概率1-ck1-2.2-x1.gif選擇具有最大Q值的輸入報(bào)文類型。

    (4)立即獎賞

    在協(xié)議狀態(tài)s下選擇報(bào)文類型為a的測試用例進(jìn)行測試后,,根據(jù)測試用例的類別確定狀態(tài)-動作對(s,,a)的立即獎賞r,。

     ck1-gs6.gif

    根據(jù)協(xié)議實(shí)體狀態(tài)s,依據(jù)“ck1-2.2-x1.gif-貪婪探索策略”選擇報(bào)文類型為a的測試用例對協(xié)議實(shí)體進(jìn)行測試,。輸入測試用例后,,通過觀察協(xié)議實(shí)體是否崩潰判斷測試用例是否為第一類測試用例;通過響應(yīng)報(bào)文分析協(xié)議實(shí)體狀態(tài)并區(qū)分第二,、三,、四類測試用例。根據(jù)測試用例的類別確定狀態(tài)-動作對(s,,a)的立即獎賞r,,通過獎賞r更新Q值與策略π,降低第三類測試用例的出現(xiàn)率,,提高第一,、四類測試用例的出現(xiàn)率?;赒-學(xué)習(xí)算法的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測試方法描述如下:

    (1)建立狀態(tài)空間S和動作空間A;

    (2)初始化Q值表和策略π,;

    (3)初始化協(xié)議實(shí)體狀態(tài)至s0,;

    (4)依據(jù)“ck1-2.2-x1.gif-貪婪探索策略”,根據(jù)協(xié)議實(shí)體當(dāng)前狀態(tài)s選擇報(bào)文類型為a的測試用例輸入?yún)f(xié)議實(shí)體,;

    (5)在協(xié)議實(shí)體處理測試用例后,,觀察協(xié)議實(shí)體反饋信息,分析協(xié)議實(shí)體當(dāng)前狀態(tài),,判斷測試用例類別,,確定狀態(tài)-動作對(s,a)的立即獎賞r,;

    (6)更新Q值表,;

    (7)更新策略π;

    (8)若測試用例為第一,、四類測試用例,,記錄異常后跳轉(zhuǎn)至步驟(3);若協(xié)議實(shí)體當(dāng)前狀態(tài)為協(xié)議終結(jié)狀態(tài),,跳轉(zhuǎn)至步驟(3),;否則跳轉(zhuǎn)至步驟(4)。

3 實(shí)驗(yàn)與分析

3.1 實(shí)驗(yàn)建立

    Sulley[17]是目前較為成熟的模糊測試框架,,有對有狀態(tài)網(wǎng)絡(luò)協(xié)議進(jìn)行模糊測試的完整測試方案,。本文方法Q-Fuzzing 將與Sulley按照以下描述場景進(jìn)行仿真實(shí)驗(yàn)對比:以FTP協(xié)議實(shí)體作為測試對象,兩種方法均采用由Sulley變異策略生成的測試用例,,測試用例的漏洞挖掘效力相當(dāng),。

3.2 實(shí)驗(yàn)結(jié)果分析

3.2.1 測試效率評估

    測試效率是指單位時間輸入的測試用例數(shù)量,,用向被測協(xié)議實(shí)體輸入的測試用例個數(shù)與發(fā)送報(bào)文的總數(shù)的比值ck1-3.2.1-x1.gif值來衡量測試效率,ck1-3.2.1-x1.gif值的數(shù)學(xué)表達(dá)式為:ck1-3.2.1-x1.gif=∑A/∑m,,其中,,∑A表示輸入的測試用例總數(shù),∑m表示發(fā)送報(bào)文的總數(shù),?!艫一定時,ck1-3.2.1-x1.gif值越大,,說明發(fā)送輔助類型的報(bào)文越少,,單位時間輸入的測試用例數(shù)量越高,測試效率越高,。在測試過程中,,Q-Fuzzing與Sulley的ck1-3.2.1-x1.gif值與輸入的測試用例總數(shù)∑A的關(guān)系如圖3所示。

ck1-t3.gif

    Sulley采用完善的引導(dǎo)機(jī)制,,隨著測試路徑的深入,,前置引導(dǎo)序列等輔助報(bào)文的比重越來越大,ck1-3.2.1-x1.gif值越來越低,。Q-Fuzzing雖在分析協(xié)議實(shí)體狀態(tài)時存在一定的輔助報(bào)文交互,,但是該方法不需要引導(dǎo)狀態(tài)的輔助報(bào)文,輔助報(bào)文的比重較低,,ck1-3.2.1-x1.gif值相對較高,。

3.2.2 測試用例有效性評估

    假設(shè)輸入的某個測試用例沒有被協(xié)議實(shí)體直接拋棄,而是進(jìn)行程序執(zhí)行過程,,那么稱該測試用例為有效完成測試的測試用例(簡稱為有效測試用例),。測試用例有效性是指一個測試用例為有效測試用例的概率,以有效測試用例個數(shù)與輸入的測試用例總數(shù)的比值φ表示測試用例有效性,,φ的數(shù)學(xué)表達(dá)式為:φ=∑Ac/∑A,,其中,∑Ac表示有效測試用例總數(shù),,∑A表示輸入的測試用例總數(shù),。在測試過程中,Q-Fuzzing與Sulley的測試用例有效性φ與輸入的測試用例總數(shù)∑A的關(guān)系如圖4所示,。

ck1-t4.gif

    Sulley采用完善的引導(dǎo)機(jī)制,,使得測試用例可以在協(xié)議實(shí)體處于對應(yīng)狀態(tài)時進(jìn)行輸入,測試用例有效性較高,。Q-Fuzzing在測試初期,,輸入報(bào)文時盲目性較大,存在很多被拋棄的測試用例,,測試用例有效性低,,但隨著在測試過程中實(shí)踐學(xué)習(xí),,測試用例有效性逐步提高,最終趨于穩(wěn)定,。

3.2.3 漏洞挖掘能力

    漏洞挖掘能力是指在模糊測試正常執(zhí)行條件下挖掘漏洞的數(shù)目,。兩種方法挖掘漏洞數(shù)目如表2所示。

ck1-b2.gif

    在漏洞挖掘能力方面,,Q-Fuzzing效果好于Sulley,。對于FTP 協(xié)議實(shí)體中存在的3個漏洞:(1)當(dāng)協(xié)議實(shí)體狀態(tài)轉(zhuǎn)換序列為s0->s1->s2->s3->s4時,輸入變異的i5報(bào)文后,,協(xié)議實(shí)體崩潰,;(2)當(dāng)協(xié)議實(shí)體狀態(tài)轉(zhuǎn)換序列為s5->s4->s5時,輸入與s5狀態(tài)并不對應(yīng)的i12的變異報(bào)文后,,協(xié)議實(shí)體崩潰,;(3)當(dāng)協(xié)議實(shí)體狀態(tài)轉(zhuǎn)換序列為s0->s1->s2->s3->s4->s5時,輸入變異的i7報(bào)文,,協(xié)議實(shí)體出現(xiàn)狀態(tài)異常遷移,,協(xié)議實(shí)體既不處于s5狀態(tài)也不處于s6狀態(tài)。Q-Fuzzing挖掘出漏洞1,、2,、3,Sulley僅挖掘出漏洞1,,未能挖掘出漏洞2、3,。

    根據(jù)測試效率與挖掘漏洞能力比較,,相比于Sulley測試方法,本文測試方法Q-Fuzzing具有明顯的優(yōu)勢,,達(dá)到了預(yù)期的測試效果,。

4 結(jié)論

    本文提出了一種基于Q-學(xué)習(xí)算法的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測試方法,通過反饋信息分析協(xié)議實(shí)體狀態(tài),,根據(jù)協(xié)議實(shí)體狀態(tài)和Q值選取測試用例進(jìn)行測試,。實(shí)驗(yàn)結(jié)果表明,該方法不需要引導(dǎo)狀態(tài)的輔助類型報(bào)文,,且能在確保一定的測試用例有效性下,,進(jìn)行報(bào)文異常輸入順序測試,顯著提高了測試效率和漏洞挖掘能力,。在該方法中,,協(xié)議狀態(tài)機(jī)的完整性以及學(xué)習(xí)算法中參數(shù)的設(shè)定對測試結(jié)果的影響很大, 因此,下一步有必要對協(xié)議狀態(tài)機(jī)以及參數(shù)的調(diào)節(jié)進(jìn)行深入的研究,。

參考文獻(xiàn)

[1] 程必成,,劉仁輝,,趙云飛,等.非標(biāo)工業(yè)控制協(xié)議格式逆向方法研究[J].電子技術(shù)應(yīng)用,,2018,,44(4):126-129.

[2] 魏驍,劉仁輝,,許鳳凱.基于靜態(tài)二進(jìn)制分析的工控協(xié)議逆向分析[J].電子技術(shù)應(yīng)用,,2018,44(3):126-130.

[3] 張雄,,李舟軍.模糊測試技術(shù)研究綜述[J].計(jì)算機(jī)科學(xué),,2016,43(5):1-8,,26.

[4] SUTTON M,,GREENE A,AMINI P.Fuzzing:brute force vulner-ability discovery[M].[S.l.]:Pearson Education,,2007.

[5] 王穎,,楊義先,鈕心忻,,等.基于控制流序位比對的智能Fuzzing測試方法[J].通信學(xué)報(bào),,2013,34(4):114-121.

[6] MUNEA T L,,LIM H,,SHON T.Network protocol fuzz testing for information systems and applications: a survey and taxonomy[J].Multimedia Tools & Applications,2016,,75(22):14745-14757.

[7] ZHAO J,,CHEN S,LIANG S,,et al.RFSM-fuzzing a smart fuzzing algorithm based on regression FSM[C].Eighth International Conference on P2P,,Parallel,Grid,,Cloud and Internet Computing.IEEE,,2013:380-386.

[8] CUI B,LIANG S,,CHEN S,,et al.A novel fuzzing method for Zigbee based on finite state machine[J].International Journal of Distributed Sensor Networks,2014,,2014(3):1-12.

[9] 康紅凱,,吳禮發(fā),洪征,,等.一種基于FSM的BGP-4協(xié)議模糊測試方法[J].計(jì)算機(jī)工程與應(yīng)用,,2017,,53(6):111-117.

[10] 張寶峰,張翀斌,,許源.基于模糊測試的網(wǎng)絡(luò)協(xié)議漏洞挖掘[J].清華大學(xué)學(xué)報(bào)(自然科學(xué)版),,2009(s2):2113-2118.

[11] NARAYAN J,SHUKLA S K,,CLANCY T C.A survey of automatic protocol reverse engineering tools[J].ACM Computing Surveys,,2015,48(3):1-26.

[12] GASCON H,,WRESSNEGGER C,,YAMAGUCHI F,et al.Pulsar:stateful black-box fuzzing of proprietary network protocols[M].Security and Privacy in Communication Networks.Springer International Publishing,,2015:330-347.

[13] 張洪澤,,洪征,周勝利,,等.基于協(xié)議狀態(tài)機(jī)遍歷的模糊測試優(yōu)化方法[J].計(jì)算機(jī)工程與應(yīng)用,,2020,56(4):82-91.

[14] SUTTON R S,,BARTO A G.Reinforcement learning:an introduction[M].Cambridge,,USA:MIT Press,1998.

[15] 周志華.機(jī)器學(xué)習(xí)[M].北京:清華大學(xué)出版社,,2016.

[16] WATKINS C J C H.Learning from delayed rewards[J].Robotics & Autonomous Systems,,1989,15(4):233-235.

[17] GitHub.Sulley[EB/OL].(2013-06-11)[2015-06-29]. https://github.com/OpenRCE/sulley.



作者信息:

荊  琛1,,2,,傅曉彤1,董  偉2,,趙云飛2

(1.西安電子科技大學(xué) 網(wǎng)絡(luò)與信息安全學(xué)院,陜西 西安710071,;2.華北計(jì)算機(jī)系統(tǒng)工程研究所,,北京102209)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。