cbrkrtek/DevOps-security-hands-on-labs
GitHub: cbrkrtek/DevOps-security-hands-on-labs
一个面向 DevSecOps 工程的实战学习实验室,通过容器安全微服务和 Linux 基础设施加固两个模块,记录从 SOC 分析师向 DevOps 安全工程师转型的完整实践路径。
Stars: 0 | Forks: 0
# 🛡️ DevOps 与安全实战实验室



## 📌 项目概述
本仓库是我向 **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截图, 上游代理, 多阶段构建, 安全基线, 安全实验室, 安全防御评估, 容器加固, 容器安全, 应用安全, 搜索引擎查询, 教学环境, 无后门, 最小权限原则, 版权保护, 网络调试, 自动化, 请求拦截, 运维安全, 逆向工具, 防御阵地, 默认拒绝