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事件日志, 多模态安全, 子域名变形, 安全可视化, 库, 应急响应, 恶意软件分析, 数字取证, 数据脱敏, 无后门, 漏洞发现, 目标导入, 自动化报告, 自动化脚本, 逆向工具