peachycloudsecurity/container-security-workshop-lab
GitHub: peachycloudsecurity/container-security-workshop-lab
容器安全工作坊实验项目,通过隔离动手环境与开源工具链,帮助学习者在安全场景中掌握容器镜像审查、运行时攻防与 SBOM 流程。
Stars: 1 | Forks: 3
容器安全工作坊实验
由 Anjali & Divyanshu(theshukladuo)在 Peachycloud Security 提供
优先使用命令行。仅使用开源工具。
https://containersecurity.peachycloudsecurity.com
·
针对熟悉 Linux Shell 的安全、平台和后端工程师的 Docker 与容器安全实践入门,旨在 Kubernetes 或更深入的云工作之前建立共享基线。日常 Docker 使用有帮助但并非必需。内容从镜像如何在磁盘上存放开始,逐步涵盖审查、构建、运行时风险、扫描、软件物料清单(SBOM)和加固。
### 课程大纲
- **Setup** 涵盖 fork [container-security-workshop-lab](https://github.com/peachycloudsecurity/container-security-workshop-lab)、打开使用该路径的 **GitHub Codespaces**、检查 Docker 引擎与 Compose,以及用于实验文件和构建上下文的 workspace 目录。工具安装路径在每个实验首次需要时处理,或在 [Environment Setup](../setup/index.md) 中为本地 Linux 配置持久化环境。
- **Foundations** 对比容器与虚拟机,遍历镜像层与基本 `docker` 命令,解释 Dockerfile 布局及客户端或守护进程路径,对一个故意设计薄弱的 Dockerfile 样本运行 **Hadolint** 和 **Dockle**,然后仅使用公共镜像启动一个小的 **Docker Compose** 栈。
- **Image build and delivery** 将注册表、标签与摘要关联到日常的推送与拉取,然后使用两个 Dockerfile 构建同一最小 Python HTTP 服务,以便比较单阶段标签与多阶段精简标签,并通过 `docker images` 和对每个标签的快速运行进行对比。
- **Runtime Security** 说明命名空间与能力如何应隔离进程,随后在您提供的 **隔离 Linux VM** 上进行监督实验:主机绑定挂载、`--privileged`、`cap-drop` 与选择性 `cap-add`,并查看 Docker 实际应用的能力字段。
- **Image audit** 将包清单关联到 CVE 数据库,安装 **Trivy**,扫描上游镜像与实验构建的镜像,并概述可选输出格式与扫描器范围以用于 CI 风格场景。
- **Supply chain** 安装 **Syft** 以生成 SBOM 输出(实验中为 SPDX JSON),然后在该文件上运行 **Grype**,以便无需每次重建镜像即可刷新发现结果。
- **Hardening** 讲解基础镜像大小的权衡、镜像内以非 root 身份执行、丢弃默认能力集,以及在运行时而非镜像层中传递密钥。
## 研讨会网站
- Workshop:
[https://containersecurity.peachycloudsecurity.com/](https://containersecurity.peachycloudsecurity.com/)
- 源代码仓库:
[https://github.com/peachycloudsecurity/container-security-workshop](https://github.com/peachycloudsecurity/container-security-workshop)
## 关键收获
- 识别常见的 `Dockerfile` 缺陷并记录发现以供安全与工程审查。
- 比较单阶段与多阶段镜像的尺寸与维护影响。
- 展示主机绑定挂载与能力设置,对比默认容器隔离。
- 在镜像标签上运行 Trivy 并汇总报告。
- 使用 Syft 生成 SBOM 并用 Grype 扫描。
- 选择适合合并请求模板的加固检查。
## 先决条件
- 已启用 **Codespaces** 的 GitHub 账户。
- 能正常加载 **GitHub Codespaces** 的浏览器。
- 熟悉 **Linux 命令行**。
## 从这里开始
- **Codespaces:** [实验:设置 GitHub Codespace](../setup/lab_codespace.md)
- **本地 Linux:** [环境设置](../setup/index.md),然后 [实验:工作空间](../setup/lab_environment.md)
重要:看似攻击的步骤仅用于您被授权测试的环境。请勿在您不拥有或未经书面许可的系统上使用它们。
## 关于我们
- Anjali 是一位资深云安全工程师,在 DevSecOps 与 Kubernetes 安全(EKS/GKE)以及 AWS、Azure、GCP 安全方面经验丰富。她是 Container Security Village 与 Kubernetes Village 的创始人,这两个社区致力于提升云原生安全。作为 OWASP EKS Goat 的项目负责人,她专注于 AWS EKS 安全研究与实践攻击路径。Anjali 是公认的 AWS 社区构建者,并通过她的 YouTube 频道 @peachycloudsecurity 积极分享研究。她的演讲经历包括 Blackhat USA、Black Hat Spring USA、Black Hat Europe、Nullcon、Seasides Goa、BSides Bangalore、CSA Bangalore 和 C0c0n。她也曾作为志愿者在 DEF CON 的 Cloud Village 以及全球各地的 BSides 活动中提供支持。欢迎通过 peachycloudsecurity[dot]com 联系她。
- Divyanshu 是一位资深安全工程师,在云安全、Kubernetes 安全、DevSecOps、Web 应用渗透测试与威胁建模方面经验丰富。曾向 Airbnb、Google、Microsoft、AWS、Apple、Amazon、Samsung、Zomato、Xiaomi、Alibaba、Opera、Protonmail、Mobikwik 等公司报告多个漏洞,并收到 CVE-2019-8727、CVE-2019-16918、CVE-2019-12278、CVE-2019-14962 的反馈。目前担任 OWASP EKS Goat 与 OWASP GKE Goat 的联合负责人,是 Burp-o-mation 与一个非常脆弱的无服务器应用的作者,也是 AWS 社区构建者及 Defcon Cloud Village 成员(2020/2021/2022)。曾在 Blackhat USA、欧洲、Seasides、C0c0n、Nullcon、Brucon、Bsides Bangalore 与 Bsides Ahmedabad 等活动发表演讲,也是“Cybersecurity samurai 2023”Bsides Bangalore 的获奖者与“Cloud Security Champion”CSA Bangalore 2023 的获奖者。欢迎通过 peachycloudsecurity[dot]com 联系她。
## 免责声明
- 本实验包含的课程、命令与演示,仅用于教育目的。未经明确授权,不得用于超出本次教育会话范围之外的系统测试或攻击。
- 本课程由讲师独立提供,并未被其雇主或任何其他实体背书。内容不一定反映任何公司或专业组织的观点或政策。
- **培训材料使用**:培训材料按“原样”提供,不附带任何保证或担保。参与者需自行承担在培训中应用所讨论技术或方法的风险。培训师及其所属或关联公司不对信息的误用或滥用承担任何责任。
- **责任限制**:培训师、其雇主及关联公司不对因使用本课程信息而导致的任何直接、间接、偶然或后果性损害承担责任。对于使用或操作培训中讨论的方法、产品、说明或理念所导致的人身伤害、财产损失或系统损坏,不承担任何责任。
- **知识产权**:本课程及所有配套材料(包括幻灯片、工作表和文档)均为培训师的知识产权。在 GPL-3.0 许可下共享,要求在材料被使用、修改或再分发时给予适当署名。
- **参考资料**:部分实验参考了开源材料。此外,修改与修复使用了 Amazon Q、ChatGPT 和 Gemini 等 AI 工具。
- **教育目的**:本实验仅用于教育目的。请勿在未获授权的情况下攻击或测试任何网站或网络。培训师不对任何误用负责。
- **使用权限**:个人可用于教学目的,前提是不向学生收费。
### 联系方式:**[Peachycloud Security](https://peachycloudsecurity.com)**
## 💝 支持该项目
您的支持帮助我们维护并改进 OWASP EKS Goat,创建更多教育内容,并为社区持续构建开源安全资源。
**支持方式:**
- **订阅 YouTube** - [youtube.com/@peachycloudsecurity](https://www.youtube.com/@peachycloudsecurity)
- **通过 GitHub 赞助** - [GitHub Sponsors](https://github.com/sponsors/peachycloudsecurity)
- **探索学习资源** - 在 [peachycloudsecurity.com](https://peachycloudsecurity.com) 获取更多教程、演练和实验
- **连接与学习** - 通过 [Topmate](https://topmate.io/peachycloudsecurity) 与我们连接