nand9lohot/k8s-vulnerability-playground
GitHub: nand9lohot/k8s-vulnerability-playground
一个生产级的 Kubernetes 安全演练场,集成了攻击场景模拟与自动化检测修复流程,帮助安全人员掌握云原生安全攻防技术。
Stars: 0 | Forks: 0
# Kubernetes 漏洞演练场
[](https://github.com/nand9lohot/k8s-vulnerability-playground/actions)
[](https://opensource.org/licenses/MIT)
[](https://kind.sigs.k8s.io/)
## 🎯 目的
本仓库提供了一个全面的、实践性的学习环境,用于理解现实世界中的 Kubernetes 安全漏洞。专为希望达成以下目标的安全工程师、DevSecOps 从业者和平台工程师设计:
- **理解** 常见的 Kubernetes 错误配置及其利用路径
- **练习** 使用行业标准安全工具进行检测和修复
- **构建** 默认安全的 Kubernetes 配置
- **展示** 在云原生环境中的安全专业知识
## 🏗️ 架构
```
┌─────────────────────────────────────────────────────────────┐
│ k8s-vulnerability-playground │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Kind Cluster│ │ Security │ │ Vulnerable │ │
│ │ (Local K8s) │◄─┤ Tools │◄─┤ Workloads │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ │ │ │ │
│ ┌──────▼──────┐ ┌────────▼────────┐ ┌─────▼──────┐ │
│ │ Monitoring │ │ Attack Tools │ │ Evidence │ │
│ │ (Falco) │ │ (kube-hunter) │ │ Collection │ │
│ └─────────────┘ └─────────────────┘ └────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
```
## 🔐 漏洞场景
| 场景 | 严重性 | MITRE ATT&CK | 工具 |
|----------|----------|--------------|-------|
| [特权容器](./runbooks/01-privileged-containers.md) | Critical | T1611 | Trivy, Kubescape |
| [暴露的 Kubelet API](./runbooks/02-exposed-kubelet.md) | Critical | T1552.007 | kube-hunter |
| [RBAC 配置错误](./runbooks/03-rbac-misconfiguration.md) | High | T1078 | kubectl, rbac-tool |
| [容器逃逸](./runbooks/04-container-breakout.md) | Critical | T1611 | Falco, Trivy |
| [不安全的 Secrets](./runbooks/05-insecure-secrets.md) | High | T1552.007 | Trivy, Kubescape |
## 🚀 快速开始
### 前置条件
- **macOS** (Intel 或 Apple Silicon)
- **Docker Desktop** (4.25.0+)
- **Homebrew** 包管理器
- **8GB RAM** 最低 (推荐 16GB)
- **20GB** 可用磁盘空间
### 一键设置
```
# 克隆并初始化 playground
git clone https://github.com/nand9lohot/k8s-vulnerability-playground.git
cd k8s-vulnerability-playground
make setup
```
这将执行以下操作:
1. ✅ 安装所有必需的工具 (kind, kubectl, helm, 安全扫描器)
2. ✅ 创建一个本地 Kubernetes 集群
3. ✅ 部署易受攻击的工作负载
4. ✅ 配置安全监控
5. ✅ 运行初始漏洞扫描
### 手动设置
如果您更喜欢分步安装:
```
# 1. 安装依赖
make install-tools
# 2. 创建 Kubernetes 集群
make create-cluster
# 3. 部署易受攻击的工作负载
make deploy-vulnerable
# 4. 安装安全工具
make install-security-tools
# 5. 验证设置
make verify
```
## 🛠️ 安全工具集成
### 扫描与检测
- **[Trivy](https://github.com/aquasecurity/trivy)** - 全面的漏洞扫描器
- **[Kubescape](https://github.com/kubescape/kubescape)** - K8s 安全态势管理
- **[kube-hunter](https://github.com/aquasecurity/kube-hunter)** - 主动渗透测试
- **[Falco](https://falco.org/)** - 运行时威胁检测
### 使用方法
```
# 运行所有安全扫描
make scan-all
# 独立工具扫描
make trivy-scan
make kubescape-scan
make kube-hunter-scan
make falco-check
```
## 📚 运行手册
每个漏洞场景都包含详细的运行手册:
1. **[特权容器](./runbooks/01-privileged-containers.md)**
- 部署特权 Pod
- 宿主机文件系统访问利用
- 使用 Trivy 和 Kubescape 进行检测
- 修复策略
2. **[暴露的 Kubelet API](./runbooks/02-exposed-kubelet.md)**
- Kubelet 认证绕过
- 未授权 Pod 执行
- 使用 kube-hunter 进行检测
- 网络策略修复
3. **[RBAC 配置错误](./runbooks/03-rbac-misconfiguration.md)**
- 权限过大的角色
- 权限提升路径
- RBAC 审计技术
- 最小权限实施
4. **[容器逃逸](./runbooks/04-container-breakout.md)**
- 内核利用向量
- Namespace 逃逸技术
- 使用 Falco 进行运行时检测
- 安全上下文加固
5. **[不安全的 Secrets](./runbooks/05-insecure-secrets.md)**
- 硬编码凭证
- 环境变量中的 Secret 泄露
- 检测与提取
- 外部 Secrets 管理
## 🔬 测试方法论
### 攻击阶段
```
# 部署易受攻击的配置
make deploy-scenario SCENARIO=privileged-containers
# 执行攻击
make attack SCENARIO=privileged-containers
```
### 检测阶段
```
# 运行安全扫描
make detect SCENARIO=privileged-containers
# 查看 Falco 警报
make falco-logs
```
### 修复阶段
```
# 应用安全配置
make remediate SCENARIO=privileged-containers
# 验证修复
make verify-fix SCENARIO=privileged-containers
```
## 🧪 GitHub Actions 集成
自动化安全测试运行于:
- **Pull Requests** - 扫描所有清单
- **Main Branch Commits** - 完整的安全审计
- **Scheduled** - 每日漏洞扫描
```
# .github/workflows/security-scan.yml
name: Security Testing
on: [push, pull_request, schedule]
jobs:
security-scan:
runs-on: ubuntu-latest
# See .github/workflows/ for full configuration
```
## 📊 报告
生成全面的安全报告:
```
# 生成 HTML 报告
make report
# 输出格式:HTML, JSON, SARIF
make report FORMAT=json
# 在浏览器中查看
open reports/security-report.html
```
## 🎓 学习路径
**初学者** (2-3 小时)
1. 完成快速开始
2. 通读特权容器运行手册
3. 理解 Trivy 扫描结果
**中级** (4-6 小时)
1. 完成所有 5 个漏洞场景
2. 练习使用所有安全工具
3. 修改并创建自定义的易受攻击配置
**高级** (8+ 小时)
1. 在 Falco 中实施自定义检测规则
2. 创建修复剧本
3. 构建 CI/CD 安全门禁
4. 贡献新的漏洞场景
## 🤝 贡献
欢迎贡献!请参阅 [CONTRIBUTING.md](./CONTRIBUTING.md) 了解:
- 添加新的漏洞场景
- 改进检测规则
- 文档增强
- 工具集成
## 📖 资源
- [Kubernetes 安全最佳实践](./docs/best-practices.md)
- [工具配置指南](./docs/tool-configuration.md)
- [故障排除指南](./docs/troubleshooting.md)
- [攻击矩阵映射](./docs/attack-matrix.md)
## ⚠️ 免责声明
**本演练场仅用于教育目的。**
- 请仅在隔离的、非生产环境中运行
- 切勿将易受攻击的配置部署到生产集群
- 在执行攻击场景前了解相关风险
- 在进行安全测试前确保已获得适当授权
## 📄 许可证
MIT License - 详情见 [LICENSE](./LICENSE)
## 🙏 致谢
- OWASP Kubernetes Security Cheat Sheet
- MITRE ATT&CK for Containers
- Aqua Security, Armo, 和 Falco 社区
- Kubernetes SIG-Security
**作者**: Nandkishor Lohot | 安全架构师
**联系方式**: [LinkedIn](https://www.linkedin.com/in/nandkishorlohot/) | [Blog](https://infosecbytes.io/) | [GitHub](https://nand9lohot.github.io/)
⭐ 如果您觉得此仓库对学习 Kubernetes 安全有用,请 Star!
标签:Cloudflare, DevSecOps, Falco, GitHub Advanced Security, Kind, Kubescape, LNA, MITRE ATT&CK, OPA, URL发现, Web截图, 上游代理, 子域名暴力破解, 子域名突变, 安全加固, 安全助手, 安全培训, 安全实验环境, 安全检测, 容器安全, 敏感词过滤, 数据处理, 漏洞复现, 自动化检测, 请求拦截, 足迹分析, 靶场