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 つの変数を作成します。を選択し、以下のように変数を設定します。
変数 値 APP_IDASoC からのアプリケーション ID ASOC_KEYASoC からの API 鍵 ASOC_SECRETASoC からの 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 に設定されています。