オフライン環境でのDASTの実行

インターネットを通じた外部リソースへのアクセスが制限されている、制限されている、または断続的な環境にある自己管理GitLabインスタンスでは、DASTジョブを正常に実行するためにいくつかの調整が必要です。詳細については、オフライン環境を参照してください。

オフラインDASTサポートの要件

オフライン環境でDASTを使用するには、以下が必要です:

GitLab Runnerのデフォルトのpull policyalways、つまりランナーはGitLabコンテナレジストリからDockerイメージを引き出そうとします、たとえ内部コピーが利用可能であっても。ローカルで利用可能なDockerイメージのみを使用したい場合は、オフライン環境でGitLab Runnerpull_policyif-not-present に設定することができます。しかし、オフライン環境でない場合は、CI/CDパイプラインで更新されたスキャナを使用できるようにするため、プルポリシー設定をalways に保つことをお勧めします。

GitLab DASTアナライザーイメージをDockerレジストリ内で利用可能にします。

DASTについては、registry.gitlab.com 、以下のデフォルトDASTアナライザーイメージをローカルのDockerコンテナレジストリにインポートしてください:

  • registry.gitlab.com/security-products/dast:latest

DockerイメージをローカルのオフラインDockerレジストリにインポートするプロセスは、ネットワークセキュリティポリシーによって異なります。外部リソースをインポートしたり、一時的にアクセスしたりするための承認者プロセスを見つけるために、IT担当者に相談してください。これらのスキャナは定期的に新しい定義に更新されます。

Dockerイメージをファイルとして保存し、転送する方法の詳細については、docker savedocker loaddocker exportdocker importのDockerドキュメントを参照してください。

ローカルDASTアナライザを使用するためのDAST CI/CDジョブ変数の設定

.gitlab-ci.yml ファイルに以下の設定を追加します。image 、ローカルのDockerコンテナレジストリにホストされているDAST Dockerイメージを参照するように置き換える必要があります:

include:
  - template: DAST.gitlab-ci.yml
dast:
  image: registry.example.com/namespace/dast:latest

これでDASTジョブは、DASTアナライザのローカルコピーを使用して、インターネットにアクセスしなくてもコードをスキャンし、セキュリティレポートを生成できるようになります。

あるいは、CI/CD 変数SECURE_ANALYZERS_PREFIX を使って、dast イメージの基本レジストリアドレスを上書きすることもできます。