EHArviv/python-security-log-analyzer
GitHub: EHArviv/python-security-log-analyzer
一款零依赖的 Python 安全日志分析工具,能从日志中提取可疑 IP 并生成兼容 SOC/SIEM 工作流的多格式安全报告与告警。
Stars: 0 | Forks: 0
# Python 安全日志分析器
一款 Python 安全自动化工具,能够分析日志文件、提取 IP 地址、分类安全事件、分配严重级别,并为 IT、安全、SOC 和 SIEM 工作流生成多种格式的报告。
## 功能
* 解析安全日志文件
* 使用 Regex 提取 IP 地址
* 检测安全事件类型
* 统计事件出现次数
* 分配严重级别
* 生成 CSV 报告
* 生成 TXT 摘要报告
* 生成 JSON 报告
* 生成 SOC 风格的告警
* 生成适用于 SIEM 风格导入的 NDJSON 事件
* 创建可疑 IP 黑名单
* 创建 IOC 列表
* 通过命令行运行
* 包含 GitHub Actions 工作流
## 项目结构
```
python-security-log-analyzer/
├── .github/
│ └── workflows/
│ └── python-check.yml
├── src/
│ ├── security_summary.py
│ └── security_summary_v2.py
├── sample_logs/
│ ├── system.log
│ └── security.log
├── reports/
│ └── .gitkeep
├── README.md
├── requirements.txt
└── .gitignore
```
## 脚本版本
本项目包含两个脚本版本:
### V1 - `security_summary.py`
第一个版本用于分析日志文件、提取 IP 地址、分类安全事件、分配严重级别,并生成 CSV 和 TXT 摘要报告。
V1 有助于理解基本的自动化工作流:
```
Log file → Python analysis → CSV/TXT reports
```
### V2 - `security_summary_v2.py`
第二个版本包含 V1 的所有功能,并增加了更高级的报告以及兼容 SOC/SIEM 的输出格式。
V2 新增:
* JSON 报告生成
* SOC 风格的 `alerts.json`
* SIEM 风格的 `events.ndjson`
* 可疑 IP `blocklist.txt`
* 使用 `iocs.txt` 生成 IOC 列表
* 黑名单阈值逻辑
* 更清晰的基于函数的结构
V2 是推荐的运行版本。
## 用法
在项目根目录下运行 V2 脚本:
```
python src/security_summary_v2.py sample_logs/system.log
```
你也可以分析另一个示例日志:
```
python src/security_summary_v2.py sample_logs/security.log
```
## 生成的报告
V2 脚本会在 `reports/` 文件夹中本地生成以下文件:
```
advanced_security_report.csv
security_summary_report.txt
security_report.json
alerts.json
events.ndjson
blocklist.txt
iocs.txt
```
这些生成的报告文件会被 Git 忽略,不应提交到代码库中。
## 报告类型
### CSV 报告
```
advanced_security_report.csv
```
用于基于电子表格的分析、过滤、排序和人工审查。
### TXT 摘要
```
security_summary_report.txt
```
用于对分析的日志文件提供人类可读的摘要。
### JSON 报告
```
security_report.json
```
用于自动化、仪表板、API 或与其他工具的集成。
### 告警 JSON
```
alerts.json
```
用于以结构化格式表示 SOC 风格的告警。
告警示例:
```
{
"alert_name": "Repeated Failed Login",
"severity": "Medium",
"source_ip": "10.0.0.45",
"event_type": "Failed login",
"count": 2,
"generated_at": "2026-06-18T13:00:00+00:00",
"recommendation": "Review authentication logs and consider blocking or monitoring this IP."
}
```
### NDJSON 事件
```
events.ndjson
```
用于 SIEM 风格的日志导入。
每一行都是一个独立的 JSON 事件。
事件示例:
```
{"timestamp":"2026-06-18T13:00:00+00:00","event_type":"Failed login","source_ip":"10.0.0.45","count":2,"severity":"Medium","message":"Failed login detected for 10.0.0.45 2 time(s)."}
```
### 黑名单
```
blocklist.txt
```
用于可疑 IP 封锁工作流。
### IOC 列表
```
iocs.txt
```
用于失陷标示 文档记录和调查工作流。
## 摘要输出示例
```
Security Summary Report - V2
----------------------------
Log file analyzed: sample_logs/system.log
Total unique IPs found: 3
Total IP appearances: 4
Total alerts generated: 1
Severity Summary
----------------
High severity events: 0
Medium severity events: 1
Low severity events: 1
Info events: 1
Most Suspicious IP
------------------
IP address: 10.0.0.45
Reason: Failed login appeared 2 times
Blocklist / IOCs
----------------
10.0.0.45
```
## 黑名单逻辑
V2 脚本会创建一个 `blocklist.txt` 文件和一个用于记录可疑 IP 地址的 `iocs.txt` 文件。
默认情况下,当某个 IP 地址至少有 2 次失败的登录尝试时,就会被加入黑名单。
```
FAILED_LOGIN_BLOCK_THRESHOLD = 2
```
如果某个 IP 地址达到或超过此阈值,它将被添加到:
```
reports/blocklist.txt
reports/iocs.txt
```
## V1 与 V2 对比
| 功能 | V1: `security_summary.py` | V2: `security_summary_v2.py` |
| ------------------------------ | ------------------------- | ---------------------------- |
| 读取日志文件 | 是 | 是 |
| 提取 IP 地址 | 是 | 是 |
| 检测事件类型 | 是 | 是 |
| 分配严重级别 | 是 | 是 |
| 生成 CSV 报告 | 是 | 是 |
| 生成 TXT 摘要报告 | 是 | 是 |
| 生成 JSON 报告 | 否 | 是 |
| 生成 SOC 告警 | 否 | 是 |
| 生成 NDJSON 事件 | 否 | 是 |
| 创建可疑 IP 黑名单 | 否 | 是 |
| 创建 IOC 列表 | 否 | 是 |
| 封锁阈值逻辑 | 否 | 是 |
| 推荐版本 | 否 | 是 |
## SOC / SIEM 输出
本项目生成了安全运营中常用的多种输出格式:
* 用于基于电子表格审查的 CSV
* 用于人类可读摘要的 TXT
* 用于自动化、仪表板和 API 的 JSON
* 用于 SOC 风格告警记录的 `alerts.json`
* 用于 SIEM/日志导入工作流的 `events.ndjson`
* 用于可疑 IP 封锁工作流的 `blocklist.txt`
* 用于失陷标示 的 `iocs.txt`
## GitHub Actions
本项目包含一个 GitHub Actions 工作流,它会在每次推送和拉取请求时运行自动检查。
该工作流会:
* 检查 Python 语法
* 针对示例日志文件运行 V2 日志分析器
* 验证该工具能否成功生成报告
工作流文件:
```
.github/workflows/python-check.yml
```
## 依赖要求
无需外部依赖。
本项目仅使用 Python 标准库模块:
* pathlib
* re
* csv
* sys
* json
* datetime
* collections
## 展示的技能
* Python 自动化
* 文件处理
* 日志解析
* Regex
* CSV 报告生成
* TXT 摘要生成
* JSON 报告生成
* NDJSON 事件生成
* SOC 风格告警生成
* IOC 提取
* 可疑 IP 检测
* 命令行参数
* 基本安全事件分析
* SOC/SIEM 友好的输出格式
* GitHub Actions
* IT/安全自动化工作流
## 简历描述示例
开发了一款 Python 安全自动化工具,用于解析日志文件、提取 IP 地址、分类事件类型、分配严重级别、生成 CSV/TXT/JSON/NDJSON 报告、创建 SOC 风格的告警,并导出可疑 IP 黑名单和 IOC 列表,以用于安全监控工作流。
标签:Homebrew安装, Python, SOC/SIEM, 威胁情报, 安全运营, 开发者工具, 扫描框架, 数字取证, 无后门, 自动化脚本, 逆向工具