收藏 分享(赏)

静态源代码安全检测工具比较.doc

上传人:tangtianxu1 文档编号:2937460 上传时间:2018-09-30 格式:DOC 页数:7 大小:217.80KB
下载 相关 举报
静态源代码安全检测工具比较.doc_第1页
第1页 / 共7页
静态源代码安全检测工具比较.doc_第2页
第2页 / 共7页
静态源代码安全检测工具比较.doc_第3页
第3页 / 共7页
静态源代码安全检测工具比较.doc_第4页
第4页 / 共7页
静态源代码安全检测工具比较.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、静态源代码安全检测工具比较1. 概述随着网络的飞速发展,各种网络应用不断成熟,各种开发技术层出不穷,上网已经成为人们日常生活中的一个重要组成部分。在享受互联网带来的各种方便之处的同时,安全问 题也变得越来越重要。黑客、病毒、木马等不断攻击着各种网站,如何保证网站的安全成为一个非常热门的话题。根据 IT 研究与顾问咨询公司 Gartner 统计数据显示,75%的黑客攻击发生在应用层。而由 NIST 的统计显示 92%的漏洞属于应用层而非网络层。因此,应用软件 的自身的安全问题是我们信息安全领域最为关心的问题,也是我们面临的一个新的领域,需要我们所有的在应用软件开发和管理的各个层面的成员共同的努力

2、来完 成。越来越多的安全产品厂商也已经在考虑关注软件开发的整个流程,将安全检测与监测融入需求分析、概要设计、详细设计、编码、测试等各个阶段以全面的保证 应用安全。对于应用安全性的检测目前大多数是通过测试的方式来实现。测试大体上分为黑盒测试和白盒测试两种。黑盒测试一般使用的是渗透的方法,这种方法仍然带有明显的黑盒测试 本身的不足,需要大量的测试用例来进行覆盖,且测试完成后仍无法保证软件是否仍然存在风险。现在白盒测试中源代码扫描越来越成为一种流行的技术,使用源代码扫描产品对软件进行代码扫描,一方面可以找出潜在的风险,从内对软件进行检测,提高代码的安全性,另一方面也可以进一步提高代码的质量。黑盒的渗

3、透测试 和白盒的源代码扫描内外结合,可以使得软件的安全性得到很大程度的提高。源代码分析技术由来已久,Colorado 大学的 Lloyd D. Fosdick 和 Leon J. Osterweil 1976 年的 9 月曾在 ACM Computing Surveys 上发表了著名的 Data Flow Analysis in Software Reliability,其中就提到了数据流分析、状态机系统、边界检测、数据类型验证、控制流分析等技术。随着计算机语言的不断演进,源代码分析的技术 也在日趋完善,在不同的细分领域,出现了很多不错的源代码分析产品,如 Klocwork Insight、R

4、ational Software Analyzer 和 Coverity、Parasoft 等公司的产品。而在静态源代码安全分析方面,Fortify 公司和 Ounce Labs 公司的静态代码分析器都是非常不错的产品。对于源代码安全检测领域目前的供应商有很多,这里我们选择其中的三款具有代表性的进行对比,分别是 Fortify 公司的 Fortify SCA,Security Innovation 公司的Checkmarx Suite 和 Armorize 公司的 CodeSecure。2. 工具介绍2.1. Fortify SCA(Source Code Analysis)Fortify S

5、oftware 公司是一家总部位于美国硅谷,致力于提供应用软件安全开发工具和管理方案的厂商。Fortify 为应用软件开发组织、安全审计人员和应用 安全管理人员提供工具并确立最佳的应用软件安全实践和策略,帮助他们在软件开发生命周期中花最少的时间和成本去识别和修复软件源代码中的安全隐患。 Fortify SCA 是 Fortify360 产品套装中的一部分,它使用 fortify 公司特有的 X-Tier Dataflow analysis 技术去检测软件安全问题。优点:目前全球最大 静态源代码检测厂商、支持语言最多缺点:价格昂贵、使用不方便2.2. Checkmarx CxSuiteCheck

6、marx 是以色列的一家高科技软件公司。它的产品 CheckmarxCxSuite 专门设计为识别、跟踪和修复软件源代码上的技术和逻辑方面的安全风险。首创了以 查询语言定位代码安全问题,其采用独特的词汇分析技术和 CxQL 专利查询技术来扫描和分析源代码中的安全漏洞和弱点。优点:利用 CxQL 查询语言自定义规则缺点:输出报告不够美观、语言支持种类不全面2.3. Armorize CodeSecure阿码科技成 立于 2006 年,总部设立于美国加州圣克拉拉市,研发中心位于台湾的南港软件工业园区。阿码科技提供全方位网络安全解决方案,捍卫企业免于受到黑客利用 Web 应用程序的漏洞所发动的攻击。

7、阿码科技 CodeSecure 可有效地协助企业与开发人员在软件开发过程及项目上线后找出 Web 应用程序风险,并清楚交代风险的来龙去脉 (如何进入程序,如何造成问题) 。CodeSecure 内建语法剖析功能无需依赖编译环境,任何人员均可利用 Web 操作与集成开发环境双接口,找出存在信息安全问题的源代码,并提供修补建议进行调整。CodeSecure 依托于自行开发的主机进行远程源代码检 测,在保证速度稳定的同时方便用户进行 Web 远程操作。优点:Web 结合硬件,速度快、独具特色的深度分析缺点:支持语言种类较少、价格不菲3. 对比Fortify SCA 简写为 SCA,Checkmarx

8、 CxSuite 简写为 CxSuite,Armonize CodeSecure 简写为 CodeSecure。SCA CxSuite CodeSecure厂商 Fortify Software Checkmarx 阿码科技支持语言Java,JSP,ASP.NET,C#,VB.NET,C,C+,COBOL,ColdFusion,Transact-SQL,PL/SQL,JavaScript/Ajax,Classic,ASP,VBScript,VB6,PHPJAVA、ASP.NET(C#、VB.NET)、JavaScript、Jscript、C/C+、APEXASP.NET(C#、VB.NET)、

9、ASP、JAVA、PHP风险种类400 种 300 种 参考 CWE风险类型参考来源CWE、OWASP CWE、OWASP CWE、OWASP漏报率最低 低 低误报率稍高 低 低是否支持SaaS否 否 是软硬件类型纯软件 纯软件 Web 结合硬件设备运行平台无限制WindowsNET Framework 2.0无限制运行速度取决于电脑配置速度不定取决于电脑配置速度不定由主机配置决定速度恒定报告格式PDF PDF、XML、CSV、HTML Web、PDF报告内容完整按照风险级别不同分为多个文件核心内容完整扫描信息等缺失非常完整但修改建议放于最后报 100 万/软件 70 万/软件 100 万/软

10、硬件价性价比中 高 低从软件支持 的源代码语言上来说,Fortify SCA(下文简称 SCA)支持多达 17 种语言,Checkmarx CxSuite(下文简称 CxSuite)其次,而 Armonize CodeSecure(下文简称CodeSecure)在三款软件中支持的最少,仅仅支持几种最常见语言,不过这几种基本涵盖了绝大多数应用中使用的编程语言,基本上可以支持现在大多数应用的源代码扫描。从风险的分类来说,各个厂商都有其自己独特的分类方式和不同的种类数量,不过从实际应用中可以看出,总体上仍为 OWASP 公布的几类风险,如 SQL 注入、跨站脚本 等,已经可以满足实际中开发人员和测试

11、人员的需求,对于各个厂商不同的部分,一般来说主要的区别在于理解不同,看问题的角度不同,并无谁错谁对之原则性问 题。从运行平台 的角度,CodeSecure 这个产品目前看来已经将 SaaS 的理念很好的融合进来,整个软件的操作界面为 Web 方式,用户可以通过网页进行操作,B/S 的方式可以将操作系统的影响降到最低,只要有一台可以上网的电脑和浏览器,无论什么操作系统都可以使用 CodeSecure 远程进行源代码扫 描,CodeSecure 依托的是一台 Armonize 自行研制的主机,使用硬件设备的好处在于可以适用于多种场合,不会因为测试人员或是开发人员的电脑 配置影响扫描速度,扫描的速度

12、完全取决于主机的性能。而 SCA 和 CxSuite 主要还是单机软件,但目前也在不断地向 SaaS 的方向进行过渡,并且提供了 相当全面的贯彻整个软件开发流程(SDLC)的解决方案与服务给用户。其中 CxSuite 这个产品标明了使用该软件的硬件配置,为 Windows 操作系统 和.NET 框架,这个产品目前应该为利用.NET 框架进行开发,所以运行环境有一定的局限性。同时,SCA 和 CxSuite 因为是单机软件,一方面在使用 前需要安装,另一方面其运行速度取决于运行软件的电脑性能,对于使用该软件的电脑配置有一定的要求。三种产品都使用了各自的技术对于威胁进行检测,SCA 使用的是已获得

13、专利的 X-Tier数据流分析器,这三种产品中只有 CxSuite 声称可以达到零误报率,因为 其对于风险的理解是风险必须在外形上呈现出来才被考虑为实际的风险,这种理解方式可以说是别出心裁,从代码安全的角度来说,检测的目的是为了发现问题并及时改正,同时要针对于最关键的问题进行改正,这也是这三款软件都包含 TOP X 的统计的目的,从这一点上讲,CxSuite的风险报告是非常谨慎的。SCA 在以前的使用中发现有一定的误报率,不过换个角度想,误报相比漏报是可以容 忍的,规则越严格,误报率就会相应的上升而漏报率就会相应的下降,源代码检测工具目前均为静态的进行代码的扫描,即所有的检测均是按照“规则”来

14、进行,任 何一款产品都不可能达到真正的零误报、零漏报。所以可以说 SCA 的规则检查稍显简单,CxSuite 和 CodeSecure 的检查比较谨慎。而从漏报率上来看,谨慎的查找势必会导致漏报率的提升,这一点上 SCA 和CodeSecure 只说明了低漏报率,而 CxSuite 内部包含了一种类似于 C#称为 CxQL 的查询语言,支持使用这种语言进行查询,方便用户进行特定的查找。另两款软件使用的都是规则的方式,其本质上应该是相类似的,这一点上规则似乎更 容易被用户接收,但是 CxQL 的方式确实增强了用户的操作性。从结果输出 上来说,三款软件都支持多种输出方式,而作为报告 PDF 格式可

15、以说是最书面的一种格式。在这一点上,三款软件输出格式略有不同。SCA 报告构成如下:扫描概述、按风险的分类进行详细描述,包括每个风险的发现位置,代码上下文,风险源和风险输出,以及改进方法,各类风险描述之后是按照风险类别 的所有风险的统计和按照风险等级的统计图表。SCA 的每种类型的文件生成一个 PDF 文件,便于用户对于风险严重程度的不同采取不同的策略。CxSuite 报告构成如下:风险按照不同分类方式的统计图、风险的数据统计情况、风险最高的文件 TOP 10、按照类别进行风险详述,包括风险的名称、描述、常见危害、在软件开发各阶段的相应处理方式、详细示例,列举每一个风险的传输路径和相应位置代码

16、。CodeSecure 报告构成如下:目录、重点精华,包括检测信息、弱点密度规范分布趋势、弱点最多的文件 TOP 5,弱点索引,弱点的详细信息,包括弱点的全程跟踪,最后是弱点信息及修改建议、所有的进入点。三款软件的 报告中以 SCA 的最有特色,将不同级别的风险分文件显示对于程序员进行修改是极为方便的;CodeSecure 的报告最为规范,整个文档包括目录,结构完 整,唯一的不足是将风险的修改建议放在了最后,查阅有些不便;CxSuite 的内容可以说是最概要的,只包含了风险的最关键内容,对于程序员来说应该是最 简洁的。4. 总结这三款静态源代码扫描工具都有其各自特色,SCA 支持的语言多达 1

17、7 种,基本上涵盖了绝大多数的应用,具有相 当广泛的适用性,但同时也使得其价格非常昂贵;CxSuite 支持的语言包括常见 Web 应用的语言,适用范围基本上包括了大部分的应用,其使用独创的语言来自定义规则非常有特色,价格较之 SCA 有一定的优势;CodeSecure 支持的语言较少,不过基本上可以适用于当前大多数的 B/S 结构应用,它是唯一 的软硬件结合的产品,在免除用户安装步骤的同时将扫描运行于特定设备之上,有助于提高运行速度,也因为包括硬件的缘故,其价格不菲。SCA 极广的适用性使其适用于横跨多种语言的开发和测试人员,CxSuite 的较高性价比使其适于基于 Web 的开发人员和测试

18、人员,CodeSecure 稳定的速度和 B/S 的独特结构使得Web 开发或测试的多人同时使用变得极为方便。随着应用的安全性越来越受到人们的重视,静态源代码扫描和动态扫描将逐渐融合,未来将会有更多更优秀的源代码扫描工具诞生,让我们拭目以待吧。附录 A 其他静态源代码检测产品公司 产品 支持语言art of defence Hypersource JAVACoverity Prevent JAVA .NET C/C+开源 Flawfinder C/C+Grammatech CodeSonar C/C+公司 产品 支持语言HP DevInspect JAVAKlocWork Insight JAVA .NET C/C+,C#Ounce Labs Ounce 6 JAVA .NETParasoft JTEST 等 JAVA .NET C/C+SofCheck Inspector for JAVA JAVAUniversity of MarylandFindBugs JAVAVeracode SecurityReview JAVA .NETFindBugPMDLint4Weblnspect

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 往来文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报