ASoC および GitLab

AppScan on Cloud を GitLab と併用すると、マージ要求ごとにリポジトリー内のファイルに対して静的分析セキュリティー・テスト (SAST) を実行し、脆弱性がメイン分岐に達するのを防ぐことができます。結果は AppScan on Cloud に保存されます。

登録

アカウントがない場合は、HCL AppScan on Cloud (ASoC) に登録して API キーと API シークレットを生成します。

セットアップ

  1. 「API」ページで ASoC の API 鍵と API 秘密を生成します。

    API 鍵と API 秘密は、このアクションの ASOC_KEY および ASOC_SECRET パラメーターにマッピングされます。鍵と秘密は控えておいてください。

  2. ASoC でアプリケーションを作成します。

    アプリケーションは、同じプロジェクトに関連するすべてのスキャンを保存するコンテナーとして機能します。

  3. アプリケーション名をコピーします。

    ASoC のアプリケーション名は、この統合に備えて APP_NAME にマッピングされます。

  4. GitLab で変数を作成します。「設定」 > 「CI/CD」 > 「変数」を選択し、以下のように変数を設定します。
    表 1. 必要な入力 (SAST または DAST)
    変数 値
    APPSCAN_KEY 「API」ページからの API 鍵。
    APPSCAN_SECRET 「API」ページからの API 秘密
    APP_NAME AppScan のアプリケーションの名前。
    APPSCAN_ASSET AppScan の資産グループの ID。

  5. .gitlab-ci.yaml と Dockerfile を GitLab リポジトリー・ルートにコピーします。
  6. CI/CD 構成ファイルを設定します。「設定」 > 「CI/CD」 > 「一般的なパイプライン」 > 「CI/CD 構成ファイル」の順に選択します。

  7. 独自のランナーを作成します。「設定]」 > 「CI/CD」 > 「ランナー」を選択し、特定のランナーの下の手順に従います。
  8. GitLab ランナーをセットアップするシステムで、GitLab リポジトリーが存在しない場合は、ログインしてリポジトリーを複製します。そのマシンに Docker エンジンがインストールされていることを確認します。
  9. Dockerfile から saclient という新規 Docker イメージを作成します。ディレクトリーをリポジトリーのルートに変更し、次のコマンドを実行して Docker イメージをビルドします。
     docker build -t saclient . 
    重要:
    最後のピリオドは、現行ディレクトリーを示します。
  10. GitLab では、スキャンが失敗した場合にマージされないように、「設定」 > 「マージ要求」 > 「マージチェック」で「パイプラインは成功する必要があります」を有効化します。
  11. 「設定」 > 「CI/CD」 > 「パイプライン」で新しいマージ要求が作成されたときに、新しいスキャン・ジョブが開始されることを確認します。

例

スキャン・ジョブ

スキャン・アーティファクトのダウンロード準備完了

maxIssuesAllowed に基づいて渡されたスキャン・ジョブ

追加情報

現在の yaml スクリプトには、セキュリティー問題の許容数が特定のしきい値を超えるとスキャンに失敗するセキュリティー・ポリシー・チェックのサンプルが含まれています。サンプルの maxIssuesAllowed は 100 に設定されています。