<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Trivy on Tarragon</title><link>https://tarrragon.github.io/blog/tags/trivy/</link><description>Recent content in Trivy on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Mon, 18 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/trivy/index.xml" rel="self" type="application/rss+xml"/><item><title>Trivy</title><link>https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/trivy/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/trivy/</guid><description>&lt;p>Trivy 是 Aqua Security 維護的 &lt;em>open-source all-in-one security scanner&lt;/em>、Apache 2.0、單一 CLI 涵蓋 container image / filesystem / git repo / Kubernetes / IaC 五種 scan target、額外做 secret / license / SBOM scan。設計目標跟 &lt;a href="https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/snyk/" data-link-title="Snyk" data-link-desc="跨 SCM 多模組 application security platform：Open Source (SCA) &amp;#43; Code (SAST) &amp;#43; Container &amp;#43; IaC &amp;#43; Cloud (CSPM)、Reachability analysis">Snyk&lt;/a> 不同 — Snyk 是 SaaS-first、用 server-side dashboard 跨 SCM / 跨 repo 聚合；Trivy 是 CLI-first、零 server、CI runner 自己就能完成所有工作、air-gapped 環境也能跑。商業版 Aqua Platform 加 dashboard / RBAC / policy / runtime defense、但 Trivy 本身免費覆蓋大部分團隊需求。&lt;/p>
&lt;h2 id="服務定位">服務定位&lt;/h2>
&lt;p>Trivy 的核心定位是 &lt;em>把 supply chain scan 收斂成一個 CLI&lt;/em>。同一個 binary 處理 container image、source tree、K8s cluster live state、Terraform / Dockerfile / CloudFormation 配置、secret / license / SBOM — 不需要拼裝多個工具、不需要 SaaS account、不需要 server。跟 &lt;a href="https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/snyk/" data-link-title="Snyk" data-link-desc="跨 SCM 多模組 application security platform：Open Source (SCA) &amp;#43; Code (SAST) &amp;#43; Container &amp;#43; IaC &amp;#43; Cloud (CSPM)、Reachability analysis">Snyk&lt;/a> 商業 SaaS 的差異是 &lt;em>資料治理權&lt;/em> 在自己這邊（scan 結果不上 vendor cloud）、代價是 &lt;em>跨 repo 集中報表&lt;/em> 需要自己拼（用 Trivy Operator 或 Aqua Platform）。&lt;/p>
&lt;p>跟 &lt;a href="https://tarrragon.github.io/blog/backend/07-security-data-protection/vendors/syft-grype/" data-link-title="Syft &amp;#43; Grype" data-link-desc="Anchore 開源姐妹工具：Syft 產 SBOM (CycloneDX / SPDX) &amp;#43; Grype scan 漏洞、Unix philosophy、cosign attestation 整合">Syft + Grype&lt;/a> 的差異是 &lt;em>工具邊界劃法&lt;/em>。Anchore Syft 專做 SBOM 生成、Grype 專做 vuln scan、兩個工具靠 SBOM 標準（CycloneDX / SPDX）串接；Trivy 一個 CLI 全包、SBOM 也同樣輸出標準格式。多 vendor 並存環境（例：build pipeline 用 Syft 生 SBOM、release gate 用 Grype scan、跟 SBOM repository 互通）Syft+Grype 模組化較適合；單一團隊單一 pipeline 想 &lt;em>一次裝完&lt;/em> 用 Trivy 更直接。&lt;/p></description><content:encoded><![CDATA[<p>Trivy 是 Aqua Security 維護的 <em>open-source all-in-one security scanner</em>、Apache 2.0、單一 CLI 涵蓋 container image / filesystem / git repo / Kubernetes / IaC 五種 scan target、額外做 secret / license / SBOM scan。設計目標跟 <a href="/blog/backend/07-security-data-protection/vendors/snyk/" data-link-title="Snyk" data-link-desc="跨 SCM 多模組 application security platform：Open Source (SCA) &#43; Code (SAST) &#43; Container &#43; IaC &#43; Cloud (CSPM)、Reachability analysis">Snyk</a> 不同 — Snyk 是 SaaS-first、用 server-side dashboard 跨 SCM / 跨 repo 聚合；Trivy 是 CLI-first、零 server、CI runner 自己就能完成所有工作、air-gapped 環境也能跑。商業版 Aqua Platform 加 dashboard / RBAC / policy / runtime defense、但 Trivy 本身免費覆蓋大部分團隊需求。</p>
<h2 id="服務定位">服務定位</h2>
<p>Trivy 的核心定位是 <em>把 supply chain scan 收斂成一個 CLI</em>。同一個 binary 處理 container image、source tree、K8s cluster live state、Terraform / Dockerfile / CloudFormation 配置、secret / license / SBOM — 不需要拼裝多個工具、不需要 SaaS account、不需要 server。跟 <a href="/blog/backend/07-security-data-protection/vendors/snyk/" data-link-title="Snyk" data-link-desc="跨 SCM 多模組 application security platform：Open Source (SCA) &#43; Code (SAST) &#43; Container &#43; IaC &#43; Cloud (CSPM)、Reachability analysis">Snyk</a> 商業 SaaS 的差異是 <em>資料治理權</em> 在自己這邊（scan 結果不上 vendor cloud）、代價是 <em>跨 repo 集中報表</em> 需要自己拼（用 Trivy Operator 或 Aqua Platform）。</p>
<p>跟 <a href="/blog/backend/07-security-data-protection/vendors/syft-grype/" data-link-title="Syft &#43; Grype" data-link-desc="Anchore 開源姐妹工具：Syft 產 SBOM (CycloneDX / SPDX) &#43; Grype scan 漏洞、Unix philosophy、cosign attestation 整合">Syft + Grype</a> 的差異是 <em>工具邊界劃法</em>。Anchore Syft 專做 SBOM 生成、Grype 專做 vuln scan、兩個工具靠 SBOM 標準（CycloneDX / SPDX）串接；Trivy 一個 CLI 全包、SBOM 也同樣輸出標準格式。多 vendor 並存環境（例：build pipeline 用 Syft 生 SBOM、release gate 用 Grype scan、跟 SBOM repository 互通）Syft+Grype 模組化較適合；單一團隊單一 pipeline 想 <em>一次裝完</em> 用 Trivy 更直接。</p>
<p>跟 <a href="/blog/backend/07-security-data-protection/vendors/github-advanced-security/" data-link-title="GitHub Advanced Security" data-link-desc="GitHub 內建 4 大模組：Code Scanning (CodeQL) &#43; Secret Scanning &#43; Dependency Review &#43; Dependabot、跟 PR / Security tab 深度整合">GitHub Advanced Security</a> 的差異是 <em>偵測類型 + 部署面</em>。GHAS 綁 GitHub、SAST（CodeQL）覆蓋深、但容器掃跟 IaC scan 較弱；Trivy 跨 SCM、容器跟 IaC 掃強、但沒 SAST 深度。跟 Clair（RedHat / Quay 內建）或 Anchore Enterprise 比、Trivy 用戶基數大（CNCF Sandbox）、社群更新快、整合面廣（GitLab CI / GitHub Actions / Jenkins / CircleCI 都有官方 step）。</p>
<h2 id="本章目標">本章目標</h2>
<p>讀完本頁、讀者能判斷：</p>
<ol>
<li>Trivy 的五種 scan target（image / fs / repo / k8s / config）各承擔哪段 supply chain 責任、什麼時候用哪個</li>
<li>Trivy DB 的更新模型（OCI artifact、6 小時 cadence、air-gapped mirror）跟 CI runner 信任邊界</li>
<li><code>.trivyignore</code> 跟 severity gate 在 CI 怎麼接、exception 治理要設哪些 tripwire</li>
<li>何時用 Trivy、何時改走 <a href="/blog/backend/07-security-data-protection/vendors/snyk/" data-link-title="Snyk" data-link-desc="跨 SCM 多模組 application security platform：Open Source (SCA) &#43; Code (SAST) &#43; Container &#43; IaC &#43; Cloud (CSPM)、Reachability analysis">Snyk</a> / <a href="/blog/backend/07-security-data-protection/vendors/syft-grype/" data-link-title="Syft &#43; Grype" data-link-desc="Anchore 開源姐妹工具：Syft 產 SBOM (CycloneDX / SPDX) &#43; Grype scan 漏洞、Unix philosophy、cosign attestation 整合">Syft + Grype</a> / <a href="/blog/backend/07-security-data-protection/vendors/github-advanced-security/" data-link-title="GitHub Advanced Security" data-link-desc="GitHub 內建 4 大模組：Code Scanning (CodeQL) &#43; Secret Scanning &#43; Dependency Review &#43; Dependabot、跟 PR / Security tab 深度整合">GHAS</a> 的取捨</li>
</ol>
<h2 id="最短判讀路徑">最短判讀路徑</h2>
<p>判斷 Trivy 配置是否健康、最少看四件事：</p>
<ul>
<li><strong>scan target 覆蓋面</strong>：是否 image / fs / config / secret 四類都跑（不是只 scan image）、CI 是否把 dev container / base image / runtime image 全納入 — 漏掉 base image 等於信任 upstream registry</li>
<li><strong>Trivy DB 更新 cadence</strong>：CI runner 是否每次都 pull 最新 DB（OCI artifact、預設 6 小時 TTL）、air-gapped 環境是否有內部 mirror（<code>--db-repository</code> 指到內部 registry）、<code>trivy --skip-db-update</code> 是否被誤用</li>
<li><strong>severity gate 是否真的 fail build</strong>：Trivy 預設 scan 完 exit 0、CI 不會 fail；需要 <code>--exit-code 1 --severity HIGH,CRITICAL</code> 才會把 PR build 擋下來、否則 scan 結果只在 log、沒人看</li>
<li><strong><code>.trivyignore</code> 治理</strong>：ignore 的 CVE 有 reason + expiration 嗎、quarterly review 流程在嗎、<code>.trivyignore.yaml</code> 有用嗎 — 沒治理的 ignore list 會無限膨脹、最後等於沒 scan</li>
</ul>
<p>四件事任一缺失、就是 <a href="/blog/backend/07-security-data-protection/supply-chain-integrity-and-artifact-trust/" data-link-title="7.12 供應鏈完整性與 Artifact 信任" data-link-desc="定義 build provenance、artifact 信任與交付鏈風險問題">supply chain integrity</a> 邊界的待補項目。</p>
<h2 id="日常操作與決策形狀">日常操作與決策形狀</h2>
<p><strong>CLI 五種 scan target</strong>：<code>trivy image &lt;ref&gt;</code> 掃 container image 的 OS package + language dependency；<code>trivy fs &lt;dir&gt;</code> 掃 source tree（含 lockfile + Dockerfile + IaC manifest + secret）；<code>trivy repo &lt;url&gt;</code> 不 clone 直接掃 git repo；<code>trivy k8s --report summary cluster</code> 掃 K8s cluster 內所有 workload（image + manifest 配置）；<code>trivy config &lt;dir&gt;</code> 專掃 IaC 配置（Terraform / CloudFormation / K8s YAML / Dockerfile / Helm）。本地 dev 最常用 <code>trivy fs .</code>、CI 最常用 <code>trivy image $IMAGE</code>、K8s 場景用 Trivy Operator 跑 in-cluster scan。</p>
<p><strong>Trivy DB（OCI artifact）</strong>：Trivy 自己維護 vulnerability DB、以 OCI artifact 形式存在 <code>ghcr.io/aquasecurity/trivy-db</code>、每 6 小時更新一次。CI runner 第一次 scan 自動 pull、後續用 cache。air-gapped 環境（金融 / 政府 / 工控）需要把 DB mirror 到內部 OCI registry、<code>--db-repository internal.registry/trivy-db</code> 指過去。DB 內容是 aggregated source — NVD、GHSA、各 Linux distro security advisory、language ecosystem advisory（npm / PyPI / Maven / RubyGems / crates.io / Go / etc.）合在一起、所以單一查詢就能跨多生態。</p>
<p><strong><code>.trivyignore</code> 跟 <code>.trivyignore.yaml</code></strong>：scan 發現的 CVE 若已評估無風險（無 reachable code path、已有 mitigation、upstream 尚未 patch 但業務不受影響）寫進 <code>.trivyignore</code>（純 CVE-ID list）或 <code>.trivyignore.yaml</code>（含 <code>expired_at</code> + <code>comment</code> + <code>paths</code>、更適合治理）。後者強制每筆 ignore 有 expiration（建議 quarterly）跟 reason、過期自動失效、避免 ignore list 變成「忘了清的死帳」。CI 應該每季跑 <code>trivy --ignorefile .trivyignore.yaml</code> 同時 alert 即將過期的條目。</p>
<p><strong>Severity gate 是 CI 必設</strong>：Trivy 預設 scan 完 print 結果但 exit 0、CI build 不會 fail。要在 CI 真正擋下高風險 PR、必須 <code>trivy image --exit-code 1 --severity HIGH,CRITICAL $IMAGE</code>。Severity 級別（UNKNOWN / LOW / MEDIUM / HIGH / CRITICAL）對應 CVSS score、團隊需要決定 <em>什麼 severity 算 release blocker</em>。常見 baseline：CRITICAL fail PR build、HIGH fail nightly build（給 24 小時修補窗口）、MEDIUM 進 backlog ticket。</p>
<p><strong>SBOM 生成與 scan</strong>：<code>trivy image --format cyclonedx --output sbom.json $IMAGE</code> 生 CycloneDX 格式 SBOM、<code>--format spdx-json</code> 生 SPDX。也可以反向 — 拿別人生的 SBOM 餵給 Trivy：<code>trivy sbom sbom.json</code> 跑 vuln scan、不重新解析 image。這個 workflow 跟 <a href="/blog/backend/07-security-data-protection/vendors/syft-grype/" data-link-title="Syft &#43; Grype" data-link-desc="Anchore 開源姐妹工具：Syft 產 SBOM (CycloneDX / SPDX) &#43; Grype scan 漏洞、Unix philosophy、cosign attestation 整合">Syft + Grype</a> 重疊（Syft 生 SBOM + Grype scan SBOM）、差別是 Trivy 一站完成、Syft+Grype 拆兩階段更模組化。SBOM artifact 進 OCI registry（用 cosign attach）或 SBOM repository（如 Dependency-Track）做長期追蹤。</p>
<p><strong>Misconfig + Secret + License 一起 scan</strong>：<code>trivy fs .</code> 預設啟用四類 scanner — vuln（package CVE）、misconfig（IaC 配置錯誤）、secret（hardcoded credential）、license（license compliance）。Misconfig 內建 hundreds of built-in policy（Rego 寫的）涵蓋 K8s / Terraform / Docker / CloudFormation 常見錯誤（privileged container / open S3 bucket / 0.0.0.0/0 ingress）。Secret scanner 用 regex pattern 找 AWS access key / GCP service account / Stripe key 等常見格式、不是萬能、但 dev pre-commit 攔截已洩漏 secret 很實用。</p>
<p><strong>Trivy Operator（K8s in-cluster scanner）</strong>：K8s 場景的標準配置。Operator 在 cluster 跑、定期 scan 所有 namespace 的 workload、產 CRD reports：<code>VulnerabilityReport</code>（image CVE）、<code>ConfigAuditReport</code>（manifest 配置）、<code>SbomReport</code>、<code>ClusterComplianceReport</code>（CIS Kubernetes Benchmark / NSA Kubernetes Hardening Guide）。Operator 可選配 ValidatingAdmissionWebhook、admission 階段拒絕高風險 image（CVE severity 超門檻）。Reports 是 CRD、可以走 <code>kubectl get vulnerabilityreport</code> 看、也可以 prometheus exporter 出 metric 進 Grafana。</p>
<p><strong>Aqua Platform 整合</strong>：Trivy CLI / Operator 結果可以推到 Aqua Platform（商業版）做集中 dashboard、跨 cluster RBAC、policy engine、compliance report、runtime defense（runtime container 監控）。純 CLI 用戶不需要、但企業有多 cluster + 跨團隊 governance 需求時、Aqua Platform 補 server-side aggregation 那塊（對應 Snyk dashboard 的功能）。</p>
<h2 id="核心取捨表">核心取捨表</h2>
<table>
  <thead>
      <tr>
          <th>取捨維度</th>
          <th>Trivy</th>
          <th>Snyk</th>
          <th>Syft + Grype</th>
          <th>GitHub Advanced Security</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>部署模型</td>
          <td>CLI-only、零 server</td>
          <td>SaaS-first、需要 Snyk account</td>
          <td>CLI-only、兩個 binary</td>
          <td>綁 GitHub、整合在 PR / Code Scanning</td>
      </tr>
      <tr>
          <td>授權</td>
          <td>Apache 2.0、完全免費</td>
          <td>商業 SaaS（Free tier + 付費 plan）</td>
          <td>Apache 2.0、完全免費</td>
          <td>GitHub Enterprise add-on</td>
      </tr>
      <tr>
          <td>Scan target</td>
          <td>image / fs / repo / k8s / config</td>
          <td>image / SCA / IaC / Code (SAST) / Container</td>
          <td>image / fs（SBOM-first）</td>
          <td>SAST (CodeQL) + Dependabot + Secret scanning</td>
      </tr>
      <tr>
          <td>Vulnerability DB</td>
          <td>Trivy DB（OCI artifact、6h cadence、可 mirror）</td>
          <td>Snyk Intel（私有、含 reachability data）</td>
          <td>Grype DB（GitHub-hosted、可 mirror）</td>
          <td>GitHub Advisory DB</td>
      </tr>
      <tr>
          <td>Reachability</td>
          <td>無</td>
          <td>有（Snyk Code reachability）</td>
          <td>無</td>
          <td>部分（CodeQL data flow）</td>
      </tr>
      <tr>
          <td>SBOM 支援</td>
          <td>生 + scan（CycloneDX / SPDX）</td>
          <td>生（Snyk SBOM）</td>
          <td>Syft 生、Grype scan、最完整 SBOM workflow</td>
          <td>部分（Dependency Graph）</td>
      </tr>
      <tr>
          <td>K8s in-cluster</td>
          <td>Trivy Operator（CRD reports + admission）</td>
          <td>Snyk Kubernetes（agent-based）</td>
          <td>無原生、靠外部 wrapper</td>
          <td>無</td>
      </tr>
      <tr>
          <td>跨 repo 報表</td>
          <td>Trivy 本身無、Aqua Platform 補</td>
          <td>Snyk dashboard（強項）</td>
          <td>無原生、靠外部</td>
          <td>GitHub Security tab（綁 GitHub）</td>
      </tr>
      <tr>
          <td>Air-gapped 支援</td>
          <td>強 — DB 可 mirror 到內部 registry</td>
          <td>弱 — 需要 Snyk SaaS（Snyk On-Prem 商業版另算）</td>
          <td>強 — DB 可 mirror</td>
          <td>弱 — 綁 GitHub.com</td>
      </tr>
      <tr>
          <td>學習曲線</td>
          <td>低 — 一個 CLI + 通用 flag</td>
          <td>低 — UI 友善、CLI 也順</td>
          <td>中 — 兩個工具拼、SBOM 概念要懂</td>
          <td>中 — CodeQL query 寫 / 調有門檻</td>
      </tr>
      <tr>
          <td>適合場景</td>
          <td>CI image scan、K8s scan、air-gapped、OSS-only 預算</td>
          <td>跨 SCM 跨 repo 集中治理、SaaS 預算 OK、需 reachability</td>
          <td>SBOM 為主軸的 supply chain、多 vendor 互通</td>
          <td>GitHub-only + 需要 SAST 深度</td>
      </tr>
  </tbody>
</table>
<p>選 Trivy 的核心訴求：<em>零 server / OSS-only 預算 / air-gapped 友善 / 一個 CLI 涵蓋 container + IaC + secret</em>。需要跨 SCM 集中 dashboard 跟 reachability 走 Snyk；純 SBOM workflow + 多工具互通走 Syft+Grype；GitHub-only + 重 SAST 走 GHAS。</p>
<h2 id="進階主題">進階主題</h2>
<p><strong>Trivy Operator + admission control</strong>：Operator 跑 ValidatingAdmissionWebhook、admission 階段對 Pod spec 的 image 跑 vuln check、超門檻就拒絕創建。對應 <a href="/blog/backend/07-security-data-protection/supply-chain-integrity-and-artifact-trust/" data-link-title="7.12 供應鏈完整性與 Artifact 信任" data-link-desc="定義 build provenance、artifact 信任與交付鏈風險問題">supply chain integrity</a> 的 <em>artifact gate at deploy time</em>。組態要小心 — webhook timeout / Trivy DB 不可用 / Operator 自己 down 都會擋住 deploy、production 通常 fail-open（DB 不可用時放行 + alert）而非 fail-close。</p>
<p><strong>Custom check（Rego policy）</strong>：Trivy misconfig scanner 用 Rego 寫 policy、可以自己加 custom check（例：禁止特定 namespace 用 hostPath volume、禁止特定 IAM action）。policy 走 <code>--policy ./custom-policies/</code> 載入、跟內建 policy 一起跑。比 OPA Gatekeeper 簡單（不需要部署 admission webhook、scan-time 就執行）、但 runtime enforcement 還是要靠 Gatekeeper / Kyverno。</p>
<p><strong>Air-gapped DB sync</strong>：金融 / 政府 / 工控環境 CI runner 不能連外網。流程是：有對外網的 staging machine 跑 <code>trivy --download-db-only</code> 把 OCI artifact 拉下來、用 <code>skopeo copy</code> 推到內部 OCI registry、CI runner 用 <code>--db-repository internal.registry/trivy-db --skip-db-update</code>（或排程從內部 mirror pull）。DB 更新節奏要排程化（每天 / 每 6 小時）、否則 air-gapped DB 落後幾天會 miss 掉新公布 CVE。</p>
<p><strong>Cosign + SLSA + Trivy 三件事</strong>：Trivy 看的是 <em>known CVE</em>、看不到 <em>build-time backdoor</em>。配套需要 Sigstore cosign 做 image signature verify（確認 image 真的是自家 CI 出的）+ SLSA provenance（build pipeline 不可篡改紀錄）+ Trivy scan（known CVE）三件事一起、才是完整 supply chain trust chain。對應 <a href="/blog/backend/07-security-data-protection/vendors/cert-manager/" data-link-title="cert-manager" data-link-desc="K8s 原生 certificate lifecycle automation、支援 Let&#39;s Encrypt / Vault PKI / Venafi 等多 issuer、auto-renewal &#43; Challenge solver">Cert-manager</a> 在 TLS 的角色、Trivy 在 supply chain 的角色是 <em>已知漏洞檢測</em>、不是 <em>trust establishment</em>。</p>
<h2 id="排錯與失敗快速判讀">排錯與失敗快速判讀</h2>
<ul>
<li><strong>CI 顯示 scan 完但 build 沒 fail</strong>：忘了 <code>--exit-code 1 --severity HIGH,CRITICAL</code>、scan 結果只在 log、PR 一直 merge 進高風險 image — 補 severity gate flag、設 baseline</li>
<li><strong>Trivy DB 拉不下來 / 過期</strong>：CI runner 沒對外網 / GitHub Container Registry 被擋 / DB cache 太舊 — 設內部 OCI mirror、CI runner <code>--db-repository</code> 指過去、排程 update</li>
<li><strong><code>.trivyignore</code> 無限膨脹</strong>：用純 list 沒 expiration、團隊找不到誰加的 / 為什麼加 — 改 <code>.trivyignore.yaml</code> 強制 reason + expiration、quarterly review 排進 sprint</li>
<li><strong>false positive 多到 alert fatigue</strong>：base image 自帶大量未修補 OS package、scan 出 50+ HIGH — 換 distroless / Chainguard / Wolfi 等 <em>minimal base image</em>、或 multi-stage build 只保留必要 binary、不是調高門檻當沒看到</li>
<li><strong>secret scanner 漏報</strong>：hardcoded credential 是非標準格式（內部 token、特殊 vendor key）— 加 custom secret pattern、或配合 dedicated tool（Gitleaks / GitGuardian）做第二道</li>
<li><strong>Trivy Operator 報表沒人看</strong>：reports 是 CRD、<code>kubectl get</code> 才看到、PR / Slack 沒通知 — 接 prometheus exporter + Grafana alert、或 webhook 推 Slack</li>
<li><strong>K8s admission webhook fail 擋住 deploy</strong>：Operator down / DB 不可用、所有 Pod 創建被拒 — webhook 配 <code>failurePolicy: Ignore</code>、production 通常 fail-open + alert、不是 fail-close</li>
</ul>
<h2 id="何時改走其他服務">何時改走其他服務</h2>
<table>
  <thead>
      <tr>
          <th>需求形狀</th>
          <th>改走</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>需 reachability / 跨 SCM dashboard</td>
          <td><a href="/blog/backend/07-security-data-protection/vendors/snyk/" data-link-title="Snyk" data-link-desc="跨 SCM 多模組 application security platform：Open Source (SCA) &#43; Code (SAST) &#43; Container &#43; IaC &#43; Cloud (CSPM)、Reachability analysis">Snyk</a></td>
      </tr>
      <tr>
          <td>SBOM-first / 多工具互通</td>
          <td><a href="/blog/backend/07-security-data-protection/vendors/syft-grype/" data-link-title="Syft &#43; Grype" data-link-desc="Anchore 開源姐妹工具：Syft 產 SBOM (CycloneDX / SPDX) &#43; Grype scan 漏洞、Unix philosophy、cosign attestation 整合">Syft + Grype</a></td>
      </tr>
      <tr>
          <td>SAST 深度 / GitHub-only</td>
          <td><a href="/blog/backend/07-security-data-protection/vendors/github-advanced-security/" data-link-title="GitHub Advanced Security" data-link-desc="GitHub 內建 4 大模組：Code Scanning (CodeQL) &#43; Secret Scanning &#43; Dependency Review &#43; Dependabot、跟 PR / Security tab 深度整合">GitHub Advanced Security</a>（CodeQL）</td>
      </tr>
      <tr>
          <td>純依賴升級自動化</td>
          <td><a href="/blog/backend/07-security-data-protection/vendors/dependabot/" data-link-title="Dependabot" data-link-desc="GitHub 原生依賴更新自動化、Version Update &#43; Security Update &#43; Alerts、Grouped Updates 減 PR noise、Auto-merge 配 branch protection">Dependabot</a></td>
      </tr>
      <tr>
          <td>Runtime container monitoring</td>
          <td>Falco / Cilium Tetragon / Aqua Runtime（商業版）</td>
      </tr>
      <tr>
          <td>TLS / mTLS cert lifecycle</td>
          <td><a href="/blog/backend/07-security-data-protection/vendors/cert-manager/" data-link-title="cert-manager" data-link-desc="K8s 原生 certificate lifecycle automation、支援 Let&#39;s Encrypt / Vault PKI / Venafi 等多 issuer、auto-renewal &#43; Challenge solver">cert-manager</a></td>
      </tr>
      <tr>
          <td>Image signing / provenance</td>
          <td>Sigstore cosign + SLSA framework</td>
      </tr>
  </tbody>
</table>
<h2 id="不在本頁內的主題">不在本頁內的主題</h2>
<ul>
<li>Trivy CLI 所有 flag 跟 output format 完整 reference</li>
<li>Rego policy language 完整語法（OPA / Rego 自有體系）</li>
<li>Aqua Platform 商業版完整功能矩陣（dashboard / RBAC / runtime defense）</li>
<li>各 PCI DSS / SOC 2 / FedRAMP 合規 mapping</li>
<li>跟其他 scanner（Clair / Anchore Enterprise / Twistlock）的逐項比較</li>
</ul>
<h2 id="案例回寫">案例回寫</h2>
<p>Trivy 在 07 案例庫沒有 <em>直接 vendor-level 事件</em>（Trivy 本身 OSS、無 vendor-side 控制面風險）、但 supply chain 案例都對應 Trivy 的能力與邊界：</p>
<table>
  <thead>
      <tr>
          <th>案例</th>
          <th>跟 Trivy 的關係</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="/blog/backend/07-security-data-protection/red-team/cases/supply-chain/log4shell-cve-2021-44228-component-chain/" data-link-title="7.R7.2.7 Log4Shell 2021：共用元件風險與修補鏈" data-link-desc="共用元件漏洞如何同步影響多服務，並迫使團隊建立依賴治理 workflow">Log4Shell CVE-2021-44228</a></td>
          <td>對照啟示 — CVE 公開後 Trivy DB 幾小時內更新、scan container image 找受影響 service 是緊急 response 主軸；air-gapped 環境 DB mirror 更新節奏直接決定窗口期長度</td>
      </tr>
      <tr>
          <td><a href="/blog/backend/07-security-data-protection/red-team/cases/supply-chain/solarwinds-2020-sunburst/" data-link-title="7.R7.2.1 SolarWinds 2020：更新鏈被濫用" data-link-desc="合法更新流程遭植入後，攻擊者如何長期潛伏與橫向擴散">SolarWinds 2020 Sunburst</a></td>
          <td>對照啟示 — Trivy scan known CVE、看不到 build-time backdoor 植入；必須配合 image signing（cosign）+ SLSA provenance 才完整</td>
      </tr>
      <tr>
          <td><a href="/blog/backend/07-security-data-protection/red-team/cases/supply-chain/3cx-2023-desktopapp-supply-chain/" data-link-title="7.R7.2.8 3CX 2023：桌面軟體更新鏈攻擊" data-link-desc="合法更新流程被植入後，桌面端供應鏈事件如何傳到企業端點">3CX 2023 Desktop App Supply Chain</a></td>
          <td>對照啟示 — container scan 看 image layer 內 known CVE、看不到 runtime callback / dynamic load；需配合 runtime monitoring（Falco / Tetragon）</td>
      </tr>
      <tr>
          <td><a href="/blog/backend/07-security-data-protection/red-team/cases/supply-chain/xz-backdoor-2024-open-source-supply-chain/" data-link-title="7.R7.2.4 XZ Backdoor 2024：開源供應鏈長期滲透" data-link-desc="開源維護鏈遭滲透後，為何會直接影響廣泛 Linux 發行流程">XZ Backdoor 2024</a></td>
          <td>對照啟示 — Trivy 比對 package name + version 對應 CVE、看不到 maintainer takeover；mitigation 走 SBOM provenance + maintainer trust baseline</td>
      </tr>
      <tr>
          <td><a href="/blog/backend/07-security-data-protection/supply-chain-integrity-and-artifact-trust/" data-link-title="7.12 供應鏈完整性與 Artifact 信任" data-link-desc="定義 build provenance、artifact 信任與交付鏈風險問題">7.12 供應鏈完整性與 Artifact 信任</a></td>
          <td>章節原則 — Trivy 是 <em>known CVE 檢測</em>、SBOM + signing + provenance 三件事一起才形成完整 trust chain</td>
      </tr>
  </tbody>
</table>
<h2 id="下一步路由">下一步路由</h2>
<ul>
<li>上游：<a href="/blog/backend/07-security-data-protection/supply-chain-integrity-and-artifact-trust/" data-link-title="7.12 供應鏈完整性與 Artifact 信任" data-link-desc="定義 build provenance、artifact 信任與交付鏈風險問題">7.12 供應鏈完整性與 Artifact 信任</a></li>
<li>平行：<a href="/blog/backend/07-security-data-protection/vendors/snyk/" data-link-title="Snyk" data-link-desc="跨 SCM 多模組 application security platform：Open Source (SCA) &#43; Code (SAST) &#43; Container &#43; IaC &#43; Cloud (CSPM)、Reachability analysis">Snyk</a>、<a href="/blog/backend/07-security-data-protection/vendors/syft-grype/" data-link-title="Syft &#43; Grype" data-link-desc="Anchore 開源姐妹工具：Syft 產 SBOM (CycloneDX / SPDX) &#43; Grype scan 漏洞、Unix philosophy、cosign attestation 整合">Syft + Grype</a>、<a href="/blog/backend/07-security-data-protection/vendors/github-advanced-security/" data-link-title="GitHub Advanced Security" data-link-desc="GitHub 內建 4 大模組：Code Scanning (CodeQL) &#43; Secret Scanning &#43; Dependency Review &#43; Dependabot、跟 PR / Security tab 深度整合">GitHub Advanced Security</a>、<a href="/blog/backend/07-security-data-protection/vendors/dependabot/" data-link-title="Dependabot" data-link-desc="GitHub 原生依賴更新自動化、Version Update &#43; Security Update &#43; Alerts、Grouped Updates 減 PR noise、Auto-merge 配 branch protection">Dependabot</a></li>
<li>下游：<a href="/blog/backend/07-security-data-protection/entrypoint-and-server-protection/" data-link-title="7.3 入口治理與伺服器防護" data-link-desc="以問題驅動方式整理對外入口、管理平面與伺服器邊界">7.3 入口治理與伺服器防護</a>（image 漏洞最終影響的是 origin server 風險面）</li>
<li>跨類：<a href="/blog/backend/07-security-data-protection/vendors/cert-manager/" data-link-title="cert-manager" data-link-desc="K8s 原生 certificate lifecycle automation、支援 Let&#39;s Encrypt / Vault PKI / Venafi 等多 issuer、auto-renewal &#43; Challenge solver">cert-manager</a>（TLS lifecycle）、<a href="/blog/backend/07-security-data-protection/vendors/hashicorp-vault/" data-link-title="HashiCorp Vault" data-link-desc="Self-hosted secret management 與 dynamic credential / encryption-as-a-service / PKI engine、跨雲跨環境的 secret 控制面">HashiCorp Vault</a>（secret rotation 對應 Trivy secret scan 找到的 hardcoded credential）</li>
<li>跨模組：<a href="/blog/backend/08-incident-response/vendors/" data-link-title="事故處理 Vendor 清單" data-link-desc="規劃 on-call、incident response、status page 與 postmortem 工具的服務頁撰寫順序與判準">8 事故處理 vendor 清單</a>（CVE 緊急 response 流程 / 高風險 image rollback）</li>
<li>官方：<a href="https://aquasecurity.github.io/trivy/">Trivy Documentation</a>、<a href="https://aquasecurity.github.io/trivy-operator/">Trivy Operator</a></li>
</ul>
]]></content:encoded></item></channel></rss>