Fortify2-CSA快速扫描与定期扫描
Quick Scan 快速扫描
快速扫描模式提供了一种快速扫描项目主要问题的方法。默认情况下,快速扫描模式搜索高可靠性、高严重性问题。尽管扫描比完全扫描快,但它不能提供健全的结果集。
Limiters 限制条件
MF静态代码分析器分析的深度有时取决于可用的资源。Fortify Static Code Analyzer使用复杂性度量来权衡这些资源和它可以发现的漏洞数量。有时,这意味着在某个函数看起来不像Fortify Static Code Analyzer有足够的可用资源时,放弃它。
MF静态代码分析器使用户能够通过使用MF静态代码分析器的限制器属性来控制截止点。不同的分析仪有不同的限制器。您可以使用快速扫描运行预定义的一组这些限制器。看到fortify-sca-quickscan。属性,用于描述限定符。
要启用快速扫描模式,请使用带有扫描选项的快速选项。启用快速扫描模式后,Fortify静态代码分析器将应用来自sca_install_dir>/Core/config/ Fortify -sc -quickscan的属性。属性文件,以及标准的sca_install_dir>/Core/config/fortify-sca。属性文件。您可以通过编辑Fortify -sca-quickscan来调整增强静态代码分析器使用的限制器。属性文件。如果修改fortify-sca。属性,它也影响快速扫描行为。Fortify建议您在快速扫描模式下进行性能调优,并将完整扫描保留在默认设置中,以生成高度精确的扫描。有关快速扫描模式属性的描述,请参阅Fortify Static Code Analyzer属性文件。
定期扫描
周期性的全扫描很重要,因为它可能发现快速扫描模式无法检测到的问题。每次软件迭代至少运行一次完整扫描。如果可能的话,在不会中断开发工作流程的情况下,比如在周末,定期运行一次完整的扫描。
全扫描的快速扫描
要评估快速扫描的准确性影响,可以对同一个代码基执行快速扫描和完整扫描。打开快速扫描结果Micro Focus Fortify Audit Workbench,并将其合并为全扫描。按新问题对问题进行分组,以生成在全扫描(快速扫描)中检测到的问题列表。
快速扫描和MF服务器
为避免覆盖完整扫描的结果,默认情况下,Fortify Software Security Center忽略在快速扫描模式下扫描的上传FPR文件。但是,您可以配置一个Fortify Software Security Center应用程序版本,以便处理在quick scan中扫描的FPR文件。有关更多信息,请参见Micro Focus Fortify Software Security Center用户指南中的分析结果处理规则。
Limiting Analyzers and Languages
偶尔,您可能会发现大量的扫描时间花费在运行特定的分析器或分析特定的语言上。这种特定的分析程序或语言可能对您的安全需求并不重要。您可以限制运行的特定分析程序和Fortify静态代码分析器转换的特定语言。
这个步骤包含以下主题:
Disabling Analyzers 关闭分析器
要禁用特定的分析器,包括 analyzers选项,在扫描时使用冒号或逗号分隔的分析器列表来增强静态代码分析器。分析器的完整列表是:缓冲区、内容、配置、控制流、数据流、findbugs、nullptr、语义分析器和结构分析器。
例如,要运行只包含数据流、控制流和缓冲区分析器的扫描,请使用以下扫描命令:
source analyzer -b <build_id> -analyzers dataflow:controlflow:buffer -scan -f myResults.fpr
您还可以通过设置com.fortify.sca完成同样的操作。DefaultAnalyzers在Fortify静态代码分析器属性文件<sca_install_dir>/Core/config/ Fortify -sca.properties。例如,要实现与前面的扫描命令相同的效果,在属性文件中设置如下:
com.fortify.sca.DefaultAnalyzers=dataflow:controlflow:buffer
Disabling Languages 关闭语言
要禁用特定语言,在翻译阶段包括-禁用- language选项,它指定了你想要排除的语言列表。有效语言参数的完整列表为:
abap, actionscript, apex, cfml, cpp, cobol, configuration, dotnet, java, javascript, jsp, objc, php, plsql, python, ruby, scala, sql, swift, tsql, typescript, vb
例如,要执行一个不包含SQL和PHP文件的转换,可以使用下面的命令
source analyzer b <build_id> <src_files> disable-language sql:php
您还可以通过设置com.fortify.sca来禁用语言。在Fortify静态代码分析器属性文件中禁用语言属性< sca_install_dir > / / config /增强- sca.properties核心。例如,要实现与前面翻译命令相同的功能,请在属性文件中设置如下内容:
com.fortify.sca.DISabledLanguages=sql:php

PS:Fortify的使用是个渐进的过程,最新的规则漏洞包能满足一般开发团队的要求。达到较高的开发水准,利用Fortify这个效率工具,二次自定义规则漏洞包。

更多推荐

Fortify(2)