dhruvvv55/cloud-threat-detection-lab

GitHub: dhruvvv55/cloud-threat-detection-lab

一个 GCP 云威胁检测实验室,通过模拟 IAM 攻击场景并分析审计日志,实现基于 MITRE ATT&CK 映射的检测与 Splunk 告警。

Stars: 0 | Forks: 0

# 云威胁检测实验室 在 GCP 上模拟的 IAM 攻击场景,使用 Python pipeline 和 Splunk SPL 规则进行检测。 ## 架构 ![架构](https://static.pigsec.cn/wp-content/uploads/repos/cas/6c/6cca824d716819ffa66bba4367c893f277748caa1e43455fc78a6b6d6ea09db2.svg) ## 我所做的工作 设置了一个 GCP project,创建了一个低权限的 service account,然后模拟攻击者通过 `SetIamPolicy` 将其权限提升至 `roles/owner`。GCP Cloud Audit Logs 捕获了每一次 API 调用。在此基础上,我构建了两样东西: 1. **gcp_detector.py** — 通过 Cloud Logging API 拉取审计日志,运行检测规则,将发现结果映射到 MITRE ATT&CK,并输出结构化的事件报告 2. **gcp_to_splunk.py** — 通过 HEC 将这些日志转发到 Splunk,我在其中编写了 SPL 检测查询并设置了每小时调度的警报 ## 攻击场景 **IAM 权限提升 (T1078.004)** 创建了一个仅有查看权限的 service account,然后为其授予 `roles/owner`: ``` # 低权限启动 gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:attacker-sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/viewer" # Escalate 为 owner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:attacker-sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/owner" ``` Cloud Audit Logs 记录了 `SetIamPolicy` 调用,包含调用者 IP、principal 和确切的策略增量 (policy delta)。 ## 检测规则 (Python) | 严重程度 | 规则 | MITRE | |---|---|---| | CRITICAL | IAM 权限提升 | T1078.004 | | HIGH | Service Account Key 创建 | T1528 | | MEDIUM | 异常 SA API 活动 | T1078.004 | | LOW | IAM Policy 修改 | T1098 | `gcp_detector.py` 的示例输出: ``` [CRITICAL] IAM Privilege Escalation ID : PRIV-ESC-001 Principal : attacker@gmail.com Caller IP : 34.124.220.91 Method : SetIamPolicy MITRE : T1078.004 - Valid Accounts: Cloud Accounts Action : Revoke roles/owner. Check for lateral movement. ``` ## Splunk 集成 通过 HEC 将 22 条真实的 GCP 审计日志事件转发到 Splunk。检测查询: ``` index=main source="gcp:cloudaudit" method="SetIamPolicy" | eval severity="CRITICAL", mitre="T1078.004 - Valid Accounts: Cloud Accounts" | table timestamp, principal, caller_ip, method, severity, mitre | sort -timestamp ``` 保存为每小时调度的 Splunk 警报,在结果数 > 0 时触发。 ## 技术栈 - GCP Cloud Audit Logs - Python 3.9+ / google-cloud-logging - Splunk Enterprise (本地) / HEC - SPL ## 设置 ``` # Auth gcloud auth application-default login gcloud auth application-default set-quota-project YOUR_PROJECT_ID # 安装 pip install google-cloud-logging google-auth python-dotenv requests # 运行 detector python gcp_detector.py --hours 1 # 转发至 Splunk python gcp_to_splunk.py --hours 1 ``` ## 作者 **Dhruv Patel** — 南加州大学 (USC) 网络安全工程硕士
标签:AMSI绕过, GCP, IAM, 威胁检测, 逆向工具