# Trivy 係咩嚟㗎?點解你需要呢個 Docker 漏洞掃描器?
大家都知而家 container 化 deployment 好鬼普及,但你有冇諗過你個 Docker image 究竟有幾安全?你從 Docker Hub pull 落嚟嘅 image 可能包咗幾百個已知漏洞,而你完全唔知!今日就同大家介紹一個開源神器 — **Trivy**,由 Aqua Security 開發嘅全方位漏洞掃描器。
👉 延伸閱讀:Linux Server 安全加固 6 步搞掂 — Defense in Depth 實戰指南
## Trivy:點解揀佢而唔係其他工具?
Trivy 最大嘅賣點係 **快、準、易用**。同傳統漏洞掃描工具比起嚟,Trivy 有以下優勢:
– 🚀 **掃描速度快** — 一般 image 十幾秒就掃完
– 📦 **覆蓋範圍廣** — 支援 Container Image、Filesystem、Git Repository、Kubernetes Cluster
– 🆓 **完全免費開源** — 唔使錢,Apache 2.0 License
– 🔄 **自動更新漏洞資料庫** — 每次執行前自動 pull 最新 CVE database
– 📊 **多種輸出格式** — Table、JSON、SARIF、Template 任你揀
## Trivy 安裝 Step-by-Step
### macOS 用戶
brew install aquasecurity/trivy/trivy
### Linux 用戶
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh
### 直接用 Docker 行(唔使裝)
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aquasec/trivy image nginx:latest
裝完之後 verify 一下:
trivy --version
# 輸出: Trivy v0.60.0 (類似咁樣)
## Trivy 基本掃描教學
### 掃描 Docker Image
最簡單嘅用法,直接 scan 一個 image:
trivy image nginx:latest
你會見到類似以下輸出:
nginx:latest (debian 12.8)
==========================
Total: 45 (UNKNOWN: 0, LOW: 12, MEDIUM: 21, HIGH: 10, CRITICAL: 2)
每一行都會列出 CVE 編號、套件名稱、受影響版本同修復版本。
### 只睇高危漏洞
嫌太多 LOW/MEDIUM 級別噪音?加個 filter:
trivy image --severity CRITICAL,HIGH nginx:latest
### 輸出 JSON Report(CI/CD 集成必用)
trivy image -f json -o trivy-report.json nginx:latest
將結果 pipe 去 jq 可以做自動化分析:
trivy image -f json --severity CRITICAL nginx:latest | jq '.Results[].Vulnerabilities[] | {VulnerabilityID, PkgName, Severity}'
## Trivy 進階用法:掃描整個 K8s Cluster
Trivy 唔止 scan image,仲可以掃你成個 Kubernetes cluster:
# Scan 特定 namespace 內所有資源
trivy k8s --namespace production --report summary
# Scan 整個 cluster(需要足夠權限)
trivy k8s cluster --report all
## Trivy 掃描 Filesystem 同 Git Repo
# Scan local filesystem
trivy fs /opt/myapp
# Scan Git repository(直接 clone + scan)
trivy repo https://github.com/myorg/myapp
## Trivy CI/CD Pipeline 整合
將 Trivy 放入 GitHub Actions:
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
with:
image-ref: 'myapp:latest'
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'CRITICAL,HIGH'
## Trivy vs 其他掃描工具
| 工具 | 速度 | 覆蓋 | 開源 | CI/CD 整合 |
|——|——|——|——|———–|
| **Trivy** | ⚡快 | 全面 | ✅ 免費 | ✅ 極佳 |
| Clair | 🐢慢 | 有限 | ✅ | ⚠️ 一般 |
| Snyk | ⚡快 | 全面 | ❌ 付費 | ✅ 極佳 |
| Grype | ⚡快 | 中 | ✅ | ✅ 良好 |
## Trivy 常見問題 FAQ
**Q: Trivy database 放喺邊?**
A: `~/.cache/trivy/db/` — 每次 scan 前會自動更新。
**Q: Offline 環境點用 Trivy?**
A: 可以手動 download DB 再 load:
trivy image --skip-db-update --offline-scan myimage:latest
**Q: Scan 出嚟好多 false positive 點算?**
A: 用 `.trivyignore` file 排除特定 CVE:
# .trivyignore
CVE-2023-XXXX
CVE-2024-YYYY
## 總結:Trivy 值得你用嘅三大理由
Trivy 係目前市面上最實用嘅開源漏洞掃描器,冇之一。無論你係 Dev 定 Ops,只要你有用 container,Trivy 都應該係你 toolbox 嘅基本裝備。快、準、易整合 CI/CD — 三個字講晒:**用咗先講**。
你有冇用過 Trivy?留言分享下你嘅經驗!👇
#Trivy #Docker #容器安全 #DevSecOps #漏洞掃描 #Kubernetes #CI/CD
📌 延伸閱讀:Linux Server 安全加固 6 步教學 | SSH 安全加固實戰



