随着互联网的飞速发展,各种网络应用层出不穷,网络应用已经成为人们生活必不可少的一部分,在大家享受网络应用给人们带来便利的同时,安全问题频繁发生,信息泄露、业务中断、敲诈勒索等安全事件屡见不鲜,如何保证互联网的安全成为了一个重要的话题。
近年来,大部分安全问题来自于应用层安全,应用层的安全问题主要由软件源代码中的安全缺陷所导致。有关源代码安全的研究越来越多,源代码安全成为了解决信息安全问题的一个重要方向,也是信息安全中的一个新兴领域。
在开发阶段引入代码检测解决安全问题的思路开始被很多企业所认可。源代码检测属于程序分析领域,需要具有相关领域的技术储备,很多传统的安全厂商都没有相关的商业化技术产品。网上有很多开源的审计工具,但检测能力、检测精度较差,本文结合多年对源代码检测产品的了解,介绍三款较为成熟的商业化源代码检测产品。
1、 Fortify SCA
Fortify Software公司是一家总部位于美国硅谷,致力于提供应用软件安全开发工具和管理方案的厂商。Fortify为应用软件开发组织、安全审计人员和应用安全管理人员提供工具并确立***的应用软件安全实践和策略,帮助他们在软件开发生命周期中花最少的时间和成本去识别和修复软件源代码中的安全隐患。
Fortify SCA是一个静态的、白盒的软件源代码安全测试工具,它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。扫描的结果中不但包括详细的安全漏洞的信息,还会有相关的安全知识的说明,以及修复意见的提供。
Fortify SCA支持Java,JSP,ASP.NET,C#,VB.NET,C,C++,COBOL,ColdFusion,
Transact-SQL,PL/SQL,JavaScript/Ajax,Classic,ASP,VBScript,VB6,PHPjava,jsp多种语言,600多种风险类型,支持CWE/OWASP国际主流标准,交付形态为纯软件。
2、Checkmarx CxSuite
Checkmarx 是以色列的一家高科技软件公司。它的产品CheckmarxCxSuite专门设计为识别、跟踪和修复软件源代码上的技术和逻辑方面的安全风险。首创了以查询语言定位代码安全问题,其采用独特的词汇分析技术和CxQL专利查询技术来扫描和分析源代码中的安全漏洞和弱点。
Checkmarx CxSuite的扫描结果可以以静态报表形式展示,也可以通过可以对软件安全漏洞和质量缺陷在代码的运行时的数据传递和调用图跟踪的代码缺陷的全过程,同时还可以提供对安全漏洞和质量缺陷进行修复提供指导建议。也可以对结果进行审计,从而消除误报。
Checkmarx CxSuite支持JAVA、ASP.NET(C#、VB.NET)、JavaScript、Jscript、C/C++、APEX等语言,500多种风险类型,支持CWE/OWASP国际主流标准,交付形态为纯软件。
3、360代码卫士
360代码卫士是360企业安全集团基于多年源代码安全实践经验推出的新一代源代码安全检测解决方案,包括源代码缺陷检测、合规检测、溯源检测三大检测功能,同时360代码卫士还可实现软件安全开发生命周期管理,与企业已有代码版本管理系统、缺陷管理系统、构建工具等无缝对接,将源代码检测融入企业开发流程,实现软件源代码安全目标管理、自动化检测、差距分析、Bug修复追踪等功能,帮助企业以最小代价建立代码安全保障体系并落地实施,构筑信息系统的“内建安全”。
代码卫士目前支持Windows、Linux、Android、Apple iOS、IBM AIX等平台上的代码安全检测,支持的编程语言涵盖C/C++/C#/Objective-C/Java/JSP/JavaScript/PHP/Python/Cobol等主流语言。在软件代码缺陷检测方面,代码卫士支持24大类,700多个小类代码安全缺陷的检测,兼容国际CWE、ISO/IEC 24772、OWASP Top 10、SANS Top 25等标准和***实践;在软件编码合规检测方面,代码卫士可支持US CERT C/C++/Java安全编码规范的检测,并可根据用户需求进行灵活定制;在开源代码溯源检测方面,代码卫士可支持80000多个开源代码模块识别,28000多个开源代码漏洞的检测。
4、对比分析
三大检测工具是目前为止源代码检测领域的领军产品,对比情况如下:
这三款静态源代码扫描工具都有其各自特色,SCA支持的语言多达20多种,基本上涵盖了绝大多数的应用,具有相当广泛的适用性,但同时也使得其价格非常昂贵;CxSuite支持的语言包括常见Web应用的语言,适用范围基本上包括了大部分的应用,其使用***的语言来自定义规则非常有特色,价格较之SCA有一定的优势;360代码卫士是国内首款源代码审计商业化产品,检测能力多元化,可低成本融入开发流程,更适合企业用户的需求,性价比很高。值得一提的是,随着国内信息安全产品“自主、可控”原则的推广,更多的企业会倾向于本地服务更好的国内源代码审计产品。