iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
DevOps

連DevSecOps都不知道怎麼發音怎麼開始學習?系列 第 11

Day.11 DevSecOps 的第四道防線:Trivy 掃描容器,檢查補給車裡的暗雷

  • 分享至 

  • xImage
  •  

再堅固的城牆,也擋不住你自己把有毒的補給車推進來。

1. 前言

前幾天我們從 程式碼、依賴、Secrets 三個角度逐步加上安全檢查。這些檢查都鎖定「開發層級」:你寫了什麼、你裝了什麼、你是不是不小心洩漏了鑰匙。

但 DevSecOps 的工作不會停在程式碼,而是會進一步把應用打包成容器,再丟到雲端或叢集裡跑。這時候風險也跟著轉移——容器映像檔本身就可能帶著漏洞

這就是 Trivy 要解決的問題。它不是看你寫的程式碼,而是檢查整台「補給車」——基底 OS、系統套件、安裝的依賴,裡面是不是藏了暗雷。

為什麼容器需要安全掃描?

基底映像檔不是你自己維護的
大家常用的 python:3.10、ubuntu:20.04 都來自社群或官方團隊。看似可靠,但其實可能累積了數十個已知漏洞。

漏洞藏在更底層
就算應用程式安全,openssl、glibc、curl 這些系統套件若出問題,整個容器還是暴露在攻擊面下。

部署規模放大風險
容器不像單一程式,是會被大量複製、佈署的。如果基底映像檔帶著漏洞,你等於把一台危險補給車複製上百份,推進每個城門口。

2. Trivy 基礎操作

安裝:
一樣 windows 到 github 下載( Trivy )

這邊示範掃描官方映像檔

trivy image python:3.10

結果會列出漏洞數量,並依嚴重性分級,例如:

Total: 42 (CRITICAL: 2, HIGH: 8, MEDIUM: 20, LOW: 10)

Trivy 會交叉比對「你的映像檔 → OS 套件 → 已知漏洞資料庫 (CVE)」,把問題逐層列出來。
Critical / High:必須立即處理(換基底、升級套件)。
Medium / Low:可以列入技術債,或等官方基底更新後再同步。

掃描自己的應用

建立一個簡單 Dockerfile:

FROM python:3.10-slim

WORKDIR /app
COPY . /app

RUN pip install -r requirements.txt

CMD ["python", "app.py"]

Build:

docker build -t myapp:latest .

用 Trivy 掃:

trivy image myapp:latest

這時候 Trivy 不只會掃基底 OS,還會掃你安裝的 Python 套件,可跟 Day.9 的 pip-audit 配合使用

3. 與 CI/CD 整合

.github/workflows/ci.yml 裡加入:

- name: Build Docker image
  run: docker build -t myapp:latest .

- name: Scan Docker image with Trivy
  uses: aquasecurity/trivy-action@0.13.0
  with:
    image-ref: myapp:latest
    format: 'table'
    exit-code: '0'
    ignore-unfixed: true

初期只產出報告,不阻擋流程。等團隊熟悉後,再設定「Critical 漏洞 → fail」。
這樣既能讓大家習慣,也不會突然因為一堆高危漏洞卡住開發。

4. 基礎四防線

到今天為止,我們已經完成了 DevSecOps 的「四道防線」:

  1. Bandit (SAST) → 守住程式碼本身
  2. pip-audit (Dependency Scanning) → 守住套件依賴
  3. gitleaks (Secrets Detection) → 守住敏感資訊
  4. Trivy (Container Scanning) → 守住容器映像檔

這四道防線涵蓋了大部分初學者最容易忽略、卻最常出事的環節。
到這裡,就是一個完整的安全入門循環。

5. 總結

Trivy 幫我們把檢查範圍延伸到容器,確保「推進城牆的補給車」不會暗藏危險。
到這裡,我們把程式碼、依賴、Secrets、容器四大面向都補齊了。

這不代表 DevSecOps 到此為止,而是 入門階段完成一輪循環。


上一篇
Day.10 DevSecOps 的第三道防線:檢查城門鑰匙 (Secrets Detection)
下一篇
Day.12 DevSecOps 的隱形防線:確保 Pipeline 自己不成為破口
系列文
連DevSecOps都不知道怎麼發音怎麼開始學習?22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言