全面易用的鏡像漏洞檢測工具:Trivy

道路千萬條,安全第一條;

鏡像不規範,同事兩行淚。

Trivy 是一個面向鏡像的漏洞檢測工具,具備如下特點:

  1. 開源
  2. 免費
  3. 易用
  4. 準確度高
  5. CI 友好

相對於老前輩 Clair,Trivy 的使用非常直觀方便,適用於更多的場景。

下面是官方出具的對比表格:

掃描器操作系統依賴檢測適用性準確度CI 友好Trivy◯◯◯◎◯Clair◯×△◯△Anchore Engine◯△△◯△Quay◯×◯◯×MicroScanner◯×◯△◯Docker Hub◯×◯××GCR◯×◯◯×

另外還提供了精確度的對比表格,但是追究下來,無非是採用的參考數據的差異。至少這並不是我看重的東西,順手是第一要務。

安裝

MacOS

$ brew tap knqyf263/trivy
$ brew install knqyf263/trivy/trivy

RHEL/CentOS

$ sudo vim /etc/yum.repos.d/trivy.repo
[trivy]
name=Trivy repository
baseurl=https://knqyf263.github.io/trivy-repo/rpm/releases/$releasever/$basearch/
gpgcheck=0
enabled=1
$ sudo yum -y update
$ sudo yum -y install trivy

使用

這個工具的最大閃光點就是提供了很多適合用在自動化場景的用法。

掃描鏡像:

$ 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 risk
CVE-2018-14618
# No impact in our settings
CVE-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 的用武之地。

參考鏈接

https://github.com/knqyf263/trivy


分享到:


相關文章: