五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

模糊測試

2022-05-24 00:41 作者:安靜的禿頭怪  | 我要投稿

概念

模糊測試(fuzz testing, fuzzing)是一種軟件測試技術(shù)。其核心思想是將自動或半自動生成的隨機數(shù)據(jù)輸入到一個程序中,并監(jiān)視程序異常,如崩潰、斷言(assertion)失敗,以發(fā)現(xiàn)可能的程序錯誤,比如內(nèi)存泄漏。模糊測試常常用于檢測軟件或計算機系統(tǒng)的安全漏洞。

模糊測試包括幾個基本的測試步驟:確定被測系統(tǒng)->確定輸入->生成模糊數(shù)據(jù)->使用模糊數(shù)據(jù)執(zhí)行測試->監(jiān)控分析系統(tǒng)的行為->輸出日志

Fuzzing通常由盲Fuzzing(Blind Fuzzing)導(dǎo)向性Fuzzing(Guided Fuzzing)兩種。

  1. Blind Fuzzing生成測試數(shù)據(jù)的時候不考慮數(shù)據(jù)的質(zhì)量,通過大量測試數(shù)據(jù)來概率性地觸發(fā)漏洞。

  2. Guided Fuzzing則關(guān)注測試數(shù)據(jù)的質(zhì)量,期望生成更有效的測試數(shù)據(jù)來觸發(fā)漏洞的概率,比如,通過測試覆蓋率來衡量測試輸入的質(zhì)量,希望生成有更高測試覆蓋率的數(shù)據(jù),從而提升觸發(fā)漏洞的概率。


基本方案

  1. 構(gòu)造大量測試用例(初始seed)

  2. 篩選可行測試用例(seed選擇)

  3. 種子變異(對seed代碼進行簡單修改)

  4. 程序執(zhí)行測試用例

  5. 若出bug則保存該用例,否則繼續(xù)執(zhí)行第二步

AFL模糊測試工具

AFL這個工具出來的一個起因就是AFL的開發(fā)者認為盲Fuzzing的效率是比較低的;第二個原因是Charlie Miller和Laurent Gaffié所做的樣本篩選的方法是有效果的;第三個原因是符號執(zhí)行,符號執(zhí)行的理論是非常不錯的,但在實際中經(jīng)常受到可行性、性能等方面的限制。于是在這樣一個背景下,AFL出現(xiàn)了。AFL有兩個關(guān)鍵詞:指令插樁和邊覆蓋。首先AFL是基于插樁的,能夠輔助程序分析;其次AFL是基于邊覆蓋的,是對Charlie Miller等人基于塊覆蓋用樣本篩選的一個改進和提升。

AFL工作流程大致如下:

  1. 從源碼編譯程序時進行插樁,以記錄代碼覆蓋率(Code Coverage);

  2. 選擇一些輸入文件,作為初始測試集加入輸入隊列(queue);

  3. 將隊列中的文件按一定的策略進行“突變”;

  4. 如果經(jīng)過變異文件更新了覆蓋范圍,則將其保留添加到隊列中;

  5. 上述過程會一直循環(huán)進行,期間觸發(fā)了crash的文件會被記錄下來。


模糊測試的評論 (共 條)

分享到微博請遵守國家法律
新绛县| 铁岭市| 金湖县| 开阳县| 永修县| 伊春市| 建始县| 湘潭市| 静宁县| 微山县| 林周县| 图片| 营口市| 永春县| 梅州市| 柞水县| 宁蒗| 巴里| 定安县| 临洮县| 金昌市| 安仁县| 普定县| 美姑县| 沾益县| 乡城县| 龙川县| 南召县| 武夷山市| 民县| 洮南市| 鹤岗市| 巴林左旗| 碌曲县| 自治县| 湖南省| 祁门县| 都兰县| 绍兴市| 桃江县| 淮阳县|