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

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

注: AppScan on Cloud サービスの URL は以下のとおりです。サービス・エンドポイントのプロパティーの更新も含め、IBM の前のサービス・ロケーションからこのロケーションに移行してください。詳細については、https://support.hcl-software.com/csm?id=kb_article&sysparm_article=KB0069537を参照してください。

チュートリアル

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

注: AppScan on Cloud は、TFS バージョン 2018 Update 2 以降をサポートします。
Azure DevOps/TFS プラグインを使用するには、まず Azure 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 スキャンよりはやや時間がかかります。
        • 深さ: デフォルトです。詳細スキャンでは、ファイルの徹底的な分析を実行して脆弱性を特定します。通常、完了するのにより多くの時間がかかります。
        • 完全: 完全スキャンでは、包括的な分析を実行して、最も包括的な脆弱性リストを特定し、完了するのに最も多くの時間がかかります。
        注: スキャンの速度は、コードで検出された脆弱性の相対数と相関するとは限りません。例えば、単純スキャンで報告される可能性のある誤検出が完全分析では除外され、より少ない脆弱性が報告されることがあります
      • 「Dynamic Analyzer」を選択して、ブラウザーで実行されるアプリケーションの分析を行います。
        2. Dynamic Analyzer スキャンのパラメーター
        パラメーター 説明
        開始 URL

        スキャンで探索を開始するサイトの URL を入力します。

        「追加オプション」を選択すると、以下のオプション設定を使用できるようになります。

        その他のオプション
        サイト・タイプ 対象のサイトが「ステージング」サイト (開発中) か「実動」サイト (稼働中で使用中) かを指定するか、「NA」を選択します。
        テストの最適化 最適化レベルの指定:
        • 最適化なし (デフォルト): 通常の詳細スキャン。スキャン時間は長くなります。脆弱性範囲最大。
        • 高速: 最大 2 倍高速。脆弱性範囲最大 97%。
        • より高速: 最大 5 倍高速。脆弱性範囲最大 85%。
        • 最速: 最大 10 倍高速。脆弱性範囲最大 70%。

        テストの最適化および関連するスキャンの詳細および速度に関する詳細については、「テストの最適化」を参照してください。

        ログイン・ユーザーとログイン・パスワード アプリにログインする必要がある場合は、有効なユーザー資格情報を入力します。
        3 つ目の資格情報 アプリに 3 つ目の資格情報が必要な場合は、このフィールドに入力します。
        Presence アプリがインターネット上にない場合、AppScan Presence 名を入力します。AppScan Presence の作成については、AppScan Presenceを参照してください。
        ファイルのスキャン AppScan Standard スキャン・ファイルがある場合は、このフィールドに相対パスとファイル名を入力します。AppScan Standard スキャン・ファイルの詳細を確認するには、AppScan Standard スキャンまたはテンプレートの使用を参照してください。

        動的分析の設定の詳細を確認するには、新規スキャンの作成 (フル設定)を参照してください。

拡張オプション

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」をクリックします。
    3. サービス・エンドポイントのプロパティー
    プロパティー
    接続名 接続の論理名。
    サーバー URL
    KeyID 使用しているデータ・センターAppScan on Cloudサービスで KeyID と KeySecret を取得します。
    KeySecret

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

その他のスキャンについては、構成ファイルを使用し、スキャンに含めるまたはスキャンから除外する対象と追加の情報を指定する対象を指定してスキャンを最適化できます。プラグインがスキャンのために取得するように、プロジェクトのルート・ディレクトリーに構成ファイルをデプロイする必要があります。

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