oladimejiaeboyecyber/aws-iam-risk-analyzer

GitHub: oladimejiaeboyecyber/aws-iam-risk-analyzer

一款 Python 编写的 AWS IAM 风险分析工具,通过自动化扫描角色权限与信任策略来发现提权路径和配置错误,并生成按严重程度排序的风险报告。

Stars: 0 | Forks: 0

# AWS IAM 提权与配置错误风险分析器 一款 Python 工具,用于扫描 AWS 账户中的 IAM 角色,排查提权路径和危险的配置错误,随后生成按严重程度排名的风险报告。 ## 问题背景 在真实的 AWS 环境中,单个账户可能包含成百上千个 IAM 角色。看似无害的单个权限可能会组合成提权路径——使得低权限身份悄无声息地获得通往完全管理员权限的途径。在大规模环境下,几乎不可能通过人工发现这些路径,而且它们也是导致云安全漏洞的首要原因。 该工具自动化了这一分析过程:它枚举账户中的每个角色,根据已知的提权和配置错误模式对每个角色进行检查,评估风险得分,并生成一份优先级报告,指出应优先修复的问题。 ## 工作原理 该工具作为一个三阶段 pipeline 运行: 1. **收集** (`analyzer/collector.py`) — 使用 AWS SDK (boto3) 枚举账户中的每个 IAM 角色,提取每个角色的信任策略、内联策略和附加的托管策略。 2. **检测与评分** (`analyzer/detector.py`) — 通过四条检测规则对每个角色进行排查。每项发现都会根据其影响和可利用性被分配一个严重程度(CRITICAL / HIGH / MEDIUM),并按最严重的优先原则进行排序。 3. **报告** (`analyzer/report.py`) — 输出机器可读的 JSON 报告和人类可读的 Markdown 报告,其中包含严重程度摘要、发现结果表格以及详细信息。 ## 检测规则 | # | 规则 | 严重程度 | 捕获目标 | |---|------|----------|-----------------| | 1 | PassRole + Lambda | MEDIUM | 可以创建 Lambda *并且* 能向其传递角色的角色——允许其将特权角色附加到受攻击者控制的代码上。 | | 2 | 自身权限修改 | HIGH | 可以编辑自身权限(例如 `iam:AttachRolePolicy`)的角色,允许其为自己授予管理员权限。 | | 3 | 通配符管理员 | HIGH | 允许对所有资源 (`*`/`*`) 执行所有操作的内联策略——实际上等同于管理员。 | | 4 | 过于宽松的信任策略 | CRITICAL | 允许 `Principal: "*"` 的信任策略——意味着*任何人*都可以担任该角色。 | 规则 1–3 检查角色**能做什么**(其权限)。规则 4 检查谁**可以担任**该角色(其信任策略)——这是一个截然不同且经常被忽视的攻击面。 ## 运行工具 ### 前置条件 - 已配置好凭证的 AWS 账户(`aws configure`) - Python 3.12+ - Terraform(仅在部署测试实验环境时需要) ### 设置 ``` git clone https://github.com/oladimejiaeboyecyber/aws-iam-risk-analyzer.git cd aws-iam-risk-analyzer python -m venv venv .\venv\Scripts\Activate # Windows # source venv/bin/activate # macOS/Linux pip install -r requirements.txt ``` ### (可选)部署漏洞测试实验环境 `infra/` 目录包含 Terraform 配置,用于配置专门设计的易受攻击的 IAM 角色——每条检测规则对应一个——以便你能看到分析器捕获真实的发现结果。 ``` cd infra terraform init terraform apply # type 'yes' to confirm cd .. ``` ### 运行分析器 ``` python analyzer/report.py ``` 这将生成 `reports/risk-report.json` 和 `reports/risk-report.md`。 ## 输出示例 ![示例风险报告](https://static.pigsec.cn/wp-content/uploads/repos/cas/57/57257fc62f9f5a3d94a6fc571d1dfe2ef9fb0caaef1102855bff1875b57152ca.png) ## 我的收获 这个项目带我从 IAM 基础知识走向了一款实用的云安全工具:编写信任和权限策略、手动执行一次真实的提权(PassRole + Lambda)、使用 Terraform 定义基础设施即代码,并使用 Python (boto3) 构建了一个能够自动检测 IAM 风险并对其进行优先级排序的分析器。
标签:AWS, DPI, IAM, Python, 协议分析, 无后门, 权限提升, 逆向工具