道路千万条,安全第一条;
镜像不规范,同事两行泪。
Trivy 是一个面向镜像的漏洞检测工具,具备如下特点:
开源免费易用准确度高CI 友好相对于老前辈 Clair,Trivy 的使用非常直观方便,适用于更多的场景。
下面是官方出具的对比表格:
扫描器操作系统依赖检测适用性准确度CI 友好Trivy◯◯◯◎◯Clair◯×△◯△Anchore Engine◯△△◯△Quay◯×◯◯×MicroScanner◯×◯△◯Docker Hub◯×◯××GCR◯×◯◯×
另外还提供了精确度的对比表格,但是追究下来,无非是采用的参考数据的差异。至少这并不是我看重的东西,顺手是第一要务。
安装
MacOS
$ brew tap knqyf263/trivy$ brew install knqyf263/trivy/trivyRHEL/CentOS
$ sudo vim /etc/yum.repos.d/trivy.repo[trivy]name=Trivy repositorybaseurl=使用
这个工具的最大闪光点就是提供了很多适合用在自动化场景的用法。
扫描镜像:
$ trivy centos扫描镜像文件
$ docker save ruby:2.3.0-alpine3.9 -o ruby-2.3.0.tar$ trivy --input ruby-2.3.0.tar根据严重程度进行过滤
$ trivy --severity HIGH,CRITICAL ruby:2.3.0忽略未修复问题
$ trivy --ignore-unfixed ruby:2.3.0忽略特定问题
使用 .trivyignore:
$ cat .trivyignore# Accept the riskCVE-2018-14618# No impact in our settingsCVE-2019-1543$ trivy python:3.4-alpine3.9使用 JSON 输出结果
$ trivy -f json dustise/translat-chatbot:20190428-5定义返回值
$ trivy --exit-code 0 --severity MEDIUM,HIGH ruby:2.3.0$ trivy --exit-code 1 --severity CRITICAL ruby:2.3.0总结
相对于其它同类工具,Trivy 非常适合自动化操作,从 CircleCI 之类的公有服务,到企业内部使用的 Jenkins、Gitlab 等私有工具,或者作为开发运维人员的自测环节,都有 Trivy 的用武之地。
参考链接