FortifySCA安装使用手册.docx
- 文档编号:6274370
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:19
- 大小:1.92MB
FortifySCA安装使用手册.docx
《FortifySCA安装使用手册.docx》由会员分享,可在线阅读,更多相关《FortifySCA安装使用手册.docx(19页珍藏版)》请在冰豆网上搜索。
FortifySCA安装使用手册
Fortify-SCA-安装使用手册
FortifySCA安装使用手册
文档约定
本手册使用以下约定,以区分手册中其它部分。
约定
表示含义
粗体字
“粗体新宋体”:
表示截图中的按钮或是选项。
如:
点击保存按纽
→
“右箭头”:
用在两个或多个词语之间,表示分级,左边的内容是右边的上一级。
如:
文件→打开
●
“圆点”:
表示同级的并列选项或是属性。
1,2,3
“粗体数字”:
表示一个过程中步骤。
“警告”:
说明需要注意的事项。
“提示”:
表示附加的说明性文字。
编写约定
指编写用户手册的规范和注意事项,编写人员在手册完成后应删除该篇约定。
●关于截图
⏹为使叙述更加明确、简洁,应避免不必要的截图。
指可以用语言叙述清楚其操作方法的界面。
如:
拉菜单、快捷菜单等可以避免截图。
⏹图片应尽量精准,不要留白边,和避免出现不相关的图标。
如:
输入法工具栏等。
●关于斜体字
表示可变化的名称或是术语,编写手册时应用具体内容替换。
●关于说明
补充说明某一章/节中需描述的内容,提供了供参考的内容细则。
手册编写完成后应删除此部分内容。
●关于示例
具体实例辅助说明某一章/节的内容范围和格式。
手册完成后应删除此部分内容。
●关于分级
下分一级用圆点表示,具体分级设置请参照公司文档编写规范。
1.产品说明
FortifySCA(静态代码分析器)是组成Fortify360系列产品之一,SCA工作在开发阶段,以用于分析应用程序的源代码是否存在安全漏洞。
它不但能够发现只能在静态情况下才能发现的新的漏洞,而且也能在测试和产品阶段验证已经发现的漏洞。
1.1.特性说明
FortifySCA主要的特性和优点如下:
1.业务最完整的静态代码分析器,以最大和最全面的安全编码规则为基础,而且这些规则可以不断地进行更新,以适应新的软件安全漏洞
2.跨层跨语言地分析代码的漏洞产生,目前支持所有的主流开发语言
3.在确认安全漏洞上有十分高的准确性
4.可以精确地定位漏洞产生的全路径,方便开发人员对漏洞进行修复
5.支持多种软件开发平台
1.2.产品更新说明
名称
版本
发布日期
功能修改说明
FortifySCA
V2.0
2.安装说明
2.1.安装所需的文件
1.FortifySCA的安装文件
2.Fortifylicense(即安装授权文件)
3.Fortify的规则库文件(可在线下载最新的规则库)
4.要安装插件的IDE(例如eclispe3.2,3.3;VS2003,2005;RAD7;RSD7)
2.2.FortifySCA支持的系统平台
2.3.支持的语言
2.4.FortifySCA的插件
2.5.FortifySCA支持的编译器
2.6.FortifySCA在windows上安装
1.双击安装包中的Fortify-360-2[1].0-Analyzers_and_Apps-Windows-x86.exe即可安装
2.选择Fortify提供的授权文件所在路径(即安装包下的fotify_rule文件夹,该文件夹下有fortify.license),点击‘NEXT’按钮
3.选择相应的安装路径,点击‘NEXT’按钮
4.选择相应的组件进行安装,在此处请注意,fortify默认不安装IDE插件,如果需要安装相应的IDE插件,如图所示:
在此处我选择了基于eclipse3.x,VS2005的插件(选择安装VS的插件之前,得首先安装VS的IDE),然后点击‘NEXT’按钮
5.再点击‘NEXT’按钮即可完成安装
6.添加相应的规则库,可直接联网下载最新的规则库,或是将安装包下的fotify_rule
文件夹下rules_ZH.rar解压缩到fortify安装目录下的Core\config\rules位置
7.安装完成后把系统时间改成2008年,方可正常使用.
2.7.FortifySCA安装Eclispe插件
2.8.FortifySCA在linux上的安装(要有linux版本的安装文件)
2.9.FortifySCA在Unix上的安装(要有Unix版本的安装文件)
3.使用说明
FortifySCA扫描方式:
1.IDE插件方式
2.命令行
3.AuditWorkbench扫描目录
4.与构建工具集成(ant,makefile)
5.SCAbuildmonitor(c/c++windowsonly)
下面主要是介绍常用的两种扫描方式:
IDE插件方式,以及命令行方式
3.1.FortifySCA扫描指南
3.1.1Eclipse插件方式扫描
1.1首先你得正确安装fortifysca的插件,具体安装方法见前面所述的安装指南;安装成功后的ide界面如图所示,会有一个
图标
1.2导入所要进行源码安全测试的项目,成功导入之后会显示以上界面右边的PackageExpl里面
1.3左键选中该项目,然后点击
,就可以进行扫描了;或者是右键点击该项目,弹出选项菜单,选中Analyzesourcecodeofproject就可以进行扫描.
3.1.2AuditAuditWorkbench扫描目录
2.1首先在开始菜单->所有程序->FortifySoftware->Fortify360v2.0->AuditWorkbench,启动AuditWorkbench,界面如下
2.2建议采用AdvancedScan,然后选中要扫描的目录,点击确定按钮即可扫描
3.1.3命令行方式扫描
Java命令行语法
这个主题描述了为Java翻译源代码的FortifySCA命令语法。
基本的Java命令行语法是:
sourceanalyzer-b
有了Java代码,FortifySCA既可以仿效编译程序(它使得构造结合很方便),也可以直接接受源
文件(它使命令行扫描更方便)。
注意:
有关所有你能使用的带有sourceanalyzer命令的选项,请查看第33页的“命令行选项”。
使FortifySCA仿效编译程序,输入:
sourceanalyzer-b
直接传文件到FortifySCA,输入:
sourceanalyzer-b
这里:
-cp
Classpath是一个构造目录和jar文件的列表。
格式和javac所预期的相同(路径的冒号或独立的分号的列表)。
你可以使用FortifySCA文件说明符。
-cp"build/classes:
lib/*.jar"
注意:
如果你没有使用选项来具体指定classpath,CLASSPATH环境变量将被使用。
文件说明符允许你容易地通过一个长文件列表到FortifySCA使用通配符。
FortifySCA能识别两种
类型的通配符:
'*'匹配部分文件名,'**'递归地匹配目录。
你可以指定一个或更多的文件,一个或
更多的文件说明符,或文件和文件说明符的结合。
Java命令行例子
在classpath上用j2ee.jar翻译一个命名为MyServlet.java的文件,输入:
sourceanalyzer-bMyServlet-cplib/j2ee.jarMyServlet.java
用lib目录中所有jar文件作为classpath在src目录中翻译所有的.java文件:
sourceanalyzer-bMyProject-cp"lib/*.jar""src/**/*.java"
当运行javac编译程序时,翻译MyCode.java文件:
sourceanalyzer-bmybuildjavac-classpathlibs.jarMyCode.java
J2EE项目转换的简单示例
把项目的所有文件和库都放在一个目录下,运行下面的命令:
.sourceanalyzer-Xmx1000m-bpName-encoding"UTF-8"-cp"**/*.jar"
.sourceanalyzer-Xmx1000m-bpName-appserverweblogic-appserver-verion9–appserver-home“d:
\bea\webloigc\server\lib”-encoding"UTF-8"-cp"**/*.jar"
翻译JSP文件
要翻译JSP文件,FortifySCA需要JSP文件遵循标准的WebApplicationArchive(WAR)设计格
式。
如果你的源目录已经以WAR格式组织了,那么你可以直接从源目录中翻译JSP文件。
如果情况
不是这样的,那么你需要展开应用程序并从展开目录中翻译你的JSP文件。
如果你的JSP文件使用了任何标签库,例如JSTL,确保库的jar文件在WEB-INF/lib目录中。
否
则JSP编译程序将不处理标签库,可能产生错误的结果。
默认地,在翻译程序段期间,FortifySCA使用一个JasperJSP编译程序的版本来编译JSP文件到
Java文件中去。
然而,如果你的web应用程序是特别为了某个应用程序服务器而开发的,那么当执行翻译时,你必
须为那个应用程序服务器使用JSP编译程序。
为了支持它,FortifySCA提供了以下命令行选项:
•-appserver支持变量:
weblogic/websphere
•-appserver-home
有关Weblogic:
到目录的路径包含server/lib目录
有关WebSphere:
到目录的路径包含bin/JspBatchCompiler脚本
•-appserver-version支持变量:
Weblogic版本7和8
WebSphere版本6
如果你在使用一个没有被列出来的应用程序服务器,使用默认内部FortifyJSP编译程序。
例如:
sourceanalyzer-bmy_buildid-cp"WEB-INF/lib/*.jar""WEB-INF/**/*.jsp"
使用FindBugs
FindBugs()是一个静态分析工具,它在Java代码中检测质量问题。
你可以和FortifySCA一起使用FindBugs,结果会被合并到分析结果文件中。
与FortifySCA运行在Java源文件中不同,FindBugs运行在Java字节码中。
因此,在项目中运行分析之前,你应该首先编译项目产生类文件。
为了示范如何与FortifySCA一起自动地运行FindBugs,编译例子代码,Warning.java,如下:
1.定位到以下目录:
2.输入以下命令并编译例子:
mkdirbuild
javac-dbuildWarning.java
3.用FindBugs和FortifySCA扫描例子,如下:
sourceanalyzer-bfindbugs_sample-java-build-dirbuildWarning.java
sourceanalyzer-bfindbugs_sample-scan-findbugs-ffindbugs_sample.fpr
4.检查早FortifyAuditWorkbench中的分析结果:
auditworkbenchfindbugs_sample.fpr
输出包括了以下问题类别:
•Objectmodelviolation
•Deadlocalstore
•Equalobjectsmusthaveequalhashcodes
•Uselessself-assignment
(2)
•Unwrittenfield
(2)
翻译C/C++代码
翻译一个文挡所用的基本命令行语法是:
sourceanalyzer-b
其中:
•
比gcc或者是cl。
•
C和C++命令行举例
以下是一些简单的可用范例:
使用gcc编译器,翻译一个名为helloworld.c的文件,键入:
sourceanalyzer-bmy_buildidgcchelloworld.c
结合Make
你可以使用以下方法中的其中一项去结合Make使用FortifySCA:
•无入侵式的集成
•入侵式的集成(修改一个Makefile去调用FortifySCA)
使用无入侵式的集成,运行以下命令:
sourceanalyzer-b
FortifySCA运行make命令。
当make调用了任意被FortifySCA认作为是一个编译器的命令,这个
命令就会被FortifySCA处理。
注意makefile不会被修改。
这个构建集成的方法不局限于make。
任何一个执行编译器处理的构建命令可以被用到系统里去;只
要拿去运行一个构建的命令来替代以上命令中的'make'部分。
如果不是已经存在的话,你可能必须为你的构建工具添加一个条目进
Core/config/fortify-sca.properties。
比如,结合一个名为dobuild的构建脚本,添加以下到fortify-sca.properties里去:
pilers.dobuild=pilers.TouchlessCompiler
注意:
Fortifytouchlessbuildadapter会表现异常,如果:
•构建脚本给编译器调用了一个完整路径,或者如果构建脚本拒绝可执行搜索路径。
•构建脚本没有创建一个新的进程去运行编译器。
许多Java构造工具,包括Ant,都以这种方式运行。
入侵式的集成,运行以下命令:
修改一个makefile去调用FortifySCA,代替任何一个链接,被调用到编译器,文件,或者是
makefile和FortifySCA里。
这些工具在makefile中一个特殊变量中被特别指明,如以下范例所示:
CC=gcc
CXX=g++
AR=ar
这个步骤可以像这些makefile里提及的的工具、FortifySCA,和一些适当选项一样简单。
CC=sourceanalyzer-bmybuild-cgcc
CXX=sourceanalyzer-bmybuild-cg++
AR=sourceanalyzer-bmybuild-car
VC6.0项目的转换与分析示例
.sourceanalyzer-bmy_buildid–cmsdevMyProject.dsp/Make/BUILD
.sourceanalyzer-bmy_buildid–scan–fxx.fpr
3.2.分析FortitfySCA扫描的结果
1.审计结果的基本概念
审计:
将FortifySCA扫描分析出来的结果中的漏洞进行审查,分析,定性,指导开发人员进行漏洞的修复工作。
Hide/Suppress/Suspicious/NotAnIssue四个的不同
Hide:
是将此漏洞不显示出来,在报告中也不显示出来
Suppress:
是此漏洞不是问题,可以不用看的
Suspicious:
是审计的一个定性,这个问题有可能是真的,值得怀疑。
NotAnIssue:
也是审计的一个定性,说明这一漏洞不是个问题。
2.首先是将扫描结果导成后缀为fpr文件,然后用AuditWorkBench打开该文件,界面如下所示
3.验证测试结果的正确性,有效性(包括application,project,buildinformation,analysisinformation)
4.将(GroupBy)分组方式选择为按Category(漏洞种类)分组,这也是最常用的分组方式,然后在下面对相应的漏洞进行定性,审记;所图所示
5.可以跟踪该漏洞产生的全路径,有两种方式跟踪,建议采用第二种图表方式,比较直观;
6.选择下面选项卡中Detail,Recommandation,可以获得相应的漏洞的详细说明,以及推荐的解决办法;如图所示:
7.导出经过审计,定性的扫描结果的报表,可以有两种格式,一种是HTML,一种是PDF;如图所示:
4.故障修复
4.1使用日志文件去调试问题
当你在运行FortifySCA的时候,如果遇到了警告或者问题,可以使用-debug选项再次运行FortifySCA。
这会在下面的路径中生成一个叫做sca.log的文件。
•在Windows平台上:
C:
\DocumentsandSettings\
Settings\ApplicationData\Fortify\sca\log
•在其它的平台上:
$HOME/.fortify/sca4.5/log
4.2转换失败的信息
如果你的C/C++应用程序能够成功构建,但是当使用FortifySCA来进行构建的时候却发现一个或者多个“转换失败”的信息,这时你需要编辑
com.fortify.sca.cpfe.options=--remove_unneeded_entities--suppress_vtbl
to
com.fortify.sca.cpfe.options=-w--remove_unneeded_entities--
suppress_vtbl
重新执行构建,打印出转换器遇到的错误。
如果输出的结果表明了在你的编译器和Fortify转换器之间存在冲突
4.3JSP的转换失败
如果在FortifySCA转换JSP文件到Java文件以便进行分析的过程中,你的JSP分解器遇到问题,
你很可能会看到和下面这个很像的信息:
•Failedtoparsejspsin:
•Unexpectedexceptionwhileparsing..
想获得更多关于这个问题的信息,请执行以下步骤:
1.使用-debug选项运行sourceanalyzer。
2.使用编译器打开日志文件。
3.查找字符串Invokingjspparser:
。
4.下拉到包含-classpath的那一行。
5.确保-classpath变量包含了所有所要求的jars文件和用来解析类、标签库、实体和其它你的JSP用到的文件的目录。
如果错误信息和NoClassDefFoundError或者标签库有关,确保需要的jar文件也在WEB-INF/lib目录下。
6.在包含-classpath变量的那一行的再下面的几行中,你应该能够看见标有Jspparserstdout:
的行。
这一行包含了从JSP解析器中输出的错误信息,这应该给出了到底是什么发生了错误的提示。
7.添加需要用来修复在第5和第6步中所找到问题的一些classpath附加条目。
8.重新运行sourceanalyzer。
4.4C/C++预编译的头文件
一些C/C++编译器支持一种叫做“预编译头文件”的特性,它可以用来加速编译过程。
一些编译器对这种特性的执行会产生微妙的副作用。
当这个特性被激活的时候,编译器可能会不经过警告或者报
错就接受错误的源代码。
这可能导致这种矛盾,即使你的编译器没有执行,FortifySCA也会报告转换错误。
如果你使用你编译器的预编译头文件特性,就要首先确保你的源代码通过废除预编译头文件特性并执行一个完整构建而干净地执行。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FortifySCA 安装 使用手册