redzeptech/logwatch-tr

GitHub: redzeptech/logwatch-tr

基于 SigmaHQ 规则的 Windows 事件日志取证分析工具,支持快速威胁检测、时间线构建和隐私安全报告生成。

Stars: 1 | Forks: 0

# LogWatch-TR 🛡️ **LogWatch-TR** 是一个开源安全工具,可让您在 Windows 事件日志 (EVTX) 上执行专注于 **Digital Forensics** 和 **Threat Hunting** 的快速 triage 分析。该工具专为数字取证专家和 SOC 团队设计,可在几秒钟内处理数千条日志记录,检测并报告威胁指标。 ## 📋 概述 LogWatch-TR 通过分析 Windows 环境中的事件日志来: - **威胁追踪:** 使用 SigmaHQ 规则检测已知的攻击模式 - **数字取证:** 提供按时间顺序排列的时间线和异常分析 - **隐私优先报告:** 通过自动掩码敏感数据实现安全共享 ## ✨ 功能特性 | 功能 | 描述 | |---------|----------| | 🔍 **SigmaHQ 集成** | 使用 `sigma_rules/` 目录中的 Sigma 规则自动检测日志中的威胁。支持 PySigma 和自定义引擎。 | | 🔒 **自动数据掩码** | IP 地址、用户名、计算机名和敏感路径通过 `[MASKED_IP]`、`ANONYMIZED_USER`、`ANONYMIZED_MACHINE` 进行匿名化处理。 | | 📊 **报告** | HTML 表格、时间线、饼图和 PDF 报告输出。基于级别的颜色标记(严重/高/中)。 | | ⚡ **快速分析** | 使用 Multiprocessing 并行 Sigma 匹配;在几秒钟内处理数千行日志。 | | 📁 **SQLite 数据库** | 处理后的日志、异常结果和应用程序日志将被永久存储。 | ## 🏗️ 技术架构 LogWatch-TR 采用模块化结构设计: ``` ┌─────────────────────────────────────────────────────────────────┐ │ LogWatch-TR Mimarisi │ └─────────────────────────────────────────────────────────────────┘ [EVTX / Log Kaynakları] │ ▼ ┌─────────────────────┐ ┌──────────────────────┐ │ log_processor │────►│ sigma_optimized │ │ (Orchestrator) │ │ (Paralel eşleştirme)│ └─────────┬───────────┘ └──────────┬───────────┘ │ │ │ ┌───────────────────────┘ │ │ ▼ ▼ ┌─────────────────────┐ ┌──────────────────────┐ │ sigma_engine │ │ sigma_pysigma │ │ (Özel motor) │ │ (PySigma matcher) │ └─────────┬───────────┘ └──────────┬───────────┘ │ │ └─────────────┬───────────────┘ │ ▼ ┌─────────────────────────────┐ │ sigma_rules/ (YAML) │ │ SigmaHQ Windows kuralları │ └─────────────────────────────┘ │ ┌─────────────┼─────────────┐ ▼ ▼ ▼ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ timeline │ │ masker │ │ database │ │ (Zaman │ │ (Maskeleme)│ │ (SQLite) │ │ çizelgesi)│ │ │ │ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────────────────────────────────┐ │ Rapor Çıktıları: HTML, PDF, JSON, Grafik │ └─────────────────────────────────────────────┘ ``` **核心组件:** - **log_processor:** 管理日志流,触发 Sigma 检查点 - **sigma_engine / sigma_pysigma:** 解析 Sigma 规则并将其与日志进行匹配 - **sigma_optimized:** 使用 Multiprocessing 在大数据集中进行快速扫描 - **timeline:** 将多源日志按时间顺序排列,支持 HTML/JSON 导出 - **masker:** 在生成报告前对敏感数据进行匿名化处理 - **database:** 使用 SQLite 进行持久存储 ## 🚀 安装 ### 系统要求 - Windows 10/11 (64-bit) - Python 3.10+ (如果您从源代码运行) ### 现成分发包 1. 下载 `LogWatch-TR_v1.0.0_windows_x64` 文件夹 2. 运行 `evtx_triage.exe` 文件 3. Sigma 规则已预先准备好,位于 `sigma_rules/` 目录中 ### 从源代码安装 ``` # 克隆仓库 git clone https://github.com//LogWatch-TR.git cd LogWatch-TR # 安装依赖 pip install -r requirements.txt # 更新 Sigma 规则(可选) python update_sigma.py ``` ## 📖 使用示例 ### 主程序 ``` # Windows 包中 evtx_triage.exe # 从源代码 python forensics_demo.py ``` ### 时间线和报告 ``` from timeline import build_timeline, timeline_to_html, timeline_to_json # 从多源日志创建时间线 log_sources = { "Security": [{"EventID": 4624, "TimeCreated": "...", "Computer": "WS01"}, ...], "Sysmon": [{"EventID": 1, "UtcTime": "...", "Image": "cmd.exe"}, ...], } events = build_timeline(log_sources) # HTML 输出(带掩码) timeline_to_html(events, "timeline.html", masking=True) # JSON 输出 timeline_to_json(events, "timeline.json", masking=True) ``` ### 导出报告 ``` from report_export import ReportExporter, export_results results = [ {"severity": "critical", "description": "Başarısız oturum açma", "event_id": "4625", ...}, {"severity": "high", "description": "Şüpheli PowerShell", "event_id": "4688", ...}, ] # 一次性 HTML 和 PDF export_results(results, html_path="rapor.html", pdf_path="rapor.pdf", title="LogWatch-TR Analiz Raporu") ``` ### Sigma 威胁追踪 ``` from log_processor import process_logs from sigma_optimized import SIGMA_SEVERITY_FIELD # 使用 Sigma 检查点处理日志 process_logs(all_logs, run_sigma_checkpoint=True, use_parallel=True) # 筛选标记为 CRITICAL 的日志 critical = [log for log in all_logs if log.get(SIGMA_SEVERITY_FIELD) == "KRİTİK"] ``` ## 🔒 掩码和隐私 报告输出中的敏感数据会自动掩码: | 原始数据 | 掩码后输出 | |----------|-------------------| | `192.168.1.100` | `[MASKED_IP]` | | `Administrator` | `ANONYMIZED_USER` | | `WORKSTATION01` | `ANONYMIZED_MACHINE` | | `C:\Users\admin\secret.txt` | `[MASKED_PATH]` | `masking=True` 参数可在 `timeline_to_html`、`timeline_to_json` 和 `logs_to_pie_chart_html` 函数中使用。 ## 📜 许可证 本项目采用 [MIT License](LICENSE) 授权。 **开发者:** Recep Şenel ## 🤝 贡献指南 1. **Fork** 本仓库 2. 创建一个新的**特性分支** (`git checkout -b feature/new-feature`) 3. **提交**您的更改 (`git commit -m 'feat: added new feature'`) 4. **推送**您的分支 (`git push origin feature/new-feature`) 5. 提交 **Pull Request**
标签:DAST, EVTX分析, PE 加载器, Python, Sigma规则, SOC工具, SQLite, Windows事件日志, 多模态安全, 子域名变形, 安全可视化, 库, 应急响应, 恶意软件分析, 数字取证, 数据脱敏, 无后门, 漏洞发现, 目标导入, 自动化报告, 自动化脚本, 逆向工具