我们在一个团队中工作,并在我们的机器上本地运行Fortify软件。我们都将项目代码设置在不同的根目录中,例如我在C:\ work \ development \中有项目代码,很少有同事有类似C:\ Development \ mainCodeLine \ etc等的东西,即项目的根文件夹代码驻留不同。最初只有我在使用Fortify,但现在有很多团队成员在运行Fortify。我们目前共享保存在存储库中的FPR文件。我们从存储库下载它并在同一文件上运行SCA命令,以便保留隐藏/抑制问题等详细信息。在一段时间内,我们观察到:
生成的唯一实例ID仅在一台计算机上是唯一的。即,唯一实例ID仅在我的机器上扫描时保持相同,并且在我的队友机器中执行扫描时它会发生变化。有没有什么办法可以让Fortify在多台机器上进行多次扫描时保持相同?因此,我们无法在过滤器文件中使用唯一实例ID。
如果我和我的队友在同一个代码上的两台不同的机器上并行运行扫描(只有项目的根目录与前面所述不同)那么我们有什么办法可以整合这两份报告吗?
答案 0 :(得分:3)
确实有一些方法可以组合在不同机器上生成的扫描结果。我相信,实现这一目标的最佳方法是使用Fortify软件安全中心(SSC)。用户进行"新鲜"每次扫描,当上传到SSC的项目时,它们将被合并 - 保留以前的任何审计信息。
另一种方法是使用命令行FPRUtility。 (我现在没有在我面前安装,因此名称可能略有偏差 - 但它与sourceanalyzer和auditworkbench一起位于bin目录中)。 -h
选项应提供开始合并FPR的信息。
希望这会有所帮助。
答案 1 :(得分:3)
如果不同的IID被不同的整体根改变,那似乎是一个错误。 SCA通常使用规范的根,因此它放置时不应有任何区别。 Xelco52部分正确,但是如果你想在它们有不同的IID时合并,最好使用F {1}}选项的FPRUtility,例如:
-forceMigration
您还应该能够通过在Core / config / fortify.properties中设置FPRUtility -merge -project Results1.fpr -source Results2.fpr -f mergedResults.fpr -forceMigration
(并重新启动AWB)来在AWB中获得此效果
答案 2 :(得分:2)
如果可能,请使用HP Fortify软件安全中心(SSC)。这将允许用户将扫描上载到中央存储库并合并结果。这有助于创建扫描的运行历史记录,并知道谁上传了什么。
此外,这将允许您的团队使用名为" Collaborative Audit"这将让每个开发人员从软件安全中心(SSC)下载最新的FPR并进入他们的IDE。然后,开发人员可以进行更改并推回到SSC,再次合并结果。
答案 3 :(得分:0)
我不认为合并是正确的方法。我会这样做: (1)在所有开发人员(用户#)中,在他们自己的机器上,建立ProjectRoot的命名约定(指向用户#的代码库,即/ home / user#/ mycode)和WorkingDirectory(即/ local / sharebuild) )
(2)每个用户在自己的机器上使用以下命令:
(2a)CLEAN CACHE:〜/ sourceanalyzer -b user#-Dcom.fortify.sca.ProjectRoot = / home / user#/ mycode -Dcom.fortify.WorkingDirectory = / local / sharebuild / -logfile / local / sharebuild / user# .sca.log -clean
(2b)TRANSLATE:〜/ sourceanalyzer -b user#-64 -Xmx11000M -Xss24M -Dcom.fortify.sca.ProjectRoot = / home / user#/ mycode / -Dcom.fortify.WorkingDirectory = / local / sharebuild / -logfile / local / sharebuild / user#.sca.log -source 1.5 -cp'your_class_path'-extradirs'your * .war file''/ home / user#/ mycode / ** / *'
(3)将所有中间代码集成到构建机器中:每个用户将整个/local/sharebuild/sca#.##复制到集中构建机器,目录为/local/sharebuild/sca#.##/build /(您将找到子目录./user#(每个用户的构建ID),其中包含所有中间代码树(.nst)。
(4)SCAN:在构建服务器上,使用命令扫描: 〜/ sourceanalyzer -b user1 -b user2 -b user3 -b user#-64 -Xmx11000M -Xss24M -Dcom.fortify.sca.ProjectRoot = / home / user#/ mycode / -Dcom.fortify.WorkingDirectory = / local / sharebuild / -logfile /local/sharebuild/scan.sca.log -scan -f build_all.fpr
步骤4将获取所有.nst(规范化语法树)文件并执行扫描。
如果每个用户在步骤2a将他的部分代码安装到集中式机器上,则可以省略步骤3。