三款自动化代码审计工具
0×01 简介
工欲善其事,必先利其器。
在源代码的静态安全审计中,使用自动化工具代替人工漏洞挖掘,可以显著提高审计工作的效率。学会利用自动化代码审计工具,是每一个代码审计人员必备的能力。在学习PHP源代码审计的过程中,本人搜集使用了多款自动化工具。本文将简要介绍其中三款比较实用的工具:RIPS、VCG、Fortify SCA。
RIPS是一款开源的,具有较强漏洞挖掘能力的自动化代码审计工具。它使用PHP语言编写的,用于静态审计PHP代码的安全性。
VCG(VisualCodeGrepper),是一款支持C/C++、C#、VB、PHP、Java和PL/SQL的免费代码安全审计工具。它是一款基于字典的检测工具,功能简洁,易于使用。
Fortify SCA(Static Code Analyzer)是由Fortify软件公司(已被惠普收购)开发的一款商业版源代码审计工具。它使用独特的数据流分析技术,跨层跨语言地分析代码的漏洞产生,目前支持所有的主流开发语言。
本文结合一个应用实例的分析,介绍三款工具的使用方法以及特性。
0×02 RIPS
RIPS的主要功能特点如下:
1) 能够检测XSS、SQL注入、文件泄露、本地/远程文件包含、远程命令执行以及更多种类型的漏洞。
2) 有5种级别选项用于显示以及辅助调试扫描结果。
3) 标记存在漏洞的代码行。
4) 对变量高亮显示。
5) 在用户定义函数上悬停光标可以显示函数调用。
6) 在函数定义和调用之间灵活跳转。
7) 详细列出所有用户定义函数(包括定义和调用)、所有程序入口点(用户输入)和所有扫描过文件(包括include的文件)。
8) 以可视化的图表展示源代码文件、包含文件、函数及其调用。
9) 仅用几个鼠标点击就可以使用CURL创建针对检测到漏洞的EXP实例。
10) 详细列出每个漏洞的描述、举例、PoC、补丁和安全函数。
11) 7种不同的语法高亮显示模式。
12) 使用自顶向下或者自底向上的方式追溯显示扫描结果。
13)