Fortify SCA 是一个静态的、白盒的源代码安全测试工具。它通过内置的五大主要分析引擎对源代码进行静态的分析和检测,分析的过程中与其特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并整理生成完整的报告。扫描的结果中不但包括详细的安全漏洞的信息,还会有相关的安全知识的说明,并提供相应的修复建议。
一、功能与特点
l 可支持多达21种常见开发语言的检测和测试
支持常见开发语言的检测和测试,扫描和分析出有安全漏洞和隐患的源代码。支持C/C++/C#,Java,VB,数据库开发语言Transact-SQL,PL/SQL,大型项目和管理平台开发语言COBOL,ColdFusion,ABAP,Flex,脚本语言 JSP,JavaScript/Ajax,VBScript,Python,网络和网页开发语言 ASP.NET,VB.NET,ASP,PHP,HTML,以及移动应用开发语言 Android,Objective-C等。
l 支持常见的操作系统和开发平台IDE插件,具有良好的兼容性
支持常见的操作系统:Windows, Solaris, Red Hat Linux, Mac OS X, HP-UX, IBM AIX;提供常见开发平台的IDE插件: Visual Studio,Eclipse,RAD,RSA
l 可检测600多种源代码安全漏洞
目前Fortify SCA可以扫描出近600多种漏洞,如跨站脚本攻击 Cross Site Scripting (XSS),注入漏洞 Injection Flaw,不安全的对象参照 Insecure Direct Object Reference,恶意文件执行 Malicious File Execution,跨网站请求伪造 Cross-Site Request Forgery (CSRF),信息泄漏与不适当错误处理 Information Leakage and Improper Error Handling等。 Fortify漏洞库的建设更新参照OWASP,CWE,PCI等组织的漏洞分类,给用户以多样化的选择,在信息安全领域关注较多的OWASP top10,CWE组织发布的漏洞信息,fortify都会及时跟进并更新漏洞库。
l 安全问题等级分类,加速修补效率
Fortify SCA会将找出的安全问题分类,并通过其对系统的危害严重程度作等级分类,可提高相关人员审查安全问题的速度,提高开发人员修补程序的效率。
l
安全规则定期更新机制
定期提供并更新安全规则,由Fortify Software的安全专家和研发团队提供持续的更新,以保持最新的源代码安全分析能力。并且提供自定义安全规则功能,以指导精灵化的方式指导客户轻松定制自己的规则。
l 提供全面资讯的分析结果
SCA将分析结果,透过Audit WorkBench提供安全漏洞相关信息包含问题追踪流程图、调用关系图来协助问题分析及确认,并将审查结果做记录。提供安全漏洞解释说明及修复建议,依实际开发的源代码作为安全问题说明,以提高可读性,加速使用者对问题的了解及修复。
l 多元化的报表
SCA拥有多元化的报表范本,提供丰富的资讯。报表内容包括相关的分析统计数据、完整问题解释与修复建议、分析追踪流程与源代码片段,更容易阅读与分析。并且可很容易新增定制化的报表模板。
二、技术优势
l 源代码分析功能:
内置五大引擎,实现对源代码全面的安全分析
² 数据流分析:对源代码的数据流程进行分析,跟踪被感染的、可疑的输入点和最终的引爆点
² 控制流分析:对源代码的操作指令的流程进行分析,检测因为业务操作指令的不合理所带来的安全隐患。
² 语义分析:对源代码的函数,方法进行语义分析,发现易于遭受攻击的语言函数或者过程,并理解它们使用的上下文环境,并标识出使用特定函数或者过程带来的软件安全的隐患
² 配置分析:对项目的环境配置进行分析,分析软件的配置和代码的关系,发现在软件配置和代码之间,配置丢失或者不一致而带来的安全隐患
² 结构分析:对源代码设计结构上进行分析,识别代码结构不合理而带来的安全弱点和问题
l 跨层、跨语言地分析整个项目
² 跨项目的各个架构层:对于多层(三层、四层等)开发架构,能够跨跃所有层来分析整个项目
² 跨项目使用的各个语言:对于包含多种开发语言的项目,能够所有的代码一起通透地分析。
l 支持多种语言、平台和开发环境
以IDE插件或者命令行执行的方式支持多种实施环境,全面地检测项目源代码中存在的安全漏洞。
² 语言:Java,JSP,ASP.NET,C#,VB.NET,C,C++,COBOL,ColdFusion,Transact-SQL,PL/SQL,JavaScript/Ajax,Classic,ASP,VBScript,VB6,PHP,Python,Flex,ABAP,Objective C等21种
² 操作系统:Windows, Solaris, Red Hat Linux, Mac OS X, HP-UX, IBM AIX
² IDEs: Visual Studio,Eclipse,RAD,RSA
l 安全编码规则包
数十万条规则,覆盖业界最广泛 600多种安全漏洞,,与SCA的分析引擎一同工作,查找源代码中安全漏洞。按代码错误,将源代码漏洞分为八个大类,其中七个大类都是关注于源代码的安全,另一个是与软件的配置和环境有关的。
² 输入验证和表示形式(Input Validation and Representation)
² API滥用(API Abuse)
² 安全特征(Security Features)
² 时间和状态(Time and State)
² 错误(Errors)
² 代码质量(Code Quality)
² 封装(Encapsulation)
² 环境(Environment)
l 代码安全审查(Audit WorkBench)
² 说明漏洞原因、分级别报告漏洞、提供修复方法、报告漏洞产生的全路径: 根据对系统的危害程度,将漏洞分为四个等级便于用户修复重点漏洞;解释漏洞产生的原因,说明为什么会称之为漏洞及此类型漏洞有可能产生的危害;将漏洞定位到源代码的程序行或函数,便于用户锁定问题;根据程序的调用过程及执行过程,定位漏洞程序可能污染到的其它程序;提供详细的修补建议,便于用户在较短的时间内修复问题
² 安全评审:可以对漏洞进行筛选、排序;对漏洞进行过滤,调整级别;对漏洞进行批注,标记评审状态
² 报表功能:提供多种报表模板,提供PDF,WORD,XML的报表格式,可以勾选报表中的具体内容,提供与OWASP Top10 2007,OWASP Top10 2010等的比较报表。
产品组成与介绍
Fortify SCA是一个产品的套件,它是由内置的分析引擎、安全编码规则包、审查工作台、规则自定义编辑器和向导、IDE 插件五部分组件,五个组件配合工作完成对源代码安全漏洞的扫描,分析,查看,审计等工作。
l
分析引擎:内置五大分析引擎与规则包配合工作,从五个侧面全面地分析程序源代码中的安全漏洞。
l 安全编码规则包:由多位*的软件安全专家,多年研究出来的数十万条软件安全漏洞特征的集合。目前能查找出来约600多种安全漏洞,内置在SCA中与分析引擎配合工作。
l 审计工作台:一个用来查看,审计SCA分析出来的漏洞结果的综合的平台,它包含大量的丰富的软件漏洞的信息,,它包括了漏洞的分级,漏洞产生的全过程,漏洞所在的源代码行数定位,以及漏洞的解释说明和推荐的修复建议等内容,极大地方便地用户对SCA的查看,审计等工作。
l 规则自定义向导/编辑器:Fortify SCA的规则支持自定义功能,方便用户来扩展SCA对漏洞的分析能力,所以SCA提供了一个用户自定义的向导和编辑器。
l IDE插件:为了方便用户使用SCA对程序源代码进行安全扫描,它提供了多种IDE工具的插件,如Eclipse, Visual Studio,RAD, WSAD等
欢迎交流更多 fortify SCA 问题,我现在也在使用 fortify SCA软件