ASoC および GitLab
.AppScan on Cloud を GitLab と併用すると、マージ要求ごとにリポジトリー内のファイルに対して静的分析セキュリティー・テスト (SAST) を実行し、脆弱性がメイン分岐に達するのを防ぐことができます。結果は AppScan on Cloud に保存されます。
登録
アカウントがない場合は、HCL AppScan on Cloud (ASoC) に登録して API 鍵と API 秘密を生成してください。
セットアップ
- 「API」ページで ASoC の API 鍵と API 秘密を生成します。
API 鍵と API 秘密は、このアクションの
ASOC_KEY
およびASOC_SECRET
パラメーターにマッピングされます。鍵と秘密は控えておいてください。 - ASoC でアプリケーションを作成します。
アプリケーションは、同じプロジェクトに関連するすべてのスキャンを保存するコンテナーとして機能します。
-
アプリケーション ID をコピーします。「コピー」をクリックします。
を選択し、次に「アプリケーションの詳細」の「アプリケーション ID」 の横にあるASoC のアプリケーション ID は、この統合に備えて
APP_ID
にマッピングされます。 - GitLab で 3 つの変数を作成します。
Variable 値 APP_ID
ASoC からのアプリケーション ID ASOC_KEY
ASoC からの API 鍵 ASOC_SECRET
ASoC からの API 秘密
を選択し、以下のように変数を設定します。 - .gitlab-CI.YAML と Dockerfile を GitLab リポジトリー・ルートにコピーします。
- 独自のランナーを作成します。 を選択し、特定のランナーの下の手順に従います。
- GitLab ランナーをセットアップするシステムで、GitLab リポジトリーが存在しない場合は、ログインしてリポジトリーを複製します。そのマシンに Docker エンジンがインストールされていることを確認します。
- Dockerfile から saclient という新規 Docker イメージを作成します。ディレクトリーをリポジトリーのルートに変更し、次のコマンドを実行して Docker イメージをビルドします。
docker build -t saclient .
重要: 最後のピリオドは、現行ディレクトリーを示します。 - GitLab では、スキャンが失敗した場合にマージされないように、 で「パイプラインは成功する必要があります」を有効化します。
- で新しいマージ要求が作成されたときに、新しいスキャン・ジョブが開始されることを確認します。
例
CentOS に GitLab ランナーをインストールする場合、ランナーを作成するには、次の手順を実行します。
- ご使用のシステム用のバイナリーをダウンロードします。
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
- 実行する許可を設定します。
sudo chmod +x /usr/local/bin/gitlab-runner
- GitLab ランナー・ユーザーを作成します。
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
- サービスとしてインストールして実行します。
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner sudo gitlab-runner start
- ランナーを登録します。
sudo gitlab-runner register --url https://gitlab.com/ --registration-token $REGISTRATION_TOKEN
追加情報
現在の yaml
スクリプトには、セキュリティー問題の許容数が特定のしきい値を超えるとスキャンに失敗するセキュリティー・ポリシー・チェックのサンプルが含まれています。サンプルの maxIssuesAllowed
は 200
に設定されています。