peachycloudsecurity/container-security-workshop-lab

GitHub: peachycloudsecurity/container-security-workshop-lab

容器安全工作坊实验项目,通过隔离动手环境与开源工具链,帮助学习者在安全场景中掌握容器镜像审查、运行时攻防与 SBOM 流程。

Stars: 1 | Forks: 3

容器安全工作坊实验

Anjali & Divyanshu(theshukladuo)在 Peachycloud Security 提供

Peachy Cloud Security, by The Shukla Duo

优先使用命令行。仅使用开源工具。
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) 与我们连接

标签:DevSecOps, Docker Compose, Docker安全, Dockle, GitHub Codespaces, Hadolint, Kubernetes预备, NIDS, Python HTTP服务, SBOM, Web截图, 上游代理, 二进制发布, 代码安全, 共享基线, 动手实验, 单阶段构建, 多阶段构建, 安全基线, 安全审查, 容器化, 容器安全, 工作坊, 开源工具, 摘要, 攻击场景, 教学环境, 最小化镜像, 标签, 注册表, 活动识别, 漏洞枚举, 版权保护, 硬件无关, 误配置, 请求拦截, 镜像审查, 镜像扫描, 防御实践