摘要:模糊測試是通過不斷生成不同的輸入來測試程序從而發(fā)現(xiàn)并識別安全漏洞,已經(jīng)廣泛應(yīng)用于漏洞挖掘中。目前灰盒模糊測試是最流行的模糊測試策略,它將輕量級代碼插樁與數(shù)據(jù)反饋驅(qū)動相結(jié)合,以生成新的程序輸入。AFL(American Fuzzy Lop)是一種卓越的灰盒模糊測試工具,其以高效的forkserver執(zhí)行、可靠的遺傳算法和多種的變異策略著稱,但其變異策略主要采樣隨機變異,存在較大的盲目性。文章提出了一種運用強化學習的方法來優(yōu)化變異的策略,以多搖臂賭博機問題為模型,記錄不同變異方式產(chǎn)生的輸入在目標程序中的執(zhí)行效果,利用探索-利用算法自適應(yīng)地學習變異操作結(jié)果的概率分布情況,智能地進行變異操作策略調(diào)整,提升AFL的模糊測試性能。文章選擇湯普森采樣為優(yōu)化算法設(shè)計實現(xiàn)了AFL-EE模糊測試工具,并對5類常用的文件類程序進行了驗證測試,實驗表明該方法能自動調(diào)整變異操作策略,有效地產(chǎn)生覆蓋率高的測試輸入,方法可行、額外資源消耗較小,總體上優(yōu)于AFL工具。
注:因版權(quán)方要求,不能公開全文,如需全文,請咨詢雜志社