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, 威胁情报, 安全运营, 开发者工具, 扫描框架, 数字取证, 无后门, 自动化脚本, 逆向工具