最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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


模糊測試的評論 (共 條)

分享到微博請遵守國家法律
阜康市| 长兴县| 常宁市| 大名县| 玉田县| 新干县| 全州县| 洞头县| 博兴县| 四子王旗| 昭觉县| 华阴市| 壶关县| 天等县| 山东省| 阜新市| 顺义区| 广昌县| 略阳县| 东平县| 辽中县| 政和县| 临朐县| 岳普湖县| 大渡口区| 临泉县| 永新县| 女性| 定结县| 岑溪市| 辽宁省| 罗甸县| 康马县| 安达市| 静乐县| 拉萨市| 岫岩| 布尔津县| 老河口市| 郎溪县| 平果县|