代码审计是一种发现程序漏洞,安全分析为目标的程序源码分析方式。今天主要分享的是几款常用的代码审计工具,以及代码审计工具有哪些优缺点?
代码审计工具
seay代码审计工具,是一款开源的利用C#开发的一款代码审计工具。主要有SQL注入、xss跨站、命令执行、文件包含、文件上传、正则匹配、数据库执行监控等程序漏洞的监测。
frotify sca是惠普开发的一款商业性质的代码审计工具,主要包含了数据流、控制流、语义、配置、结构五大分析引擎。
rips是一款php开发,监测php程序漏洞的代码分析工具。该工具现目前的版本是0.5,并很早之前就已经停止更新。该工具能够发现SQL注入、xss跨站,文件包含,文件上传、代码执行、文件读取等漏洞。
findbugs是一款静态分析工具,属于eclipse的插件工具。
burp suite属于一款工具集成平台,主要包含了proxy(拦截http/s的代理服务器)、Spider(只能感应的网络爬虫)、Scanner(web应用漏洞)、Intruder(高度可配置工具)、Repeater(应用响应工具)、Sequencer(预测一些不可预知的漏洞,补发单独的http请求)、Decoder(程序的解码)、Comparer(反映请求和响应的差异)。该工具需要安装java环境。
Gerrit是一个基于 Web 的代码审查系统,适于采用 Git 版本控制系统开发的项目进行在线代码审查。
Phabricator是一个完整的开源软件应用程序,以Web基础,代码审查、计划、测试、浏览与审计评分、发现Bug等功能。
Review Assistant是Visual Studio的代码审查插件。可以创建审阅请求并在不离开Visual Studio的情况下对其进行响应。支持TFS,Subversion,Git,Mercurial和Perforce。
cobra:支持PHP、Jav等主要开发语言及其它数十种文件类型,支持检测多种漏洞类型,支持命令行模式和API模式。
VCG:它是一个基于字典的自动化源代码扫描工具,支持 C++, C#, VB, PHP, Java, PL/SQL and COBOL等多种语言,可以由用户自定义需要扫描的数据,可以对源代码中所有可能存在风险的函数和文本做一个快速定位和检索。
RIPS:PHP代码审计工具,支持跨平台部署,小巧强大。
SonarQube:SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。通过插件形式,可以支持众多计算机语言,比如 java, C#, go,C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等。sonar可以通过PMD,CheckStyle,Findbugs等代码规则检测工具来检测代码,帮助发现代码漏洞。
代码审计工具优缺点
优点
降低人工成本
对于应用程序,扫描模式是通用的,计算机比人类更擅长这类扫描。在这种情况下,扫描器在扫描大型代码库漏洞时扮演着重要角色
发现漏洞的所有实例
扫描器可以非常有效地识别特定漏洞的所有实例及具体位置。跟踪大型代码库中所有文件的缺陷很难,扫描器对于这种情况很有帮助
源库分析
一些分析器通过源库分析的方式跟踪代码并识别漏洞。分析器识别可能的应用输入,并在所有源代码中彻底追踪输入,直到发现所有不符合安全代码模式的应用输入。源库分析能够帮助开发人员更好地理解代码缺陷和获得代码缺陷的根本原因
详细的报告格式
扫描器能够提供详细的分析报告,包括具体代码段的漏洞、漏洞的风险等级和详细描述。
缺点
未涉及业务逻辑缺陷
扫描器不能识别应用程序的业务逻辑、事务处理和敏感数据。通常,扫描器不能发现应用程序中需要实现的特定于某些功能和设计的安全控制。这些被认为是静态代码分析器的最大限制
范围有限
通常,静态代码分析器被设计用于特定的框架或语言,并且能够在一定范围内搜索特定漏洞模式的集合。在此范围之外,静态代码分析器并不能解决在搜索模式库中未涵盖的问题
不能发现设计缺陷
代码框架的设计缺陷没有固定模式,静态代码扫描器专注于代码层面。需要人工查看代码才能识别设计问题
误报
被扫描器标记的问题并非完全真实,需要有经验、了解安全编码的技术人员理解问题缺陷并对其进行分类。
总结
在源代码审计实际实施过程中,通常采用工具+人工的方式,首先使用源代码审计的扫描工具对源代码进行扫描,完成初步的信息收集,然后由人工的方式对源代码扫描结果进行人工的分析和确认。
根据收集的各类信息对客户要求的重要功能点进行人工源代码审计。
结合自动化源代码扫描和人工源代码审计两方的结果,源代码审计服务人员需整理源代码审计服务的输出结果并编制源代码审计报告,最终提交客户和对报告内容进行沟通。
来源地址:https://blog.csdn.net/Uguardsec/article/details/129217673