有一篇關於安全性測試工具的文章:《Gunfight at The OK Button》。
文中列出了安全測試工具的15個要點:
一、針對源代碼,測試出任何類型的弱點。
二、針對二進制文件,例如可執行文件,測試出任何類型的弱點。
三、檢測實時系統的問題,像死鎖檢測、異步行爲的問題等。
四、對任何類型的補丁建立基線並進行迴歸測試,防止引入新的弱點。
五、提供一個機制,確保已通過檢查、校驗的源代碼一旦構建成爲可執行文件後,沒有被更改。
六、幫助測試人員找到可能觸發或隱含惡意代碼的地方。
七、提供關於二進制文件的信息,例如哪一個本地系統對象被建立了。
八、在軟件開發週期中的不一樣階段都能應用,檢查軟件的弱點。
九、儘量小的錯誤偏差。
十、能處理外國語言的源代碼,例如外國語言的註釋等。
十一、平臺兼容性,例如Unix、Linux、Windows等。
十二、開發語言兼容性,例如C、C++、ADA、Java等。
1三、能夠處理大容量的源代碼或很大的可執行文件,例如上百萬行的代碼。
1四、不改變被測試的軟件,不影響代碼。
1五、產生有用的診斷、預測和度量分析報告。
文中還分類列出了幾款分別知足這些不一樣要點的安全性測試工具
一、分析檢查器、內存泄漏檢測工具、二進制代碼掃描器(Profilers, checkers,memory-leak detection tools,Binary code scanners)
開源的:Valgrind (www.valgrind.org)
商業的:Rational/IBM Purify(www.ibm.com)、http://samate.nist.gov/index.php/Binary_Code_Scanners
二、應用程序痕跡檢查工具(Application footprinting)
UNIX 平臺:lsof 、strace、ktrace 、truss
Windows平臺:ProcessExplorer
三、模糊測試工具(Fuzz testing tools and techniques (also known as penetration testing))
Peach Fuzzer Framework (http://peachfuzz.sourceforge.net/)
四、靜態代碼分析工具(Static code analyzers)
開源的:Splint(http://splint.org)
商業的:PRQA(Programming Research)www.programmingresearch.com、Coverityphp