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, 威胁检测, 无后门, 日志解析, 证书伪造, 逆向工具