BlueTeam Log Analyzer - 蓝队应急响应日志分析工具
Project description
BlueTeam Log Analyzer
离线蓝队日志分析器:把混杂日志变成告警、Incident、攻击链、IOC 和 SARIF
面向应急响应、HVV/重保、值守复盘、样本验证和 CI 安全门禁
BLA 是一个离线优先的蓝队日志分析工具。它把 Windows、Linux、Web、HVV/重保 P0 结构化安全日志统一解析成事件,再做富化、检测、关联和报告输出,帮助安全团队快速回答几个应急现场最常见的问题:
- 谁在攻击,命中了哪些入口?
- 哪台资产、哪个账号、哪个会话可能已经失陷?
- 事件能不能串成一条可信攻击链?
- 哪些 IOC、命令、进程、URL、账号需要进入封禁、排查或工单?
- 结果能不能同时给人看,也能交给 SIEM、CI 或 Code Scanning 继续处理?
所有分析默认在本机完成,不上传日志,不依赖在线服务;HTML 报告也是离线单文件。
快速开启
先确认安装成功:
pip install -U blueteam-log-analyzer
bla --version
分析一个日志目录:
bla logs/
需要生成完整报告时再加输出目录:
bla logs/ --out report/
如果你已经有本地 GeoIP JSON 缓存,可以让 HTML 报告展示攻击源地理分布;BLA 不会联网查询 IP,缓存不可读或无法定位时会退回日志内地理字段,仍无结果则自动隐藏地图:
bla logs/ --out report/ --geoip-cache geo-cache.json
分析完成后打开 report/index.html。报告目录会同时生成:
| 文件 | 用途 |
|---|---|
index.html |
离线 HTML 报告,适合值守、复盘和汇报 |
report.json |
完整结构化结果,适合二次分析和自动化 |
events.csv |
事件明细,适合 Excel 排查 |
iocs.txt |
IOC 清单,适合封禁、狩猎和工单流转 |
report.sarif |
SARIF 2.1.0,适合 GitHub Code Scanning 等平台 |
manifest.json |
交付清单和文件哈希 |
需要解释某个案件或告警时:
bla explain inc-001 --report report/report.json
v1.4.1
v1.4.1 聚焦真实日志研判和报告交付:同类爆破/喷洒不再刷屏,重复身份突破案件合并成活动视图;HTML 报告在有本地地理数据时展示攻击源国家/地区热力图,没有可定位公网源 IP 时不显示地图;新增 Shell History 解析后,主机命令轨迹也能进入 Incident、攻击链和交付报告。
| 方向 | v1.4.1 变化 |
|---|---|
| 攻击源地图 | HTML 报告可通过日志自带地理字段或 --geoip-cache 本地缓存渲染国家/地区热力图,全程离线 |
| 显示规则 | 内网、回环、保留地址和无法匹配地理位置的 IP 不进地图;没有定位结果时整块隐藏 |
| 告警合并 | 暴力破解、密码喷洒这类高重复告警在 HTML 展示层合并,JSON/SARIF 仍保留原始明细 |
| 案件合并 | 仅源 IP 不同的身份突破案件合并成活动视图,突出 Top 来源 IP、账号和影响资产 |
| Shell History | 解析 .bash_history、.zsh_history 和常见 history 文件,识别工具下载、TTY 升级、SUID/sudo 提权、凭据文件读取和清痕命令 |
| 案件语义 | Shell 单源案件使用 Shell 凭据访问轨迹、Shell 清痕轨迹 等可研判主体,避免报告出现 未知实体、未知来源 |
| 报告跳转 | 顶部严重/高危/中危卡片可直接跳到对应告警或时间线,并自动套用过滤 |
| 离线交付 | 地图边界作为包内静态资产随 HTML 生成链路使用,不依赖 CDN 或在线地图服务 |
更多变更见 v1.4.1 发布说明,历史版本见 docs/releases
多源攻击链示例
下面是一组 HVV/重保 P0 样本的终端和报告截图。6 条关键事件来自 WAF、应用、EDR、DNS、代理和防火墙,BLA 会把它们关联成同一个 Incident,并保持 ATT&CK 拓扑、案件拓扑和告警阶段一致。
终端视图适合一线值守先判断“是否成链”,HTML 报告适合复盘时回答“入口是什么、主机是否失陷、是否有外联和外传”。
核心能力
| 能力 | 说明 |
|---|---|
| 多源解析 | Windows XML/EVTX、Linux auth.log/secure、Apache/Nginx access log、Bash/Zsh shell history、HVV/重保 P0 CSV/JSONL/JSON/key=value、通用文本日志 |
| 检测规则 | 覆盖暴力破解、密码喷洒、Web 攻击、横向移动、权限提升、持久化、防御规避、凭据访问、可疑执行、C2 外联、数据外传等场景 |
| 国内画像 | --profile cn-hvv 增强 Shiro、Fastjson、Struts2、ThinkPHP、WebLogic、Spring、Webshell、敏感路径探测等常见痕迹 |
| Incident 关联 | 按 IP、账号、主机、资产、URL、session、trace 等线索聚合事件和告警,输出可处置案件视图 |
| 攻击链还原 | 按 ATT&CK / 应急 kill chain 顺序展示阶段、技术编号、日志源和关键事件 |
| IOC 提取 | 提取 IP、域名、URL、Hash、账号、路径、进程、命令,并过滤静态资源和低价值噪音 |
| 攻击源地理分布 | 可选加载本地 GeoIP 缓存或日志自带地理字段,在 HTML 报告中展示可定位公网源 IP 分布 |
| 报告交付 | 一次生成 HTML、JSON、CSV、IOC、SARIF、manifest,兼顾人工研判和系统集成 |
| 离线与自动化 | 本地离线运行,支持 --exit-on、benchmark、Remote Workspace、规则校验和 CI 流水线 |
支持的日志
| 日志类型 | 输入格式 | 典型用途 |
|---|---|---|
| Windows 事件日志 | .xml、.evtx |
登录、RDP、账号变更、服务安装、计划任务、日志清除、Sysmon 进程与网络行为 |
| Linux 认证日志 | auth.log、secure |
SSH 爆破、成功登录、sudo、root 登录、账号创建 |
| Shell 历史 | .bash_history、.zsh_history、*history |
主机枚举、工具下载、TTY 升级、SUID/sudo 提权、凭据文件读取、清痕命令;目录扫描会保留 Bash/Zsh history 证据文件 |
| Web 访问日志 | Apache/Nginx Combined | SQLi、XSS、LFI/RFI、RCE、扫描器、敏感文件探测、异常流量 |
| HVV/重保 P0 日志 | CSV、JSONL、JSON object、JSON 数组、key=value | WAF、VPN、堡垒机、DNS、代理/NAT、防火墙、EDR、应用日志 |
| 通用文本日志 | 任意文本 | 关键字提取、轻量告警和 IOC 辅助提取 |
EVTX 二进制解析是可选能力:
pip install -U "blueteam-log-analyzer[evtx]"
未安装 EVTX 依赖时,BLA 会明确提示转换方案,不会静默产出空报告。
常用工作流
分析本地日志目录
bla /var/log/ --out report/ --exit-on none
带本地 GeoIP 缓存生成攻击源地图:
bla /var/log/ --out report/ --geoip-cache geo-cache.json --exit-on none
缓存可以是按 IP 索引的 JSON 对象,例如:
{
"8.8.8.8": {
"country": "United States",
"regionName": "California",
"city": "Mountain View"
}
}
自动识别不准时可以指定解析器:
bla access.log --type web-access --out report/
bla Security.xml --type windows-xml --out report/
bla .bash_history --type shell-history --out report/
bla hvv_chain.jsonl --type p0-security --profile cn-hvv --out report/
HVV/重保多源研判
bla p0-logs/ --type p0-security --profile cn-hvv --out hvv-report/ --exit-on none
建议第一轮优先采集 WAF、CDN/SLB、Web access、应用日志、VPN/零信任、堡垒机、AD/域控、EDR/XDR、DNS、出口代理、防火墙/NAT、NDR/全流量、数据库审计和云审计。完整采集矩阵可由 CLI 输出:
bla --list-log-sources
Windows 日志分析
导出 EVTX:
wevtutil epl Security Security.evtx /ow:true
wevtutil epl System System.evtx /ow:true
wevtutil epl "Microsoft-Windows-Sysmon/Operational" Sysmon.evtx /ow:true
导出无额外依赖的 XML:
wevtutil qe Security /f:RenderedXml /e:Events > Security.xml
wevtutil qe System /f:RenderedXml /e:Events > System.xml
wevtutil qe "Microsoft-Windows-Sysmon/Operational" /f:RenderedXml /e:Events > Sysmon.xml
分析:
bla Security.evtx System.evtx Sysmon.evtx --out windows-report/
bla Security.xml System.xml Sysmon.xml --out windows-report/
只看 RDP 登录:
bla Security.xml --rdp --json rdp.json --exit-on none
远程只读采集
目标主机无法安装 Python、pip 或 BLA 时,可以用 Remote Workspace 在本机分析远程日志。远程侧只需要 SSH 和系统自带命令。
bla remote-log root@server.example.com /var/log/auth.log \
--tail 1000 \
--grep "Failed password" \
--out case-auth \
--audit-json case-auth-audit.json \
--exit-on none
也可以进入交互式工作台:
bla ssh root@server.example.com
工作台内支持 ls、cd、find、tail、bla FILE、bla FILE --tail N --grep TEXT、bla journalctl:ssh 等命令。
CI 和流水线门禁
# 高危及以上告警时退出 1
bla logs/ --exit-on high --json result.json --sarif report.sarif
# GitHub Code Scanning
gh code-scanning upload-sarif --sarif report.sarif
--exit-on 可选 none、low、medium、high、critical,默认是 critical。
自定义规则和误报压制
加载自定义 YAML Web 检测规则:
bla access.log --rules ./rules --profile cn-hvv --out report/
bla validate-rules --strict-metadata
使用 allowlist 压制可信扫描器、维护窗口或已知噪音:
bla logs/ --allowlist docs/allowlist-example.json --out report/
检测覆盖
| 类别 | 示例 | MITRE ATT&CK |
|---|---|---|
| 侦察 | 扫描器、敏感文件探测、目录枚举 | T1595, T1083 |
| 初始访问 | Web 漏洞利用、Log4Shell/JNDI、国内常见 Web 漏洞痕迹 | T1190 |
| 身份突破 | SSH/RDP/Kerberos 暴力破解、密码喷洒、爆破后成功登录 | T1110.001, T1110.003 |
| 执行 | 高危 PowerShell、命令注入、LOLBins、Shell TTY 升级、远程工具下载 | T1059, T1218, T1105 |
| 持久化 | 服务安装、计划任务、账号创建 | T1543.003, T1053.005, T1136 |
| 权限提升 | sudo shell、特权组变更、root 直接登录 | T1548.003, T1098.001 |
| 主机失陷 | Webshell、EDR/XDR 高危终端告警、恶意进程痕迹 | T1505.003 |
| 横向移动 | RDP 跳转、显式凭据、Pass-the-Hash 指示器 | T1021.001, T1550.002 |
| 命令控制 | DNS 隧道、高风险代理访问、C2 外联 | T1071, T1071.004, T1105 |
| 数据外传 | 大流量外联、敏感数据外传迹象 | T1041 |
| 凭据访问 | Mimikatz、LSASS 访问、凭据转储、Linux 敏感凭据文件读取 | T1003.001, T1003.008 |
| 防御规避 | 日志清除、审计策略修改、安全能力关闭、Shell history 清除和痕迹删除 | T1070.001, T1070.003, T1070.004, T1562.002 |
报告截图
文档
| 文档 | 内容 |
|---|---|
| 架构说明 | 解析、富化、检测、关联、输出的可扩展设计 |
| 演示案例库 | 样例、复现命令和功能覆盖矩阵 |
| SecRepo 样本验证 | 公开 auth.log 和 Web access.log 实测记录 |
| 测试资源清单 | 可用于评估日志分析能力的公开资源 |
| 发布检查清单 | GitHub Release 和 PyPI 发布前检查项 |
| 历史版本 | 每个版本的发布说明 |
开发与测试
git clone https://github.com/Hackerchen716/blueteam-log-analyzer.git
cd blueteam-log-analyzer
python3 bla_cli.py --help
python3 -m compileall -q bla bla_cli.py setup.py tests
python3 -m unittest discover -s tests -v
python3 scripts/release_check.py
当前回归测试覆盖解析、检测、Incident 关联、攻击链阶段、HTML/JSON/CSV/IOC/SARIF 输出、Remote Workspace、规则校验、报告安全转义、终端控制字符清理、P0 多源 golden incident 和发布质量检查。
包版本由 bla/__version__.py 作为单一版本源,pyproject.toml 和 setup.py 都读取同一来源。发布前请按 release checklist 执行完整检查。
项目结构
bla/
parsers/ 日志解析器和自动识别入口
detection/ 富化、检测器、规则注册和 Incident 关联
output/ 终端、HTML、JSON、CSV、IOC、SARIF、manifest、报告包
remote/ SSH 远程日志工作台
rules/ 内置 YAML Web 检测规则
docs/ 架构、案例、发布说明、测试资源和截图
sample_logs/ 本地 smoke 示例日志
tests/ 回归测试和 P0 golden fixture
scripts/ 发布检查脚本
参与贡献
欢迎提交 Issue 或 Pull Request,尤其是这些方向:
- 补充真实环境中常见的安全设备、主机、Web 服务和业务日志格式。
- 扩展 Web 攻击、身份突破、横向移动、权限变更、可疑执行、日志清除、C2 外联和数据外传检测规则。
- 改进 allowlist、可信扫描器、维护窗口和基线压制能力。
- 优化 HTML / JSON / CSV / IOC / SARIF 报告,让结果更适合值守、复盘和工单流转。
- 补充脱敏样本、单元测试、回归测试和性能测试。
请不要提交真实客户日志、敏感 IP、账号、Cookie、Token、业务数据或未脱敏截图。
交流与合作:hackerchen7@proton.me
许可证
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.4.1.tar.gz.
File metadata
- Download URL: blueteam_log_analyzer-1.4.1.tar.gz
- Upload date:
- Size: 12.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcf61a449523205083003392fd24c011af28f4cb272cbdfa2a26b54f2e4c0d29
|
|
| MD5 |
4cb8070a4a369b314b753edd00214ade
|
|
| BLAKE2b-256 |
d8fee95472013920ab42a7920069610413f3b06aa1896686f059c7154049fe9a
|
Provenance
The following attestation bundles were made for blueteam_log_analyzer-1.4.1.tar.gz:
Publisher:
publish.yml on Hackerchen716/blueteam-log-analyzer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
blueteam_log_analyzer-1.4.1.tar.gz -
Subject digest:
dcf61a449523205083003392fd24c011af28f4cb272cbdfa2a26b54f2e4c0d29 - Sigstore transparency entry: 1632114049
- Sigstore integration time:
-
Permalink:
Hackerchen716/blueteam-log-analyzer@8fe68af5aac38074f09f80b10ee0822637bfef84 -
Branch / Tag:
refs/tags/v1.4.1 - Owner: https://github.com/Hackerchen716
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8fe68af5aac38074f09f80b10ee0822637bfef84 -
Trigger Event:
release
-
Statement type:
File details
Details for the file blueteam_log_analyzer-1.4.1-py3-none-any.whl.
File metadata
- Download URL: blueteam_log_analyzer-1.4.1-py3-none-any.whl
- Upload date:
- Size: 451.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6df749a554b0af3626dce71b685211bf51720199b80db00d142dccb539268b4d
|
|
| MD5 |
fd5feabdb83b3e216bfb226daf26d818
|
|
| BLAKE2b-256 |
18be7ed11e8bbe78d6688dc7375efb73ec46508bdad2f5b7dd092b15b07955be
|
Provenance
The following attestation bundles were made for blueteam_log_analyzer-1.4.1-py3-none-any.whl:
Publisher:
publish.yml on Hackerchen716/blueteam-log-analyzer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
blueteam_log_analyzer-1.4.1-py3-none-any.whl -
Subject digest:
6df749a554b0af3626dce71b685211bf51720199b80db00d142dccb539268b4d - Sigstore transparency entry: 1632114074
- Sigstore integration time:
-
Permalink:
Hackerchen716/blueteam-log-analyzer@8fe68af5aac38074f09f80b10ee0822637bfef84 -
Branch / Tag:
refs/tags/v1.4.1 - Owner: https://github.com/Hackerchen716
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8fe68af5aac38074f09f80b10ee0822637bfef84 -
Trigger Event:
release
-
Statement type: