
1,“源代码分析”阶段概述
Audit Workbench将启动Fortify SCA“扫描”向导以扫描和分析源代码. 该向导集成了以下分析阶段:
转换: 使用源代码创建一个中间文件. 源代码与Build ID相关联,通常是项目名称.
扫描和分析: 扫描中间文件,分析代码,然后将结果写入Fortify项目结果(FPR)文件.
验证: 确保所有源文件都包含在扫描过程中,使用了正确的规则包,并且未报告重大错误.
2. 安全编码规则包概述
安全编码规则包是Fortify软件安全研究团队多年的软件安全经验的体现,并且它是通过不断努力来改进的. 这些规则是通过对编码理论和常见编码实践的研究而获得的软件安全知识的大量积累,并且在Fortify软件安全研究团队的努力下不断得到扩展和完善. 每个安全编码规则包都包含大量规则,并且每个规则都定义了通过源代码分析检测到的特定异常行为.
一旦检测到安全问题,安全编码规则包将提供有关问题的信息,使开发人员可以计划和实施修复工作,这比研究问题的安全细节更为有效. 这些信息包括有关问题类别,攻击者将如何利用问题以及开发人员如何确保代码不受此漏洞威胁的特定信息.
安全编码规则包支持多种编程语言,以及各种扩展的第三方库和配置文件.
有关当前安全编码规则包的信息,请参阅“安全编码规则包参考”.
3. 起始页概述
起始页包含以下区域:
启动新项目(启动新项目): 启动源代码扫描向导.
自定义规则编辑器: 用于创建和检查安全规则或编码实践规则的工具,可以针对您的源代码对其进行自定义.
打开项目: 单击一个项目名称以打开最新的项目;或使用“打开项目”链接来找到项目.
fortify \ bin \ AuditWorkbench.cmd起始页:
4. 审核界面概述
下图显示了“审核”界面中Webgoat FPR文件的示例.
审核工作台界面:
Audit Workbench界面由以下面板组成:
“问题”面板
“分析跟踪”面板
“项目摘要”面板
“源代码查看器”面板
功能面板
问题审核面板
“问题”面板
使用“问题”面板,可以分组并选择要审核的问题. 该面板包含以下元素:
“过滤器集”下拉列表
“文件夹”标签
分组依据(分组依据)
“搜索”框
问题面板:
“过滤器集”下拉列表

过滤器组控制“问题”面板的设置和显示属性. 过滤器组是项目配置的一部分. 您可以为每个项目自定义不同的过滤器组. 每个项目可以有一个唯一的过滤器组.
“过滤器集”部分包含以下设置:
文件夹的名称和颜色. 要进行配置,请选择工具-项目配置-文件夹设置.
列出问题的位置以及是否列出问题. 要进行配置,请选择选项-显示视图过滤器.
注意: “审核指南可见性过滤器”配置适用于整个项目.
Fortify软件提供默认过滤器组: 广泛,中等,目标和开发人员. “过滤器集”根据严重性将问题分类为“热”代码审计规则,“警告”和“信息”文件夹. 所有过滤器组都具有相同的文件夹过滤器.
不同的“过滤器集”将显示和隐藏不同的问题:
广泛(广泛): 使用最全面的规则组显示问题. 此筛选器组应用于发现大量要审核的安全问题.
中等(一般): 显示了在产生结果(详细说明潜在问题)与产生预期的漏洞组之间打破平衡的问题.
目标(特定): 显示在各种行业和环境中都得到证明的高优先级问题类别. 这些过滤器集应用于发现有限的一组众所周知的关键安全问题.
Developer(Developer): 显示开发人员特别关注的问题,例如高精度错误.
“文件夹”标签:
“问题”面板上的选项卡称为“文件夹”. 使用“项目配置”,可以自定义文件夹及其设置. 因此,文件夹,名称,颜色和问题列表的数量在不同的过滤器组和项目之间有所不同.
文件夹过滤器将问题分为多个文件夹. 如果问题与任何文件夹过滤器都不匹配,则问题将列在默认文件夹中. 可见性过滤器确定列表中是否显示问题.
注意: 选择“选项-显示禁止”(显示已取消的项目),“显示隐藏”(显示隐藏的项目)(显示与可见性过滤器匹配的项目)和“显示已删除”(显示已删除的项目)将显示所有项目.
分组依据(分组依据):
“分组依据”选项用于将问题列表分类为各个子文件夹. 所选选项将应用于所有可见文件夹. 使用
使用Audit Workbench,可以通过更改分组的属性,添加或删除属性以创建子组以及添加自己的分组选项来自定义现有组.
“分组依据”设置适用于Audit Workbench实例. 您可以将分组选项应用于使用Audit Workbench实例打开的任何项目.
“搜索”框:
在“搜索”字段中,您可以限制文件夹中显示的问题并搜索特定问题. 有关搜索功能的信息,请参阅使用搜索.
“分析跟踪”面板:
选择问题时,“分析跟踪”面板将显示相关的跟踪输出. 通常,这是一系列过程点,显示如何发现问题. 对于数据流和控制流问题,将按执行顺序显示这一系列点.
例如,如果选择与潜在感染的数据流有关的问题,则“分析跟踪”面板将在此源代码中显示数据流的方向.
分析跟踪面板
“分析跟踪”面板使用以下图标来显示数据流如何在此源代码中移动:
表1: 分析和跟踪图标
“项目摘要”面板:
“项目摘要”面板提供了有关扫描的详细信息.
“摘要”标签
“认证”标签
“构建信息”标签
“分析信息”标签
项目摘要面板

“摘要”标签:
“摘要”标签显示有关项目的高级信息.
“认证”标签:
“认证”选项卡显示结果认证状态. 结果证书用于检查FPR文件是否与Fortify SCA生成的文件一致.
“构建信息”标签:
“构建信息”选项卡显示以下Fortify SCA扫描信息:
内部版本详细信息,例如内部版本ID,扫描的文件数和扫描日期,可能与文件的转换日期不同
扫描文件列表,包括文件大小和时间戳
Java类路径
“分析信息”标签:
“分析信息”选项卡显示Fortify SCA版本,计算机详细信息以及执行扫描的用户.
“分析信息”子标签包含以下信息:
规则包: 列出用于扫描源代码的规则包,包括每个规则包的名称,ID和版本号.
属性: 显示Fortify SCA属性文件的设置
命令行参数: 显示用于分析项目的命令行选项
警告: 列出分析期间发生的所有错误和警告
“源代码查看器”面板:
“源代码查看器”面板显示与在“问题”面板中选择的问题相关联的代码段. 如果“分析跟踪”面板中的多个节点表示问题,则“源代码查看器”面板将显示与所选节点关联的代码.
在“源代码查看器”面板中,您可以使用代码辅助来创建自定义规则和新问题,如下所示:
要为函数创建规则,请将光标置于函数中,右键单击并选择“为此函数编写规则”.
要创建新问题,请将光标置于该函数中,右键单击并选择“创建新问题”.
功能面板:
“功能”面板显示项目中的功能/方法列表. 使用“功能”面板可以找到功能在源代码中的位置,了解该功能是否适用和匹配规则,以及编写和验证自定义规则.
“功能”面板具有以下选项:
显示(显示): 确定列表中显示的功能.
分组依据: 将功能分组为各种包和类,显示层次结构或直接显示所有功能而无需分组.
包括未使用的功能(包括未使用的功能): 在源代码中显示每个功能. 默认情况下,未使用的功能不包括在列表中.
图例(图例): 显示一个解释每个列表图标的窗口. 该功能旁边的图标颜色指示该功能是否应用规则,如下所示:
--------红色: 未应用任何规则
--------蓝色: 可以应用规则,但没有匹配的规则
--------绿色: 可以应用规则,并且有匹配的规则
搜索: 仅搜索包含您输入的字符串的函数. 该字段不区分大小写. 如果此字段为空白,则将显示所选组中的所有功能.
功能面板
右键单击一个函数以显示以下选项:

打开声明(打开声明): 显示在源代码中声明的函数的位置.
查找用法: 创建此功能适用的文件位置的列表. “搜索”标签将在“审核”面板中打开,该面板显示其所在文件的名称.
生成功能规则: 启动“自定义规则”向导以编写将应用于该功能的规则.
显示匹配的规则: 列出与该功能匹配的所有规则所属的规则包的规则ID和文件名.
问题审核面板:
“问题审核”面板在以下选项卡集中提供有关每个问题的详细信息:
摘要(摘要)
细节(细节)
建议(建议)
历史(历史)
图(图标)
过滤器(过滤器)
注意: 使用“选项-显示视图”菜单可以显示或隐藏“问题审核”面板中的标签.
摘要:
“摘要”标签显示有关当前所选问题的以下信息:
问题审核面板中的“摘要”标签
下表描述了“摘要”面板中的选项:
元素描述
问题显示问题的位置,包括文件名和行号
自定义标签
The
(自定义标签)区域显示一个下拉列表,供审计员添加为问题属性. 例如,默认情况下,“分析”标签提供以下值:
-没问题
-可靠性问题(可靠性问题)
-未知
-可疑(可疑)
注意: 自定义标签是项目设置,可以选择“工具-项目配置”来更改标签值.
抑制问题(抑制问题)更改严重性级别以消除和删除导航树中的问题.
通过文件错误(报告错误)可以访问错误跟踪系统(例如Bugzilla).
评论将有关问题的其他信息添加到评论字段.
规则信息显示描述问题的信息,例如类别和字段.
更多信息将打开“详细信息”选项卡.
“建议”以打开“建议”标签.
详细信息(详细信息):

“详细信息”选项卡提供有关所选问题的详细说明,并提供解决问题的准则. 每个描述都包含下表中描述的部分或全部列.
元素描述
摘要(摘要)对该问题的摘要描述
说明(解释),说明在什么情况下会发生这种问题,还包括对漏洞的讨论,通常与漏洞相关的代码结构,漏洞的利用方式以及潜在的类型衍生攻击
实例ID问题的唯一标识符
规则ID标识用于发现问题的主要规则
SCA可信度(SCA Confidence),是Fortify SCA生成的指标
+最大化标签
建议(建议)
“建议(建议)”选项卡包含有关如何避免引起漏洞或修改漏洞方法的建议和示例.
元素描述
有关如何解决问题的建议(推荐)信息
提示(提示)提供了常见或困难审计情况的示例,并提供了有关如何识别特定问题的提示
参考(参考信息)参考相关信息
+最大化标签
历史(历史)
显示审核操作的完整列表,包括以下详细信息: 日期和时间,执行审核的计算机以及解决问题的用户的名称.
图(图标)
“图表”选项卡在“问题”面板上直观地说明了所选问题的节点执行顺序,调用深度和表达式类型.
SQL注入问题数据流程图示例
“图”选项卡显示与规则类型有关的信息代码审计规则,如下所示:
数据流规则: 垂直轴显示执行顺序. 跟踪将从顶部的第一个函数调用感染源开始,然后跟踪对源的调用(蓝色节点),并在(红色节点)处结束跟踪. 在图示中,源(src)和节点也被标记. 垂直轴上的红色X表示已调用的函数已完成执行.
水平轴显示呼叫深度. 一条线显示了控制传递的方向. 如果在传递控制权时传送了带有感染数据的变量,则该行为红色;否则,该行为红色. 如果没有感染的数据,则该行为黑色.
对于所有其他规则: 垂直轴显示执行顺序.
每个节点的表达式类型由以下图标之一表示:
过滤器(过滤器)
“过滤器”标签显示所选过滤器组中的所有过滤器.
过滤器标签中的选项
元素说明
过滤器显示在选定过滤器组中配置的可见性过滤器和文件夹过滤器的列表.
右键单击过滤器以显示与过滤器匹配的问题,然后可以启用或禁用过滤器.
如果显示过滤条件.
第一个下拉列表显示问题属性的列表,第二个下拉列表指定属性的匹配方式,第三个列表是过滤器匹配的值.
然后指示过滤器的类型,其中“隐藏”指示可见性过滤器,“文件夹”指示文件夹过滤器.
!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-242910-1.html
期待你更好的未来~
老美不跑等着喂鱼吗