オフライン環境でのDASTの実行
インターネットを通じた外部リソースへのアクセスが制限されている、制限されている、または断続的な環境にある自己管理GitLabインスタンスでは、DASTジョブを正常に実行するためにいくつかの調整が必要です。詳細については、オフライン環境を参照してください。
オフラインDASTサポートの要件
オフライン環境でDASTを使用するには、以下が必要です:
- GitLab Runner with the
docker
orkubernetes
executor. - DASTコンテナレジストリにあるDASTコンテナイメージのローカルで利用可能なコピーを使用したDockerコンテナレジストリ。
GitLab Runnerのデフォルトのpull policy
はalways
、つまりランナーはGitLabコンテナレジストリからDockerイメージを引き出そうとします、たとえ内部コピーが利用可能であっても。ローカルで利用可能なDockerイメージのみを使用したい場合は、オフライン環境でGitLab Runnerpull_policy
をif-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 save
、docker load
、docker export
、docker 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
イメージの基本レジストリアドレスを上書きすることもできます。