《FortifySCA安装使用基础手册.docx》由会员分享,可在线阅读,更多相关《FortifySCA安装使用基础手册.docx(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Fortify SCA 安装使用手册目录1. 产品说明51.1. 特征说明51.2. 产品更新说明52. 安装说明62.1. 安装所需文件62.2. Fortify SCA支持系统平台62.3. 支持语言62.4. Fortify SCA插件72.5. Fortify SCA支持编译器72.6. Fortify SCA在windows上安装82.7. Fortify SCA安装Eclispe插件92.8. Fortify SCA在linux上安装(要有linux版本安装文件)92.9. Fortify SCA在Unix上安装(要有Unix版本安装文件)103. 使用说明113.1. Forti
2、fy SCA 扫描指南113.2. 分析Fortitfy SCA扫描结果164故障修复204.1使用日志文件去调试问题204.2转换失败信息20假如你C/C+ 应用程序能够成功构建,不过当使用Fortify SCA 来进行构建时候却发觉一个或多个“转换失败”信息,这时你需要编辑/Core/config/fortify-sca.properties 文件来修改下面这些行:20com.fortify.sca.cpfe.options= -remove_unneeded_entities -suppress_vtbl20to20com.fortify.sca.cpfe.options=-w -rem
3、ove_unneeded_entities -20suppress_vtbl20重新实施构建,打印出转换器碰到错误。假如输出结果表明了在你编译器和Fortify 转换器之间存在冲突204.3JSP转换失败204.4 C/C+ 预编译头文件21序言Fortify SCA是现在业界最为全方面源代码白盒安全测试工具,它能正确定位到代码级安全问题,完全自动化完成测试,最广泛安全漏洞规则,多维度分析源代码安全问题。文档约定本手册使用以下约定, 以区分手册中其它部分。约定表示含义粗体字“粗体新宋体”:表示截图中按钮或是选项。如:点击保留按纽“右箭头”:用在两个或多个词语之间,表示分级,左边内容是右边上一级
4、。如:文件打开l“圆点”:表示同级并列选项或是属性。1,2,3“粗体数字”:表示一个过程中步骤。“警告”:说明需要注意事项。“提醒”:表示附加说明性文字。编写约定指编写用户手册规范和注意事项,编写人员在手册完成后应删除该篇约定。l 相关截图n 为使叙述愈加明确、简练,应避免无须要截图。指能够用语言叙述清楚其操作方法界面。如:拉菜单、快捷菜单等能够避免截图。n 图片应尽可能正确,不要留白边,和避免出现不相关图标。如:输入法工具栏等。l 相关斜体字表示可改变名称或是术语,编写手册时应用具体内容替换。l 相关说明补充说明某一章/节中需描述内容,提供了供参考内容细则。手册编写完成后应删除此部分内容。l
5、 相关示例具体实例辅助说明某一章/节内容范围和格式。手册完成后应删除此部分内容。l 相关分级下分一级用圆点表示,具体分级设置请参考企业文档编写规范。1. 产品说明Fortify SCA(静态代码分析器)是组成Fortify360系列产品之一,SCA工作在开发阶段,以用于分析应用程序源代码是否存在安全漏洞。它不仅能够发觉只能在静态情况下才能发觉新漏洞,而且也能在测试和产品阶段验证已经发觉漏洞。1.1. 特征说明Fortify SCA关键特征和优点以下:1.业务最完整静态代码分析器,以最大和最全方面安全编码规则为基础,而且这些规则能够不停地进行更新,以适应新软件安全漏洞2.跨层跨语言地分析代码漏洞
6、产生,现在支持全部主流开发语言3.在确定安全漏洞上有十分高正确性4.能够正确地定位漏洞产生全路径,方便开发人员对漏洞进行修复5.支持多个软件开发平台1.2. 产品更新说明名称版本公布日期功效修改说明Fortify SCAV2.02. 安装说明2.1. 安装所需文件1Fortify SCA安装文件2Fortify license(即安装授权文件)3Fortify规则库文件(可在线下载最新规则库)4要安装插件IDE (比如eclispe3.2,3.3;VS,;RAD7;RSD7)2.2. Fortify SCA支持系统平台2.3. 支持语言2.4. Fortify SCA插件2.5. Fortif
7、y SCA支持编译器2.6. Fortify SCA在windows上安装1 双击安装包中Fortify-360-21.0-Analyzers_and_Apps-Windows-x86.exe即可安装2 选择Fortify提供授权文件所在路径(即安装包下fotify_rule文件夹,该文件夹下有fortify.license),点击NEXT按钮3 选择对应安装路径,点击NEXT按钮4 选择对应组件进行安装,在此处请注意,fortify默认不安装IDE插件,假如需要安装对应IDE插件,图所表示:在此处我选择了基于eclipse3.x,VS插件(选择安装VS插件之前,得首先安装VSIDE),然后点
8、击NEXT按钮5 再点击NEXT按钮即可完成安装6 添加对应规则库,可直接联网下载最新规则库,或是将安装包下fotify_rule文件夹下rules_ZH.rar解压缩到fortify安装目录下Coreconfigrules位置7 安装完成后把系统时间改成,方可正常使用.2.7. Fortify SCA安装Eclispe插件2.8. Fortify SCA在linux上安装(要有linux版本安装文件)2.9. Fortify SCA在Unix上安装(要有Unix版本安装文件)3. 使用说明Fortify SCA扫描方法:1IDE插件方法2命令行3Audit Workbench扫描目录4和构建
9、工具集成(ant ,makefile)5SCA build monitor(c/c+ windows only)下面关键是介绍常见两种扫描方法:IDE插件方法,和命令行方法3.1. Fortify SCA 扫描指南3.1.1 Eclipse插件方法扫描1.1首先你得正确安装fortify sca插件,具体安装方法见前面所述安装指南;安装成功后ide界面图所表示,会有一个图标1.2导入所要进行源码安全测试项目,成功导入以后会显示以上界面右边Package Expl里面1.3左键选中该项目,然后点击,就能够进行扫描了;或是右键点击该项目,弹出选项菜单,选中Analyze source code o
10、f project就能够进行扫描.3.1.2 Audit Audit Workbench扫描目录2.1首先在开始菜单-全部程序-Fortify Software-Fortify 360 v2.0-Audit Workbench,开启Audit Workbench,界面以下2.2提议采取Advanced Scan,然后选中要扫描目录,点击确定按钮即可扫描3.1.3 命令行方法扫描Java 命令行语法这个专题描述了为Java 翻译源代码Fortify SCA 命令语法。基础Java 命令行语法是:sourceanalyzer -b -cp 有了Java 代码, Fortify SCA 既能够仿效编
11、译程序(它使得结构结合很方便),也能够直接接收源文件(它使命令行扫描更方便)。注意:相关全部你能使用带有sourceanalyzer 命令选项,请查看第33 页“命令行选项”。使Fortify SCA 仿效编译程序,输入:sourceanalyzer -b javac 直接传文件到Fortify SCA,输入:sourceanalyzer -b -cp |这里:是传到编译程序选项。-cp 具体指定Classpath 来用在Java 源代码中。Classpath 是一个结构目录和 jar 文件列表。格式和javac 所预期相同(路径冒号或独立分号列表)。你能够使用Fortify SCA 文件说明
12、符。-cp build/classes:lib/*.jar注意:假如你没有使用选项来具体指定classpath, CLASSPATH 环境变量将被使用。 | 文件说明符许可你轻易地经过一个长文件列表到Fortify SCA 使用通配符。Fortify SCA 能识别两种类型通配符:* 匹配部分文件名 , * 递归地匹配目录。你能够指定一个或更多文件,一个或更多文件说明符,或文件和文件说明符结合。Java 命令行例子在classpath 上用j2ee.jar 翻译一个命名为MyServlet.java 文件,输入:sourceanalyzer -b MyServlet -cp lib/j2ee.
13、jar MyServlet.java用lib 目录中全部jar 文件作为classpath 在src 目录中翻译全部.java 文件:sourceanalyzer -b MyProject -cp lib/*.jar src/*/*.java当运行javac 编译程序时,翻译MyCode.java 文件:sourceanalyzer -b mybuild javac -classpath libs.jar MyCode.javaJ2EE项目转换简单示例把项目标全部文件和库全部放在一个目录下,运行下面命令:. sourceanalyzer -Xmx1000m -b pName -encoding
14、 UTF-8 -cp */*.jar . sourceanalyzer -Xmx1000m -b pName -appserver weblogic -appserver-verion 9 appserver-home “d:beawebloigcserverlib”-encoding UTF-8 -cp */*.jar翻译JSP 文件要翻译JSP 文件, Fortify SCA 需要JSP 文件遵照标准Web Application Archive (WAR) 设计格式。假如你源目录已经以WAR 格式组织了,那么你能够直接从源目录中翻译JSP 文件。假如情况不是这么,那么你需要展开应用程序并
15、从展开目录中翻译你JSP 文件。假如你JSP 文件使用了任何标签库,比如JSTL,确保库jar 文件在 WEB-INF/lib 目录中。否则JSP 编译程序将不处理标签库,可能产生错误结果。默认地,在翻译程序段期间, Fortify SCA 使用一个Jasper JSP 编译程序版原来编译JSP 文件到Java 文件中去。然而,假如你web 应用程序是尤其为了某个应用程序服务器而开发,那么当实施翻译时,你必须为那个应用程序服务器使用JSP 编译程序。为了支持它, Fortify SCA 提供了以下命令行选项: -appserver 支持变量:weblogic/websphere -appser
16、ver-home相关Weblogic:到目录路径包含server/lib 目录相关WebSphere:到目录路径包含bin/JspBatchCompiler 脚本 -appserver-version 支持变量:Weblogic 版本7 和8WebSphere 版本6假如你在使用一个没有被列出来应用程序服务器,使用默认内部Fortify JSP 编译程序。比如:sourceanalyzer -b my_buildid -cp WEB-INF/lib/*.jar WEB-INF/*/*.jsp使用FindBugsFindBugs() 是一个静态分析工具,它在Java 代码中检测质量问题。你能够和
17、Fortify SCA 一起使用FindBugs,结果会被合并到分析结果文件中。和Fortify SCA 运行在Java 源文件中不一样, FindBugs 运行在Java 字节码中。所以,在项目中运行分析之前,你应该首先编译项目产生类文件。为了示范怎样和Fortify SCA 一起自动地运行FindBugs,编译例子代码, Warning.java,以下:1. 定位到以下目录:/Samples/advanced/findbugs2. 输入以下命令并编译例子:mkdir buildjavac -d build Warning.java3. 用FindBugs 和Fortify SCA 扫描例子
18、,以下:sourceanalyzer -b findbugs_sample -java-build-dir build Warning.javasourceanalyzer -b findbugs_sample -scan -findbugs -f findbugs_sample.fpr4. 检验早Fortify Audit Workbench 中分析结果:auditworkbench findbugs_sample.fpr输出包含了以下问题类别: Object model violation Dead local store Equal objects must have equal has
19、hcodes Useless self-assignment (2) Unwritten field (2)翻译 C/C+ 代码翻译一个文挡所用基础命令行语法是:sourceanalyzer -b 其中: 是在项目创建扫描之时,你想使用编译器名字。比 gcc 或是 cl。 是传输到经典编译文挡编译器选项。C 和C+ 命令行举例以下是部分简单可用范例:使用 gcc 编译器,翻译一个名为 helloworld.c 文件,键入:sourceanalyzer -b my_buildid gcc helloworld.c结合 Make你能够使用以下方法中其中一项去结合Make 使用 Fortify SC
20、A: 无入侵式集成 入侵式集成(修改一个Makefile 去调用Fortify SCA)使用无入侵式集成,运行以下命令:sourceanalyzer -b makeFortify SCA 运行 make 命令。当make 调用了任意被 Fortify SCA 认作为是一个编译器命令,这个命令就会被 Fortify SCA 处理。注意makefile 不会被修改。这个构建集成方法不局限于make。任何一个实施编译器处理构建命令能够被用到系统里去;只要拿去运行一个构建命令来替换以上命令中make 部分。假如不是已经存在话,你可能必需为你构建工具添加一个条目进 /Core/config/fortif
21、y-sca.properties。比如,结合一个名为dobuild 构建脚本,添加以下到fortify-sca.properties 里去:pilers.dobuild =pilers.TouchlessCompiler注意: Fortify touchless build adapter 会表现异常,假如: 构建脚本给编译器调用了一个完整路径,或假如构建脚本拒绝可实施搜索路径。 构建脚本没有创建一个新进程去运行编译器。很多Java 结构工具,包含Ant,全部以这种方法运行。入侵式集成, 运行以下命令:修改一个makefile 去调用 Fortify SCA,替换任何一个链接,被调用到编译器,
22、文件,或是makefile 和Fortify SCA 里。这些工具在makefile 中一个特殊变量中被尤其指明,如以下范例所表示:CC=gccCXX=g+AR=ar这个步骤能够像这些 makefile 里提及工具、Fortify SCA,和部分合适选项一样简单。CC=sourceanalyzer -b mybuild -c gccCXX=sourceanalyzer -b mybuild -c g+AR=sourceanalyzer -b mybuild -c arVC6.0项目标转换和分析示例.sourceanalyzer -b my_buildid c msdev MyProject.d
23、sp /Make /BUILD .sourceanalyzer -b my_buildid scan f xx.fpr3.2. 分析Fortitfy SCA扫描结果1. 审计结果基础概念审计:将Fortify SCA 扫描分析出来结果中漏洞进行审查,分析,定性,指导开发人员进行漏洞修复工作。Hide/Suppress/Suspicious/Not An Issue四个不一样Hide: 是将此漏洞不显示出来,在汇报中也不显示出来Suppress:是此漏洞不是问题,能够不用看Suspicious: 是审计一个定性,这个问题有可能是真,值得怀疑。Not An Issue: 也是审计一个定性,说明这一
24、漏洞不是个问题。2. 首先是将扫描结果导成后缀为fpr文件,然后用Audit WorkBench打开该文件,界面以下所表示3. 验证测试结果正确性,有效性(包含application,project,build information,analysis information)4. 将(Group By)分组方法选择为按Category(漏洞种类)分组,这也是最常见分组方法,然后在下面对对应漏洞进行定性,审记;所图所表示5. 能够跟踪该漏洞产生全路径,有两种方法跟踪,提议采取第二种图表方法,比较直观;6. 选择下面选项卡中Detail,Recommandation,能够取得对应漏洞具体说明,和
25、推荐处理措施;图所表示:7. 导出经过审计,定性扫描结果报表,能够有两种格式,一个是HTML,一个是PDF;图所表示:4故障修复4.1使用日志文件去调试问题当你在运行Fortify SCA 时候,假如碰到了警告或问题,能够使用-debug 选项再次运行Fortify SCA。这会在下面路径中生成一个叫做sca.log 文件。 在Windows 平台上: C:Documents and SettingsLocalSettingsApplication DataFortifyscalog 在其它平台上: $HOME/.fortify/sca4.5/log4.2转换失败信息假如你C/C+ 应用程序能
26、够成功构建,不过当使用Fortify SCA 来进行构建时候却发觉一个或多个“转换失败”信息,这时你需要编辑/Core/config/fortify-sca.properties 文件来修改下面这些行:com.fortify.sca.cpfe.options= -remove_unneeded_entities -suppress_vtbltocom.fortify.sca.cpfe.options=-w -remove_unneeded_entities -suppress_vtbl重新实施构建,打印出转换器碰到错误。假如输出结果表明了在你编译器和Fortify 转换器之间存在冲突4.3JS
27、P转换失败假如在Fortify SCA 转换JSP 文件到Java 文件方便进行分析过程中,你JSP 分解器碰到问题,你很可能会看到和下面这个很像信息: Failed to parse jsps in: where is the directory containing the JSP files Unexpected exception while parsing .想取得更多相关这个问题信息,请实施以下步骤:1. 使用-debug 选项运行sourceanalyzer。2. 使用编译器打开日志文件。3. 查找字符串Invoking jsp parser:。4. 下拉到包含-classpat
28、h 那一行。5. 确保-classpath 变量包含了全部所要求jars 文件和用来解析类、标签库、实体和其它你JSP 用到文件目录。假如错误信息和NoClassDefFoundError 或标签库相关,确保需要jar 文件也在WEB-INF/lib 目录下。6. 在包含-classpath 变量那一行再下面几行中,你应该能够看见标有Jsp parserstdout: 行。这一行包含了从JSP 解析器中输犯错误信息,这应该给出了到底是什么发生了错误提醒。7. 添加需要用来修复在第5 和第6 步中所找到问题部分classpath 附加条目。8. 重新运行sourceanalyzer。4.4 C/C+ 预编译头文件部分C/C+ 编译器支持一个叫做“预编译头文件”特征,它能够用来加速编译过程。部分编译器对这种特征实施会产生微妙副作用。当这个特征被激活时候,编译器可能会不经过警告或报错就接收错误源代码。这可能造成这种矛盾,即使你编译器没有实施, Fortify SCA 也会汇报转换错误。假如你使用你编译器预编译头文件特征,就要首先确保你源代码经过废除预编译头文件特征并实施一个完整构建而洁净地实施。