教你安全專家常用的漏洞分析方法 |
發布時間: 2012/5/29 19:24:22 |
漏洞分析是指在代碼中迅速定位漏洞,弄清攻擊原理,準確地估計潛在的漏洞利用方式和風險等級的過程。
扎實的漏洞利用技術是進行漏洞分析的基礎,否則很可能將不可利用的bug判斷成漏洞,或者將可以允許遠程控制的高危漏洞誤判成D.O.S型的中級漏洞。 一般情況下,漏洞發現者需要向安全專家提供一段能夠重現漏洞的代碼,這段代碼被稱作POC(PRoof of Concept)。 POC可以是很多種形式,只要能夠觸發漏洞就行。例如,它可能是一個能夠引起程序崩潰的畸形文件,也可能是一個Metasploit的exploit模塊。根據POC的不同,漏洞分析的難度也會有所不同——按照MSF標準公布出來的exploit顯然要比幾個二進制形式的數據包容易分析得多。 在拿到POC之后,安全專家需要部署實驗環境,重現攻擊過程,并進行分析調試,以確定到底是哪個函數、哪一行代碼出的問題,并指導開發人員制作補丁。 安全專家常用的分析方法包括: (1)動態調試:使用OllyDbg等調試工具,跟蹤軟件,從棧中一層層地回溯出發生溢出的漏洞函數。 (2)靜態分析:使用IDA等逆向工具,獲得程序的“全局觀”和高質量的反匯編代碼,輔助動態調試。 (3)指令追蹤技術:我們可以先正常運行程序,記錄下所有執行過的指令序列;然后觸發漏洞,記錄下攻擊狀況下程序執行過的指令序列;最后比較這兩輪執行過的指令,重點逆向兩次執行中表現不同的代碼區,并動態調試和跟蹤這部分代碼,從而迅速定位漏洞函數。 除了安全專家需要分析漏洞之外,黑客也經常需要分析漏洞。比如當微軟公布安全補丁之后,全世界的用戶不可能全都立刻patch,因此,在補丁公布后一周左右的時間內,其所修復的漏洞在一定范圍內仍然是可利用的。 安全補丁一旦公布,其中的漏洞信息也就相當于隨之一同公布了。黑客可以通過比較分析Patch前后的PE文件而得到漏洞的位置,經驗豐富的黑客甚至可以在補丁發布當天就寫出exploit。 鑒于這種攻擊的價值,補丁比較也是漏洞分析方法中重要的一種,不同的是,這種分析方法多被攻擊者采用。 本文出自:億恩科技【www.laynepeng.cn】 |