代码静态检测
程序静态分析(Program Static Analysis)是指在不运行代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。目前静态分析技术向模拟执行的技术发展以能够发现更多传统意义上动态测试才能发现的缺陷,例如符号执行、抽象解释、值依赖分析等等并采用数学约束求解工具进行路径约减或者可达性分析以减少误报增加效率。目前的静态分析工具,无论从科研角度还是实用性角度还有很大的提高余地,国际最好分析工具误报率在5-10%之间,能够报出的缺陷种类也仅有几百种。我国一些高校正在致力于在此方面的研究和开发(成果较突出的如香港科技大学、北京大学、清华大学等)。
工具介绍
1. Fortify SCA(Source Code Analysis)
Fortify Software公司是一家总部位于美国硅谷,致力于提供应用软件安全开发工具和管理方案的厂商。Fortify为应用软件开发组织、安全审计人员和应用 安全管理人员提供工具并确立最佳的应用软件安全实践和策略,帮助他们在软件开发生命周期中花最少的时间和成本去识别和修复软件源代码中的安全隐患。 Fortify SCA是Fortify360产品套装中的一部分,它使用fortify公司特有的X-Tier Dataflow™ analysis技术去检测软件安全问题。
优点:全球最大的静态代码检测厂商,支持语言较多
缺点:价格太过昂贵,性价比不高
2. Checkmarx CxSuite
Checkmarx 是以色列的一家高科技软件公司。它的产品CheckmarxCxSuite专门设计为识别、跟踪和修复软件源代码上的技术和逻辑方面的安全风险。首创了以查询语言定位代码安全问题,其采用独特的词汇分析技术和CxQL专利查询技术来扫描和分析源代码中的安全漏洞和弱点。
优点:可以利用CxQL 查询语言自定义规则
缺点:输出报告不够美观、语言支持种类不全面,价格昂贵
3. Coverity
Coverity公司是由一流的斯坦福大学的科学家于2002年成立的,产品核心技术是1998年至2002年在斯坦福大学计算机系统实验室开发的,用于解决一个计算机科学领域最困难的问题,在2003年发布了第一个能够帮助Linux、FreeBSD等开源项目检测大量关键缺陷的系统,Coverity是唯一位列IDC前10名软件质量工具供应商的静态分析工具厂商,被第三方权威调查机构VDC评为静态源代码分析领域的领导者,市场占有率处于绝对领先地位。
优点:可以检测二进制文件,分析能力较强
缺点:价格昂贵
4. 源伞科技Pinpoint
源伞科技公司是香港科技大学安全实验室的众多博士创建的,产品集成了实验室多年的研究成果,在众多国际顶级学术会议上都发表了成果论文,在学术界有很大的影响。近几年源伞科技将静态代码检测产品Pinpoint成功商业化。目前产品已经比较成熟,能够方便的集成各种安全开发流程,操作界面流畅。能够直接扫描JAVA的二进制文件,在Java和c/c++两种语言上的分析能力十分强大,扫描速度普遍快于市面上现有的产品,且拥有众多国内一线互联网以及金融公司的安全开发实例经验,不仅能够输出工具产品,也能够提供安全开发的解决方案。在国内静态代码分析领域处于领先地位。
优点:分析能力强,使用方便友好,价格透明亲民
缺点:还未支持C#以及OC,目前支持C/C++,Java,Android,JS,PHP,Python,Golang,Sql
更多详情请关注公众号:源伞科技