Sakshats993/AWS-IAM-Security-Scanner

GitHub: Sakshats993/AWS-IAM-Security-Scanner

基于 Python 和 boto3 构建的 AWS IAM 安全审计工具,专注于自动化检测身份与访问管理层面的错误配置和权限提升风险。

Stars: 1 | Forks: 0

🔐 基于 Python 和 boto3 构建的真实 AWS IAM 安全审计工具

🔐 AWS IAM 安全扫描器

🚀 自动化 AWS IAM 错误配置检测工具

MFA • 策略 • 凭证 • 权限提升

## 📌 概述 **AWS IAM 安全扫描器**是一款实用的云安全工具,旨在检测 IAM 错误配置、分析风险并生成具有指导意义的安全报告。本项目展示了云安全工程师在 AWS 环境中识别和缓解错误配置时所使用的真实 IAM 安全审计技术。 ## ⚡ 快速演示 ``` $ python run_audit.py ``` CRITICAL: 2 HIGH: 3 MEDIUM: 4 LOW: 1 ## 🚀 功能 - 🔍 检测常见的 IAM 错误配置 - 🛡️ 识别权限提升风险 - 🔑 审计访问密钥和凭证卫生状况 - 👤 检查 IAM 用户是否强制启用了 MFA - 📜 分析 IAM 策略中的危险权限 - 🎭 评估 IAM 角色信任关系 - 📊 生成 Console、JSON 和 HTML 报告 - ⚙️ 支持通过 YAML 配置扫描 - 🧩 模块化且可扩展的架构 ## 🧠 本项目展示了什么 - AWS IAM 安全基础知识 - 真实环境中的云错误配置检测 - 使用 Python (boto3) 实现安全自动化 - 基于风险的严重性分类(Critical → Low) - 最小权限原则 的实际应用 ## 🏗️ 项目结构 ``` aws-iam-security-scanner/ ├── run_audit.py # Entry point ├── config.yaml # Scanner configuration ├── requirements.txt ├── src/ │ ├── scanner/ # Security checks │ ├── reporters/ # Output generators │ └── utils/ # AWS + helper logic ├── reports/ # Generated reports └── tests/ ``` ## ⚡ 工作原理 1. 使用已配置的凭证连接到 AWS 2. 扫描 IAM 资源(用户、角色、策略、凭证) 3. 根据最佳实践识别安全问题 4. 按严重程度对发现的问题进行分类 5. 生成带有修复步骤的详细报告 ## 🔄 工作流程 AWS 账户 → 扫描模块 → 发现的问题 → 报告器 → 输出 (Console / JSON / HTML) ## ⚙️ 安装 ### 1. 克隆仓库 ``` git clone https://github.com/Sakshats993/AWS-IAM-Security-Scanner cd aws-iam-security-scanner ``` ### 2. 安装依赖 ``` pip install -r requirements.txt ``` ### 3. 配置 AWS 凭证 ``` aws configure ``` ### 或使用环境变量 ``` cp .env.example .env ``` ## ▶️ 使用方法 ### 运行完整扫描 ``` python run_audit.py ``` ### 运行特定模块 ``` python run_audit.py --scan-only users ``` ### 使用不同的 AWS profile ``` python run_audit.py --profile production ``` ### 禁用控制台输出 ``` python run_audit.py --no-console ``` ## 🔍 已实现的安全检查 ### 🔴 Root 账户 - Root MFA 被禁用 - 存在 Root 访问密钥 ### 👤 IAM 用户 - 未启用 MFA 的用户 - 未受保护的高权限用户 ### 🔑 凭证 - 陈旧的访问密钥 - 长期有效的活动凭证 ### 📜 IAM 策略 - 完全管理员访问权限 (`*:*`) - 危险权限: - iam:PassRole - iam:CreatePolicyVersion - iam:SetDefaultPolicyVersion ### 🎭 IAM 角色 - 过于宽松的信任策略 (* 通配符) ## 📊 输出示例 CRITICAL: 2 HIGH: 3 MEDIUM: 4 LOW: 1 报告存储在: /reports/ ## 📸 截图

Script Output (Policy Analysis + Remediation)          Misconfigured User (No MFA + Dangerous Policy)

Clean Audit (No Issues Detected)          Critical Finding (Root MFA Disabled)

IAM Users Overview          User Configuration (Intern Test User)

## ⚠️ 问题发现示例 ``` { "severity": "CRITICAL", "title": "Root Account MFA Not Enabled", "resource": "root", "description": "Root account does not have MFA enabled", "remediation": "Enable MFA immediately" } ``` 来自真实 AWS 环境的输出示例: - ❗ 未启用 MFA 的 Root 账户 (CRITICAL) - ⚠️ 未启用 MFA 的用户 (HIGH) - ⚠️ 过于宽松的策略 - 在应用前应使用 `terraform plan` 进行审查,因为它可能会创建产生费用的 AWS 资源。 ## 🛡️ 安全影响 IAM 错误配置是导致云安全泄露的主要原因之一。这与真实的云攻击场景和安全审计相吻合。 - 权限提升路径 - 过于宽松的策略 - 薄弱的身份验证设置 - 长期有效的凭证 ## 🚀 未来改进 - 发现问题的自动修复 - 多账户扫描支持 - AWS Security Hub 集成 - Slack / 邮件告警 - 仪表盘可视化 - 基于 AI 的风险评分 - CI/CD 集成以实现自动化安全检查 ## 🛡️ 免责声明 本工具仅用于教育和授权的安全审计目的。请勿在未经适当许可的情况下将其用于他人账户。 ## 📄 许可证 本项目基于 MIT 许可证授权。 ## 🌟 支持 如果您觉得这个项目有用,请考虑在 GitHub 上给它点个 ⭐!
标签:AWS, boto3, DevSecOps, DPI, HTML报告, IAM, MFA, PoLP, Python, 上游代理, 云合规, 凭证安全, 协议分析, 数据展示, 无后门, 最小权限原则, 权限提升, 策略分析, 红队, 逆向工具, 配置检测, 风险分析