JoshuaAllyn/cloudtrail_security_analyzer

GitHub: JoshuaAllyn/cloudtrail_security_analyzer

一款零依赖的Python命令行工具,通过分析CloudTrail JSON日志文件检测失败登录、异常区域访问和权限提升等安全威胁。

Stars: 0 | Forks: 0

# CloudTrail 安全分析器 一个基于 Python 的命令行工具,用于分析 AWS CloudTrail JSON 日志以检测安全威胁和可疑活动。专为需要跨 CloudTrail 事件数据进行快速、自动化威胁检测的云安全工程师设计。 **作者:** Josh Allyn — [LinkedIn](https://www.linkedin.com/in/joshuaallyn/) ## 功能特性 - **失败登录检测** — 识别失败的 ConsoleLogin 尝试,按用户和源 IP 分组 - **异常区域检测** — 标记在总事件中出现比例少于 10% 的 AWS 区域,捕捉组织正常运营区域之外的活动 - **敏感 API 调用检测** — 监控高风险 API 调用,包括 `CreateUser`、`AttachUserPolicy`、`DeleteTrail`、`CreateAccessKey`、`PutBucketPolicy` 和 `AuthorizeSecurityGroupIngress` - **权限提升检测** — 识别执行两次或以上敏感 API 调用的用户,这是权限提升或账户遭入侵的常见指标 - **错误处理** — 优雅地处理文件缺失、格式错误的 JSON 以及不完整的事件记录 ## 环境要求 - Python 3.6+ - 无外部依赖 — 仅使用 Python 标准库 (`json`) ## 使用方法 1. 将你的 CloudTrail JSON 日志文件放置在与脚本相同的目录中 2. 更新脚本中的文件名,或将你的文件重命名为 `sample_cloudtrail.json` 3. 运行分析器: ``` python3 cloudtrail_analyzer.py ``` CloudTrail JSON 文件必须遵循标准 AWS 格式,即事件嵌套在 `"Records"` 键下。 ## 示例输出 ``` ================================================== CLOUDTRAIL SECURITY ANALYSIS REPORT ================================================== Total events analyzed: 15 -------------------------------------------------- FAILED CONSOLE LOGINS -------------------------------------------------- User: admin Attempts: 3 Source IPs: 203.0.113.99 User: rogue-user Attempts: 1 Source IPs: 203.0.113.50 -------------------------------------------------- UNUSUAL REGIONS -------------------------------------------------- eu-west-1: 1 event(s) ap-northeast-2: 1 event(s) -------------------------------------------------- SENSITIVE API CALLS -------------------------------------------------- User: jsmith Actions: CreateUser, AttachUserPolicy, AuthorizeSecurityGroupIngress User: rogue-user Actions: DeleteTrail, CreateAccessKey User: deploy-bot Actions: PutBucketPolicy -------------------------------------------------- POSSIBLE PRIVILEGE ESCALATION -------------------------------------------------- User: jsmith Actions: CreateUser, AttachUserPolicy, AuthorizeSecurityGroupIngress WARNING: 3 sensitive actions by single user User: rogue-user Actions: DeleteTrail, CreateAccessKey WARNING: 2 sensitive actions by single user ================================================== END OF REPORT ================================================== ``` ## 项目结构 ``` cloudtrail-security-analyzer/ ├── cloudtrail_analyzer.py # Main analysis script ├── sample_cloudtrail.json # Sample CloudTrail data for testing └── README.md # This file ``` ## 工作原理 该分析器读取 CloudTrail JSON 文件,并针对事件数据运行四个检测函数: 1. **load_events()** — 解析 JSON 文件并提取 Records 数组,包含针对文件缺失和无效 JSON 的错误处理 2. **detect_failed_logins()** — 筛选出响应为 Failure 的 ConsoleLogin 事件,按用户名分组结果并收集源 IP 3. **detect_unusual_regions()** — 统计每个 AWS 区域的事件数,并标记任何占总活动比例少于 10% 的区域 4. **detect_sensitive_api_calls()** — 根据预定义的高风险 API 操作列表检查每个事件,并按用户分组发现结果 5. **detect_privilege_escalation()** — 分析敏感 API 结果,以识别执行了两次或以上被标记操作的用户 ## 自定义配置 - **敏感 API 调用:** 编辑 `detect_sensitive_api_calls()` 中的 `sensitive_calls` 列表,以添加或移除受监控的 API 操作 - **区域阈值:** 调整 `detect_unusual_regions()` 中的 `0.10` 阈值以更改敏感度(数值越低 = 更多警报) ## 许可证 MIT
标签:AMSI绕过, AWS, CLI, CloudTrail, DevSecOps, DPI, IAM安全, JSON解析, Python, WiFi技术, 上游代理, 失败登录检测, 威胁检测, 对称加密, 开源安全工具, 异常区域检测, 敏感API调用, 文档结构分析, 无后门, 特权升级, 自动化审计, 逆向工具, 逆向工程平台