songagona2017-ops/soc-toolkit

GitHub: songagona2017-ops/soc-toolkit

一个纯标准库实现的 Python SOC 工具包,用于解析 SSH 日志、检测暴力破解与凭证失陷,并输出可操作的分诊报告。

Stars: 0 | Forks: 0

# SOC 分析师工具包 一个小巧且**无外部依赖的 Python 工具包**,它可以读取原始的 SSH `auth.log`,检测暴力破解活动,对恶意 IP 进行富化分析,并输出一份可直接用于分诊的报告。构建此工具是为了展示我能将检测逻辑转化为实际可用的代码——而不仅仅是在 SIEM 中点击操作。 ## 功能 - **解析器** (`log_parser.py`) — 基于 regex 的 OpenSSH 日志解析器 → 类型化的 `AuthEvent` 记录。 - **检测器** (`bruteforce_detector.py`) — 按源 IP 对失败记录进行分组,标记暴力破解行为,并在连续登录失败后出现成功登录时,标记**疑似凭证失陷**。 - **情报富化** (`ioc_enrich.py`) — 在本地离线检查 IP 是否匹配 CIDR 黑名单;如果设置了 `ABUSEIPDB_API_KEY`,可选开启实时的 **AbuseIPDB** 评分查询。 - **CLI** (`cli.py`) — 输出文本或 JSON 格式的报告;当发生疑似凭证失陷时以非零状态码退出(对 SOAR/CI 友好)。 - **测试** — 包含 `pytest` 测试套件,覆盖了解析、检测和富化功能。 ## 快速开始 无需安装——核心代码仅使用了 Python 标准库。 ``` cd soc-toolkit # 文本报告 python -m soc_toolkit.cli --logfile sample_data/auth.log --blocklist sample_data/blocklist.txt # JSON(通过管道传递给 jq、SIEM 或 ticketing webhook) python -m soc_toolkit.cli --logfile sample_data/auth.log --json # 更严格的阈值 python -m soc_toolkit.cli --logfile sample_data/auth.log --threshold 5 ``` ### 示例输出 ``` ================================================================ SOC TOOLKIT — BRUTE FORCE REPORT ================================================================ Log file : sample_data/auth.log Events parsed : 17 Fail threshold : > 10 Findings : 1 ---------------------------------------------------------------- [HIGH] 45.146.164.110 failed attempts : 12 successful logins : 1 targeted users : admin, jsmith, root ⚠ LIKELY COMPROMISE — success after failure burst enrichment : BLOCKLISTED ---------------------------------------------------------------- ``` ## 运行测试 ``` pip install pytest python -m pytest -q ``` ## 可选:实时威胁情报富化 ``` export ABUSEIPDB_API_KEY=your_key_here pip install requests python -m soc_toolkit.cli --logfile sample_data/auth.log --blocklist sample_data/blocklist.txt # enrichment 行现在包含 AbuseIPDB= ``` ## 设计说明 - **离线优先:** 网络调用均为可选且尽力而为,因此可以在高度锁定的安全环境中运行。 - **可组合性:** 每个模块(解析 → 检测 → 富化)均可独立导入和测试。 - **映射至 ATT&CK:** 检测逻辑对标 [T1110](https://attack.mitre.org/techniques/T1110/),确保代码与 SIEM 规则讲述的是同一个故事。 ## 路线图 - [ ] Windows Security EVTX 解析(4625/4624),以直接匹配 Sigma 规则 - [ ] 时间窗口检测(5 分钟滚动时间桶),取代全文件聚合 - [ ] 输出为 STIX / MISP 格式以便进行情报共享
标签:Python, 威胁情报, 子域名暴力破解, 安全规则引擎, 安全运营, 开发者工具, 扫描框架, 无后门, 红队行动, 自动化检测, 逆向工具