<a href="http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis">http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis</a>
C/C++
1、flawfinder
<a href="http://www.dwheeler.com/flawfinder/">http://www.dwheeler.com/flawfinder/</a>
2ãBunny the Fuzzer (fuzzer function)
<a href="http://code.google.com/p/bunny-the-fuzzer/wiki/BunnyDoc">http://code.google.com/p/bunny-the-fuzzer/wiki/BunnyDoc</a>
3ãrats
<a href="http://www.fortify.com/security-resources/rats.jsp">http://www.fortify.com/security-resources/rats.jsp</a>
JAVA/JSP
1ãfindbugs
<a href="http://findbugs.sourceforge.net/">http://findbugs.sourceforge.net/</a>
2ãLAPSE ï¼Eclipse plugin)
<a href="http://suif.stanford.edu/~livshits/work/lapse/">http://suif.stanford.edu/~livshits/work/lapse/</a>
PHP
1ãPixy
<a href="http://pixybox.seclab.tuwien.ac.at/pixy/">http://pixybox.seclab.tuwien.ac.at/pixy/</a>
2ãswaat
<a href="http://www.securitycompass.com/swaat/">http://www.securitycompass.com/swaat/</a>
Addison Wesley - Secure Programming with Static Analysis - 2007.pdf
Art.of.Software.Security.Assessment.chm
給出兩款我們用的比較多的java源代碼
檢查工具:findbugs和 checkstyle
Php Code Audits的方向
下面是一個Source Code Auditing tools的一個list[轉于網絡]
Name - [ language/s supported ] - web link:
支援php的有:
目前就php的Source Code Auditing tool基本都是靜态分析的,而Source Code Auditing一直圍繞着2個元素:變量和函數.也就是說這些tools不管是php開發的還是java開發的,也不管是不是基于php原代碼的,他本身都對一些危險的函數和變量都對應的一個'字典'[特征字元串],這些tools都是通過查找這些字典,然後跟蹤變量來分析代碼.
但是随着程式員安全意識的提高,很多的程式員也知道了這些'字典'了,都有對應的過濾,是以那些傳統的問題,很找在大型程式裡出現了.是以隻有通過擴大我們的字典才有更多的機會去找到應用程式的漏洞.我們的途徑有:
* 分析和學習别人發現的漏洞或者exp,如大牛Stefan Esser發現的那些問題,rgod等以前發的那些exp
* 通過學習php手冊或者官方文檔了解php 一些函數的'特性'
* fuzz php的函數,找到新的有問題的函數[不一定非要溢出的]
* 分析php源代碼,發現新的漏洞函數'特性'或者漏洞
* 有條件或者機會和開發者學習,找到他們實作某些常用功能的代碼的缺陷或者容易忽視的問題
* 你有什麼要補充的嗎? :)