開発プロセスにコード監査ツールHP Fortifyを統合するように求められますが、それに関する主な制約は、コード全体を毎回スキャンする必要がないことです。最後のバックログ項目によって影響を受けるクラスのみを分析する必要があります。
私たちはJenkinsとSonarQubeを使用しているので、利用可能なプラグインを調べましたが、要件に一致するものが見つかりませんでした。コード全体を毎回スキャンしないでください。
私が必要としているものに適したツールやHP Fortify構成を知っていますか?
そのツールではできません。まったく同じツールを使用しているのと同じ「問題」があります。
とにかく、セキュリティの観点からは問題ありません。私の意見では、コードの特定の部分のみをスキャンすると、特定のエラーを検出できなくなる可能性があります。後で説明しようと思います。別のストーリーは、SonarQubeで検出された新しい問題を段階的に示すことです。それは可能であり、私はあなたが本当に必要なものだと思います。
すでに増分脆弱性スキャンが実行されていると仮定します。クラスがまだ使用されていないために検出されないクラスに脆弱性がある可能性があります。次に、別のコミットがそのクラスを使用し、セキュリティの脆弱性が発生する可能性がありますが、コミットによって増分コミットのみをスキャンする場合、スキャナーは「すでにスキャンされた古いコード」にアクセスすることなくコードのその部分のみをスキャンするため、その脆弱性を発見することはできません。 。
常にすべてのコードをスキャンする方が良いと思いますが、SonarQubeで検出された新しい問題のみを表示します。
他の人が述べたように、Fortifyとほとんどのスキャンツールは、変更されたファイルの差分をスキャンするだけではありません。彼らはコードベース全体をスキャンします。
Fortifyを使用すると、本質的にリソースを集中的に使用するツールになります。また、コードベースがかなり大きい場合、それをすばやく切り抜ける強力なマシンが必要になります。以下を提案します...
AWSまたはAzureにアクセスできると想定して、2つのイメージを起動します。 1つは中程度の強度の画像で、Fortifyポータルとレポートを保持します。これは24時間滞在できます。次に、スキャン中にのみアクティブになる別の非常に強力な画像をスピンアップします。
これを行うには、スキャンを開始する直前に、Jenkinsを使用してAPI呼び出しを実行し、スキャンマシンイメージを起動します。
十分な計算能力があれば、たとえコードベースが大きくても、スキャンに数時間以上かかることはありません。
スキャンが完了すると、結果がメインのポータル/レポートサーバーに送信され、API呼び出しを再び使用してそのインスタンスをシャットダウンできます。これはコストを抑えるためです。
最後に、FortifyとSonarqubeについて話し合う必要があります。私の個人的な見解では、両方を使用する必要があります。両方の結果を注ぎ込んだ後、Fortifyはより多くの脆弱性関連アイテムを取得します。 Sonarqubeはより多くの構文/ロジック関連の問題を取り上げ、いくつかの脆弱性の要素が混在しています。
私の経験では、彼らはお互いを上手に褒め合っています。
それがお役に立てば幸いです。さらに質問がある場合は、PMを送信するか、ここで質問してください。
幸運を!