Fortify的源分析仪和Apache Lenya的(Fortify Source Analyzer

2019-07-30 13:09发布

我试图使用Fortify的源代码分析器的一个研究项目,在我的学校来测试开源Java Web应用程序的安全性。 我目前的工作在Apache Lenya的。 我用最后的稳定版本(V2.0.2 Lenya的)工作。

根目录里面有一个文件名为build.sh 。 此文件被称为建立Lenya的使用Ant的版本附带的版本(在tools/bin文件夹)。 我可以建立Lenya的就好了,当我运行./build.sh 。 因此,这将是假设在Fortify的运行以下命令将工作:

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

然而,当我尝试运行:

sourceanayzer -b lenya -Xmx1200M -scan -f lenya.fpr

我得到:

建立ID Lenya的没有发现。

我看着buid.sh文件,发现它只是重置当前蚂蚁的家,类路径和Ant是选项的变量,运行Ant构建命令,重置值恢复为默认值。 所以我重置所有的变量手动(无脚本),而不是运行脚本并运行:

sourceanalyzer -b lenya -Xmx1200M touchless tools/bin/ant -logger org.apache.tools.ant.NoBannerLogger

然后我跑:

sourceanalyzer -b lenya -Xmx1200M -scan -f lenya.fpr

但我得到了同样的错误。 我不知道这是因为我做错了什么,或者如果它是什么,Fortify的不正确的练习。 任何有识之士将是巨大的。

Answer 1:

我不知道您是否有访问Fortify的文件,但肯定会有所帮助。 你应该参考SCA用户指南,了解如何使用sourceanalyzer可执行文件。

切东西短,也有获得FPR文件的方法有两种:

  1. (长路)写一个脚本翻译,并通过提供源代码的路径和类路径的sourceanalyzer可执行分析的源代码。
  2. (短路)使用SCACompiler,而不是作为的javac编译器。 你需要修改生成脚本这一点。

我更喜欢前者,因为它可定制处理大型代码库的时候。

PS:哪个版本的Fortify的是这个?



Answer 2:

不要使用非接触的命令,这是C / C ++集成。 由于Lenya的是用Java编写的,你与其他命令更好。 试试这个你的第一个转换步骤(从你的基地Lenya的目录运行):

sourceanalyzer -b lenya -Xmx1200M -source 1.5 -cp "**/*.jar" "**/*"


Answer 3:

你实际使用可以与Java的工作命令构建,除了它有一定的局限性。 使用非接触式生成包装创建一些编译器的包装,例如用于javac的,并提出了在包装PATH环境变量的前面。

如果您build.sh脚本包含javac的完全限定引用,例如在/ usr / JAVA /斌/ javac的,那么非接触式构建集成将无法正常工作。

user233276的指示是最广泛有用。 如果你想与Fortify的SCA构建集成试验,我建议该技术将修改build.sh(见http://svn.apache.org/viewvc/lenya/trunk/build.sh?view=markup&pathrev=400414 )和改变线43从:

"$ANT_HOME/bin/ant" -logger org.apache.tools.ant.NoBannerLogger -emacs $@

至:

sourceanalyzer -b Lenya "$ANT_HOME/bin/ant" -logger org.apache.tools.ant.NoBannerLogger -emacs $@

见Fortify的SCA用户指南三种类型的蚂蚁集成:

  1. 覆盖build.compiler属性:

    蚂蚁-lib sourceanalyzer.jar {Fortify的蚂蚁选项} {蚂蚁选项}

  2. 快捷方式上面:

    sourceanalyzer -b {Fortify的选项} {蚂蚁蚂蚁选项}

  3. 或者,如果你犯了一个自定义的build.xml如附录中:

    蚂蚁-lib sourceanalyzer.jar {蚂蚁选项}



文章来源: Fortify Source Analyzer and Apache Lenya