youssef-talbi/cloud-threat-detection-lab
GitHub: youssef-talbi/cloud-threat-detection-lab
一个分三阶段递进构建的 AWS 云威胁检测与自动化响应实验室,从手动配置检测组件逐步演进为无需人工干预的事件自动隔离与 IaC 全流程部署。
Stars: 0 | Forks: 0
# 🛡️ 云威胁检测实验室
## 🎯 本项目的作用
本实验室模拟了一个真实的云攻击场景:攻击者对私有子网内的 EC2 实例执行侦察
和暴力破解攻击。
系统使用 AWS 原生安全服务检测攻击,并在其最终形态下,
**在 30 秒内**自动隔离受损实例,无需任何人工干预。
## 🏗️ 工程演进:手动 → 自动化 → IaC
本项目刻意分为 3 个渐进阶段进行构建。
每个阶段都解决了前一阶段遗留的局限性。
这反映了安全基础设施在真实云环境中的成熟过程。
### 🔹 阶段 1 — 手动基础设施与检测 ✅ `已完成`
**本阶段解决的问题:**
在实现任何自动化之前,必须从最底层的角度理解每个组件。
**手动构建的内容:**
- 自定义 VPC (`10.0.0.0/16`),包含相互隔离的公有子网和私有子网
- 两个 EC2 实例:`attacker-box`(公有子网)和 `victim-server`(私有子网)
- 实施 Least-Privilege 原则的 Security Groups:受害者只能从攻击者子网访问
- CloudTrail 记录整个账户内的所有 API 调用
- VPC Flow Logs 将所有网络流量传输到 CloudWatch
- Amazon GuardDuty 实时分析 CloudTrail + Flow Logs + DNS
**执行的攻击模拟:**
- 从攻击者向受害者发起 Nmap 激进扫描 (`-A -v -Pn`) → GuardDuty 触发了 `Recon:EC2/Portscan` (Medium)
- Hydra SSH 暴力破解 → 受害者正确拒绝了密码认证 — SSH 加固已确认
- Netcat 洪水攻击(200 个到端口 22 的并发 TCP 连接) → GuardDuty 触发了 `UnauthorizedAccess:EC2/SSHBruteForce` (**High**)
- Root 凭证 API 使用 → GuardDuty 触发了 `Policy:IAMUser/RootCredentialUsage` (Low)
**阶段 1 的局限性:**
GuardDuty 检测到了威胁,但不会自动执行任何操作。
凌晨 3 点的真实攻击会一直被忽视,直到有人手动检查控制台。
→ [阶段 1 完整文档与证据](docs/phase1-manual-setup.md)
### 🔹 阶段 2 — 无服务器自动化响应 🚧 `进行中`
**本阶段解决的问题:**
仅有手动检测而没有自动化响应是不够的。
**将要构建的内容:**
- Amazon EventBridge 规则,实时捕获每一个 GuardDuty 发现
- AWS Lambda (Python/Boto3),自动将受损实例的 Security Group 替换为 `isolated-sg`(零入站,零出站)
- Amazon SNS 向运维人员发送即时电子邮件警报
- CloudWatch 仪表盘,可视化展示发现和响应事件
**预期结果:**
从检测开始,受损实例将在 30 秒内被隔离,并保留完整的审计轨迹。
→ [阶段 2 文档](docs/phase2-automated-response.md) *(即将推出)*
### 🔹 阶段 3 — 基础设施即代码与 CI/CD 🚧 `计划中`
**本阶段解决的问题:**
手动设置不可复现,且无法由团队进行审查。
**将要构建的内容:**
- 使用 Terraform 全面重构阶段 1 + 阶段 2 的所有基础设施
- `tfsec` 在部署前扫描 Terraform 配置以排查错误配置
- GitHub Actions CI/CD pipeline:push → tfsec 扫描 → `terraform plan` → `terraform apply`
- 完整的 GitOps 部署 — 只需一条命令即可从头重建整个实验室
**预期结果:**
整个实验室可通过一条 `terraform apply` 命令在几分钟内部署完成,并且每次部署都内置了安全扫描。
## 🏛️ 架构

## 🛠️ 技术
| 类别 | 工具 |
|----------|-------|
| 云基础设施 | AWS VPC, EC2, Subnets, Security Groups, Route Tables |
| 威胁检测 | Amazon GuardDuty, CloudTrail, VPC Flow Logs, CloudWatch |
| 自动化响应 | AWS Lambda (Python), Amazon EventBridge, Amazon SNS |
| 基础设施即代码 | Terraform, tfsec |
| CI/CD | GitHub Actions |
| 攻击模拟 | Nmap, Hydra |
## 📂 仓库结构
```
cloud-threat-detection-lab/
├── README.md ← You are here
├── docs/
│ ├── phase1-manual-setup.md ← Full Phase 1 documentation + evidence
│ ├── phase2-automated-response.md ← Phase 2 (coming)
│ └── architecture-diagram.png ← Visual architecture
├── lambda/
│ └── incident_responder.py ← Phase 2: Python isolation function
├── terraform/
│ ├── main.tf ← Phase 3: Full infrastructure
│ ├── variables.tf
│ └── outputs.tf
└── .github/
└── workflows/
└── tf-security-cicd.yml ← Phase 3: CI/CD pipeline
```
## ⚡ 主要成果
| 阶段 | 里程碑 | 状态 |
|-------|-----------|--------|
| 阶段 1 | VPC + EC2 + GuardDuty 运行正常 | ✅ 已完成 |
| 阶段 1 | 检测到 Nmap 扫描 — `Recon:EC2/Portscan` (Medium) | ✅ 已确认 |
| 阶段 1 | 检测到 SSH 暴力破解 — `UnauthorizedAccess:EC2/SSHBruteForce` (**High**) | ✅ 已确认 |
| 阶段 1 | SSH 加固已验证 — 受害者正确拒绝了密码认证 | ✅ 已确认 |
| 阶段 1 | 检测到 Root 凭证使用 — `Policy:IAMUser/RootCredentialUsage` (Low) | ✅ 已确认 |
| 阶段 1 | VPC Flow Logs 正在 CloudWatch 中捕获所有流量 | ✅ 已确认 |
| 阶段 2 | 通过 Lambda 进行自动化隔离 | 🚧 进行中 |
| 阶段 2 | 基于 GuardDuty 发现的 SNS 警报 | 🚧 进行中 |
| 阶段 3 | 完整的 Terraform IaC | 📋 计划中 |
| 阶段 3 | 包含 tfsec 的 GitHub Actions CI/CD | 📋 计划中 |
## 👤 作者
**Youssef Talbi**
云安全工程系学生 — TEK-UP University (2027)
RHCSA · eJPTv2 · AWS Solutions Architect Associate
[LinkedIn](https://linkedin.com/in/talbi-youssef) · [GitHub](https://github.com/YOUR_USERNAME)
标签:AMSI绕过, AWS, CTI, DPI, 威胁检测, 安全实验环境, 插件系统, 时间线生成, 自动化响应, 逆向工具, 速率限制