日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

笔记整理-信息系统开发基础-软件测试-模糊测试

發(fā)布時(shí)間:2025/3/19 windows 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 笔记整理-信息系统开发基础-软件测试-模糊测试 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

模糊測(cè)試(Fuzzing),是一種通過(guò)向目標(biāo)系統(tǒng)提供非預(yù)期的輸入并監(jiān)視異常結(jié)果來(lái)發(fā)現(xiàn)軟件漏洞的方法。

在模糊測(cè)試中,用隨機(jī)壞數(shù)據(jù)(也稱做fuzz)攻擊一個(gè)程序,然后等著觀察哪里遭到了破壞。模糊測(cè)試的技巧在于它是不符合邏輯的。

自動(dòng)模糊測(cè)試不去猜測(cè)哪個(gè)數(shù)據(jù)會(huì)導(dǎo)致破壞(就像人工測(cè)試員那樣),而是將盡可能多的雜亂數(shù)據(jù)投入程序中。由這個(gè)測(cè)試驗(yàn)證過(guò)的失敗模式通常對(duì)程序員來(lái)說(shuō)是個(gè)徹底的震憾,因?yàn)槿魏伟催壿嬎伎嫉娜硕疾粫?huì)想到這種失敗。

模糊測(cè)試是一項(xiàng)簡(jiǎn)單的技術(shù),但它卻能揭示出程序中的重要bug。它能夠驗(yàn)證出現(xiàn)實(shí)世界中的錯(cuò)誤模式并在您的軟件發(fā)貨前對(duì)潛在的應(yīng)當(dāng)被堵塞的攻擊渠道進(jìn)行提示。


以下內(nèi)容轉(zhuǎn)載自:https://blog.csdn.net/qq_41453285/article/details/102058343

一、模糊測(cè)試的概念

一種通過(guò)向目標(biāo)系統(tǒng)提供非預(yù)期的輸入并監(jiān)視異常結(jié)果來(lái)發(fā)現(xiàn)軟件漏洞的方法。

二、模糊測(cè)試各階段

確定測(cè)試目標(biāo)

  • 只有有了明確的測(cè)試目標(biāo)后,我們才能決定使用的模糊測(cè)試工具或方法。如果要在安全審計(jì)中對(duì)一個(gè)完全由內(nèi)部開發(fā)的應(yīng)用進(jìn)行模糊測(cè)試,測(cè)試目標(biāo)的選擇必須小心謹(jǐn)慎。但如果是要在第三方應(yīng)用中找到安全漏洞,測(cè)試目標(biāo)的選擇就更加靈活。要決定第三方應(yīng)用模糊測(cè)試的測(cè)試目標(biāo),首先需要參考該第三方應(yīng)用的供應(yīng)商歷史上曾出現(xiàn)過(guò)的安全漏洞。在一些典型的安全漏洞聚合網(wǎng)站如 SecurityFocus 18 和 Secunia 19 上可以查找到主要軟件供應(yīng)商歷史上曾出現(xiàn)過(guò)的安全漏洞。如果某個(gè)供應(yīng)商的歷史記錄很差,很可能意味著這個(gè)供應(yīng)商的代碼實(shí)踐 (code practice)能力很差,他們的產(chǎn)品有仍有很大可能存在未被發(fā)現(xiàn)的安全漏洞。除應(yīng)用程序外,應(yīng)用包含的特定文件或庫(kù)也可以是測(cè)試目標(biāo)。
  • 如果需要選擇應(yīng)用包含的特定文件或者庫(kù)作為測(cè)試目標(biāo),你可以把注意力放在多個(gè)應(yīng)用程序之間共享的那些二進(jìn)制代碼上。因?yàn)槿绻@些共享的二進(jìn)制代碼中存在安全漏洞,將會(huì)有非常多的用戶受到影響,因而風(fēng)險(xiǎn)也更大。

確定輸入向量

幾乎所有可被利用的安全漏洞都是因?yàn)閼?yīng)用沒(méi)有對(duì)用戶的輸入進(jìn)行校驗(yàn)或是進(jìn)行必要的非法輸入處理。是否能找到所有的輸入向量(input vector)是模糊測(cè)試能否成功的關(guān)鍵。如果不能準(zhǔn)確地找到輸入向量,或是不能找到預(yù)期的輸入值,模糊測(cè)試的作用就會(huì)受到很大的局限。有些輸入向量是顯而易見(jiàn)的,有些則不然。尋找輸入向量的原則是:從客戶端向目標(biāo)應(yīng)用發(fā)送的任何東西,包括頭(headers)、文件名(file name)、環(huán)境變量(environment variables),注冊(cè)表鍵(registry keys),以及其他信息,都應(yīng)該被看做是輸入向量。所有這些輸入向量都可能是潛在的模糊測(cè)試變量

生成模糊測(cè)試數(shù)據(jù)

一旦識(shí)別出輸入向量,就可以依據(jù)輸入向量產(chǎn)生模糊測(cè)試數(shù)據(jù)了。究竟是使用預(yù)先確定的值、使用基于存在的數(shù)據(jù)通過(guò)變異生成的值、還是使用動(dòng)態(tài)生成的值依賴于被測(cè)應(yīng)用及其使用的數(shù)據(jù)格式。但是,無(wú)論選擇哪種方式,都應(yīng)該使用自動(dòng)化過(guò)程來(lái)生成數(shù)據(jù)。

執(zhí)行模糊測(cè)試數(shù)據(jù)

該步驟緊接上一個(gè)步驟,正是在這個(gè)步驟,“模糊測(cè)試”變成了動(dòng)詞。在該步驟中,一般會(huì)向被測(cè)目標(biāo)發(fā)送數(shù)據(jù)包、打開文件、或是執(zhí)行被測(cè)應(yīng)用。同上一個(gè)步驟一樣,這個(gè)步驟必須是自動(dòng)化的。否則,我們就不算是真正在開展模糊測(cè)試。

監(jiān)視異常

一個(gè)重要但經(jīng)常容易被忽略的步驟是對(duì)異常和錯(cuò)誤進(jìn)行監(jiān)控。設(shè)想我們?cè)谶M(jìn)行一次模糊測(cè)試,在測(cè)試中,我們向被測(cè)的 Web 服務(wù)器發(fā)送了 10000 個(gè)數(shù)據(jù)包,最終導(dǎo)致了服務(wù)器崩潰。但服務(wù)器崩潰后,我們卻怎么也找不到導(dǎo)致服務(wù)器崩潰的數(shù)據(jù)包了。如果這種事真的發(fā)生了,我們只能說(shuō)這個(gè)測(cè)試毫無(wú)價(jià)值。模糊測(cè)試需要根據(jù)被測(cè)應(yīng)用和所決定采用的模糊測(cè)試類型來(lái)設(shè)置各種形式的監(jiān)視。

判定發(fā)現(xiàn)的漏洞是否可能被利用

如果在模糊測(cè)試中發(fā)現(xiàn)了一個(gè)錯(cuò)誤,依據(jù)審計(jì)的目的,可能需要判定這個(gè)被發(fā)現(xiàn)的錯(cuò)誤是否是一個(gè)可被利用的安全漏洞。這種判定過(guò)程是典型的手工過(guò)程,需要操作者具有特定的安全知識(shí)。這個(gè)步驟不一定要由模糊測(cè)試的執(zhí)行者來(lái)進(jìn)行,也可以交給其他人來(lái)進(jìn)行。

三、模糊測(cè)試的使用流程

  • 從源碼編譯時(shí)進(jìn)行插樁(插樁:類似于斷點(diǎn),但是在程序運(yùn)行的時(shí)候不會(huì)斷下來(lái),而是記錄下來(lái))
  • 進(jìn)行輸入文件的選擇,進(jìn)行初始fuzzing
  • 選擇策略和腳本,進(jìn)行初始fuzzing數(shù)據(jù)的突變
  • 循環(huán)進(jìn)行,并且記錄觸發(fā)了的crash或者時(shí)間、長(zhǎng)度等

四、模糊測(cè)試的注意事項(xiàng)

  • 如果某種框架存在或者爆出多次漏洞,那么程序仍有很大可能存在相關(guān)漏洞
  • 在選擇種子文件的時(shí)候,可以使用fuzzing框架自帶的啟發(fā)式算法自動(dòng)確定文件格式結(jié)構(gòu)
  • 1 確定有效的輸入(能夠控制的數(shù)據(jù))
  • 2 盡量減小體積,建議每個(gè)字典單元都要小于1KB的大小
  • 五、模糊測(cè)試器(fuzzer)

    分類,、模糊測(cè)試工具按概念分為兩類:

    • 基于變異(mutation-based):這一類測(cè)試器通過(guò)對(duì)已有的數(shù)據(jù)樣本進(jìn)行變異來(lái)創(chuàng)建測(cè)試用例
    • 基于生成(generation-based):該類測(cè)試器為被測(cè)系統(tǒng)使用的協(xié)議或是文件格式建模,基于模型生成輸入并據(jù)此創(chuàng)建測(cè)試用例。這兩種模糊測(cè)試器各有其優(yōu)缺點(diǎn)

    1.通用的開源框架
    AFL、LibFuzzer、honggfuzz等(這些在GitHub或網(wǎng)上都可以找到)

    2.不開源的
    burpsuite等

    演示案例:
    RIPS代碼審計(jì)工具,見(jiàn)文章:https://blog.csdn.net/qq_41453285/article/details/100802295
    XssFuzzing代碼審計(jì)工具,見(jiàn)文章:https://blog.csdn.net/qq_41453285/article/details/102055857
    Seay代碼審計(jì)工具,見(jiàn)文章:https://blog.csdn.net/qq_41453285/article/details/102057007

    總結(jié)

    以上是生活随笔為你收集整理的笔记整理-信息系统开发基础-软件测试-模糊测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。