shaheerulislam/cloudtrail-security-analyzer
GitHub: shaheerulislam/cloudtrail-security-analyzer
一款用于解析 AWS CloudTrail 日志并标记可疑安全行为的 Python 工具,旨在为后续的威胁检测与可视化分析管道奠定基础。
Stars: 1 | Forks: 0
# CloudTrail 日志解析器
一款 Python 工具,用于解析 AWS CloudTrail 日志文件(本地或来自 S3),
将其标准化为结构化事件,并标记常见的可疑
模式。这是一个更大的云安全
分析项目的摄取/解析层——检测规则引擎和仪表板将构建在
此基础之上。
## 项目结构
```
cloudtrail-parser/
├── models.py # CloudTrailEvent dataclass - the normalized event schema
├── parser.py # Core parsing logic for .json / .json.gz log files
├── s3_loader.py # Optional S3 integration (requires boto3)
├── flags.py # Lightweight heuristic flags (preview of the rule engine)
├── cli.py # Command-line entry point
├── sample_logs/ # Example CloudTrail log with a realistic attack chain
└── requirements.txt
```
## 设置
```
pip install -r requirements.txt --break-system-packages
```
(仅在使用 `--source s3` 时才需要 boto3。)
## 用法
解析本地日志文件:
```
python cli.py --source local --path ./sample_logs --out events.csv
```
直接从 S3 存储桶解析日志:
```
python cli.py --source s3 --bucket my-cloudtrail-bucket --prefix AWSLogs/123456789012/CloudTrail/ --out events.csv
```
这将:
1. 将每条 CloudTrail 记录解析为结构化的 `CloudTrailEvent`
2. 将所有事件写入 CSV 文件
3. 打印引发的任何启发式安全标记的摘要
## 当前标记的内容
- Root 账户使用情况(最佳实践:切勿在日常操作中使用 root)
- 未使用 MFA 的控制台登录
- 日志篡改尝试(`StopLogging`、`DeleteTrail` 等)
- 敏感的 IAM 更改(`AttachUserPolicy`、`CreateAccessKey` 等)
- 控制台登录失败尝试
这些是有意设计的简单启发式规则。项目的下一阶段
将使用合适的规则引擎(Sigma 风格的规则)替换 `flags.py`,并添加
跨多个事件的相关性分析(例如:登录失败 -> 登录成功 -> IAM
更改 -> 日志篡改,作为一个单一事件)。
## 设计说明
- **关注点分离**:`parser.py` 零 AWS SDK 依赖,因此
无需模拟 S3 即可进行单元测试,并且适用于任何 CloudTrail
JSON 源(本地导出、CloudWatch Logs 转储等)。
- **弹性**:格式错误的单条记录将被记录并跳过,
而不会导致整个批次崩溃——现实世界中的日志数据从来都
不是完全干净的。
- **流式处理友好**:`s3_loader.py` 一次下载并删除一个文件,
因此它可以扩展到大量日志,而不会填满磁盘。
## 后续步骤
- [ ] 威胁检测规则引擎(Sigma 规则)
- [ ] 多步攻击链的相关性逻辑
- [ ] 输出到 OpenSearch 以替代或补充 CSV
- [ ] Lambda handler 包装器,用于通过 Kinesis 进行实时处理
标签:AMSI绕过, AWS, CloudTrail, DPI, Python, 威胁检测, 无后门, 日志解析, 证书伪造, 逆向工具