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调用, 文档结构分析, 无后门, 特权升级, 自动化审计, 逆向工具, 逆向工程平台