Azure DevOps Services プラグインのインストールと使用

このタスクでは、静的スキャンまたは動的スキャンを行うための Azure DevOps Services プラグインを、Azure DevOps Services および Team Foundation Server (TFS) パイプラインにインストールして使用する方法について説明します(Azure DevOps Services は、以前は Visual Studio Team Services (VSTS) と呼ばれていました)。

チュートリアル

Azure DevOps/TFS プラグインのインストール

注: AppScan 360° は、TFS バージョン 2018 Update 2 以降をサポートします。
Azure DevOps/TFS プラグインを使用するには、まず VAzure DevOps マーケットプレイスからプラグインをダウンロードしてインストールする必要があります。
  1. Azure DevOps Services で、「拡張機能の管理」 > 「Marketplace の参照」に移動します。
  2. 結果として表示されるウィンドウで、「HCL」を検索します。
  3. HCL AppScan プラグイン」を選択してインストールします。
注: TFS の場合は、Azure DevOps マーケットプレイスから指示どおりにプラグインをダウンロードします。ダウンロードしたら、「拡張機能の管理」 > 「ローカルの拡張機能の参照」 > 「新しい拡張機能をアップロードする」に移動して、インストールするダウンロード済み拡張機能を選択します。

Azure DevOps 環境のセットアップ

Azure DevOps 環境をテスト用に構成するには:

  1. Azure DevOps Services にログインします。
  2. 新しい組織を作成します。
    1. 「Create new organization」をクリックします。
    2. 組織名を指定してください。
    3. プロジェクト名を指定してください。
    4. プロジェクトがパブリックかプライベートかを示します。
    5. 「OK」をクリックします。
  3. コード・リポジトリーをプロジェクトに関連付けます。
    1. 「Repos」 > 「ファイル」をクリックします。
    2. 「インポート」を選択します。
    3. リポジトリーのソース・タイプを選択します。
    4. リポジトリーのクローン URL を指定します。
    5. 「インポート」 をクリックします。
  4. ビルド・パイプラインを作成します。
    1. 「パイプライン」 > 「ビルド」をクリックします。
    2. 「新しいパイプライン」をクリックします。
    3. 「Use the visual designer」をクリックします。
    4. ソースの選択時に「Azure Repos git」をクリックし、スキャンするリポジトリーを選択して「続行」をクリックします。
    5. 「Empty pipeline」「続行」を選択します。
    6. 「エージェント・ジョブ 1」の横の + をクリックして NuGet を検索し、「追加」をクリックします。
    7. タスクから「NuGet の復元」を選択し、ソリューション・ファイルをポイントします。「ソリューション、packages.config、project.json へのパス」で、適切な .sln ファイルを参照します。
    8. 「エージェント・ジョブ 1」の横の + をクリックして、最初の手順を追加します。「ビルド」「Visual Studio Build」「追加」の順にクリックします。
    9. 「Build solution **/*.sln」をクリックして、ソリューション・ファイルをポイントします。「ソリューション」 フィールドで、適切な .sln ファイルを参照します。
    10. 「保存してキューに登録」をクリックしてビルドをテストします。

      ビルドに調整を加えたら、コメントを追加して変更内容を反映させます。「保存してキューに登録」をクリックするたびに、ビルド番号は更新されます。

Azure DevOps/TFS プラグインの使用

セキュリティー・テストの追加

Azure DevOps/TFS のビルド・プロセスにセキュリティー・テストを追加するには、次を実行します。
  1. 以下のいずれかを選択します。
    • Azure DevOps Services の場合、プロジェクトのホーム・ページから、「パイプライン」 > 「ビルド」メニューを選択します。
    • TFS の場合、「ビルドとリリース」 > 「ビルド」を選択します。
  2. セキュリティー・テストを追加するパイプラインを編集します。
  3. 「タスク」タブで、「+」をクリックしてタスクを追加します。
  4. 「HCL AppScan on Cloud」というタスクを見つけて、「追加」をクリックします。
  5. ビルド・プロセスで、新規に追加された「Run HCL AppScan on Cloud Security Test」タスクをクリックします。
  6. 「タスクの設定」を指定します。
    1. 「表示名」の文字列を入力します。

      これはビルド・プロセスのタスク名になります。

    2. リストから適切な「資格情報」を選択します。

      「資格情報」フィールドが空の場合は、新規サービス・エンドポイントの追加を参照してください。

    3. 「アプリケーション」リストからアプリケーションを選択します。

      選択した資格情報に基づいて「アプリケーション」ドロップダウンにデータが挿入されます。

    4. 次に「スキャン名」フィールドにスキャン用の名前を入力します。オプション。

      これは、サービスのスキャンの名前になります。

    5. 「スキャン・タイプ」リストからスキャンの種類を選択します。
      • 「Static Analyzer」を選択して、静的分析セキュリティー・テストを実行します。
        1. Static Analyzer スキャンのパラメーター
        パラメーター 説明
        スキャンするリポジトリー・サブディレクトリー 値を入力するか、リポジトリーのファイル・ブラウザー・ダイアログから値を選択します (オプション)。デフォルトでは、サービスはリポジトリー全体をスキャンします。スキャンをサブディレクトリーに限定するには、ここで相対パスを指定します。
        その他のオプション
        スキャンの速度 ニーズや時間の要求に基づいてスキャンの最適化レベルを指定します。
        • 単純: simple スキャンでは、ファイルの表面レベルの分析を実行して、修復に最も急を要する問題を特定します。完了に要する時間が最も短いスキャンです。
        • 平衡: balanced スキャンでは、中程度の詳細レベルでセキュリティー問題の分析および特定を行うことができ、simple スキャンよりは完了までに多少時間がかかります。
        • 深さ: デフォルトです。deep スキャンでは、ファイルの徹底的な分析を実行して脆弱性を特定します。通常、完了までにより多くの時間がかかります。
        • 完全: thorough スキャンでは、包括的な分析を実行して、最も包括的な脆弱性リストを特定し、完了までに最も多くの時間がかかります。
        注: スキャンの速度は、コードで検出された脆弱性の相対数と相関するとは限りません。例えば、simple スキャンでレポートされる可能性のある誤検出が thorough 分析では除外されるため、レポートされる脆弱性がより少なくなる場合があります

拡張オプション

Azure DevOps/TFS プラグインを使用する場合、詳細オプションは必須ではありません。詳細プロパティーを設定するには、次を実行します。

  1. 「詳細」をクリックして、追加オプションを表示します。
  2. 「電子メール通知」チェック・ボックスを選択すると、セキュリティー分析が完了したときに電子メールを受信します。電子メールは、選択した資格情報に関連付けられている電子メール・アドレスに送信されます。
  3. 「個人スキャンとして実行」を選択すると、アプリケーション全体のスキャン・データまたはコンプライアンスに影響を与えることなく、開発中のアプリケーションの相対的なセキュリティーを評価します。非推奨の HCL AppScan タスクでは、個人スキャンのサポートは使用できません。
  4. 「スキャン有効化チームによる介入を許可する」を選択すると、スキャンが失敗した場合、または問題が見つからなかった場合に、スキャン有効化チームが介入し、構成の修正を試行することができます。これにより、スキャン結果が遅延することがあります。このオプションは、デフォルトで選択されています。
  5. 「セキュリティー分析が完了するまでジョブを中断」を選択: セキュリティー分析の結果が使用可能になるまで Jenkins ビルドを待機させてからパイプラインの次のステップに進むには、このチェック・ボックスを選択します。
  6. 「ビルド構成の失敗」を選択して、セキュリティー・テストの結果に基づいてビルドを失敗させる条件を指定します。「ビルド構成の失敗」は、「セキュリティー分析が完了するまでジョブを中断」が選択されている場合にのみ表示されます。
    • 選択したアプリケーションのポリシーに準拠しないセキュリティー上の問題が検出された場合にビルドを失敗させるには、「アプリケーション・ポリシーに違反する場合」を選択します。
    • 「全体的な」セキュリティー問題や、重大度が「重大」「高」「中」、または「低」のセキュリティー問題の違反の指定数に基づいてビルドを失敗させるには、「次の条件が真の場合」を選択します。複数のしきい値を指定した場合、論理和が適用されます。
  7. ビルドが完了したら、「ビルド概要」ページの「Application Security レポート」タブからスキャン・レポートを表示またはダウンロードできます。このレポートには、非準拠の問題だけが含まれます。
    アプリケーション・セキュリティー・レポートおよび irx 生成ログ (静的スキャンの場合) は、Azure パイプライン・ビルド・ログを介してダウンロードすることもできます。
    注: 「セキュリティー分析が完了するまでジョブを中断」オプションが選択されていない場合、スキャン・レポートはダウンロードできません。この場合、HCL AppScan On Cloud ポータルからレポートをダウンロードできます。

新規サービス・エンドポイントの追加

「タスクの設定」で、「資格情報」フィールドが空の場合は、サービス・エンドポイントを設定する必要があります。Azure DevOps/TFS プラグインを使用するためのサービス・エンドポイントを設定するには、次を実行します。

  1. 「タスクの設定」で、空の「資格情報」フィールド上で「管理」をクリックします。
  2. 結果として表示されるウィンドウで、「新規サービス・エンドポイント」をクリックします。
  3. エンドポイントのリストで「HCL AppScan on Cloud」をクリックします。
  4. 結果として表示されるダイアログ・ボックスに詳細を入力して「OK」をクリックします。
    2. サービス・エンドポイントのプロパティー
    プロパティ
    接続名 接続の論理名。
    サーバー URL
    KeyID AppScan 360° 設定の事前構成を参照してください。
    KeySecret

スキャンの最適化と結果の確認

その他のスキャンについては、構成ファイルを使用し、スキャンに含めるまたはスキャンから除外する対象と追加の情報を指定する対象を指定してスキャンを最適化できます。

スキャンが完了すると、AppScan 360° でスキャンのレポートが生成されます。「結果」で情報を確認し、セキュリティーの脆弱性の報告方法および問題の修復方法について学習します。