国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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的文件會被記錄下來。


模糊測試的評論 (共 條)

分享到微博請遵守國家法律
阳泉市| 德庆县| 孟村| 吉隆县| 渝中区| 太谷县| 时尚| 石河子市| 临朐县| 读书| 蛟河市| 高台县| 安吉县| 宁强县| 华蓥市| 甘肃省| 保康县| 定远县| 苍梧县| 鄂温| 苏尼特右旗| 桂阳县| 友谊县| 万山特区| 卢氏县| 伊吾县| 平阳县| 贵阳市| 丰县| 修文县| 夹江县| 大同县| 灵武市| 杨浦区| 伊川县| 金秀| 两当县| 鸡东县| 进贤县| 民权县| 大邑县|