三基于模糊測試的方法_第1頁
三基于模糊測試的方法_第2頁
三基于模糊測試的方法_第3頁
三基于模糊測試的方法_第4頁
三基于模糊測試的方法_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、三、基于模糊測試的三、基于模糊測試的方法方法主要內容主要內容n模糊(Fuzz、Fuzzing)測試概述n幾種常見的Fuzz測試n基于白盒的Fuzz測試3.1模糊測試概述模糊測試概述n是一種通過向目標系統提供非預期的輸入并監視異常結果來發現軟件漏洞的方法。n模糊測試(Fuzz testing)是一種發現安全漏洞的有效的測試方法,在安全性測試中越來越受到重視,模糊測試將隨機的壞數據插入程序,觀察程序是否能容忍雜亂輸入,模糊測試是不合邏輯的,只是產生雜亂數據攻擊程序,采用模糊測試攻擊應用程序可發現其他采用邏輯思維來測試很難發現的安全漏洞。 n早期其實是一種基于黑盒的隨機測試方法。nBaron Mil

2、ler等人1989年首先提出。在通過撥號接入遠程的工作站時,雷電干擾了電話線傳輸,導致一些錯誤的數據,而這些數據使得Unix系統中的某個工具程序崩潰。于是他對各種Unix中的工具程序進行了系統的測試,發現在7個版本的Unix系統中的90個工具程序,24%的工具可以被攻擊至崩潰。Baron Miller的步驟的步驟n創建一個產生隨機字符的程序,以及一個程序來幫助在測試中與各種工具進行交互。n使用這些程序測試Unix工具是否會在輸入隨機字符串時崩潰。n發現這些導致Unix工具崩潰的字符串。n分析崩潰的原因,以及對導致崩潰的公共錯誤進行分類。nFuzzing測試的用例通常具備某種攻擊性的畸形數據。n

3、具備較好的自動化測試能力。n“蠻力”攻擊方法。n很少出現誤報。n能夠快速找到真正的漏洞,操作簡單。n通常不是進行功能性測試,而是檢查系統處理錯誤的能力,比如:“入侵”、 “破壞” 、 “崩潰”n不能保證系統中已經沒有漏洞。模糊測試的特點模糊測試的特點n訪問控制漏洞n設計邏輯不良n后門n內存破壞n多階段安全漏洞模糊測試的局限性和期望模糊測試的局限性和期望n識別測試目標n識別用戶輸入n生成Fuzz測試數據n執行Fuzz測試數據n監視異常n確定可利用性模糊測試的常規步驟模糊測試的常規步驟Fuzz測試中的主要方法測試中的主要方法術語定義傻瓜(Dumb)Fuzz隨機破壞數據包,不考慮數據結構智能(Sma

4、rt)Fuzz破壞數據包,但考慮數據結構,以及編碼方法,如BASE-64編碼,以及數據塊間的關系,如校驗值,某些數據域是否存在的標志位,數據位的長度黑盒Fuzz發送畸形的數據,沒有驗證代碼路徑是否滿足白盒Fuzz發送畸形的數據,驗證了目標代碼路徑已經滿足生成(Generation)自動產生Fuzz測試數據,并不基于任何前面的輸入變異(Mutation)根據缺陷模式,通過破壞有效地數據來產生Fuzz測試數據變異模板使用變異模板作為輸入,產生Fuzz緩沖池并發送給測試軟件微軟的John Neystadt給出n預生成測試用例n隨機生成輸入n人工協議變異測試n變異或強制性測試n自動協議生成測試Fuzz

5、測試方法(用例生成)測試方法(用例生成)n本地模糊器命令行模糊測試器環境變量模糊測試器文件格式模糊測試器n遠程模糊測試器網絡協議模糊測試器(簡單協議、復雜協議)Web應用模糊測試器n內存模糊測試器n模糊測試框架Fuzz測試器類型測試器類型n文件Fuzz測試n協議Fuzz測試n組件Fuzz測試nWeb Fuzz測試3.2幾種常見的幾種常見的Fuzz測試測試n文件作為程序的主要輸入(IE、OFFICE)n按照事先約定好的數據結構對文件中不同的數據域進行解析n文件格式發生改變,攻擊者進行修改并注入不安全代碼。程序崩潰、緩沖區溢出。文件文件Fuzz測試測試n以一個正常的文件模板作為基礎,按照一定規則產

6、生一批畸形文件n將畸形文件逐一送入軟件進行解析,并監視軟件是否會拋出異常n記錄軟件產生的錯誤信息,如寄存器狀態、棧狀態等。n用日志或其他UI形式向測試人員展示異常信息,以進一步鑒定這些錯誤是否能被利用。一般步驟一般步驟nBlind Fuzz(盲模糊)nSmart Fuzz(智能模糊)文件文件Fuzz測試漏洞挖掘類型測試漏洞挖掘類型n在隨機位置插入隨機的數據以生成畸形文件n而現代軟件往往使用非常復雜的私有數據結構,數據結構越復雜,解析程序的邏輯就越復雜,越容易出錯n對于采用復雜數據結構的復雜文件進行漏洞挖掘,該方法暴露出一些不足產生測試用例的策略缺少針對性大量測試用例無效難以發現復雜解析器深層邏

7、輯的漏洞Blind Fuzzn擁有一批預定義的靜態數據n數據結構的內容是可以動態改變的n數據結構之間是嵌套的n數據中存在多種數據關系(size of,point to,reference of,CRC)n有意義的數據被編碼或壓縮,甚至用另一種文件格式來存儲,這些格式的文件被挖掘出來越來越多的漏洞復雜數據結構特征復雜數據結構特征n面向邏輯(Logic Oriented Fuzzing)n面向數據類型(Data Type Oriented Fuzzing)n基于樣本(Sample Based Fuzzing)Smart Fuzzn測試前首先明確要測試的目標是解析文件的程序邏輯,而不是文件本身n復雜

8、的文件格式往往要經過多“層”解析,因此還需要明確測試用例正在試探的是哪一層的解析邏輯,即明確測試“深度”以及畸形數據的測試“粒度”n明確了測試的邏輯目標后,在生成畸形數據時可以具有針對性的僅僅改動樣本文件的特定位置,盡量不破壞其他數據依賴關系,這樣使得改動的數據能夠傳遞到測試的解析深度,而不會在上層的解析器中被破壞面向邏輯面向邏輯n算術型:包括以HEX、ASCII、Unicode、Raw格式存在的各種數值n指針型:包括Null指針、合法/非法的內存指針等n字符串型:包括超長字符串、缺少終止符(0 x00)的字符串等n特殊字符:包括#,,/,./等等面向數據類型面向數據類型n面向數據類型測試是指

9、能夠識別不同的數據類型,并且能夠針對目標數據的類型按照不同規則來生成畸形數據n跟Blind Fuzz相比,這種方法產生的畸形數據通常都是有效的,能夠大大減少無效的畸形文件面向數據類型面向數據類型n測試前首先構造一個合法的樣本文件(也叫模版文件),這時樣本文件里所有數據結構和邏輯必然都是合法的。然后以這個文件為模板,每次只改動一小部分數據和邏輯來生成畸形文件,這種方法也叫做“變異”(Mutation)n對于復雜文件來說,以現成的樣本文件為基礎進行畸形數據變異來生成畸形文件的方法要比上面兩種的難度要小很多,也更容易實現基于樣本基于樣本n但是這種方法不能測試樣本文件里沒有包含的數據結構,比如一個文件

10、格式包含18種數據區塊(Chunk),而給定的樣本文件中只用到了其中的10種,那么基于樣本測試的方法只會修改這10種區塊的數據來產生畸形文件,測試不到其他8種數據對應的解析邏輯n為了提高測試質量,就要求在測試前構造一個能夠包含幾乎所有數據結構的文件(比如文字、圖像、視頻、聲音、版權信息等數據)來作為樣本基于樣本基于樣本n網絡協議的重要性n多數網絡協議細節未公開,如SMB、TNSn拒絕服務、緩沖區溢出、格式化字符串n協議解析自動進行n協議解析的軟件通常較復雜,需要反復進行數據的讀取和處理nSPIKE(Immunity公司)協議協議Fuzz測試測試nNetwork Trace。利用網絡流量來推測網

11、絡協議nTainted Data。對實現網絡協議的服務器程序進行二進制的動態跟蹤分析,通過跟蹤二進制文件對報文的處理流程對報文進行解析。以動態污點分析技術為基礎協議逆向工程協議逆向工程nFile Transfer Protocol,基于TCP,其工作模式采用客戶端/服務器的模式,也就是C/S模式n客戶連接FTP服務過程:建立連接、傳送數據和釋放連接n基本原理就是通過對FTP協議中的命令及命令參數進行臟數據替換,構造畸形的FTP命令并發送給被測試FTP服務程序FTP協議協議Fuzz測試測試n組件提取n組件接口分析n構造測試用例n測試驅動、異常跟蹤n結果分析組件組件Fuzz測試測試n特殊形式的網絡

12、協議模糊測試n測試方法設置目標環境輸入GET、POST、HEAD 、PUT 、DELETE 、TRACE 、CONNECT 、 OPTIONS請求URL異常檢測Web Fuzz測試測試n拒絕服務(Denial-of-service,DoS) n跨站腳本(Cross-site scripting,XSS) nSQL注入(SQL injection) n目錄遍歷/弱訪問控制(Directory traversal/Weak access control) n弱認證(Weak authentication) n弱回話管理(Weak session management) n緩沖區溢出(Buffer overflow) n未恰當支持的HTTP方法(Improperly supported HTTP method) n遠程命令執行(Remote command exection) n遠程代碼注入(R

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論