我可以在 .jar 文件而不是 .java 上运行 fortify 吗?

Posted

技术标签:

【中文标题】我可以在 .jar 文件而不是 .java 上运行 fortify 吗?【英文标题】:Can I run fortify on .jar files instead of .java? 【发布时间】:2013-04-23 02:29:57 【问题描述】:

我需要使用 Fortify 检查在我的项目中使用的第三方库中的漏洞(如果有)。

对于一些第三方库,我无法访问他们的源文件。我只有随附的 .jar 文件。

是否可以在 .jar 文件上运行 Fortify?我在大多数文档中只能找到 Fortify 可以在 .java 文件上运行,如下所示:

sourceanalyzer -b MyProject -cp "lib/.jar" "src/*/*.java"

【问题讨论】:

【参考方案1】:

您可以使用以下命令强制 SCA 扫描类文件:

sourceanalyzer -b MyProject -source "1.6" -cp "source_path/**/*.jar" -scan -f MyProject.fpr -Dcom.fortify.sca.fileextensions.class=BYTECODE -Dcom.fortify.sca.DefaultFileTypes=class "source_path/**/*.class"

如果我没记错的话,您需要将包含要扫描的类文件的 JAR 文件分解到 source_path 中。

与 Java 源扫描相比,结果不会那么出色,但您应该会得到一些结果。

【讨论】:

谢谢,这意味着 .java 文件不一定存在。 .class 文件(未反编译为 .java)也有资格进行扫描? 是的。它直接对 .class 文件进行字节码扫描。 谢谢,这真的很有帮助。【参考方案2】:

您可以比 LaJmOn 的建议做得更好,并自动打开罐子。

例如:

sourceanalyzer -b apple -source 1.6 -Dcom.fortify.sca.fileextensions.jar=ARCHIVE /System/Library/Frameworks/JavaVM.framework/Home/lib/ext/apple_provider.jar

【讨论】:

此技术未记录在案,Fortify 不支持。 是的,未记录,但此选项存在并且为 HP SCA 专家所熟知。您甚至可以使用以下命令扫描 WAR 文件:com.fortify.sca.fileextensions.war = ARCHIVE 尝试分析打包到 WAR 中的 .class 文件找不到 .class 文件,好像分析器认为 WAR 文件是一个目录。

以上是关于我可以在 .jar 文件而不是 .java 上运行 fortify 吗?的主要内容,如果未能解决你的问题,请参考以下文章

Jar文件通过双击而不是通过cmd运行? [复制]

idea启动和服务器jar包启动

Java代码打包成可运行jar文件后,双击jar文件后DOS窗口一闪而过,程序不能打开,通过DOS命令可以的

在 Jar 文件中运行类

Java:在运行时将类添加到 Jar 存档

java生成jar包