
最後一篇——回顧 30 天建構的攻防體系,評估你的防禦成熟度,規劃下一步。
完成本日實作後,你將能夠:
本篇是 30 天的總回顧。建議的最低閱讀量:
| 等級 | 天數 | 內容 |
|---|---|---|
| 必備 | Day 1 | ATT&CK 概念 + 靶場部署 |
| 建議 | Day 24 | Kill Chain(理解 35 場景的完整攻擊鏈) |
| 建議 | Day 28 | 攻防矩陣(ATT&CK × D3FEND 對照) |
| 可跳過 | Day 2–23 | 各場景細節(本篇會彙整重點) |
快速路徑:如果是第一次接觸 KOAD,從本篇開始,再按需回讀對應的 Day。
我們用 MITRE ATT&CK Containers Matrix 作為骨架,建構了 35 個攻擊場景:

| 戰術 | 場景 | 覆蓋天數 |
|---|---|---|
| Initial Access | S01–S03 | Day 2 |
| Execution | S04–S08 | Day 4 |
| Persistence | S09–S12 | Day 6 |
| Privilege Escalation | S13 | Day 8 |
| Defense Evasion | S14, S18–S22 | Day 9–11, 14 |
| Credential Access | S24–S26 | Day 16 |
| Discovery | S27–S29 | Day 18 |
| Lateral Movement | S30 | Day 19 |
| Impact | S31–S35 | Day 20 |
| Defense Impairment | S23 | Day 15 |
10 個戰術、28 個技術、35 個場景——ATT&CK Containers Matrix 100% 覆蓋。
對應攻擊面,我們建構了四層防禦:
| 防禦層 | 工具 | 功能 | 覆蓋天數 |
|---|---|---|---|
| Admission Control | Kyverno 7 策略 | 部署前攔截危險配置 | Day 5, 27 |
| 網路隔離 | Calico NetworkPolicy 4 條 | 阻斷橫向移動路徑 | Day 3, 27 |
| Runtime 偵測 | Falco 26 條自訂規則 | 即時偵測攻擊行為 | Day 25–26 |
| 自動回應 | Falco Talon 4 條規則 | 偵測後自動隔離/終止 | Day 26 |
Day 24 的完整攻擊鏈演練,量化了防禦體系的效果:
| 防禦配置 | 攻擊成功率 | 說明 |
|---|---|---|
| 無防禦 | 100% | 35 場景全部成功 |
| Kyverno Audit | 100% | 只記錄不阻擋,但產生 357 條違規紀錄 |
| Kyverno Enforce | 52% | 阻擋了特權容器、hostPath 掛載等高風險配置 |
| + NetworkPolicy | 31% | default-deny-all 切斷橫向移動和外部通訊 |
| + Falco + Talon | 31% | 成功率相同,但所有攻擊行為都被偵測並自動回應 |
關鍵發現:Kyverno Enforce + NetworkPolicy 兩層就能把攻擊成功率從 100% 降到 31%。加上 Falco 後,剩下的 31% 雖然能執行,但每一步都會觸發告警——攻擊者無法隱身。
根據 30 天的內容,我設計了四個等級的成熟度框架。對照你目前的環境,看看落在哪一級:
| 檢查項 | 是否完成 |
|---|---|
| Minikube + Calico 叢集正常運作 | [ ] |
| RBAC 已配置,沒有不必要的 cluster-admin | [ ] |
| NetworkPolicy default-deny-all 已套用 | [ ] |
| kubelet anonymous-auth 已關閉 | [ ] |
| ServiceAccount automountServiceAccountToken 設為 false | [ ] |
達標標準:5 項中完成 4 項。
對應 CKS 領域:Cluster Setup (15%) + Cluster Hardening (15%)
| 檢查項 | 是否完成 |
|---|---|
| PSS Restricted 已套用到生產 Namespace | [ ] |
| seccomp RuntimeDefault 已啟用 | [ ] |
| Kyverno/OPA 策略已部署(至少 Audit 模式) | [ ] |
| 容器使用 non-root + readOnlyRootFilesystem | [ ] |
| Secret 靜態加密(etcd EncryptionConfiguration)已啟用 | [ ] |
| 映像簽章驗證流程已建立(Cosign + Kyverno) | [ ] |
達標標準:6 項中完成 5 項。
對應 CKS 領域:System Hardening (10%) + Minimize Microservice Vulnerabilities (20%)
| 檢查項 | 是否完成 |
|---|---|
| Falco 已部署並正常產生 alert | [ ] |
| 自訂 Falco 規則覆蓋主要攻擊場景 | [ ] |
| Audit Log 已開啟並有分析流程 | [ ] |
| CIS Benchmark 掃描分數 > 70% | [ ] |
| 映像漏洞掃描整合到 CI/CD | [ ] |
| 有 Incident Response SOP(Day 29) | [ ] |
達標標準:6 項中完成 4 項。
對應 CKS 領域:Supply Chain Security (20%) + Monitoring/Runtime Security (20%)
| 檢查項 | 是否完成 |
|---|---|
| Falco Talon 或 Tetragon 自動回應已部署 | [ ] |
| 偵測到攻擊後能自動隔離 Pod | [ ] |
| 完整攻擊鏈演練(Day 24)通過 | [ ] |
| IR 演練至少執行過一次 | [ ] |
| 備份恢復(Velero)已測試 | [ ] |
達標標準:5 項中完成 3 項。
| 你的等級 | 現況 | 建議下一步 |
|---|---|---|
| 未達 Level 1 | 叢集缺乏基本安全配置 | 從 Day 1 開始,優先做 RBAC + NetworkPolicy |
| Level 1 | 有基本防護,但攻擊者進來後沒有偵測能力 | 進入 Day 8–13 理解逃逸風險,部署 PSS |
| Level 2 | 能擋住大部分已知攻擊模式 | 部署 Falco(Day 25),建立偵測能力 |
| Level 3 | 能偵測攻擊,但需要人工介入 | 部署自動回應(Day 26),建立 IR SOP(Day 29) |
| Level 4 | 完整的偵測 + 自動回應體系 | 持續更新規則,關注新 CVE,準備 CKS |
核心問題:攻擊者怎麼進來?怎麼擋?
這週最重要的一件事:NetworkPolicy default-deny-all。一條規則就切斷了大部分橫向移動路徑。
核心問題:攻擊者怎麼從容器跳到宿主機?怎麼防?
這週最重要的一件事:PSS Restricted。大部分逃逸都需要特權或特殊 Capability,Restricted 直接從根源擋住。
核心問題:攻擊者進來後怎麼擴大戰果?
這週最重要的一件事:SA Token 管理。關閉自動掛載 + 最小權限 RBAC,攻擊者拿到容器也走不遠。
核心問題:怎麼建構完整的偵測和回應體系?
這週最重要的一件事:分層防禦不是理論。實測數據證明 Kyverno + NetworkPolicy + Falco 三層疊加,攻擊成功率從 100% 降到 31%,且全程可偵測。
| 類別 | 指標 | 數字 |
|---|---|---|
| 攻擊 | ATT&CK 戰術覆蓋 | 10 / 10(100%) |
| 攻擊 | ATT&CK 技術覆蓋 | 28 / 28(100%) |
| 攻擊 | KOAD 場景總數 | 35 |
| 攻擊 | 容器逃逸手法 | 7 種 |
| 防禦 | Falco 自訂規則 | 26 條 |
| 防禦 | Kyverno 策略 | 7 條 |
| 防禦 | NetworkPolicy | 4 條 |
| 防禦 | Tetragon TracingPolicy | 4 條 |
| 成效 | Falco alert(攻擊鏈演練) | 174 條 |
| 成效 | Kyverno violation(攻擊鏈演練) | 357 條 |
| 成效 | 防禦後攻擊成功率 | 31% |
| 文章 | CKS 考點覆蓋 | 6 / 6 領域 |
KOAD 原始碼在 GitHub 上公開,任何人都能部署自己的攻防靶場。

koad/
├── scenarios/ # 35 攻擊場景 YAML
│ ├── initial-access/
│ ├── execution/
│ ├── persistence/
│ ├── privilege-escalation/
│ ├── defense-evasion/
│ ├── credential-access/
│ ├── discovery/
│ ├── lateral-movement/
│ └── impact/
├── defense/ # 防禦配置
│ ├── falco/ # 26 條自訂規則 + values
│ ├── kyverno/ # 7 條策略
│ ├── network-policies/ # 4 條 NetworkPolicy
│ └── tetragon/ # 4 條 TracingPolicy
├── attacker/ # 攻擊者 Pod + 工具
└── docs/ # 場景對照表 + 部署指南
完整部署步驟在 Day 1 已詳細說明。快速回顧:
# 1. 啟動叢集
minikube start --cni=calico --memory=8192 --cpus=4 \
--kubernetes-version=v1.30.0
# 2. 部署場景 + 防禦
kubectl apply -f scenarios/ -R
helm install falco falcosecurity/falco -n falco --create-namespace \
-f defense/falco/values-custom.yaml
helm install kyverno kyverno/kyverno -n kyverno --create-namespace
kubectl apply -f defense/kyverno/
kubectl apply -f defense/network-policies/
# 3. 驗證
kubectl get pods -A | grep -E "falco|kyverno"
kubectl get clusterpolicy
kubectl get networkpolicy -A
部署驗證清單和常見問題排除,見 Day 1 的 Troubleshooting 區段。
| 元件 | 需求 |
|---|---|
| CPU | 4 核心(建議 8 核心) |
| 記憶體 | 8 GB(建議 16 GB) |
| 磁碟 | 40 GB |
| 核心版本 | >= 5.8(modern_ebpf 需求) |
| Minikube | >= 1.33 |
持續追蹤這些 CVE,對照 KOAD 場景理解攻擊原理:
| CVE | 影響 | 嚴重性 | 對應 KOAD |
|---|---|---|---|
| CVE-2024-21626 | runc 容器逃逸(Leaky Vessels) | Critical | S13-S18 逃逸系列 |
| CVE-2023-2728 | SA Token 繞過 mountable secrets 限制 | High | S25 SA Token 竊取 |
| CVE-2023-5528 | Windows Node 權限提升 | High | S13 特權逃逸概念 |
| CVE-2022-0185 | Linux 核心 heap overflow → 容器逃逸 | Critical | S19 核心漏洞逃逸 |
| CVE-2022-0811 | CRI-O 容器逃逸(cr8escape) | Critical | S13-S14 逃逸類型 |
| CVE-2021-25741 | symlink 攻擊繞過 subPath volume mount | High | S15 掛載類攻擊 |
根據你的角色和目標,選擇對應的路徑:
KOAD 30 天覆蓋了 CKS 全部 6 大領域:

| CKS 領域 | 佔比 | 對應 Day | 重點練習 |
|---|---|---|---|
| Cluster Setup | 15% | Day 2–3 | kubelet 強化、API Server 認證 |
| Cluster Hardening | 15% | Day 6–7 | RBAC、SA Token、Audit Log |
| System Hardening | 10% | Day 12–13 | seccomp、AppArmor、PSS |
| Minimize Vulnerabilities | 20% | Day 8–13 | SecurityContext、Capability |
| Supply Chain Security | 20% | Day 22–23 | Trivy、Cosign、映像策略 |
| Runtime Security | 20% | Day 25–27 | Falco、NetworkPolicy、kube-bench |
建議:先跑一次 Day 24 完整攻擊鏈,體感理解每個領域的重要性,再逐領域深入練習。
按優先順序逐步套用:
每一步都有對應的 Day 可以回讀具體做法。
| 方向 | 具體目標 | 資源 |
|---|---|---|
| Service Mesh 安全 | Istio/Linkerd mTLS + AuthorizationPolicy | Day 27 mTLS 基礎 |
| eBPF 深度應用 | 自己寫 Tetragon TracingPolicy | Day 26 Tetragon 基礎 |
| GitOps 安全 | ArgoCD/Flux 的 RBAC 和 Secret 管理 | Day 7 Audit Log 基礎 |
| 多叢集安全 | 跨叢集策略同步 + Cilium ClusterMesh | Day 27 NetworkPolicy 基礎 |
| AI + Security | LLM 分析 Falco alert + 自動分類 | Day 25–26 Falco 基礎 |
寫完 30 天,我自己最大的收穫是三件事:
第一,攻擊者視角改變了我看防禦的方式。 以前看到 PSS Restricted,只覺得是一堆限制。親手用 nsenter 從特權容器逃逸到宿主機(Day 8)之後,才真正理解每一條限制擋住的是什麼。
第二,防禦不需要完美,需要分層。 Day 24 的實測數據說明了一切:沒有任何單一工具能擋住所有攻擊,但 Kyverno + NetworkPolicy + Falco 三層疊加,攻擊成功率從 100% 降到 31%,且全程可偵測。
第三,系統性思考比單點技術重要。 ATT&CK 矩陣讓我用結構化的方式理解攻擊面,D3FEND 讓我用同樣的結構組織防禦。有了框架,新的 CVE 出來時,我能快速定位它在矩陣中的位置,評估現有防禦是否能覆蓋。