文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.191091
中文引用格式: 荊琛,傅曉彤,董偉,等. 基于Q-學(xué)習(xí)算法的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測(cè)試方法研究[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.
0 引言
協(xié)議漏洞挖掘是保證網(wǎng)絡(luò)通信安全的重要手段,傳統(tǒng)漏洞挖掘技術(shù)主要包括逆向分析[1-2]和模糊測(cè)試[3]。其中,模糊測(cè)試具有準(zhǔn)確率高、不要求源代碼、適用性高等優(yōu)點(diǎn),是目前最常用的協(xié)議漏洞挖掘方法。有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測(cè)試技術(shù)的主要發(fā)展歷程如下。
最初,使用傳統(tǒng)的模糊測(cè)試方法對(duì)包括有狀態(tài)網(wǎng)絡(luò)協(xié)議在內(nèi)的所有網(wǎng)絡(luò)協(xié)議進(jìn)行測(cè)試,通過變異或生成的方法產(chǎn)生大量測(cè)試用例,將其作為協(xié)議實(shí)體程序的輸入,期望這些不尋常的輸入能引發(fā)協(xié)議實(shí)體異常,從中找到協(xié)議的安全漏洞[4-5]。這種測(cè)試方法對(duì)于有狀態(tài)網(wǎng)絡(luò)協(xié)議來說,當(dāng)測(cè)試用例與協(xié)議實(shí)體狀態(tài)不匹配時(shí),測(cè)試用例可能會(huì)被協(xié)議實(shí)體直接丟棄,測(cè)試用例有效性低[6]。
于是,研究人員提出了根據(jù)協(xié)議狀態(tài)機(jī)構(gòu)造測(cè)試序列的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測(cè)試方法[7-9],主要包括3個(gè)步驟:(1)通過正常的報(bào)文交互,將協(xié)議實(shí)體引導(dǎo)至某個(gè)待測(cè)狀態(tài),這些正常交互報(bào)文所構(gòu)成的序列稱為前置引導(dǎo)序列;(2)向協(xié)議實(shí)體輸入報(bào)文類型與被測(cè)狀態(tài)相對(duì)應(yīng)的測(cè)試用例,檢測(cè)是否存在異常,如果檢測(cè)到協(xié)議實(shí)體在處理測(cè)試用例后出現(xiàn)系統(tǒng)崩潰或者停止響應(yīng)等異常情況,則保存錯(cuò)誤現(xiàn)場(chǎng)以待進(jìn)一步分析;(3)若未檢測(cè)到異常,還需按照特定順序輸入正常報(bào)文將協(xié)議實(shí)體引導(dǎo)至終止?fàn)顟B(tài),準(zhǔn)備下一輪測(cè)試,這些正常報(bào)文所構(gòu)成的序列被稱為回歸序列。這種測(cè)試方法提高了測(cè)試用例有效性,但前置引導(dǎo)序列和回歸序列這些輔助報(bào)文在測(cè)試過程中的重復(fù)交互降低了測(cè)試效率,且因是根據(jù)協(xié)議實(shí)體所處的協(xié)議狀態(tài)輸入報(bào)文類型相對(duì)應(yīng)的測(cè)試用例,導(dǎo)致無法發(fā)現(xiàn)由報(bào)文異常輸入順序所引出的協(xié)議缺陷。
因此,本文針對(duì)有狀態(tài)網(wǎng)絡(luò)協(xié)議提出了一種基于Q-學(xué)習(xí)算法的模糊測(cè)試方法,不需要引導(dǎo)狀態(tài)的輔助類型報(bào)文,且能在確保一定的測(cè)試用例有效性前提下,引入報(bào)文異常輸入順序測(cè)試。
1 關(guān)于有狀態(tài)網(wǎng)絡(luò)協(xié)議的模糊測(cè)試
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ā)送方輸出的各個(gè)報(bào)文之間沒有關(guān)聯(lián)性,而對(duì)于有狀態(tài)協(xié)議,協(xié)議實(shí)體會(huì)記錄所接收到的報(bào)文信息,在處理報(bào)文后可能會(huì)出現(xiàn)協(xié)議狀態(tài)的變化。有狀態(tài)網(wǎng)絡(luò)通信協(xié)議通常采用確定有限狀態(tài)機(jī)(Deterministic Finite Automation,DFA)[11]作為協(xié)議交互的形式化描述模型。
將DFA定義為一個(gè)六元組M=(S,I,O,δ,β,T),其中:S={s0,s1,…,sn}是有限狀態(tài)集合,其中s0表示為M的初始狀態(tài),且在任意時(shí)刻,M只能處于某一狀態(tài)si,有限狀態(tài)機(jī)由s0狀態(tài)開始接收輸入;I={i1,i2,…,im}是有限輸入符號(hào)集合;O={o1,o2,…,om}是有限輸出符號(hào)集合;δ: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é)議描述時(shí),I表示協(xié)議實(shí)體可接受并正常處理的輸入報(bào)文類型集合,O表示協(xié)議實(shí)體輸出的報(bào)文類型集合,以M表示協(xié)議狀態(tài)機(jī)。
以FTP協(xié)議[12]狀態(tài)機(jī)為例,其輸入輸出報(bào)文類型的抽象符號(hào)如表1所示,M包括8個(gè)狀態(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)時(shí),如果接收USER類型報(bào)文(用i1表示),將輸出331類型報(bào)文(用o1表示),同時(shí)協(xié)議實(shí)體狀態(tài)遷移至s1狀態(tài)。
1.2 關(guān)于有狀態(tài)網(wǎng)絡(luò)協(xié)議的模糊測(cè)試
在實(shí)施模糊測(cè)試時(shí),協(xié)議實(shí)體對(duì)每個(gè)測(cè)試用例會(huì)給出相應(yīng)的反饋信息[13],例如當(dāng)測(cè)試用例不能被正確地接收處理時(shí),協(xié)議實(shí)體會(huì)通過響應(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并無對(duì)應(yīng)關(guān)系,則將得到的任何響應(yīng)報(bào)文都稱為由狀態(tài)si與輸入im確定的非期望響應(yīng)報(bào)文。另外,在測(cè)試時(shí),若在設(shè)定時(shí)間閾值內(nèi)未返回任何報(bào)文,也視為得到的是非期望響應(yīng)報(bào)文。關(guān)于有狀態(tài)網(wǎng)絡(luò)協(xié)議的模糊測(cè)試,測(cè)試用例可以分為以下4類:
(1)第一類測(cè)試用例導(dǎo)致協(xié)議實(shí)體崩潰;
(2)第二類測(cè)試用例能夠被程序正確接收處理,可以引發(fā)協(xié)議實(shí)體狀態(tài)跳轉(zhuǎn)并輸出期望響應(yīng)報(bào)文;
(3)第三類是導(dǎo)致協(xié)議實(shí)體輸出非期望響應(yīng)報(bào)文的被協(xié)議實(shí)體直接丟棄的測(cè)試用例,沒有進(jìn)行程序執(zhí)行過程,不會(huì)引發(fā)協(xié)議實(shí)體程序異常和狀態(tài)的轉(zhuǎn)換;
(4)第四類是導(dǎo)致協(xié)議實(shí)體輸出非期望響應(yīng)報(bào)文的引出協(xié)議實(shí)體缺陷的測(cè)試用例。
對(duì)網(wǎng)絡(luò)協(xié)議的模糊測(cè)試過程主要是為了發(fā)現(xiàn)能夠觸發(fā)協(xié)議實(shí)體異常的測(cè)試用例,對(duì)于確定的測(cè)試用例集,如何能讓這些測(cè)試用例在模糊測(cè)試過程中達(dá)到最佳效果?考慮降低第三類測(cè)試用例的出現(xiàn)率,提高第一、四類測(cè)試用例的出現(xiàn)率。關(guān)于一個(gè)測(cè)試用例,它是觸發(fā)協(xié)議實(shí)體異常的第一、四類測(cè)試用例,還是被程序正確處理的第二類測(cè)試用例,或是被丟棄的第三類測(cè)試用例?這與輸入該測(cè)試用例時(shí)協(xié)議實(shí)體所處的狀態(tài)密切相關(guān)。因此,考慮在測(cè)試時(shí)根據(jù)協(xié)議實(shí)體狀態(tài)選取測(cè)試用例。對(duì)協(xié)議實(shí)體的狀態(tài)推斷主要依據(jù)于協(xié)議實(shí)體的響應(yīng)報(bào)文。對(duì)于在si狀態(tài)下輸入由im變異生成的測(cè)試用例,如果協(xié)議實(shí)體的響應(yīng)報(bào)文是協(xié)議狀態(tài)si和輸入im所對(duì)應(yīng)的期望響應(yīng)報(bào)文,那么表明測(cè)試用例為第二類測(cè)試用例,被協(xié)議實(shí)體正常接收處理,協(xié)議實(shí)體狀態(tài)已經(jīng)處于sj狀態(tài),可以根據(jù)狀態(tài)sj選取測(cè)試用例進(jìn)行下一步測(cè)試。如果協(xié)議實(shí)體的響應(yīng)報(bào)文屬于協(xié)議狀態(tài)si和輸入im所對(duì)應(yīng)的非期望響應(yīng)報(bào)文,那么協(xié)議實(shí)體可能仍處于si狀態(tài),也可能由于測(cè)試用例的作用,跳轉(zhuǎn)到狀態(tài)si之外的狀態(tài)。在這種情況下,需要輸入與狀態(tài)si相對(duì)應(yīng)的正常輸入報(bào)文in,觀察協(xié)議實(shí)體的響應(yīng),如果響應(yīng)報(bào)文是狀態(tài)si和輸入in所對(duì)應(yīng)的期望響應(yīng)報(bào)文,那么表明測(cè)試用例為第三類測(cè)試用例且此時(shí)協(xié)議實(shí)體已經(jīng)被引導(dǎo)至sq狀態(tài),繼續(xù)輸入根據(jù)狀態(tài)sq選取的測(cè)試用例進(jìn)行測(cè)試;如果響應(yīng)報(bào)文是狀態(tài)si和輸入in所對(duì)應(yīng)的非期望響應(yīng)報(bào)文,那么在輸入報(bào)文in之前,協(xié)議實(shí)體可能出現(xiàn)異常,表明測(cè)試用例為第四類測(cè)試用例,需要保存輸入數(shù)據(jù)以待進(jìn)一步分析。
2 基于Q-學(xué)習(xí)算法的模糊測(cè)試方法
2.1 強(qiáng)化學(xué)習(xí)
強(qiáng)化學(xué)習(xí)是一種從環(huán)境狀態(tài)映射到動(dòng)作的學(xué)習(xí),目標(biāo)是使智能體在與環(huán)境的互動(dòng)過程中獲得最大累積獎(jiǎng)賞[14]。強(qiáng)化學(xué)習(xí)把學(xué)習(xí)看作試探評(píng)價(jià)過程,如圖2所示,智能體根據(jù)環(huán)境狀態(tài)st選擇一個(gè)動(dòng)作at作用于環(huán)境,環(huán)境在動(dòng)作at的作用下轉(zhuǎn)移到狀態(tài)st+1,同時(shí)產(chǎn)生一個(gè)獎(jiǎng)賞rt反饋給智能體,智能體再根據(jù)獎(jiǎng)賞rt與狀態(tài)st+1選擇下一個(gè)動(dòng)作,選擇原則是使獎(jiǎng)賞最大化。
強(qiáng)化學(xué)習(xí)的目的是尋找一個(gè)策略π:S→A,使得每個(gè)狀態(tài)s的值函數(shù)Vπ(s)或狀態(tài)-動(dòng)作值函數(shù)Qπ(s,a)達(dá)到最大?!爸岛瘮?shù)”與“狀態(tài)-動(dòng)作值函數(shù)”分別表示指定“狀態(tài)”上以及指定“狀態(tài)-動(dòng)作”上的累積獎(jiǎng)賞[15]。
Q-學(xué)習(xí)算法[16]是一種異策略時(shí)序差分強(qiáng)化學(xué)習(xí)算法,Q-學(xué)習(xí)算法中狀態(tài)-動(dòng)作值函數(shù)采用實(shí)際Q值增量式更新,對(duì)于狀態(tài)-動(dòng)作對(duì)(s,a)的值函數(shù)Q(s,a),根據(jù)每次采樣得到的立即獎(jiǎng)賞r進(jìn)行一次更新:
2.2 基于Q-學(xué)習(xí)算法的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測(cè)試方法
在1.2小節(jié),已經(jīng)提出根據(jù)協(xié)議實(shí)體狀態(tài)選取測(cè)試用例的思想。由于主要是想通過輸入報(bào)文類型與被測(cè)狀態(tài)不對(duì)應(yīng)的測(cè)試用例引入報(bào)文異常輸入順序測(cè)試,提高漏洞挖掘能力,因此,考慮根據(jù)協(xié)議實(shí)體狀態(tài)選擇報(bào)文類型,然后根據(jù)報(bào)文類型選取測(cè)試用例進(jìn)行測(cè)試。那么,應(yīng)該以何種策略來根據(jù)協(xié)議實(shí)體狀態(tài)選擇報(bào)文類型,以使得在引入報(bào)文異常輸入順序測(cè)試后仍能確保一定的測(cè)試用例有效性呢?這一問題可以通過制定恰當(dāng)?shù)莫?jiǎng)賞規(guī)則轉(zhuǎn)化為強(qiáng)化學(xué)習(xí)中尋找策略π的問題來加以解決,下面就通過Q-學(xué)習(xí)算法來解決該問題。
(1)狀態(tài)集合
S={s0,s1,…,sn},即協(xié)議的狀態(tài)集合。
(2)動(dòng)作集合
A={a1,a2,…,am}={i1,i2,…,im},即協(xié)議的輸入報(bào)文類型集合。
(3)動(dòng)作探索策略
Q-學(xué)習(xí)通過探索-利用過程發(fā)現(xiàn)最優(yōu)獎(jiǎng)賞,“利用”過程選擇最大Q值所對(duì)應(yīng)的輸入報(bào)文類型,“探索”過程則是隨機(jī)選擇輸入報(bào)文類型以防止發(fā)現(xiàn)不了最優(yōu)獎(jiǎng)賞。本文采用“-貪婪探索策略”,在協(xié)議狀態(tài)s下以小概率隨機(jī)選擇輸入報(bào)文類型,以概率1-選擇具有最大Q值的輸入報(bào)文類型。
(4)立即獎(jiǎng)賞
在協(xié)議狀態(tài)s下選擇報(bào)文類型為a的測(cè)試用例進(jìn)行測(cè)試后,根據(jù)測(cè)試用例的類別確定狀態(tài)-動(dòng)作對(duì)(s,a)的立即獎(jiǎng)賞r。
根據(jù)協(xié)議實(shí)體狀態(tài)s,依據(jù)“-貪婪探索策略”選擇報(bào)文類型為a的測(cè)試用例對(duì)協(xié)議實(shí)體進(jìn)行測(cè)試。輸入測(cè)試用例后,通過觀察協(xié)議實(shí)體是否崩潰判斷測(cè)試用例是否為第一類測(cè)試用例;通過響應(yīng)報(bào)文分析協(xié)議實(shí)體狀態(tài)并區(qū)分第二、三、四類測(cè)試用例。根據(jù)測(cè)試用例的類別確定狀態(tài)-動(dòng)作對(duì)(s,a)的立即獎(jiǎng)賞r,通過獎(jiǎng)賞r更新Q值與策略π,降低第三類測(cè)試用例的出現(xiàn)率,提高第一、四類測(cè)試用例的出現(xiàn)率?;赒-學(xué)習(xí)算法的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測(cè)試方法描述如下:
(1)建立狀態(tài)空間S和動(dòng)作空間A;
(2)初始化Q值表和策略π;
(3)初始化協(xié)議實(shí)體狀態(tài)至s0;
(4)依據(jù)“-貪婪探索策略”,根據(jù)協(xié)議實(shí)體當(dāng)前狀態(tài)s選擇報(bào)文類型為a的測(cè)試用例輸入?yún)f(xié)議實(shí)體;
(5)在協(xié)議實(shí)體處理測(cè)試用例后,觀察協(xié)議實(shí)體反饋信息,分析協(xié)議實(shí)體當(dāng)前狀態(tài),判斷測(cè)試用例類別,確定狀態(tài)-動(dòng)作對(duì)(s,a)的立即獎(jiǎng)賞r;
(6)更新Q值表;
(7)更新策略π;
(8)若測(cè)試用例為第一、四類測(cè)試用例,記錄異常后跳轉(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]是目前較為成熟的模糊測(cè)試框架,有對(duì)有狀態(tài)網(wǎng)絡(luò)協(xié)議進(jìn)行模糊測(cè)試的完整測(cè)試方案。本文方法Q-Fuzzing 將與Sulley按照以下描述場(chǎng)景進(jìn)行仿真實(shí)驗(yàn)對(duì)比:以FTP協(xié)議實(shí)體作為測(cè)試對(duì)象,兩種方法均采用由Sulley變異策略生成的測(cè)試用例,測(cè)試用例的漏洞挖掘效力相當(dāng)。
3.2 實(shí)驗(yàn)結(jié)果分析
3.2.1 測(cè)試效率評(píng)估
測(cè)試效率是指單位時(shí)間輸入的測(cè)試用例數(shù)量,用向被測(cè)協(xié)議實(shí)體輸入的測(cè)試用例個(gè)數(shù)與發(fā)送報(bào)文的總數(shù)的比值值來衡量測(cè)試效率,值的數(shù)學(xué)表達(dá)式為:=∑A/∑m,其中,∑A表示輸入的測(cè)試用例總數(shù),∑m表示發(fā)送報(bào)文的總數(shù)?!艫一定時(shí),值越大,說明發(fā)送輔助類型的報(bào)文越少,單位時(shí)間輸入的測(cè)試用例數(shù)量越高,測(cè)試效率越高。在測(cè)試過程中,Q-Fuzzing與Sulley的值與輸入的測(cè)試用例總數(shù)∑A的關(guān)系如圖3所示。
Sulley采用完善的引導(dǎo)機(jī)制,隨著測(cè)試路徑的深入,前置引導(dǎo)序列等輔助報(bào)文的比重越來越大,值越來越低。Q-Fuzzing雖在分析協(xié)議實(shí)體狀態(tài)時(shí)存在一定的輔助報(bào)文交互,但是該方法不需要引導(dǎo)狀態(tài)的輔助報(bào)文,輔助報(bào)文的比重較低,值相對(duì)較高。
3.2.2 測(cè)試用例有效性評(píng)估
假設(shè)輸入的某個(gè)測(cè)試用例沒有被協(xié)議實(shí)體直接拋棄,而是進(jìn)行程序執(zhí)行過程,那么稱該測(cè)試用例為有效完成測(cè)試的測(cè)試用例(簡(jiǎn)稱為有效測(cè)試用例)。測(cè)試用例有效性是指一個(gè)測(cè)試用例為有效測(cè)試用例的概率,以有效測(cè)試用例個(gè)數(shù)與輸入的測(cè)試用例總數(shù)的比值φ表示測(cè)試用例有效性,φ的數(shù)學(xué)表達(dá)式為:φ=∑Ac/∑A,其中,∑Ac表示有效測(cè)試用例總數(shù),∑A表示輸入的測(cè)試用例總數(shù)。在測(cè)試過程中,Q-Fuzzing與Sulley的測(cè)試用例有效性φ與輸入的測(cè)試用例總數(shù)∑A的關(guān)系如圖4所示。
Sulley采用完善的引導(dǎo)機(jī)制,使得測(cè)試用例可以在協(xié)議實(shí)體處于對(duì)應(yīng)狀態(tài)時(shí)進(jìn)行輸入,測(cè)試用例有效性較高。Q-Fuzzing在測(cè)試初期,輸入報(bào)文時(shí)盲目性較大,存在很多被拋棄的測(cè)試用例,測(cè)試用例有效性低,但隨著在測(cè)試過程中實(shí)踐學(xué)習(xí),測(cè)試用例有效性逐步提高,最終趨于穩(wěn)定。
3.2.3 漏洞挖掘能力
漏洞挖掘能力是指在模糊測(cè)試正常執(zhí)行條件下挖掘漏洞的數(shù)目。兩種方法挖掘漏洞數(shù)目如表2所示。
在漏洞挖掘能力方面,Q-Fuzzing效果好于Sulley。對(duì)于FTP 協(xié)議實(shí)體中存在的3個(gè)漏洞:(1)當(dāng)協(xié)議實(shí)體狀態(tài)轉(zhuǎn)換序列為s0->s1->s2->s3->s4時(shí),輸入變異的i5報(bào)文后,協(xié)議實(shí)體崩潰;(2)當(dāng)協(xié)議實(shí)體狀態(tài)轉(zhuǎn)換序列為s5->s4->s5時(shí),輸入與s5狀態(tài)并不對(duì)應(yīng)的i12的變異報(bào)文后,協(xié)議實(shí)體崩潰;(3)當(dāng)協(xié)議實(shí)體狀態(tài)轉(zhuǎn)換序列為s0->s1->s2->s3->s4->s5時(shí),輸入變異的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ù)測(cè)試效率與挖掘漏洞能力比較,相比于Sulley測(cè)試方法,本文測(cè)試方法Q-Fuzzing具有明顯的優(yōu)勢(shì),達(dá)到了預(yù)期的測(cè)試效果。
4 結(jié)論
本文提出了一種基于Q-學(xué)習(xí)算法的有狀態(tài)網(wǎng)絡(luò)協(xié)議模糊測(cè)試方法,通過反饋信息分析協(xié)議實(shí)體狀態(tài),根據(jù)協(xié)議實(shí)體狀態(tài)和Q值選取測(cè)試用例進(jìn)行測(cè)試。實(shí)驗(yàn)結(jié)果表明,該方法不需要引導(dǎo)狀態(tài)的輔助類型報(bào)文,且能在確保一定的測(cè)試用例有效性下,進(jìn)行報(bào)文異常輸入順序測(cè)試,顯著提高了測(cè)試效率和漏洞挖掘能力。在該方法中,協(xié)議狀態(tài)機(jī)的完整性以及學(xué)習(xí)算法中參數(shù)的設(shè)定對(duì)測(cè)試結(jié)果的影響很大, 因此,下一步有必要對(duì)協(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] 張雄,李舟軍.模糊測(cè)試技術(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] 王穎,楊義先,鈕心忻,等.基于控制流序位比對(duì)的智能Fuzzing測(cè)試方法[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é)議模糊測(cè)試方法[J].計(jì)算機(jī)工程與應(yīng)用,2017,53(6):111-117.
[10] 張寶峰,張翀斌,許源.基于模糊測(cè)試的網(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ī)遍歷的模糊測(cè)試優(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)