Fortifyとの統合をセットアップする
このトピックでは、Micro Focus Fortifyとの統合をセットアップし、開発サイクルにセキュリティテストを組み込む方法について説明します。
ALM OctaneとFortifyの統合の概要
Fortifyとは?
Micro Focus Fortifyは、アプリケーションセキュリティテストサービスです。アプリケーションのコードに対して静的コード分析を行い、コードに潜むセキュリティ上の脆弱性に関する評価を行います。クラウドベースにすることも、オンプレミスにインストールすることもできます。
ALM OctaneをFortifyと統合するのはなぜですか?
ALM OctaneとFortifyを統合して、開発サイクルにセキュリティテストを組み込みます。
-
コードに持ち込まれたセキュリティ上の脆弱性をすばやく見つけて修正します。
-
開発者の意識を高め、開発者がコードに脆弱性を持ち込まないように促します。
ヒント: Fortify以外の静的コード分析ツールを使用している場合は、ALM Octane REST APIを使用して、ツールによって検出されたセキュリティの脆弱性の問題をALM Octaneに挿入できます。詳細については、脆弱性の問題をALM Octaneに追加するを参照してください。
この統合が機能する仕組み
開発サイクルの中で、Fortify on Demand Uoloadステップを含むパイプラインをJenkins上で定期的に実行します。このステップによりアプリケーションのコードがFortify On Demandにアップロードされると、コードのセキュリティ評価が開始されます。
パイプライン実行が正常に終了すると、ALM OctaneはFortify on Demandサーバーに対してポーリングを行います。セキュリティ評価が完了すると、ALM Octaneは新たに発見された脆弱性を取得し、パイプライン実行に表示します。
まず、セキュリティの問題についてコードをスキャンし、.fprファイルを生成するスクリプトを作成する必要があります。Fortify SSCは.fprファイルを分析し、コードの脆弱性に関するデータを生成します。以下で説明するように統合を設定すると、このデータはJenkins経由でALM Octaneに送信されます。
統合には2つのプラグインが必要です。1つはJenkinsとFortify SSCの間で統合するためのもので、もう1つはALM OctaneとJenkinsの間で統合するためのものです。プラグインを設定した後、評価のために.fprファイルをSSCにアップロードするSecurity Fortify Assessmentステップを含むパイプラインをJenkinsで実行します。評価が完了すると、Jenkinsは新たに検出された脆弱性をALM Octaneにプッシュし、パイプラインの実行に表示されます。
ユーザーは脆弱性を確認した後に、関連する不具合を作成してコードで修正を行うか、問題を破棄してクローズすることができます。詳細については、セキュリティの脆弱性の追跡を参照してください。
プライバシーに関する重要な注意: Fortifyのデータに個人識別情報 (PII) が含まれている場合は、システム管理者に問い合わせて、FortifyのデータファームとALM Octaneサーバーの地理的な場所を確認してください。これらの地理的な場所が異なる場合は、最高情報セキュリティ責任者またはプライバシーオフィスに、この統合がそれぞれの地域の法規制に準拠していることを確認してください。
ステップ1: FortifyおよびALM OctaneでJenkinsとの統合をセットアップする
最初に、JenkinsでFortify on Demandとの統合をセットアップし、ALM OctaneでJenkinsとの統合をセットアップします。
-
Fortify On Demandのアカウントをセットアップします。詳細については、https://software.microfocus.com/en-us/software/fortify-on-demand を参照してください。
Fortify on Demandでコードを評価するアプリケーションを定義します。
ALM Octaneと統合する前に、コードの最初のセキュリティ評価を手動で行い、セキュリティの専門家による監査を受けておくことをお勧めします。
APIを使用してFortify On Demandサーバーにアクセスするのに必要なURLとAPIキーを取得します。これらのAPIキーでは、脆弱性の読み取りが可能である必要があります。
-
Fortify on DemandにコードをアップロードするようにJenkinsをセットアップします。
-
JenkinsサーバーにFortify On Demand Uploaderプラグインをインストールして設定します。
-
アプリケーションのコードをFortify on Demandにアップロードして評価するため、JenkinsでFortify on Demand Uploadステップを作成します。ビルドステップ情報 (BSI) フィールドで、Fortify on Demandのアカウントでアプリケーションを定義するのに使用したアプリケーションとリリースを設定します。
詳細については、https://wiki.jenkins.io/display/JENKINS/Fortify+On+Demand+Uploader+Plugin を参照してください。
-
-
ALM OctaneとJenkinsサーバーとの統合をセットアップします。詳細については、CIサーバーのセットアップを参照してください。
Fortify Jenkins Plugin (On-Premise)の説明に従ってFortifyプラグインを設定しておく必要があります。その後、以下を実行します。
-
ALM OctaneとSSCの間の通信を有効にするには、Fortify Software Security Center APIドキュメント >認証方法の説明に従ってSSCから認証トークンを取得します。これは、ALM Octane JenkinsプラグインがSSCへの認証に使用します。
注: トークンは、SSCサーバーのログインユーザー名とパスワードをBase64エンコーディングに変換することで作成されます。
-
ALM OctaneとJenkinsサーバーとの統合をセットアップします。詳細については、CIサーバーのセットアップを参照してください。
Jenkinsプラグインを構成するときは、[パラメーター] セクションに、SSC認証トークンを含むFORTIFY_SSC_TOKENというパラメーターを追加します。
-
スキャンするプロジェクトごとに、評価のために.fprファイルをSSCにアップロードするためのSecurity Fortify Assessmentステップを含むジョブをJenkinsで作成します。SSCでプロジェクトに定義されているアプリケーション名とバージョン情報を入力します。
ステップ2: ALM Octaneでパイプラインを作成します
-
[パイプライン] > [パイプライン] ページで、新しいパイプラインを追加します。
-
[タイプ] フィールドで、[セキュリティ] を選択します。
統合に応じて、次のことが発生します。
-
オンデマンドで強化: このパイプラインが正常に実行された後、ALM OctaneはFortify on Demandサーバーをポーリングし、評価結果の取得を待機します。
-
ソフトウェアセキュリティセンターの強化: Jenkinsプラグインは、Software Security Centerデータベースに新しいスキャン結果があるかどうかを定期的にチェックします。存在する場合、新しいセキュリティデータはALM Octaneに挿入され、対応するパイプラインの実行に表示されます。
設定オプション
標準設定では、ALM OctaneはFortify On Demandを2分おきに48時間チェックして、スキャンが完了したかどうかを確認します。脆弱性の数が100を超える場合、ALM Octaneは何も取得しません。
これらの制限はすべて、次の設定パラメーターを使用して設定できます。
- FORTIFY_POLLING_TIMEOUT_HOURS
- FORTIFY_POLLING_DELAY_MINUTES
- FORTIFY_UPPER_LIMIT_OF_ISSUES
標準設定では、個々のパイプラインの実行ごとに注入できる脆弱性の問題の最大数は100です。これは、VULNERABILITIES_PER_PIPELINE_RUN_LIMITパラメーターを使用して変更できます。
詳細については、設定パラメーターを参照してください。
参照情報: