我可以在 .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 吗?的主要内容,如果未能解决你的问题,请参考以下文章