文獻(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è)試,,通過(guò)變異或生成的方法產(chǎn)生大量測(cè)試用例,,將其作為協(xié)議實(shí)體程序的輸入,期望這些不尋常的輸入能引發(fā)協(xié)議實(shí)體異常,,從中找到協(xié)議的安全漏洞[4-5],。這種測(cè)試方法對(duì)于有狀態(tài)網(wǎng)絡(luò)協(xié)議來(lái)說(shuō),當(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)通過(guò)正常的報(bào)文交互,將協(xié)議實(shí)體引導(dǎo)至某個(gè)待測(cè)狀態(tài),,這些正常交互報(bào)文所構(gòu)成的序列稱(chēng)為前置引導(dǎo)序列,;(2)向協(xié)議實(shí)體輸入報(bào)文類(lèi)型與被測(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)成的序列被稱(chēng)為回歸序列,。這種測(cè)試方法提高了測(cè)試用例有效性,,但前置引導(dǎo)序列和回歸序列這些輔助報(bào)文在測(cè)試過(guò)程中的重復(fù)交互降低了測(cè)試效率,且因是根據(jù)協(xié)議實(shí)體所處的協(xié)議狀態(tài)輸入報(bào)文類(lèi)型相對(duì)應(yīng)的測(cè)試用例,,導(dǎo)致無(wú)法發(fā)現(xiàn)由報(bào)文異常輸入順序所引出的協(xié)議缺陷,。
因此,本文針對(duì)有狀態(tài)網(wǎng)絡(luò)協(xié)議提出了一種基于Q-學(xué)習(xí)算法的模糊測(cè)試方法,,不需要引導(dǎo)狀態(tài)的輔助類(lè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é)議可分為無(wú)狀態(tài)協(xié)議和有狀態(tài)協(xié)議兩類(lèi)[10]。無(wú)狀態(tài)協(xié)議是指報(bào)文發(fā)送方輸出的各個(gè)報(bào)文之間沒(méi)有關(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)開(kā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)文類(lèi)型集合,,O表示協(xié)議實(shí)體輸出的報(bào)文類(lèi)型集合,以M表示協(xié)議狀態(tài)機(jī),。
以FTP協(xié)議[12]狀態(tài)機(jī)為例,,其輸入輸出報(bào)文類(lèi)型的抽象符號(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類(lèi)型報(bào)文(用i1表示),,將輸出331類(lèi)型報(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ì)通過(guò)響應(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稱(chēng)為由狀態(tài)si與輸入im確定的期望響應(yīng)報(bào)文,,如果得到的輸出不是響應(yīng)報(bào)文on,,則稱(chēng)之為由狀態(tài)si與輸入im確定的非期望響應(yīng)報(bào)文;若根據(jù)協(xié)議狀態(tài)機(jī),,狀態(tài)si與報(bào)文im并無(wú)對(duì)應(yīng)關(guān)系,,則將得到的任何響應(yīng)報(bào)文都稱(chēng)為由狀態(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類(lèi):
(1)第一類(lèi)測(cè)試用例導(dǎo)致協(xié)議實(shí)體崩潰;
(2)第二類(lèi)測(cè)試用例能夠被程序正確接收處理,,可以引發(fā)協(xié)議實(shí)體狀態(tài)跳轉(zhuǎn)并輸出期望響應(yīng)報(bào)文,;
(3)第三類(lèi)是導(dǎo)致協(xié)議實(shí)體輸出非期望響應(yīng)報(bào)文的被協(xié)議實(shí)體直接丟棄的測(cè)試用例,沒(méi)有進(jìn)行程序執(zhí)行過(guò)程,,不會(huì)引發(fā)協(xié)議實(shí)體程序異常和狀態(tài)的轉(zhuǎn)換,;
(4)第四類(lèi)是導(dǎo)致協(xié)議實(shí)體輸出非期望響應(yīng)報(bào)文的引出協(xié)議實(shí)體缺陷的測(cè)試用例。
對(duì)網(wǎng)絡(luò)協(xié)議的模糊測(cè)試過(guò)程主要是為了發(fā)現(xiàn)能夠觸發(fā)協(xié)議實(shí)體異常的測(cè)試用例,,對(duì)于確定的測(cè)試用例集,,如何能讓這些測(cè)試用例在模糊測(cè)試過(guò)程中達(dá)到最佳效果?考慮降低第三類(lèi)測(cè)試用例的出現(xiàn)率,,提高第一,、四類(lèi)測(cè)試用例的出現(xiàn)率。關(guān)于一個(gè)測(cè)試用例,,它是觸發(fā)協(xié)議實(shí)體異常的第一,、四類(lèi)測(cè)試用例,還是被程序正確處理的第二類(lèi)測(cè)試用例,,或是被丟棄的第三類(lèi)測(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è)試用例為第二類(lèi)測(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è)試用例為第三類(lèi)測(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è)試用例為第四類(lèi)測(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)過(guò)程中獲得最大累積獎(jiǎng)賞[14],。強(qiáng)化學(xué)習(xí)把學(xué)習(xí)看作試探評(píng)價(jià)過(guò)程,,如圖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è)試用例的思想,。由于主要是想通過(guò)輸入報(bào)文類(lèi)型與被測(cè)狀態(tài)不對(duì)應(yīng)的測(cè)試用例引入報(bào)文異常輸入順序測(cè)試,提高漏洞挖掘能力,,因此,,考慮根據(jù)協(xié)議實(shí)體狀態(tài)選擇報(bào)文類(lèi)型,然后根據(jù)報(bào)文類(lèi)型選取測(cè)試用例進(jìn)行測(cè)試,。那么,,應(yīng)該以何種策略來(lái)根據(jù)協(xié)議實(shí)體狀態(tài)選擇報(bào)文類(lèi)型,以使得在引入報(bào)文異常輸入順序測(cè)試后仍能確保一定的測(cè)試用例有效性呢,?這一問(wèn)題可以通過(guò)制定恰當(dāng)?shù)莫?jiǎng)賞規(guī)則轉(zhuǎn)化為強(qiáng)化學(xué)習(xí)中尋找策略π的問(wèn)題來(lái)加以解決,,下面就通過(guò)Q-學(xué)習(xí)算法來(lái)解決該問(wèn)題。
(1)狀態(tài)集合
S={s0,s1,,…,,sn},即協(xié)議的狀態(tài)集合,。
(2)動(dòng)作集合
A={a1,,a2,…,,am}={i1,,i2,…,,im},即協(xié)議的輸入報(bào)文類(lèi)型集合,。
(3)動(dòng)作探索策略
Q-學(xué)習(xí)通過(guò)探索-利用過(guò)程發(fā)現(xiàn)最優(yōu)獎(jiǎng)賞,,“利用”過(guò)程選擇最大Q值所對(duì)應(yīng)的輸入報(bào)文類(lèi)型,“探索”過(guò)程則是隨機(jī)選擇輸入報(bào)文類(lèi)型以防止發(fā)現(xiàn)不了最優(yōu)獎(jiǎng)賞,。本文采用“-貪婪探索策略”,,在協(xié)議狀態(tài)s下以小概率
隨機(jī)選擇輸入報(bào)文類(lèi)型,以概率1-
選擇具有最大Q值的輸入報(bào)文類(lèi)型,。
(4)立即獎(jiǎng)賞
在協(xié)議狀態(tài)s下選擇報(bào)文類(lèi)型為a的測(cè)試用例進(jìn)行測(cè)試后,,根據(jù)測(cè)試用例的類(lèi)別確定狀態(tài)-動(dòng)作對(duì)(s,a)的立即獎(jiǎng)賞r,。
根據(jù)協(xié)議實(shí)體狀態(tài)s,,依據(jù)“-貪婪探索策略”選擇報(bào)文類(lèi)型為a的測(cè)試用例對(duì)協(xié)議實(shí)體進(jìn)行測(cè)試。輸入測(cè)試用例后,,通過(guò)觀察協(xié)議實(shí)體是否崩潰判斷測(cè)試用例是否為第一類(lèi)測(cè)試用例,;通過(guò)響應(yīng)報(bào)文分析協(xié)議實(shí)體狀態(tài)并區(qū)分第二、三,、四類(lèi)測(cè)試用例,。根據(jù)測(cè)試用例的類(lèi)別確定狀態(tài)-動(dòng)作對(duì)(s,a)的立即獎(jiǎng)賞r,,通過(guò)獎(jiǎng)賞r更新Q值與策略π,,降低第三類(lèi)測(cè)試用例的出現(xiàn)率,提高第一,、四類(lèi)測(cè)試用例的出現(xiàn)率,。基于Q-學(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)文類(lèi)型為a的測(cè)試用例輸入?yún)f(xié)議實(shí)體,;
(5)在協(xié)議實(shí)體處理測(cè)試用例后,,觀察協(xié)議實(shí)體反饋信息,分析協(xié)議實(shí)體當(dāng)前狀態(tài),,判斷測(cè)試用例類(lèi)別,,確定狀態(tài)-動(dòng)作對(duì)(s,a)的立即獎(jiǎng)賞r,;
(6)更新Q值表,;
(7)更新策略π;
(8)若測(cè)試用例為第一,、四類(lèi)測(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ù)的比值值來(lái)衡量測(cè)試效率,,
值的數(shù)學(xué)表達(dá)式為:
=∑A/∑m,,其中,∑A表示輸入的測(cè)試用例總數(shù),,∑m表示發(fā)送報(bào)文的總數(shù),。∑A一定時(shí),,
值越大,,說(shuō)明發(fā)送輔助類(lèi)型的報(bào)文越少,單位時(shí)間輸入的測(cè)試用例數(shù)量越高,,測(cè)試效率越高,。在測(cè)試過(guò)程中,Q-Fuzzing與Sulley的
值與輸入的測(cè)試用例總數(shù)∑A的關(guān)系如圖3所示,。
Sulley采用完善的引導(dǎo)機(jī)制,,隨著測(cè)試路徑的深入,前置引導(dǎo)序列等輔助報(bào)文的比重越來(lái)越大,,值越來(lái)越低,。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è)試用例沒(méi)有被協(xié)議實(shí)體直接拋棄,而是進(jìn)行程序執(zhí)行過(guò)程,,那么稱(chēng)該測(cè)試用例為有效完成測(cè)試的測(cè)試用例(簡(jiǎn)稱(chēng)為有效測(cè)試用例),。測(cè)試用例有效性是指一個(gè)測(cè)試用例為有效測(cè)試用例的概率,以有效測(cè)試用例個(gè)數(shù)與輸入的測(cè)試用例總數(shù)的比值φ表示測(cè)試用例有效性,,φ的數(shù)學(xué)表達(dá)式為:φ=∑Ac/∑A,,其中,∑Ac表示有效測(cè)試用例總數(shù),,∑A表示輸入的測(cè)試用例總數(shù),。在測(cè)試過(guò)程中,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è)試過(guò)程中實(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è)試方法,通過(guò)反饋信息分析協(xié)議實(shí)體狀態(tài),,根據(jù)協(xié)議實(shí)體狀態(tài)和Q值選取測(cè)試用例進(jìn)行測(cè)試,。實(shí)驗(yàn)結(jié)果表明,該方法不需要引導(dǎo)狀態(tài)的輔助類(lè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)