代码审计指南.pdf
《代码审计指南.pdf》由会员分享,可在线阅读,更多相关《代码审计指南.pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Audit Workbench 用户指南用户指南版本 4.52007 年 9 月Audit Workbench Users GuideCopyright 2003-2007 Fortify Software,Inc.9/10/07All Rights Reserved.Printed in the United States of America.Fortify Software,Inc.2300 Geng Road,Suite 102Palo Alto,California 94303 Fortify Software,Inc.(以下简称Fortify)和许可证颁布者保留对此文档(以下简称文
2、档)的一切所有权。对此文档的使用受适当的版权法支配。Fortify 可以在没有预先通知的情况下随时修改该文档。此文档在没有任何类型保证的情况下被原样提供。对于从此文档中发现的任何错误所引起的直接的、故意的、巧合的或导致严重后果的损害,FORTIFY 绝不会对此负责,包括在限制范围之外的任何损失或者对商业、利益、使用或数据造成的麻烦。FORTIFY 可以在没有预先通知的情况下保留对此最终产品得出的此文档中的任何细节和元素进行修改和删除的权力。Fortify 是 Fortify Software,Inc.的注册商标在此文档中商品和产品名称是他们的各自拥有者的商标。Audit Workbench U
3、sers Guide iii目录目录Preface.1Chapter 1:入门入门.3Audit Workbench 是什么是什么?.3打开专案打开专案.4使用使用 AuditGuide.4浏览浏览 Audit Workbench 界面界面.5Issues Panel.5Analysis Trace Panel.6Source Code Viewer Panel.6Summary Panel.7Details Panel.8Diagram Panel.9Chapter 2:审核并报告分析结果审核并报告分析结果.11浏览分析结果浏览分析结果.11查看分析追踪资料查看分析追踪资料.11问题分组问题
4、分组.11搜索的使用搜索的使用.12建立问题建立问题.14产生报告产生报告.14查看结果验证信息查看结果验证信息.15Chapter 3:使用进阶特性使用进阶特性.17自定义自定义 AuditGuide.17使用使用 Eclipse 导航和编辑特性导航和编辑特性.18输出一个原始码分析过滤文件输出一个原始码分析过滤文件.18自定义自定义 Issues View.19整合一个漏洞追踪系统整合一个漏洞追踪系统.19通过多个审核员合并审核信息通过多个审核员合并审核信息.19建立自定义建立自定义 Cleanse 规则规则.20从从 New Analysis Results 文件进行更新文件进行更新.2
5、0管理管理 Rulepacks.20调整调整 SCA 信任度信任度 .21Chapter 4:故障排除和支援故障排除和支援 .23故障排除故障排除.23使用日志文件来排除故障.23ivAudit Workbench Users Guideorg.eclipse.swt.SWTError 错误信息.23Out of Memory 错误.23重新设定预设的视图 .24报告错误并要求改进报告错误并要求改进.24Audit Workbench Users Guide 1Preface本文档介绍了如何使用 Audit Workbench.如果您对本文档的任何内容有疑问或者建议,请联系 Fortify S
6、oftware:客户支持客户支持公司所在地公司所在地2300 Geng RoadSuite 102Palo Alto,CA 网址网址http:/2Audit Workbench Users GuideAudit Workbench Users Guide 3Chapter 1:入门入门这一章提供了 Audit Workbench 特性与功能的概述,并且描述了 Audit Workbench 的主要元素。想获取 Audit Workbench 使用过程的资讯,请查看 审核与报告分析结果 和 使用 Advanced Features。这一章包含了下列话题:Audit Workbench 是什么打开
7、专案使用 AuditGuide浏览 Audit Workbench 界面Audit Workbench 是什么是什么?Audit Workbench 使用一个图形用户界面扩充了 Fortify Source Code Analyzer(Fortify SCA),使得开发组织与安全审记小组能够迅速地对分析结果进行组织,研究和分级,从而使安全漏洞能在短时间内被修复。Audit Workbench 拥有下列特性:通过文件名和行号对安全漏洞精确识别有漏洞的代码基于全部相关原始码的综合视角被污染 data flow 路径,可以帮助您理解漏洞是如何在程序流中形成的对漏洞的具体建议,帮助您理解它们是什么与如
8、何修复它们多种筛选,寻找,和分类选项,可以帮助你聚焦漏洞种类,分析类型,用户输入类型,和特定的易受攻击的函数AuditGuide 向导,帮助您建立经典分析档案审记员注释,允许审记员给原始码分析结果注释关于可开发性的评语,检阅状态和其他经典的笔记。4Audit Workbench Users Guide打开专案打开专案Audit Workbench 使用专案组织 Fortify SCA 产生的初步审核结果。在 Audit Workbench 中打开审记专案:1.打开 Audit Workbench.显示 Choose Project 对话框2.选择一个专案并且点击 OK.显示 Project S
9、ummary 对话框,包含资讯关于:有多少文件和代码行被扫描有多少被标记的热点问题,警告,和问题被发现被发现问题数量最多的前 10 个文件按类别和分析器的问题总计按污染标记的问题总计3.点击 Continue to AuditGuide 或 Skip AuditGuide。如果您选择 Continue to AuditGuide,AuditGuide 向导会开始.AuditGuide 允许您指定哪种类型的问题是您感兴趣的,例如那些涉及环境、命令行参数的,或是 file system race conditions。请参照第 4 页上的 使用 Audit Guide”.审记结果文件显示在 sou
10、rce code viewer pane 中。4.检查 Audit Workbench 界面,将在第5页上的”浏览Audit Workbench界面里描述.注意 Issues panel 中被放入了按漏洞种类分类的问题。使用使用 AuditGuideAuditGuide 是一个把您带入一列问题的指南。根据您对问题的回应,Audit Workbench 会隐藏那些您确定为不重要的问题,建立优化后的结果。注意注意:您可以编辑 auditguide.xml 文件去定制 AuditGuide 的提问。获取定制 AuditGuide 的资讯,请查看第 17 页上的“自定义 Audit Guide”。当您
11、打开一个专案时,您会有执行 AuditGuide 的选项。您也可以通过从 Tools 项目选择 AuditGuide 在审记中执行 AuditGuide。AuditGuide 提问的一系列问题您应如下回应:1.给每个问题选择 Suppress 或者 Warn 2.使用左边的列表翻阅问题3.当您回答了所有关于您专案的问题后点击 OK。一个 AuditGuide 对话框会回答报告有多少项被重新优化了。Audit Workbench Users Guide 5浏览浏览 Audit Workbench 界面界面下面的图片是一个显示了范例程序 WebGoat 扫描资讯的 Audit Workbench
12、界面。Figure 1:Audit Workbench 界面界面 Audit Workbench 界面由下列面板与元素组成:Issues PanelAnalysis Trace PanelSource Code Viewer PanelSummary PanelDetails PanelDiagram PanelIssues PanelIssues panel 是您能够分组和选择您想审记的问题。这个面板有下列元素组成:Issue listsHierarchical navigation treeGroup By 项目Search field最小化和最大化图标注意注意:Issues panel
13、标题栏显示当前安全等级设置,预设为 Broad。获取安全等级的资讯,请查看管理规则包.6Audit Workbench Users GuideIssue Listsissue lists(预设显示 Hot,Warning,Info,All,可选显示 Suppressed,Entry Pts,Removed)显示探测到问题的数量,并控制在 navigation tree 中显示的问题。例如,当您点击 Warnings,navigation tree 会显示出所有被分配为 warning 安全等级的问题列表.当您审记一个问题时,您把问题鉴别为 Hot,Warnings,Info,或 Suppres
14、sed。All 代表所有的问题。Entry Pts 代表所有被鉴别了的入口点。Removed 代表在上一次扫描中存在,当专案更新了分析结果时被去除了的问题。你通过 Options 项目控制 Suppressed,Entry Pts 和 Removed 列表的显示。Hierarchical Navigation Tree在树状图中出现的项根据哪个 group by 选项被选择了而变换。当扩展时,树状图列出每个问题的原始码和漏洞分类。扩展的树状图中每个项旁边方括号中显示的一对数字指出了有多少问题被审记了(左边的数字)和总共有多少问题(右边的数字)。Group ByGroup By 项目允许您用不同
15、的规则给问题分组,例如按漏洞种类,分析器类型,文件名。更多资讯请查看第 11 页上的“问题分组”.Search Field Search field 允许你限制显示的问题,和搜索特定的问题。获取搜索特性的资讯,请查看第 12 页上的“搜索的使用”。最大化和最小化图标最大化和最小化图标最大化和最小化图标用来放大和缩小面板的尺寸。Analysis Trace PanelAnalysis Trace panel 显示在navigation tree中选择的问题的输出轨迹。例如,当一个关于可能被污染data flow 问题被选择时,Analysis Trace panel 显示 data flow 在
16、这段原始码中正在移动的方向。获取更多的资讯,请查看第 11 页上的“查看分析追踪资讯”.最大化和最小化图标放大和缩小面板的尺寸。Source Code Viewer Panelsource code viewer panel 显示与在 Issues panel 中选择的问题相关的代码段。当在 Analysis Trace panel 中多个节点代表一个问题时,source code viewer panel 显示与被选中的节点有关的代码。Audit Workbench Users Guide 7Summary PanelSummary panel 显示关于当前选中问题的资讯,如下表描述的:注意
17、:注意:您可以通过编辑 auditlabels.properties 文件定制 Analysis categories 的名字和数字与issue lists 的名字。这个文件包含了如何定制它的资讯,它位于:/Core/config漏洞分类以粗体出现在面板的右上方。在分类名字下,漏洞领域和分析器被显示在括号中,跟着有一个对漏洞的简单描述。例如,Command Injection(Input Validation and Representation,data flow)表示这个问题被 data flow 分析器探测到,是一个 Input Validation and Representation
18、 领域中的 Command Injection 问题。Table 1:Fortify Analysis Summary Panel 元素元素描述 元素元素描述Location显示问题的文件名和行号Analysis指定您的分析结果:-Not an issue-Reliability issue-Unknown(预设)-Bad Practice-Suspicious-Dangerous-Exploitable-Exploit availableStatus指定审记状态:-Not reviewed(预设)-Under review-ReviewedImpact指定影响:-Unknown(预设)-Lo
19、w-Medium-HighList把问题移动到另一个列表:-Hot-Warnings-Info-SuppressedComments记录关于问题的额外资讯Suppress Issue把安全等级重新分配为 suppressed 并且从 navigation tree 中移除File Bug提供一个到 bug 跟踪系统的途径,例如 BugzillaView More Details打开 Details panel8Audit Workbench Users GuideDetails PanelDetails panel 提供被选中问题的详细描述并提供对付它的指导方针。每一个描述包括下表描述的一些或
20、者全部。注意注意:获取关于 SCA confidences 的资讯,请查看第 21 页上的“调整 SCA 信任度”。Table 2:Details panel元素描述元素描述Abstract一个对问题的总结描述Explanation一个对这类问题发生条件的描述,包括对漏洞的讨论,它的相关典型结构,它该如何开发,和可能的攻击分支Recommendations关于如果对付问题的资讯Tips关于审记方案的普通与困难的范例,附有如何鉴别特定问题的提示References相关资讯的关联Instance ID问题的唯一识别号Rule ID发现问题所依据的主要规则号码SCA ConfidenceA metr
21、ic generated by Fortify SCAAudit Workbench Users Guide 9Diagram Panel当你在 navigation tree 中选择一个 dataflow 问题时,Diagram panel 可视化地解释了节点执行顺序,调用深度,和表达式类型。Figure 2:一个一个 SQL Injection 问题的问题的 Dataflow 图形范例图形范例纵轴显示了执行顺序。追踪从顶部的第一个调用污染源的函数开始,然后追踪调用到源点(蓝色节点),在汇点(红色节点)停止追踪。在图表中,源点(src)和汇点(sink)都被标记了。一个在纵轴上的红 X 表示
22、这个被调用的函数结束了执行。横轴显示了调用深度。线条显示了控制权的转移。如果控制权转移时携带含有被污染数据的变量那么线条是红色的,如果没有被污染数据时线条是黑色的。每个节点的表达式类型用下面图标中的一个表示:注意注意:如果一个规则添加了一个/Core/config/中的污染标记auditguide.xml,标记名称将会显示。要在 dataflow 图表中显示一个自定义标记,添加这个标记到这个 XML 文件并重启 Audit Workbench。Table 3:Data Flow 图标图标描述图标图标描述数据被分配到一个域或变量数据被分配到一个全局域或变量函数调用收到被污染数据 函数调用返回被污
23、染数据传递,被污染的数据在一个函数调用中从一个参数传递到另一个被污染的数据从一个函数返回10Audit Workbench Users GuideAudit Workbench Users Guide 11Chapter 2:审核并报告分析结果审核并报告分析结果这以部分包含了以下这些内容主题:浏览分析结果查看分析追踪系统问题分组搜索的使用建立问题产生报告查看结果验证资讯浏览分析结果浏览分析结果当你打开了一个Audit Workbench的项目来查看Fortify Source Code Analyzer(Fortify SCA)所侦测到的问题之后,你就能审核这些问题,以便仔细考虑这些问题的严重
24、级别和出现在 Summary panel中,对它们执行的安全分析的状态。审核结果以问题的严重级别来分类,并随着这些问题被定义在 Hot 列表下,预设地显示在问题面板中,有可能会对其进行适当的修正。点击 Warning 和 Info 来查看在这些列表中分类的问题。每一类列表中存在的问题数量显示在相关的按键之下。为了检验和问题面板中显示的问题相关的代码,选中这个问题。存在问题的原始码部分,和包含面板标题所显示问题的文件的名字,会出现在原始码查看面板中。查看分析追踪资讯查看分析追踪资讯当你在导航树中选择了一个问题,相关的追踪资讯会在分析追踪面板中输出。一般来说,这是一系列程序节点,显示了分析器是如何
25、找到这些问题的。对于 data flow 和 control flow 问题,这一系列节点以一种可执行的顺序出现。当你选择了一个数据流问题,接下来的这个分析追踪面板上出现的图标类型,和图表面板上出现的图表显示了数据流是如何周旋于这一部分的原始码中的:一个左箭头表示受污染的数据是来自于一个函数。一个右箭头表示数据流向函数。一个双向箭头表示一个中间任务或者过渡函数。问题分组问题分组出现在树型项目上的条目根据所选择的项目的类别而变化。项目的类别在以下的表格中有所描述。Table 1:根据选项分类选项描述根据选项分类选项描述Analyzer 分析器根据分析器类型将问题分类Audit Analysis
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 代码 审计 指南
限制150内