BlueTeam Log Analyzer - 蓝队应急响应日志分析工具
Project description
BlueTeam Log Analyzer (BLA)
蓝队应急响应日志分析工具 | Blue Team Incident Response Log Analyzer
BLA 是一款面向蓝队应急响应场景的日志分析工具,支持 Windows 事件日志、Linux 认证日志、Web 访问日志等多种格式,内置 70+ 条威胁检测规则,完全离线运行,无需任何第三方服务。
功能特性
- 多格式解析:Windows XML/EVTX、Linux auth.log/secure、Apache/Nginx 访问日志、HVV/重保 P0 结构化日志、通用文本日志(自动识别类型)
- 70+ 检测规则:覆盖 MITRE ATT&CK 9 个阶段,包括暴力破解、密码喷洒、横向移动、权限提升、持久化、防御规避、凭据访问、Web 攻击等
- 护网/重保画像:
--profile cn-hvv增强 Shiro、Fastjson、Struts2、ThinkPHP、WebLogic、Spring、Webshell 等国内常见痕迹检测 - 攻击链还原:自动关联多文件事件,还原 ATT&CK 攻击链
- P0 多源关联案件:对 WAF、VPN、堡垒机、DNS、代理、防火墙、EDR、应用日志做归一化、富化和跨源关联,输出 incident 级案件视图
- IOC 提取:一键导出 IP、域名、URL、文件路径、Hash、账户、进程和可疑命令
- 白名单/基线压制:支持 JSON allowlist 过滤可信 IP、账户、路径、进程、UA,并支持可信扫描器、维护窗口、规则级 suppress,降低真实环境误报
- 风险评分:0-100 综合评分,4 级威胁分级(严重/高危/中危/低危)
- HVV/重保采集矩阵:内置边界、身份、终端、流量、应用、数据库、云原生、协同办公等日志源优先级,可用
--list-log-sources快速查看 - 多格式输出:终端彩色报告、独立 HTML 报告(含离线图表)、JSON、CSV、IOC 文本、SARIF 2.1.0(GitHub Code Scanning 兼容)
- 一键报告目录:
--out report/自动生成 HTML、JSON、CSV、IOC、SARIF 五类标准产物 - 可配置阈值:暴力破解 / DDoS / 密码喷洒等阈值集中管理,支持
--config thresholds.json与BLA_THRESHOLD_*环境变量覆盖,适配不同业务环境 - YAML 规则扩展:支持
--rules加载自定义 Web 检测规则目录,保持零依赖同时方便二次开发 - 规则质量工具:
bla validate-rules校验规则元数据与正则可编译性,bla benchmark评估解析/检测吞吐,bla explain从 JSON 报告解释告警或案件证据 - CI 友好:
--exit-on {none,critical,high,medium}让流水线按需要的告警级别决定门禁 - 大文件友好:Linux auth.log、Web access.log 与 P0 JSONL/key=value/CSV 日志使用逐行解析路径,多个文件可用
-j N并行处理 - 完全离线:无网络请求,无 AI 调用,所有规则内置,适合隔离网络环境
- 零依赖:Python 3.9+ 标准库即可运行
支持的日志类型
| 日志类型 | 格式 | 说明 |
|---|---|---|
| Windows 事件日志 | .xml(wevtutil 导出) |
安全/系统/应用/Sysmon 日志 |
| Windows EVTX | .evtx(二进制) |
需安装 python-evtx(可选) |
| Linux 认证日志 | auth.log / secure |
SSH / Sudo / PAM / useradd |
| Web 访问日志 | Apache/Nginx Combined | SQL 注入/XSS/LFI/RCE/扫描器检测 |
| HVV/重保 P0 结构化日志 | CSV / JSONL / JSON 数组 / key=value | WAF、VPN、堡垒机、DNS、代理/NAT、防火墙、EDR、应用日志 |
| 通用文本日志 | 任意格式 | 关键字提取与告警 |
HVV / 重保日志源采集矩阵
这份矩阵用于 HVV、重保和大型应急响应现场安排日志拉取顺序。它不是简单罗列“能拿什么日志”,而是按攻击链研判价值分成三档:
P0:第一轮必采,直接支撑入口确认、账号突破、主机失陷、C2 外联、横向移动、数据访问等关键判断。P1:第二轮补全攻击链,用于交叉验证、扩大排查、确认影响面和处置闭环。P2:溯源、影响评估和运营支撑材料,用于确认资产归属、变更背景、日志缺口、备份恢复点等。
完整矩阵可直接由 CLI 输出,包含优先级、类别、类型、重要性、必备字段、研判重点和建议时间窗:
bla --list-log-sources
第一轮 P0 必采源建议优先覆盖:
| 类别 | P0 日志源 | 核心价值 |
|---|---|---|
| 边界入口 | WAF / Web 安全网关日志 | 确认攻击载荷、命中规则、真实源 IP 和被打入口 |
| 边界入口 | CDN / SLB / 反向代理访问日志 | 还原真实客户端、转发链路和后端实例 |
| Web 与应用 | Web 服务器 access.log | 识别扫描、漏洞利用、Webshell 访问和批量下载 |
| Web 与应用 | 业务应用日志 | 定位鉴权绕过、反序列化、命令执行、越权和业务异常 |
| 身份与远程接入 | VPN / SSL VPN / 零信任登录日志 | 发现弱口令、撞库、异地登录和异常设备 |
| 身份与远程接入 | 堡垒机登录与命令审计 | 还原运维跳转、命令执行、文件落地和会话时间线 |
| 身份与权限 | AD / 域控 Security 日志 | 识别域账号爆破、票据滥用、横向移动、提权和权限变更 |
| 身份与权限 | IAM / SSO / MFA 审计日志 | 确认单点登录异常、MFA 绕过、云账号滥用和权限扩大 |
| 主机与终端 | EDR / XDR 告警与终端行为 | 还原木马落地、进程执行、横向移动和查杀隔离情况 |
| 主机与终端 | Windows 安全日志 / Sysmon | 追踪登录、进程、计划任务、服务安装、网络连接和持久化 |
| 主机与终端 | Linux auth.log / secure / auditd | 识别 SSH 爆破、提权、账号变更、敏感文件访问和持久化 |
| 流量与解析 | DNS 解析日志 | 发现 C2、DGA、DNS 隧道、恶意域名访问和感染主机 |
| 流量与解析 | 出口代理 / 上网行为 / SWG 日志 | 确认 C2 回连、恶意下载、数据外传和访问链路 |
| 流量与解析 | 边界防火墙 / NAT / 会话日志 | 还原南北向访问、源地址映射、出入口连接和大流量传输 |
| 流量与解析 | NDR / 天眼 / 全流量探针告警 | 发现漏洞利用、C2、横向移动、内网扫描和数据外传线索 |
| 数据与中间件 | 核心数据库审计日志 | 识别拖库、越权查询、高危 DDL/DML 和敏感表访问 |
| 云与容器 | 云平台审计日志 | 确认云账号接管、AK 滥用、权限变更和安全策略关闭 |
| 云与容器 | Kubernetes API 审计日志 | 识别 exec、Secret 读取、RBAC 变更和集群接管 |
检测规则覆盖
| 类别 | 规则示例 | MITRE ATT&CK |
|---|---|---|
| 暴力破解 | SSH/RDP/Kerberos 失败登录聚合 | T1110.001 |
| 密码喷洒 | 多账户低频尝试识别 | T1110.003 |
| 横向移动 | RDP 跳转、显式凭据(PtH 指示器) | T1021.001, T1550.002 |
| 权限提升 | 添加到特权组、Sudo 滥用、Root 直接登录 | T1098.001, T1548.003 |
| 持久化 | 服务安装、计划任务创建、账户创建 | T1543.003, T1053.005, T1136 |
| 防御规避 | 日志清除(EventID 1102/104)、审计策略修改 | T1070.001, T1562.002 |
| 凭据访问 | Mimikatz 特征、LSASS 访问(Sysmon EventID 10) | T1003.001 |
| 可疑执行 | 高危 PowerShell、LOLBins(certutil/regsvr32 等) | T1059.001, T1218 |
| Web 攻击 | SQL 注入、XSS、路径遍历、命令注入、Webshell | T1190, T1059.007 |
| 侦察 | 扫描器识别(Nikto/sqlmap/nmap)、敏感文件探测 | T1595, T1083 |
| 护网画像 | Shiro/Fastjson/Struts2/ThinkPHP/WebLogic/Spring/Webshell | T1190, T1505.003 |
安装
环境要求
- Python 3.9 或更高版本
- 操作系统:Windows 10/11、macOS 12+、Ubuntu 20.04+(及其他主流 Linux 发行版)
macOS / Linux
# 克隆仓库
git clone https://github.com/Hackerchen716/blueteam-log-analyzer.git
cd blueteam-log-analyzer
# 方法一:直接运行(无需安装)
python3 bla_cli.py --help
# 方法二:安装为系统命令 bla
chmod +x install.sh
./install.sh
Windows
# 克隆仓库
git clone https://github.com/Hackerchen716/blueteam-log-analyzer.git
cd blueteam-log-analyzer
# 方法一:直接运行
python bla_cli.py --help
# 方法二:运行安装程序(需管理员权限)
install.bat
# 方法三:将 bla.cmd 所在目录加入 PATH,即可全局使用 bla 命令
可选:EVTX 二进制解析支持
pip install python-evtx
安装后可直接解析 .evtx 二进制文件,无需先用 wevtutil 转换为 XML。
使用方法
基本用法
# 分析单个文件(自动识别类型)
bla /var/log/auth.log
# 分析多个文件
bla /var/log/auth.log /var/log/nginx/access.log
# 分析整个目录(递归)
bla /var/log/
# 通配符(Linux/macOS)
bla /path/to/logs/*.xml
输出选项
# 生成 HTML 报告(推荐,含离线图表,浏览器打开)
bla auth.log --html report.html
open report.html # macOS
start report.html # Windows
# 生成 JSON 报告(便于二次处理/SIEM 导入)
bla auth.log --json report.json
# 导出 CSV(便于 Excel 分析)
bla auth.log --csv events.csv
# 导出 IOC 清单(便于封禁、研判、工单流转)
bla logs/ --ioc iocs.txt
# 同时生成所有格式
bla logs/ --html report.html --json report.json --csv events.csv --ioc iocs.txt
# 一键生成标准报告目录
bla logs/ --out incident_report/
# incident_report/
# ├── index.html
# ├── report.json
# ├── events.csv
# ├── iocs.txt
# └── report.sarif
# 生成 SARIF 报告(可上传到 GitHub Code Scanning)
bla logs/ --sarif report.sarif
gh code-scanning upload-sarif --sarif report.sarif
# 自定义阈值(公网跳板机适当调高暴力破解阈值,避免误报)
bla logs/ --config thresholds.json
# 或通过环境变量覆盖
BLA_THRESHOLD_BRUTE_FORCE_HIGH=50 bla logs/
# 并行解析多个文件
bla logs/*.evtx -j 8
# CI 流水线:只在严重以上告警时退出 1
bla logs/ --exit-on high
# 国内护网/重保增强画像
bla logs/ --profile cn-hvv --html report.html --ioc iocs.txt
# 使用白名单压制已知可信噪音
bla logs/ --allowlist docs/allowlist-example.json --html report.html
# 加载自定义 YAML 规则目录(可多次指定,也可用 BLA_RULES_DIR)
bla logs/ --rules ./my-rules --profile cn-hvv --out report/
# 校验规则元数据与正则
bla validate-rules --strict-metadata
# 对合成 P0 日志做性能基准,也可传真实日志路径
bla benchmark --size-mb 100
# 从 JSON 报告解释某个案件或告警
bla explain inc-001 --report incident_report/report.json
# 详细模式(显示所有高危以上事件)
bla auth.log --verbose
# 大型日志终端只看前 100 个告警(JSON/HTML 仍保留完整结果)
bla auth.log --max-alerts 100
# 分析历史 syslog/auth.log(日志本身不含年份时指定年份)
bla auth.log --syslog-year 2024
# 查看应急日志源采集优先级
bla --list-log-sources
# 禁用彩色输出(重定向到文件时使用)
bla auth.log --no-color > report.txt
Windows 日志导出
在 Windows 主机上导出日志,拷贝到分析机后使用 BLA 分析:
# 导出安全日志(推荐)
wevtutil epl Security Security.xml /lf:true
# 导出系统日志
wevtutil epl System System.xml /lf:true
# 导出 Sysmon 日志(需已安装 Sysmon)
wevtutil epl "Microsoft-Windows-Sysmon/Operational" Sysmon.xml /lf:true
# 导出 PowerShell 日志
wevtutil epl "Microsoft-Windows-PowerShell/Operational" PowerShell.xml /lf:true
# 分析(在任意平台)
bla Security.xml System.xml Sysmon.xml --html incident_report.html
退出码
--exit-on 决定何种级别的告警会触发退出码 1,默认为 critical。
| 退出码 | 含义 |
|---|---|
0 |
分析完成,未达到 --exit-on 设定的告警级别 |
1 |
发现达到/超过 --exit-on 阈值的告警 |
130 |
用户中断(Ctrl+C) |
bla logs/ --exit-on none # 永远 exit 0,仅生成报告
bla logs/ --exit-on medium # 任何中危以上告警都触发 exit 1
退出码可用于自动化告警脚本:
bla /var/log/auth.log --json /tmp/result.json
if [ $? -eq 1 ]; then
echo "发现严重威胁!" | mail -s "BLA Alert" security@example.com
fi
终端报告示例
关键事件时间线、ATT&CK 技术映射、应急处置建议、Top 攻击源 IP:
真实样本实测
已使用 SecRepo 公开日志完成实测,覆盖 Linux auth.log 和 Web access.log 两类场景:
| 样本 | 原始行数 | 解析事件 | 告警 | 风险 | 主要验证能力 |
|---|---|---|---|---|---|
| SecRepo auth.log | 86,839 | 27,075 | 624 | 100/100(严重) | SSH 暴力破解、密码喷洒、Top IP/Top User、IOC 提取 |
| SecRepo Web access.log | 2,928 | 236 | 2 | 100/100(严重) | 敏感路径探测、Web 访问日志解析、cn-hvv 画像、IOC 提取 |
完整复现命令、数据来源和结果摘要见 SecRepo 真实样本实测记录。
SecRepo auth.log 实测总览
暴力破解告警详情
Top 攻击源 IP 与报告输出
输出示例
终端报告
╔══════════════════════════════════════════════════════════════════════════════╗
║ BlueTeam Log Analyzer (BLA) - Blue Team Incident Response ║
║ Version 1.0.1 | 100% Offline | No AI ║
╚══════════════════════════════════════════════════════════════════════════════╝
📊 分析总览
综合风险评分: 87/100 [高危]
分析文件数: 3
总事件数: 1,247
告警数量: 12
⛓ ATT&CK 攻击链分析
▶ 侦察 (13 事件) → ▶ 初始访问 (3 事件) → ▶ 执行 (4 事件)
→ ▶ 持久化 (2 事件) → ▶ 权限提升 (2 事件) → ▶ 凭据访问 (29 事件)
🚨 威胁告警
[01] [严重] Web攻击: 命令注入/代码执行
[02] [高危] 暴力破解攻击 (192.168.1.100, 失败 50 次)
[03] [高危] 密码喷洒攻击 (针对 17 个账户)
...
💡 应急处置建议
1. 【紧急】封锁攻击源 IP 192.168.1.100
2. 【高危】审查 root 账户直接登录记录
...
HTML 报告功能
- 风险评分仪表盘
- 事件级别分布图(纯 HTML/CSS,无需联网)
- Top 攻击源 IP 柱状图(纯 HTML/CSS,无需联网)
- ATT&CK 攻击链可视化
- IOC 摘要(IP、域名、URL、路径、Hash、账户、进程、命令)
- 告警过滤(按级别/关键词搜索)
- 关键事件时间线(支持滚动)
- 应急处置建议
开发与测试
# 语法检查
python3 -m compileall -q bla bla_cli.py setup.py tests
# 回归测试(仅使用 Python 标准库)
python3 -m unittest discover -s tests -v
当前回归测试覆盖:
- HTML 报告对日志内容做转义,避免攻击日志触发报告 XSS
- HTML 报告不依赖外部 CDN,保持离线可用
- Web payload 中带空格或 URL 编码时仍可识别 SQL 注入 / XSS
- 高频 200 请求可生成扫描/洪泛类告警
- Windows XML 异常字段不会导致整条事件被静默丢弃
- IOC 提取与
--ioc文本导出 --profile cn-hvv国内护网/重保增强画像--allowlist白名单误报压制- 大型日志可通过
--max-alerts控制终端告警展示数量 - 可通过
--syslog-year固定 Linux syslog 无年份时间戳 --out标准报告目录可一次生成 HTML/JSON/CSV/IOC/SARIF- 内置 YAML Web 规则与
--rules自定义规则加载 - 自动识别 Linux/Web 日志时可走逐行解析路径,避免大文件一次性读入内存
更多可用于评估 BLA 的公开日志与靶场资源见 测试资源推荐清单。 SecRepo 真实样本的完整复现实测见 SecRepo 真实样本实测记录。
自定义规则
BLA 支持加载简单 YAML Web 检测规则。规则文件可放在任意目录中,通过 --rules 指定;每个 .yaml / .yml 文件可包含一个 web_attacks 列表。
web_attacks:
- id: WEB-CUSTOM-001
name: 自定义漏洞探测
level: high
category: Web攻击
mitre: T1190
tags: [custom, exploit, web-attack]
patterns:
- '/custom-vuln-probe'
- 'custom_payload='
运行:
bla access.log --rules ./rules --out report/
内置 Web YAML 规则位于 bla/rules/web_attacks.yaml,当前包含 Log4Shell/JNDI、Nacos、Swagger/OpenAPI 暴露等规则。未安装 PyYAML 时,BLA 会使用内置的轻量 YAML 子集解析器;如需更完整的 YAML 语法,可自行安装 PyYAML。
项目结构
blueteam-log-analyzer/
├── bla_cli.py # CLI 主入口
├── bla/
│ ├── models.py # 数据模型(LogEvent, DetectionAlert, AnalysisSummary 等)
│ ├── config.py # 阈值配置中心(支持环境变量 / JSON 覆盖)
│ ├── allowlist.py # 白名单过滤
│ ├── ioc.py # IOC 提取(支持基于告警的高置信度模式)
│ ├── rules/
│ │ ├── loader.py # YAML 规则加载器(PyYAML 可选,内置轻量解析器)
│ │ └── web_attacks.yaml# 内置 Web 扩展规则
│ ├── parsers/
│ │ ├── __init__.py # 自动类型识别路由
│ │ ├── windows_evtx.py # Windows 事件日志解析(XML/EVTX)
│ │ ├── linux_auth.py # Linux 认证日志解析(带跨年处理)
│ │ ├── web_access.py # Web 访问日志解析(基于分钟桶的 DDoS 检测)
│ │ └── stats.py # 统计计算(Top IP、Top User、时间范围等)
│ ├── detection/
│ │ └── engine.py # 威胁检测引擎(统一规则源;私网 IP 自动降级)
│ ├── output/
│ │ ├── terminal.py # 终端彩色输出(ANSI,支持 Windows 10+)
│ │ ├── html_report.py # HTML 报告生成(独立单文件)
│ │ ├── json_report.py # JSON 报告输出
│ │ ├── csv_report.py # CSV 事件导出
│ │ ├── ioc_report.py # IOC 清单导出
│ │ ├── sarif_report.py # SARIF 2.1.0 输出(接入 GitHub Code Scanning 等)
│ │ └── bundle.py # --out 标准报告目录生成
│ └── utils/
│ └── helpers.py # 工具函数
├── docs/
│ ├── screenshots/ # 界面截图
│ ├── allowlist-example.json # 白名单示例
│ ├── secrepo-demo.md # SecRepo 真实样本实测记录
│ └── testing-resources.md# 测试资源推荐清单
├── sample_logs/
│ ├── auth.log # Linux SSH 暴力破解示例日志
│ └── access.log # Web 攻击示例日志(SQLi/XSS/LFI/扫描)
├── tests/
│ └── test_regressions.py # 安全与解析回归测试
├── install.sh # macOS/Linux 安装脚本
├── install.bat # Windows 安装脚本
├── bla.cmd # Windows 快捷启动脚本
├── setup.py # Python 包安装配置
└── README.md
设计原则
- 准确率优先:规则基于真实攻击场景设计,参考 Hayabusa、DeepBlueCLI、Sigma 等成熟项目的检测逻辑
- 完全离线:无网络请求,无外部 API 调用,适合隔离网络和保密环境
- 零依赖:Python 3.9+ 标准库即可运行,EVTX 二进制解析为可选依赖
- 高性能:Linux/Web 日志逐行解析,多文件可并行处理
- 可扩展:核心聚合规则使用 Python,Web 攻击特征支持 YAML 外置扩展
参考与致谢
本项目在设计和规则制定过程中参考了以下优秀开源项目,特此致谢:
| 项目 | 参考内容 | 许可证 |
|---|---|---|
| Hayabusa | Windows 事件日志检测规则体系、Event ID 覆盖范围 | GPL-3.0 |
| Chainsaw | EVTX 快速分析思路、Sigma 规则集成方式 | Apache-2.0 |
| DeepBlueCLI | PowerShell 检测规则、LOLBins 检测逻辑 | MIT |
| OSTE-Web-Log-Analyzer | Web 攻击检测模式(SQLi/XSS/LFI) | MIT |
| Sigma | 通用检测规则格式参考、MITRE ATT&CK 映射方法 | DRL-1.1 |
注意:本项目为独立实现,未直接复制上述项目的代码。检测规则参考了上述项目的检测思路和攻击模式,并根据实际应急响应场景进行了重新设计和实现。
贡献
欢迎提交 Issue 和 Pull Request。如需添加新的 Web 检测规则,可优先参考 bla/rules/web_attacks.yaml;如需添加跨事件聚合规则,请参考 bla/detection/engine.py。
许可证
MIT License © 2026 Hackerchen716
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file blueteam_log_analyzer-1.0.1.tar.gz.
File metadata
- Download URL: blueteam_log_analyzer-1.0.1.tar.gz
- Upload date:
- Size: 115.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2ef9a37cb6dac807e81128a318c10b336340fe32940d5e21d062785616aadb8
|
|
| MD5 |
103e3716fe9f02f2a2afb948a16cfd75
|
|
| BLAKE2b-256 |
c5d4929cfa019260b2a7af0347188b3e884f8337cf048150dd53e14591c5b488
|
File details
Details for the file blueteam_log_analyzer-1.0.1-py3-none-any.whl.
File metadata
- Download URL: blueteam_log_analyzer-1.0.1-py3-none-any.whl
- Upload date:
- Size: 108.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe3fc7297d9cb77d5dcdce2f5dd399f70c2bce7e1e4602008e3e4c91b3f08fa7
|
|
| MD5 |
12f9512570e30776eacd96702ec34db5
|
|
| BLAKE2b-256 |
744ef57ed333e7b5c7d83547e76746b3711f8c7865c8b66002537c2cae5d309f
|