[發明專利]一種基于注解的模糊測試方法在審
| 申請號: | 202011547538.6 | 申請日: | 2020-12-24 |
| 公開(公告)號: | CN112506801A | 公開(公告)日: | 2021-03-16 |
| 發明(設計)人: | 王慶賀;劉元 | 申請(專利權)人: | 中科信息安全共性技術國家工程研究中心有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F8/73 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100080 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 注解 模糊 測試 方法 | ||
一種基于注解的模糊測試方法包括利用fuzzer識別用當前技術很難進行模糊測試的有問題的代碼結構;根據識別的代碼結構,模糊測試器根據識別的代碼結構提供反饋機制;根據反饋機制對代碼添加注解;執行測試輸入,fuzzer檢查共享位圖和共享內存是否有新的覆蓋并更新調度測試策略。與現有技術相比,本發明提出的技術方案能夠解決其他基于模糊測試或符號執行的工具無法克服的問題,使得模糊測試更加靈活,更有效率,并通過解決大量實際難題,增強了模糊測試的實用性。
技術領域
本發明涉及信息安全技術領域,具體涉及一種基于注解的模糊測試方法。
背景技術
AFL則是fuzzing的一個很好用的工具,全稱是American Fuzzy Lop,由Google安全工程師Micha? Zalewski開發的一款開源fuzzing測試工具,可以高效地對二進制程序進行fuzzing,挖掘可能存在的內存安全漏洞,如棧溢出、堆溢出、UAF、double free等。由于需要在相關代碼處插樁,因此AFL主要用于對開源軟件進行測試。當然配合QEMU等工具,也可對閉源二進制代碼進行fuzzing,但執行效率會受到影響。
AFL族的fuzzer通常試圖從程序的狀態空間中找到一個觸發大量不同狀態的語料庫。在這里,狀態表示內存和寄存器的一種配置,以及OS提供的狀態(例如,文件描述符和類似的原語)。狀態空間是一個程序可能處于的所有狀態的集合。因為即使對于微不足道的小程序,狀態空間也比宇宙中的原子數量多,所以模糊測試必須優化測試用例所達到的狀態多樣性。這類模糊測試通常使用代碼覆蓋率來確定輸入是否達到了與語料庫中存在的狀態完全不同的狀態。但該單一的模糊測試技術在實踐中存在的無法克服的局限性。
發明內容
本發明的目的針對現有技術存在的缺陷,提出了一種基于注解的模糊測試方法,方法可以根據程序內部狀態的數據表征對程序的行為進行更系統的探索,使得用戶只需使用很小的注解,比如一行注解,就可以幫助模糊測試器解決以前無法解決的挑戰。
一種基于注解的模糊測試方法包括:
利用fuzzer識別用當前技術很難進行模糊測試的有問題的代碼結構;
根據識別的代碼結構,模糊測試器根據識別的代碼結構提供反饋機制;
根據反饋機制對代碼添加注解;
執行測試輸入,fuzzer檢查共享位圖和共享內存是否有新的覆蓋并更新調度測試策略。
優選的,所述有問題的代碼結構主要包括:
已知的相關狀態值,如果只有一小部分狀態是有意義且能夠識別值,直接使用所述相關狀態值來指導模糊測試;
已知狀態變化,根據歷史狀態變化作為更復雜狀態的抽象以指導模糊狀態;
缺少中間狀態,既沒有包含狀態的變量也沒有改變狀態的代碼時用以指導模糊測試。
優選的,所述注解包括:
IJON-ENABLE,該注解來啟用和禁用覆蓋反饋,可以有效地排除代碼庫的某些部分,或者引導fuzzer只在滿足特定條件的情況下探索代碼;
IJON-INC和IJON-SET,上述兩個注解可用于遞增或設置位圖中的特定條目,使得狀態中的新值等同于新的代碼覆蓋率;
IJON-STATE,該注解能夠改變邊覆蓋本身的計算,每當虛擬狀態改變時,任何邊都會觸發新的覆蓋;
IJON-MAX,該注解將fuzzer變成一個通用的基于爬山的黑盒優化器。
與現有技術相比,本發明提出的技術方案能夠解決其他基于模糊測試或符號執行的工具無法克服的問題,使得模糊測試更加靈活,更有效率,并通過解決大量實際難題,增強了模糊測試的實用性。
具體實施方式
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中科信息安全共性技術國家工程研究中心有限公司,未經中科信息安全共性技術國家工程研究中心有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011547538.6/2.html,轉載請聲明來源鉆瓜專利網。





