星期三, 1月 25, 2023

trivy-operator

Trivy 是 AquaSecurity 開發的工具,它可以掃描漏洞與有問題的設定檔,而且這工具有開源出來,真的是很佛心。

Trivy 有提供 CLI ,可以搭配 CI 作映像檔掃描,它也有提供 Operator ,可以安裝到 Kubernetes/OpenShift 裡,在佈署容器以後,他會自動的掃描,並產出漏洞報告。

安裝

安裝相當簡單,這邊使用 helm 來安裝,主要是因為這樣好管理。安裝步驟是參考這份文件:Helm – Trivy Operator

加入 helm repository

helm repo add aqua https://aquasecurity.github.io/helm-charts/
helm repo update

安裝

helm install trivy-operator aqua/trivy-operator \
  --namespace trivy-system \
  --create-namespace \
  --set="trivy.ignoreUnfixed=true" \
  --version 0.10.1

檢查

helm list -n trivy-system
kubectl get deployment -n trivy-system

應該會看到以下的輸出

$ helm list -n trivy-system
NAME                 NAMESPACE           REVISION    UPDATED                                 STATUS      CHART                       APP VERSION
trivy-operator   trivy-system    1           2021-01-27 20:09:53.158961 +0100 CET    deployed    trivy-operator-0.10.1   0.10.1

$ kubectl get deployment -n trivy-system
NAME                 READY   UP-TO-DATE   AVAILABLE   AGE
trivy-operator   1/1     1            1           11m

使用

安裝完成以後,Trivy 會自動開始對所有 deployment/daemonset/pod 等的 image 去做掃描。

可以用以下指令去看掃描報告的列表,報告有兩種,一種是安全漏洞的 (vulnerabilityreports) ,一種是稽核的 (configauditreports)

kubectl get vulnerabilityreports -A -o wide
kubectl get configauditreports -A -o wide

後續佈署上去的,也會自動掃描。

要看報告內容,可以用 get/describe 來察看

kubectl get vulnerabilityreport replicaset-nginx-5fbc65fff-nginx -o yaml
kubectl describe configauditreport replicaset-nginx-5fbc65fff

報告預設是 24 小時後刪除,然後重新掃描,如果要調整,可以修改 trivy-operator 這個 deployment 裡的 OPERATOR_SCANNER_REPORT_TTL 環境變數。

後續

後續延伸的議題是 trivy 的掃描依據是什麼呢?若在封閉的環境下,能否使用?若可以使用,又該如何更新呢?

結論

感謝 AquaSecurity 提供的這個工具,讓容器平台能更安全。

沒有留言: