gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:03:16 27 4
gpt4 key购买 nike

我们如何使用命令生成 FortiFy 报告???在 Linux 上。

在命令中,我们如何仅包含一些文件夹或文件进行分析,以及如何提供存储报告的位置。等等。

请帮忙....

谢谢,
卡尔蒂克

最佳答案

1. Step#1(清理缓存)

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

  • scanid = 9999 (can be anything you like)

    ProjectRoot = /local/proj/9999/

    WorkingDirectory = /local/proj/9999/working

    • (this dir is huge, you need to "rm -rf ./working && mkdir ./working" before every scan, or byte code piles underneath this dir and consume your harddisk fast)

    log = /local/proj/9999/working/sca.log

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

    classpath='local/proj/9999/source/WEB-INF/lib/*.jar; /local/proj/9999/source/jars/**.*; /local/proj/9999/source/classes/**.*'

    ./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.fortify下
  • sca.log 位置很重要,如果fortify 没有找到这个文件,它就找不到字节码来扫描。
  • 如果您是唯一的用户,则可以一次性更改 ProjectRoot 和工作目录: FORTIFY_HOME/Core/config/fortify_sca.properties)。
  • 在这种情况下,您的命令行将是 ./sourceanalyzer -b 9999 -清洁

  • 2. Step#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/**/*'  &
  • 始终使用 unix 后台作业 (&),以防您与服务器的 session 超时,它将继续工作。
  • cp :将所有已知的类路径放在这里,以便 fortify 解决 functiodfn 调用。如果没有找到函数,fortify 会跳过源代码翻译,所以后面不会扫描这部分。您将获得较差的扫描质量,但 FPR 看起来不错(报告的问题很少)。将所有依赖项 jar 放在适当的位置很重要。
  • -extdir:将您不想扫描的所有目录/文件放在这里。
  • 最后一部分,“”之间的文件是您的来源。
  • -64 是使用 64 位 java,如果没有指定,将使用 32 位并且最大堆应该 <1.3 GB(-Xmx1200M 是安全的)。
  • -XX:与启动应用服务器中的含义相同。仅使用这些来控制类堆和垃圾收集。这是为了调整性能。
  • -source 是 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' & 
  • -filter:文件名必须是filter.txt,该文件中的任何ruleguid都不会被报告。
  • 规则:这是您编写的自定义规则。 HP 规则包位于 FORTIFY_HOME/Core/config/rules 目录中
  • -scan :关键字告诉 fortify 引擎扫描现有的 scanid。如果您没有更改代码,您可以跳过第 2 步,只执行第 3 步,只想使用不同的过滤器/自定义规则

  • 4. Step#4 从 FPR 文件生成 PDF(如果需要)
    ./ReportGenerator -format pdf -f '/local/proj/9999.pdf' -source '/local/proj/9999.fpr'

    关于Fortify,如何通过命令开始分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35777391/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com