Seanfrvr/gcp-iam-threat-hunting

GitHub: Seanfrvr/gcp-iam-threat-hunting

演示如何在 GCP 中通过 Security Command Center 和审计日志狩猎 IAM 身份持久化威胁并重构攻击时间线的实战项目。

Stars: 0 | Forks: 0

# 云端威胁狩猎:调查 GCP 中的身份持久化 ## 目标 完成了一次注重实践的应急响应调查,重点是在 Google Cloud Platform 中检测和分析基于身份的威胁。在云环境中,攻击者不仅会窃取数据,还会试图建立持久化。本项目演示了如何发现高危的权限提升事件,并从原始审计日志中重构完整的攻击时间线。 ## 渗透点 在 IAM & Admin 中发现了一个配置漏洞:一个未经授权的外部邮箱地址 (`bad.actor.demo@gmail.com`) 被明确授予了 GCP 中破坏性最大的角色——**Owner**——从而获得了几乎所有项目资源的完全访问权限。 ## 通过 Security Command Center 进行检测 Google Cloud 的 Security Command Center 自动将此行为标记为 **High Severity**(高危)发现,归类于 **Persistence: IAM anomalous grant**(持久化:IAM 异常授权)。 SCC 提取的关键细节: | 字段 | 值 | |---|---| | 描述 | 通过 `InsertProjectOwnershipInvite` API 邀请外部成员成为项目 Owner | | 严重性 | High | | 调用者 IP | xxx.xxx.xxx.xxx (南非) | | 方法名称 | `InsertProjectOwnershipInvite` | | 主账号邮箱 | `student-02-4ea97df26394@qwiklabs.net` | | 服务名称 | `cloudresourcemanager.googleapis.com` | 这证实了授权发生的**确切时间**以及签发该授权所使用的**被盗用主账号**。 ## 转向取证 —— Logs Explorer 为了准确证明这是如何发生的,转入 Logs Explorer 并构建了针对性的 LQL (Logging Query Language) 查询,以便从数千个正常事件中精确分离出攻击者的行为: 此查询专门过滤通过 ownership-invite API 进行的 IAM 政策更改——穿透常规的审计噪音,仅呈现相关的身份事件。 ## 根因分析 展开了匹配日志条目的 JSON payload,为事件文档提取确凿证据: - 确认了用于签发授权的确切**调用者 IP** - 确认了用于绕过标准角色分配工作流的**方法名称** - 识别了被滥用于授权恶意授权的**被盗用主账号邮箱** ## 查询验证 重新运行了针对性的 LQL 查询,确认它能可靠地分离出恶意操作——验证了该取证查询能正确呈现隐藏的身份威胁,而不仅仅是这个特定实例。 ## 发现 - 确认了通过外部 IAM Owner 授权进行的未经授权的权限提升 - 将攻击路径溯源到特定的被盗用主账号 - 构建了可重用的 LQL 检测查询,用于检测 `InsertProjectOwnershipInvite` 滥用——这种模式可以转化为固定的检测规则 ## 展示的技能 - Cloud IAM 安全分析 - 通过 Security Command Center 进行威胁检测 - 在 Google Cloud Logs Explorer 中进行日志分析和查询编写 (LQL) - 从原始审计日志重构事件时间线 - 根因分析和取证文档记录 ## 截图 **未经授权的 IAM 授权 —— 渗透点** ![未经授权的授权](https://raw.githubusercontent.com/Seanfrvr/gcp-iam-threat-hunting/main/screenshots/1-unauthorized-grant.png) **SCC 发现 —— 检测到高危异常授权** ![SCC 发现](https://raw.githubusercontent.com/Seanfrvr/gcp-iam-threat-hunting/main/screenshots/2-scc-finding.png) **Logs Explorer 中的 LQL 查询 —— 转向取证** ![Logs Explorer 查询](https://raw.githubusercontent.com/Seanfrvr/gcp-iam-threat-hunting/main/screenshots/3-logs-explorer-query.png) **JSON payload 分析 —— 根因证据** ![JSON payload 分析](https://raw.githubusercontent.com/Seanfrvr/gcp-iam-threat-hunting/main/screenshots/4-json-payload-analysis.png) **确认检测的查询验证** ![查询验证](https://raw.githubusercontent.com/Seanfrvr/gcp-iam-threat-hunting/main/screenshots/5-query-validation.png)
标签:GCP, IAM, 库, 应急响应