4

チームで作業し、ローカルのマシンで Fortify ソフトウェアを実行しています。私たちは皆、異なるルート ディレクトリにプロジェクト コードのセットアップを持っています。たとえば、私は C:\work\development\ にプロジェクト コードを持っていますが、C:\Development\mainCodeLine\ などのようなものを持っている同僚はほとんどいません。 - コードの常駐が異なります。最初は私だけが Fortify に取り組んでいましたが、今では多くのメンバーが Fortify を実行しています。現在、リポジトリに保存されている FPR ファイルを共有しています。リポジトリからダウンロードし、同じファイルに対して SCA コマンドを実行して、非表示/抑制された問題などの詳細を保持します。期間中、次のことが観察されました。

  1. 生成される一意のインスタンス ID は、単一のマシンでのみ一意です。つまり、一意のインスタンス ID は自分のマシンのスキャンでのみ同じままで、チームメイトのマシンでスキャンが実行されると変更されます。複数のマシンでの複数のスキャンで同じ状態を維持するように Fortify を構成する方法はありますか? このため、フィルター ファイルで一意のインスタンス ID を使用することはできません。

  2. 私とチームメイトが同じコードで 2 つの別々のマシンで並行してスキャンを実行する場合 (前述のように、プロジェクトのルート ディレクトリのみが異なります)、これら 2 つのレポートを統合する方法はありますか?

4

4 に答える 4

3

実際、異なるマシンで生成されたスキャン結果を組み合わせる方法があります。これを実現する最善の方法は、Fortify Software Security Center (SSC) を利用することだと思います。ユーザーは毎回「新しい」スキャンを実行し、SSC のプロジェクトにアップロードされると、以前の監査情報を保持してマージされます。

別の方法として、コマンド ライン FPRUtility を使用する方法があります。(現時点ではインストールを行っていないので、名前が少し違うかもしれませんが、sourceanalyzer と auditworkbench と一緒に bin ディレクトリにあります)。この-hオプションは、FPR のマージを開始するための情報を提供する必要があります。

お役に立てれば。

于 2013-02-25T19:49:41.810 に答える
3

異なる IID が異なる全体的なルートによって変更されている場合、それはバグのようです。SCA は通常、正規ルートを使用するため、配置場所に違いはありません。Xelco52 は部分的に正しいものでしたが、IID が異なる場合にマージする場合は、FPRUtility を次の-forceMigrationようなオプションで使用するのが最適です。

FPRUtility -merge -project Results1.fpr -source Results2.fpr -f mergedResults.fpr -forceMigration

com.fortify.model.ForceIIDMigration=trueまた、Core/config/fortify.properties で設定 (および AWB を再起動)することで、AWB でこの影響を得ることができるはずです。

于 2013-11-28T11:02:31.970 に答える
0

マージは正しいアプローチではないと思います。(1) すべての開発者 (user#) の間で、自分のマシン上で ProjectRoot の命名規則を確立し (user# のコード ベース、つまり /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) 翻訳: ~/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' -extdirs 'あなたの *.war ファイル' '/home /user#/mycode/**/*'

(3) すべての中間コードをビルド マシンに統合する: 各ユーザーは、自分の /local/sharebuild/sca#.## 全体を集中型ビルド マシンのディレクトリ /local/sharebuild/sca#.##/build/ にコピーします (すべての中間コード ツリー (.nst) を含むサブ ディレクトリ ./user# (各ユーザーのビルド ID) を検索します。

(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 は省略できます。

于 2015-01-27T21:26:35.150 に答える