我正在尝试将 Fortify Source Code Analyzer 用于我学校的一个研究项目,以测试开源 Java Web 应用程序的安全性。我目前正在研究 Apache Lenya。我正在使用最后一个稳定版本 (Lenya v2.0.2)。

在根目录中有一个名为 build.sh 的文件。调用此文件以使用发行版附带的 Ant 版本(在 tools/bin 文件夹中)构建 Lenya。当我运行 ./build.sh 时,我可以很好地构建 Lenya。因此,假设在 Fortify 中运行以下命令会起作用:

sourceanalyzer -b lenya -Xmx1200M touchless ./build.sh

但是,当我尝试运行时:
sourceanayzer -b lenya -Xmx1200M -scan -f lenya.fpr

我得到:



我查看了 buid.sh 文件,注意到它只是重置当前的 ant 主目录、类路径和 ant 选项变量,运行 ant build 命令,并将值重置回它们的默认值。所以我手动重置所有变量(没有脚本)而不是运行脚本并运行:
sourceanalyzer -b lenya -Xmx1200M touchless tools/bin/ant -logger org.apache.tools.ant.NoBannerLogger

然后我跑了:
sourceanalyzer -b lenya -Xmx1200M -scan -f lenya.fpr

但我遇到了同样的错误。我不确定这是因为我做错了什么,还是 Fortify 没有正确执行。任何见解都会很棒。

最佳答案

我不确定您是否可以访问 Fortify 文档,但这肯定会有所帮助。您应该引用 SCA 用户指南以了解如何使用 sourceanalyzer 可执行文件。

简而言之,有两种获取 FPR 文件的方法:

  • (长路)通过提供源代码的路径和源分析器可执行文件的类路径,编写一个脚本来翻译和分析源代码。
  • (简短的方法)使用 SCACompiler 而不是 javac 作为编译器。您需要为此修改构建脚本。

  • 我更喜欢前者,因为它在处理大型代码库时具有可定制性。

    PS:这是哪个版本的Fortify?

    10-07 16:49