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

问题描述:

我需要检查使用Fortify在我的项目中使用的第三方库中的漏洞(如果有)。我可以在.jar文件而不是.java上运行fortify吗?

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

是否可以在.jar文件上运行Fortify?所有我能找到的大部分单证的是,Fortify的可以在.java文件上运行,这样的事:

sourceanalyzer -b MyProject的-cp “的lib/的.jar”,“SRC/ */*的Java。 “

您可以强制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源代码扫描相比,结果不会太好,但应该会得到一些结果。

+0

谢谢,所以这意味着它不是强制具有.java文件必然存在。 .class文件(没有被解编译为.java)也符合扫描条件? – 2013-05-02 04:03:02

+0

是的。它直接对.class文件进行字节码扫描。 – LaJmOn 2013-05-02 15:25:36

+0

谢谢,这确实有帮助。 – 2013-05-03 04:24:37

你可以比LaJmOn的建议做得更好,并且实际上会自动打开罐子。

例如:

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

这种技术没有记录,Fortify也不支持。 – 2013-05-17 17:11:57

+0

是的,没有记录,但这个选项存在并且是HP SCA专家所熟知的。您甚至可以使用以下命令扫描WAR文件:com.fortify.sca.fileextensions.war = ARCHIVE – 2013-11-26 12:20:09

+0

试图分析打包到WAR中的.class文件无法找到.class文件,就好像分析器预计WAR文件是一个目录。 – 2018-02-22 17:30:18