当前位置: 首页 > 知识库问答 >
问题:

Fortify,如何通过命令开始分析

岳浩宕
2023-03-14

如何使用命令生成强化报告???在linux上。

在命令中,我们如何只包含一些用于分析的文件夹或文件,以及如何指定存储报告的位置。等

请帮忙。。。。

谢谢,Karthik

共有1个答案

傅献
2023-03-14

1.步骤#1(清理缓存)

  • 您需要在开始之前规划扫描结构:

scanid=9999(可以是您喜欢的任何内容)

ProjectRoot=/local/proj/9999/

/local/proj/9999/working

  • (这个目录很大,你需要“rm-rf./working

log=/local/proj/9999/working/sca。日志

source='/local/proj/9999/source/src/**'

classpath='本地/proj/9999/源/WEB-INF/lib/*. jar; /local/proj/9999/source/jars/**.*; /本地/proj/9999/源/类/**。*'

./sourceanalyzer -b 9999 -Dcom.fortify.sca.ProjectRoot=/local/proj/9999/ -Dcom.fortify.WorkingDirectory=/local/proj/9999/working -logfile  /local/proj/working/9999/working/sca.log  -clean
  • 指定ProjectRoot非常重要,如果不覆盖此系统默认值,它将置于/home/user下。加强
  • sca。日志位置非常重要,如果fortify未找到此文件,则无法找到要扫描的字节码
  • 如果您是唯一的用户,则可以一次性更改ProjectRoot和工作目录:FORTIFY_HOME/Core/config/FORTIFY_sca。属性)
  • 在这种情况下,您的命令行将是/sourceanalyzer-b 9999-清洁

2.步骤#2(将源代码转换为字节代码)

nohup ./sourceanalyzer -b 9999 -verbose -64 -Xmx8000M -Xss24M -XX:MaxPermSize=128M -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC  -XX:+UseParallelGC -Dcom.fortify.sca.ProjectRoot=/local/proj/9999/ -Dcom.fortify.WorkingDirectory=/local/proj/9999/working  -logfile /local/proj/9999/sca.log -source 1.5 -classpath '/local/proj/9999/source/WEB-INF/lib/*.jar:/local/proj/9999/source/jars/**/*.jar:/local/proj/9999/source/classes/**/*.class'  -extdirs '/local/proj/9999/source/wars/*.war'  '/local/proj/9999/source/src/**/*'  &

>

cp:将所有已知的类路径放在这里,以便加强以解决FunctionODFn调用。如果未找到函数,fortify将跳过源代码翻译,因此稍后不会扫描此部分。您将获得较差的扫描质量,但FPR看起来不错(低问题报告)。将所有依赖项jar放在适当的位置是很重要的。

-extdir:把你不想被扫描的所有目录/文件放在这里。

最后一部分,''之间的文件是您的源。

-64是使用64位java,如果没有指定,将使用32位,最大堆应该是

-XX:与启动应用程序服务器中的含义相同。仅使用它们来控制类堆和垃圾收集。这是为了调整性能。

-源代码是java版本(1.5到1.8)

3.步骤#3(使用规则包、自定义规则、过滤器等进行扫描)

nohup ./sourceanalyzer -b 9999  -64 -Xmx8000M -Dcom.fortify.sca.ProjectRoot=/local/proj/9999 -Dcom.fortify.WorkingDirectory=/local/proj/9999/working -logfile /local/ssap/proj/9999/working/sca.log **-scan** -filter '/local/other/filter.txt' -rules '/local/other/custom/*.xml -f '/local/proj/9999.fpr' & 

>

规则:这是您编写的自定义规则。HP规则包位于FORTIFY_HOME/Core/config/rules目录中

-scan:告诉强化引擎扫描现有scanid的关键字。如果不更改代码,只想使用不同的筛选/自定义规则,则可以跳过步骤2,只执行步骤3

4.步骤#4从FPR文件生成PDF(如果需要)

./ReportGenerator -format pdf -f '/local/proj/9999.pdf' -source '/local/proj/9999.fpr'
 类似资料:
  • 问题内容: 我正在尝试通过Java执行命令行参数。例如: 上面的命令打开命令行,但是不执行或。有任何想法吗?我正在运行Windows XP,JRE6。 (我已经对问题进行了更详细的修订。以下答案很有用,但不能回答我的问题。) 问题答案: 你发布的代码使用自己的命令启动三个不同的过程。要打开命令提示符然后运行命令,请尝试以下操作(请勿自己尝试):

  • 我想使用Windows 10上的命令行中的,以及许多其他Linux工具。我知道有GnuWin32和其他二进制替代品,但没有一个能像Linux的Windows子系统(WSL)那样优雅地工作;包括更新机制。 使用WSL,可以调用

  • 问题内容: 通过sudo或su运行脚本时,我想获取原始用户。无论发生多次还是相互内部运行,都应该发生。 问题答案: 结果: 使用OR,因为没有其他方法可以保证。 以自身身份登录: 普通sudo: 须藤su-: 苏多苏-; su tom:

  • 问题内容: 如何通过JavaScript 捕获Mac的密钥? 问题答案: 编辑: 截至2019年,是支持所有主流浏览器按照该MDN。 请注意,在Windows上,尽管该密钥被认为是“元”密钥,但浏览器本身不会捕获该密钥。 这仅适用于MacOS /键盘上的命令键。 与/ / 不同,(“ Apple”)键不被认为是修饰键-相反,您应该在/上聆听/ 并记录何时按下某个键,然后基于进行按下。 不幸的是,这

  • 问题内容: 我已经编写了以下代码,但还不太清楚如何解决该错误。不知道这些信息是否有用,但是我使用的是Mac,并且使用的是IntelliJ编辑器。 结果是“线程“主”中的异常java.io.IOException:无法运行程序“ adb”:error = 2,没有这样的文件或目录” 但是,当我从终端运行命令“ adb devicees”时,将获得连接到计算机的设备列表。 对于那些感兴趣的人,以下是完

  • 问题内容: 尝试在画布上实现按钮,该按钮在单击时会打开文件。 我的尝试如下 不幸的是,我的代码在我单击按钮之前就打开了该文件,该文件已运行。为什么? 问题答案: 当Python处理这两行时,它会在第一行看到这一点: 并将其解释为有效的函数调用。因此,它调用了该函数。 要解决此问题,请定义一个函数来处理该行之前的click事件,然后将按钮的opion分配给该函数: 或者,在这种情况下,甚至更好/更干