
KubeTrivy は、Kubernetes向けにTrivyを拡張したものです。
KubeTrivy は、Kubernetes向けのシンプルで包括的な脆弱性スキャナーです。
KubeTrivy は、OSパッケージ(Alpine、RHEL、CentOSなど)およびアプリケーション依存関係(Bundler、Composer、npm、yarnなど)の脆弱性を検出します。
KubeTrivy は使い方が簡単です。バイナリをインストールするだけで、すぐにスキャンできます。スキャンに必要な作業は、Kubernetes上のコンテナのイメージ名を指定するだけです。
Trivy についてはこちらをご覧ください。
kubectl get vulnerability または kubetrivy get ${resourceName} で脆弱性情報を取得$ brew tap masahiro331/kube-tirvy
$ brew install kube-trivy
$ kubetrivy -h
$ go get -u github.com/masahiro331/kube-trivy
$ kubetrivy -h
$ cat << EOS > crd.yaml
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
name: vulnerabilities.kubetrivy.io
spec:
group: kubetrivy.io
version: v1
names:
kind: Vulnerability
plural: vulnerabilities
scope: Namespaced
additionalPrinterColumns:
- name: UNKNOWN
type: integer
description: The total of vulnerabilities launched by the kubetrivy
JSONPath: .spec.statistics.UNKNOWN
- name: LOW
type: integer
description: The total of vulnerabilities launched by the kubetrivy
JSONPath: .spec.statistics.LOW
- name: MEDIUM
type: integer
description: The total of vulnerabilities launched by the kubetrivy
JSONPath: .spec.statistics.MEDIUM
- name: HIGH
type: integer
description: The total of vulnerabilities launched by the kubetrivy
JSONPath: .spec.statistics.HIGH
- name: CRITICAL
type: integer
description: The total of vulnerabilities launched by the kubetrivy
JSONPath: .spec.statistics.CRITICAL
EOS
$ kubectl apply -f crd.yaml
$ kubectl get vulnerability
$ kubetrivy -n default scan
$ kubetrivy -n default scan
$ kubectl get vulnerability -n default
$ kubetrivy -n default get ${resourceName}