ビルドフェーズイメージスキャン
CI/CD ビルドフェーズ脆弱性スキャン
パイプラインのビルドフェーズ中に、 Jenkins、 Azure Devops、 Github Action、 gitlab、Bamboo、および CircleCIなどのプラグインを使用して脆弱性をスキャンするか、REST APIを使用します。SUSE® Securityは、レジストリスキャンとローカルスキャンの2種類のビルドフェーズスキャンをサポートしています。レジストリスキャンの場合、SUSE® Securityコントローラーとスキャナーは、イメージをプルするためにレジストリに接続できる必要があります。
ビルドフェーズスキャンをトリガーするには、プラグイン(例:Jenkins)がコントローラーまたはAllinoneに接続できる必要があります。注意:プラグインがスキャナーを呼び出すためのデフォルトのREST APIポートは10443です。このポートは、Kubernetesのサービスを介してAllinoneまたはコントローラーを通じて公開する必要があります。または、Dockerの実行またはコンポーズファイルでポートマップ(例:- 10443:10443)を使用します。
SUSE® Securityスキャナーコンテナがデプロイされ、Allinoneまたはコントローラーに接続するように適切に構成されていることを確認してください。4.0以降では、neuvector/scannerコンテナはallinoneまたはコントローラーとは別にデプロイする必要があり、サンプルデプロイメント yaml ファイルに含まれています。
Jenkinsプラグインマネージャーからプラグインをダウンロードできます。他のプラグインは、ビルドツールのカタログまたは SUSE® Security githubページでアクセスできます。Bambooスキャナーは https://github.com/neuvector/bamboo-plugin/releases/tag/1.0.1.で入手可能で、CircleCI ORBは https://github.com/neuvector/circleci-orbで入手可能で、CircleCI ORBカタログを通じて利用できます。
ローカルビルドフェーズスキャン
ローカルスキャンの場合、SUSE® Securityスキャナーはローカルホスト(またはリモートホストのDockerコマンドで到達可能なホスト)上のイメージをスキャンしようとします。
KubernetesまたはOpenShiftベースのローカルスキャンの場合、デプロイメントSUSE® Securityセクションに示されているサンプルスキャナーデプロイメントyamlファイルのコメントアウトされたセクションを削除します。コメントアウトされたセクションは次のようになります:
env:
# Commented out sections are required only for local build-phase scanning
# - name: SCANNER_DOCKER_URL
# value: tcp://192.168.1.10:2376
- name: CLUSTER_JOIN_ADDR
value: neuvector-svc-controller.neuvector
- name: CLUSTER_ADVERTISED_ADDR
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: CLUSTER_BIND_ADDR
valueFrom:
fieldRef:
fieldPath: status.podIP
# volumeMounts:
# - mountPath: /var/run/docker.sock
# name: docker-sock
# readOnly: true
# volumes:
# - name: docker-sock
# hostPath:
# path: /var/run/docker.sock
restartPolicy: Always
Dockerネイティブのローカルスキャンの場合、スキャナーのDockerプロダクションデプロイメントセクションのDockerスキャナーデプロイメントに関する指示に従ってください。
ローカルビルドフェーズスキャン - スキャナーのみ(コントローラーは不要)
SUSE® Securityは、ローカルイメージスキャンのためのスタンドアロンスキャナーデプロイメントをサポートしています(コントローラーは不要です)。CircleCI ORBのような特定のプラグインには、ビルドジョブがイメージスキャンを必要とする際にスキャナーを動的にデプロイし、結果がORBを通じて返送された後にスキャナーを削除するオプションがあります。これらの動的スキャナーデプロイメントは、プラグインがサポートしている場合、自動的に呼び出されます。
スタンドアロンスキャナーに関する詳細は、スキャナーセクションをご覧ください。