nand9lohot/k8s-vulnerability-playground

GitHub: nand9lohot/k8s-vulnerability-playground

一个生产级的 Kubernetes 安全演练场,集成了攻击场景模拟与自动化检测修复流程,帮助安全人员掌握云原生安全攻防技术。

Stars: 0 | Forks: 0

# Kubernetes 漏洞演练场 [![CI/CD](https://github.com/nand9lohot/k8s-vulnerability-playground/workflows/Security%20Testing/badge.svg)](https://github.com/nand9lohot/k8s-vulnerability-playground/actions) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Kind](https://img.shields.io/badge/Kind-v0.20.0-blue)](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截图, 上游代理, 子域名暴力破解, 子域名突变, 安全加固, 安全助手, 安全培训, 安全实验环境, 安全检测, 容器安全, 敏感词过滤, 数据处理, 漏洞复现, 自动化检测, 请求拦截, 足迹分析, 靶场