jordann6/cloud-security-lab

GitHub: jordann6/cloud-security-lab

本项目基于 AWS 和 Kubernetes 构建端到端云安全实验环境,完整模拟基于 MITRE ATT&CK 映射的攻击杀伤链、威胁检测及自动修复流程。

Stars: 0 | Forks: 0

# Cloud Security Lab 跨 AWS 和 Kubernetes 的端到端威胁检测、事件响应和自动修复。本项目反映了生产环境安全运营工作流,涵盖完整的攻击与防御生命周期,使用真实工具、映射 MITRE ATT&CK 的杀伤链以及可衡量的检测和响应结果。 ![架构图](https://raw.githubusercontent.com/jordann6/cloud-security-lab/main/docs/architecture-diagram.svg) ## 项目成果 - 跨越 7 个模块部署了 62 个 Terraform 资源,涵盖威胁面、检测、SIEM 和自动修复 - 执行了完整的 MITRE ATT&CK 映射杀伤链:从凭证泄露到权限提升(从 1,039 个权限提升至 15,319 个),再到 S3 数据窃取,以及通过 STS 角色假设进行的横向移动 - 使用 Falco 在 K3s 上检测到 100% 的运行时攻击场景(Shell 注入、凭证窃取、容器逃逸、加密货币挖矿模拟) - 通过 OPA Gatekeeper 强制实施预防性控制,在所有非系统命名空间中阻止特权容器、主机命名空间访问和 root 用户执行 - 在 OpenSearch 仪表板中关联 CloudTrail、VPC Flow Logs 和 GuardDuty 发现结果,实现杀伤链的实时可视化 ## 架构 ### AWS 威胁面与检测 AWS 层由通过 Terraform 部署的故意脆弱的基础设施组成,并配备完整的检测与响应管道。 **威胁面模块:** `threat-surface-vpc` 模块配置了一个包含公有子网、宽松安全组以及将 VPC Flow Logs 转发至 CloudWatch 的 VPC。`threat-surface-ec2` 模块在该宽松子网中部署了一个实例。`threat-surface-s3` 模块创建了一个敏感数据存储桶,其中在 `confidential/` 前缀下暂存了客户 PII。`threat-surface-iam` 模块配置了一个拥有 1,039 个权限的过度特权 IAM 用户,以及一个信任策略允许该被入侵用户承担角色的中转角色。 **检测模块:** CloudTrail 捕获所有 API 活动,并将日志发送至 S3 和 CloudWatch Logs。CloudWatch 指标过滤器监控 IAM 配置更改,在未经授权的修改时触发告警。 **SIEM 模块:** 一个 OpenSearch 域通过 CloudWatch Logs 订阅过滤器摄取 CloudTrail 日志和 VPC Flow Logs。五个可视化和一个杀伤链关联仪表板提供了对攻击者活动的实时可见性。 **修复模块:** EventBridge 规则监控 GuardDuty 发现结果中的 IAM 相关威胁。Lambda 函数 (`disable_iam_keys`) 在被触发时自动禁用已泄露的访问密钥。其他规则监控 EC2 和安全组相关的发现结果。 ### Kubernetes 运行时安全 Kubernetes 层运行在 K3s 集群 (k3d) 上,使用 Falco 进行运行时威胁检测,使用 OPA Gatekeeper 进行策略强制执行。 **Falco:** 作为 DaemonSet 部署,使用 `modern_ebpf` 驱动和 Falcosidekick 进行告警转发。四个自定义检测规则涵盖了 Shell 生成、敏感文件读取、未经授权的进程执行以及通过挂载进行容器逃逸,所有规则均标记了 MITRE ATT&CK 技术编号。 **OPA Gatekeeper:** 三个约束模板强制执行预防性控制:拒绝特权容器 (`K8sDenyPrivileged`)、拒绝主机命名空间访问 (`K8sDenyHostNamespace`) 以及拒绝以 root 身份运行的容器 (`K8sDenyRunAsRoot`)。系统命名空间 (`kube-system`、`gatekeeper-system`、`falco`) 被排除在外。 ## 杀伤链:MITRE ATT&CK 映射 | 阶段 | 策略 | 技术 | 动作 | 结果 | |-------|--------|-----------|--------|--------| | 初始访问 | TA0001 | T1078.004 Valid Accounts: Cloud | 获取泄露的 IAM 凭证 | 被入侵用户的活跃访问密钥 | | 发现 | TA0007 | T1580, T1087.004 | 通过 Pacu 枚举权限、用户和角色 | 1,039 个权限,27 个角色,识别出中转角色 | | 权限提升 | TA0004 | T1098.003 Additional Cloud Roles | Pacu 附加 AdministratorAccess 策略 | 提升至 15,319 个权限 | | 数据窃取 | TA0010 | T1530 Data from Cloud Storage | 访问 S3 敏感数据存储桶 | 窃取客户 PII(姓名、SSN、电子邮件) | | 横向移动 | TA0008 | T1550.001 Application Access Token | 通过 sts:AssumeRole 假设中转角色 | 获得新身份下的临时凭证 | 包含证据的完整杀伤链文档:[docs/kill-chain-documentation.md](docs/kill-chain-documentation.md) ## 运行时攻击场景 (Kubernetes) | 攻击 | 触发的 Falco 规则 | 优先级 | MITRE 标签 | |--------|---------------------|----------|-----------| | 容器内生成 Shell | Terminal Shell in Container | WARNING | mitre_execution | | 读取 /etc/shadow, /etc/passwd | Read Sensitive File in Container | WARNING | mitre_credential_access | | 未经授权的二进制执行 | Unauthorized Process in Container | NOTICE | mitre_execution | | 通过 apt/curl 释放二进制 | Drop and execute new binary in container | WARNING | mitre_execution | | 通过主机挂载进行容器逃逸 | Container Escape via Mount | CRITICAL | mitre_privilege_escalation | | 反向 Shell 尝试 | Terminal Shell in Container | WARNING | mitre_execution | | 服务账户凭证窃取 | Read Sensitive File in Container | WARNING | mitre_credential_access | ## Gatekeeper 策略强制执行 | 约束 | 阻止内容 | 测试结果 | |------------|---------------|-------------| | K8sDenyPrivileged | 具有特权 (`privileged: true`) 的容器 | Denied | | K8sDenyHostNamespace | 具有 hostNetwork、hostPID 或 hostIPC 的 Pod | Denied | | K8sDenyRunAsRoot | 未设置 `runAsNonRoot: true` 的容器 | Denied | 合规的 Pod(非特权、非 root)将被正常准入。 ## 技术栈 | 类别 | 工具 | |----------|-------| | 基础设施即代码 | Terraform (7 个模块,62 个资源) | | 云服务提供商 | AWS (IAM, EC2, S3, VPC, CloudTrail, GuardDuty, CloudWatch, Lambda, EventBridge, OpenSearch) | | Kubernetes | K3s (k3d), Helm | | 运行时安全 | Falco (modern_ebpf 驱动), Falcosidekick | | 策略强制执行 | OPA Gatekeeper (Rego) | | 攻击性安全 | Pacu (AWS 利用框架), ScoutSuite (云安全审计) | | SIEM | OpenSearch,支持 CloudTrail 和 VPC Flow Log 摄入 | | 框架 | MITRE ATT&CK Cloud Matrix | ## 项目结构 ``` cloud-security-lab/ docs/ kill-chain-documentation.md architecture-diagram.svg k8s/ falco/ install.sh values.yaml gatekeeper/ install.sh constraint-templates.yaml constraints.yaml test-privileged-pod.yaml terraform/ main.tf variables.tf outputs.tf providers.tf backend.tf terraform.tfvars modules/ threat-surface-vpc/ threat-surface-ec2/ threat-surface-s3/ threat-surface-iam/ detection/ siem/ remediation/ ``` ## 部署 **前置条件:** 已配置 AWS CLI,已安装 Terraform,已安装 Helm,Docker 运行中(用于 k3d) **AWS 基础设施:** ``` cd terraform terraform init terraform plan terraform apply ``` **Kubernetes (Falco 和 Gatekeeper):** ``` # 创建本地 K3s 集群 k3d cluster create cloud-security-lab --agents 1 # 安装 Falco cd k8s/falco && bash install.sh # 安装 Gatekeeper cd k8s/gatekeeper && bash install.sh kubectl apply -f constraint-templates.yaml kubectl apply -f constraints.yaml ``` **攻击性测试:** ``` # 安装 Pacu pip3 install pacu # 运行 ScoutSuite scout aws --no-browser ``` ## 清理 ``` # Kubernetes k3d cluster delete cloud-security-lab # AWS cd terraform && terraform destroy ```
标签:AMSI绕过, AWS, Cloudflare, CloudTrail, CSV导出, DevSecOps, DPI, ECS, Falco, GuardDuty, K3s, MITRE ATT&CK, OPA Gatekeeper, Shell 注入, StruQ, Terraform, VPC Flow Logs, Web截图, 上游代理, 人工智能安全, 协议分析, 合规性, 威胁检测, 安全可视化, 安全运营, 实验案例, 容器安全, 容器逃逸, 扫描框架, 挖矿, 攻击链, 敏感词过滤, 数据窃取, 最佳实践, 权限提升, 架构设计, 横向移动, 漏洞利用检测, 特权容器, 编程规范, 网络安全, 自动修复, 足迹分析, 隐私保护