1. 程式人生 > >Home Of HappyBear

Home Of HappyBear

漏洞發掘技術主要包括:

1黑盒自動測試

2靜態自動分析

3補丁比較

4動態除錯汙點檢查

在這個領域,人的經驗還是最重要的

A適當的漏洞資料來源--〉B知識發現或者資料探勘--〉C漏洞預測模型--〉D漏洞自動發掘模型

A漏洞樣本一定要合適

C漏洞的共性,軟體的什莫部分最有可能存在漏洞?軟體在什莫情況下最有可能觸發漏洞?

下面逐個分析

1黑盒自動測試

無法真正理解程式的流程

可否借鑑一些軟體行為學的東西?模擬非正常的軟體行為

需要人工介入?

2基於原始碼的靜態分析

定位為輔助工具

FlowFinder/ITS4支援C/C++語言

RATS支援C/C++/Perl/PHP/Python語言

可檢查緩衝區溢位、格式化字串、競爭條件、PATH欺騙等安全問題

這種方法已經有成熟的商業軟體

3補丁比較

原始碼補丁比較(開源)

二進位制檔案比較

這種方法一般用於探究已知漏洞的位置,用於編寫漏洞利用程式碼

我覺得這種方法應該算是漏洞分析而非漏洞發掘

但是補丁已經發布,再寫漏洞利用程式碼又有何用?

4基於IDA Pro的指令碼挖掘技術

利用IDC編寫漏洞發掘指令碼 (Halvar Flake 2001年 BlackHat 演講)

動態除錯汙點跟蹤/檢查是如何實現的?