KBOM = Kubernetes Bills Of Material,就是 Kubernetes 的物料清單。
trivy 是由 Aqua Security 所開發的一個掃描工具,現在支援了 KBOM,可以依據 Kubernetes 務料清單裡的軟體來進行掃描,並產出報告。
安裝可以從 https://github.com/aquasecurity/trivy 來下載安裝,有提供以下方式
- Container image
- Debian package
- RPM package
- Homebrew
安裝好以後,就可以使用了。
那要掃描 KBOM ,要先產出 kbom.json,用以下指令就可以產出。這邊要注意,執行 trivy 的電腦上必須已經放置 ~/.kube/config
,這樣 trivy 才能存取到 k8s cluster。
trivy k8s cluster --format cyclonedx --output kbom.json
有了 kbom.json 以後,就可以用以下指令產出報告
trivy sbom kbom.json
我的 k8s 報告如下
2024-02-18T15:29:26.693+0800 INFO Vulnerability scanning is enabled
2024-02-18T15:29:26.694+0800 INFO Detected SBOM format: cyclonedx-json
2024-02-18T15:29:26.720+0800 WARN No OS package is detected. Make sure you haven't deleted any files that contain information about the installed packages.
2024-02-18T15:29:26.721+0800 WARN e.g. files under "/lib/apk/db/", "/var/lib/dpkg/" and "/var/lib/rpm"
2024-02-18T15:29:26.721+0800 INFO Detected OS: ubuntu
2024-02-18T15:29:26.721+0800 WARN This OS version is not on the EOL list: ubuntu 22.04.3
2024-02-18T15:29:26.721+0800 INFO Detecting Ubuntu vulnerabilities...
2024-02-18T15:29:26.721+0800 INFO Number of language-specific files: 3
2024-02-18T15:29:26.722+0800 INFO Detecting kubernetes vulnerabilities...
2024-02-18T15:29:26.728+0800 INFO Detecting gobinary vulnerabilities...
kbom.json (ubuntu 22.04.3)
Total: 0 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 0)
(gobinary)
Total: 3 (UNKNOWN: 0, LOW: 0, MEDIUM: 3, HIGH: 0, CRITICAL: 0)
┌──────────────────────────────────┬─────────────────────┬──────────┬────────┬───────────────────┬────────────────┬──────────────────────────────────────────────────────────┐
│ Library │ Vulnerability │ Severity │ Status │ Installed Version │ Fixed Version │ Title │
├──────────────────────────────────┼─────────────────────┼──────────┼────────┼───────────────────┼────────────────┼──────────────────────────────────────────────────────────┤
│ github.com/containerd/containerd │ CVE-2023-25153 │ MEDIUM │ fixed │ 1.6.15 │ 1.5.18, 1.6.18 │ containerd: OCI image importer memory exhaustion │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-25153 │
│ ├─────────────────────┤ │ │ │ ├──────────────────────────────────────────────────────────┤
│ │ CVE-2023-25173 │ │ │ │ │ containerd: Supplementary groups are not set up properly │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2023-25173 │
│ ├─────────────────────┤ │ │ ├────────────────┼──────────────────────────────────────────────────────────┤
│ │ GHSA-7ww5-4wqc-m92c │ │ │ │ 1.6.26, 1.7.11 │ containerd allows RAPL to be accessible to a container │
│ │ │ │ │ │ │ https://github.com/advisories/GHSA-7ww5-4wqc-m92c │
└──────────────────────────────────┴─────────────────────┴──────────┴────────┴───────────────────┴────────────────┴──────────────────────────────────────────────────────────┘
從報告可以看出軟體元件的版本跟漏洞報告。
如果不產出 kbom.json ,也可以用另外一個方式掃描
trivy k8s cluster --scanners vuln --report summary
不過這指令在我的 k8s cluster,會有問題,我猜想是我 k8s cluster 不夠力的關係,就先這樣吧。
trivy 也有 operator 可以安裝,有機會再來看看怎麼使用。
沒有留言:
張貼留言