<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源代码,发现新的漏洞函数'特性'或者漏洞
* 有条件或者机会和开发者学习,找到他们实现某些常用功能的代码的缺陷或者容易忽视的问题
* 你有什么要补充的吗? :)