cbrkrtek/DevOps-security-hands-on-labs

GitHub: cbrkrtek/DevOps-security-hands-on-labs

一个面向 DevSecOps 工程的实战学习实验室,通过容器安全微服务和 Linux 基础设施加固两个模块,记录从 SOC 分析师向 DevOps 安全工程师转型的完整实践路径。

Stars: 0 | Forks: 0

# 🛡️ DevOps 与安全实战实验室 ![构建与安全扫描](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ea4afd7749060524.svg) ![Python 版本](https://img.shields.io/badge/python-3.11-blue) ![许可证](https://img.shields.io/badge/license-MIT-green) ## 📌 项目概述 本仓库是我向 **DevSecOps 工程**转型的专属实验室。它记录了我从 **SOC 分析师**(将于 2026 年 6 月完成 Yandex Practicum)到 2026 年 9 月成为一名初级 DevOps 专业人员的实践历程。 核心使命是构建不仅具备功能性,而且经过**加固**、**自动化**和**可观测**的安全工具。 ## 🏗️ 实验室结构 ### [实验室 01:容器安全与微服务](./01-ssl-scanner-service) **目标:** 具备高级容器加固且达到生产环境标准的 SSL/TLS 扫描器。 * **技术栈:** Python 3.11、Docker(多阶段构建)、Redis、Trivy。 * **核心成果:** 实现了带有自动化 CVE 缓解和非 root 执行的 **Shift-Left(安全左移)** 安全流水线。 ### [实验室 02:Linux 基础设施加固](./02-infrastructure-hardening) **目标:** 针对云端/本地 Linux 实例的自动化安全基线。 * **技术栈:** Bash、OpenSSH、UFW、Fail2Ban。 * **核心成果:** 创建了一个幂等脚本,强制执行“默认拒绝”的网络态势,并禁用不安全的身份验证方法。 ## 🛡️ 详细实验日志 ### 🐍 实验室 01:容器安全 — 加固的微服务架构 **重点:** 供应链安全与运行时隔离。 * **多阶段构建策略:** 采用两阶段 Dockerfile(`builder` 与 `final`)。这通过确保构建时依赖项和编译器永远不会进入生产环境,从而大幅减少了攻击面。 * **最小权限原则:** 实现了非 root 执行模型。应用程序在专用的 `appuser`(UID 1000)下运行,从而缓解了“容器逃逸”风险。 * **软件成分分析 (SCA):** 将 **Trivy** 集成到 CI/CD 流水线中,以强制执行**零漏洞策略**。如果检测到任何 `HIGH` 或 `CRITICAL` 级别的 CVE,构建将自动失败。 * **微服务编排:** 使用 **Docker Compose** 构建弹性环境,集成了 **Healthchecks** 和用于数据库隔离的私有桥接网络。 ### 🐧 实验室 02:基础设施加固 — 自动化操作系统安全 **重点:** 减少全新 Linux 安装系统的攻击面。 * **自动化加固:** 通过脚本配置 `sshd_config`,以消除暴力破解攻击向量(自定义端口,禁用密码认证)。 * **网络隔离:** 实施具有“默认拒绝”策略的 **UFW**,仅开放必要的端口(2222、80、443)。 * **主动防御:** 部署 **Fail2Ban** 以自动封禁表现出恶意行为的 IP 地址。 * **身份管理:** 遵循**最小权限原则**,自动创建一个仅限 SSH 密钥访问的专用 `sudo` 用户。 ## 🛠️ 系统架构与安全控制 该项目遵循通过 Docker Compose 编排的**微服务模式**。 | 层级 | 组件 | 安全控制 | | :--- | :--- | :--- | | **计算** | Python 3.11 扫描器 | 运行时隔离、非 root (UID 1000) | | **存储** | Redis(有状态) | 隔离的桥接网络、无主机端口绑定 | | **流水线** | GitHub Actions | 通过 Trivy 实现自动化 SAST/SCA | | **网络** | Docker Bridge | 仅限严格的 service-to-service 通信 | ## 🛡️ DevSecOps 流水线 (CI/CD) 该项目利用 **GitHub Actions** 实施“安全左移”策略。每次提交在被视为达到生产就绪状态之前,都要经过自动化的安全审计。 ### 构建门禁 (`docker-build.yml`) 流水线实施了一项“阻断一切”的策略: 1. **静态分析:** (即将推出)使用 Bandit 进行 Python SAST。 2. **容器扫描:** **Trivy** 扫描镜像以查找操作系统和程序库漏洞。 3. **严重性门禁:** 如果检测到任何 `HIGH` 或 `CRITICAL` 级别的漏洞,构建将**自动失败**。 ``` - name: Run Trivy vulnerability scanner uses: aquasecurity/trivy-action@master with: image-ref: 'ssl-scanner:multi' severity: 'CRITICAL,HIGH' exit-code: '1' ``` ## 🚀 快速开始 ### 🧪 实验室 01:部署 SSL 扫描器 要运行带有 Redis 的容器化扫描器,你必须在想要克隆此仓库的位置创建一个文件夹。为了便于理解,我创建了 `test_folder`。 ``` cd test_folder git clone https://github.com/cbrkrtek/DevOps-security-hands-on-labs.git cd .\DevOps-security-hands-on-labs\01-ssl-scanner-service\ docker-compose up --build -d # 检查进度 docker logs -f 01-ssl-scanner-service-app-scanner-1 ``` ### 🐧 实验室 02:加固 Linux 服务器 要保护全新的 Ubuntu/Debian 实例,你必须在想要克隆此仓库的位置创建一个文件夹。为了便于理解,我创建了 `test_folder`。 ``` cd test_folder git clone https://github.com/cbrkrtek/DevOps-security-hands-on-labs.git cd .\DevOps-security-hands-on-labs\02-infrastructure-hardering\ chmod +x setup.sh sudo ./setup.sh ``` ## 🚀 2026 路线图(9 月准备就绪) 根据我的技术学习计划: * **[6 月] 基础设施即代码与云加固:** * 通过 Terraform 与 Ansible 部署加固的实例。 * **云 IAM 与 VPC 设计:** 实施私有网络和严格的访问策略。 * **机密管理:** 与 Cloud Secret Manager 或 HashiCorp Vault 集成。 * **[7 月] Kubernetes 加固:** 实施 Network Policies 与 Admission Controllers(Kyverno/OPA)。 * 托管 K8s(EKS/AKS/YC Managed Service)的安全设置。 * Admission Controllers 与云镜像仓库扫描。 * **[8 月] 运行时安全:** * 使用 Falco 进行威胁检测。 * **云 SIEM 集成:** 将来自基础设施的日志收集到中央仪表板中。 ## ⚖️ 许可证 基于 **MIT License** 授权。
标签:Bash, CISA项目, CVE缓解, DevSecOps, Docker, Fail2Ban, Linux加固, OpenSSH, osquery, PE 加载器, Python, Redis, SOC分析, SSL/TLS扫描仪, UFW, Web截图, 上游代理, 多阶段构建, 安全基线, 安全实验室, 安全防御评估, 容器加固, 容器安全, 应用安全, 搜索引擎查询, 教学环境, 无后门, 最小权限原则, 版权保护, 网络调试, 自动化, 请求拦截, 运维安全, 逆向工具, 防御阵地, 默认拒绝