编码是一个特别注意细节的过程,大量的代码由众多的开发人员编写,而不同的开发人员由于能力参差不齐,导致代码的质量也高低不同,特别是安全这方面更是在这个过程中特别容易出现问题。由于很难保证开发人员把安全实践应用到编码中,而通过人工代码复查的方式来检查代码安全问题的时间成本非常高,困难度也非常大,因此可以采用自动化的代码安全扫描,最大程度的降低时间成本和困难度,从而增加一个反馈环来快速发现、解决代码中的安全问题。
利用静态代码扫描工具对代码在编译之前进行扫描,并在静态代码层面上发现各种安全问题。但是自动化代码安全扫描并不能发现代码中所有的安全问题,所以对于安全需要高的项目还是需要人工代码评审,从而可以弥补自动化代码扫描不能发现的安全问题。
部分自动化静态代码扫描工具列表:
工具 | 支持语言 | 版权 | 主页地址 |
---|---|---|---|
Fortify | 大部分语言 | 收费 | http://www8.hp.com/us/en/software-solutions/static-code-analysis-sast/ |
Checkmarx | 大部分语言 | 收费 | https://www.checkmarx.com/ |
Flawfinder | C/C++ | 免费 | http://www.dwheeler.com/flawfinder/ |
LAPSE | Java | 免费 | http://www.owasp.org/index.php/Category:OWASP_LAPSE_Project |
Brakeman | Ruby on Rails | 免费 | https://github.com/presidentbeef/brakeman |