Trivy 全方位漏洞掃描器教學:Docker 容器安全必備神器

# Trivy 係咩嚟㗎?點解你需要呢個 Docker 漏洞掃描器? 大家都知而家 container 化 deployment 好鬼普及,但你有冇諗過你個 Docker image 究竟有幾安全?你從 Docker Hub pull 落嚟嘅 image 可能包咗幾百個已知漏洞,而你完全唔知!今日就同大家介紹一個開源神器 — **Trivy**,由 Aqua Security 開發嘅全方位漏洞掃描...

# 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 安全加固實戰