LogWatch-TR, Windows Olay Günlükleri (EVTX) üzerinde Digital Forensics ve Threat Hunting odaklı hızlı triage analizi yapmanızı sağlayan açık kaynaklı bir güvenlik aracıdır. Adli bilişim uzmanları ve SOC ekipleri için tasarlanmış olan araç, binlerce log kaydını saniyeler içinde işleyerek tehdit göstergelerini tespit eder ve raporlar.
LogWatch-TR, Windows ortamlarındaki olay günlüklerini analiz ederek:
- Tehdit avcılığı (Threat Hunting): SigmaHQ kuralları ile bilinen saldırı örüntülerini tespit eder
- Adli bilişim (Digital Forensics): Kronolojik zaman çizelgesi ve anomali analizi sunar
- Gizlilik odaklı raporlama: Hassas verilerin otomatik maskelenmesi ile güvenli paylaşım sağlar
| Özellik | Açıklama |
|---|---|
| 🔍 SigmaHQ Entegrasyonu | sigma_rules/ dizinindeki Sigma kuralları ile loglarda otomatik tehdit tespiti. PySigma ve özel motor desteği. |
| 🔒 Otomatik Veri Maskeleme | IP adresleri, kullanıcı adları, makine adları ve hassas yollar [MASKED_IP], ANONYMIZED_USER, ANONYMIZED_MACHINE ile anonimleştirilir. |
| 📊 Raporlama | HTML tabloları, zaman çizelgesi (timeline), pasta grafikleri ve PDF rapor çıktıları. Seviye bazlı renklendirme (Kritik/Yüksek/Orta). |
| ⚡ Hızlı Analiz | Multiprocessing ile paralel Sigma eşleştirme; binlerce log satırı saniyeler içinde işlenir. |
| 📁 SQLite Veritabanı | İşlenmiş loglar, anomali sonuçları ve uygulama logları kalıcı olarak saklanır. |
LogWatch-TR modüler bir yapıda tasarlanmıştır:
┌─────────────────────────────────────────────────────────────────┐
│ 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 │
└─────────────────────────────────────────────┘
Ana bileşenler:
- log_processor: Log akışını yönetir, Sigma kontrol noktasını tetikler
- sigma_engine / sigma_pysigma: Sigma kurallarını parse eder ve loglarla eşleştirir
- sigma_optimized: Multiprocessing ile büyük veri setlerinde hızlı tarama
- timeline: Çok kaynaklı logları kronolojik sıraya dizer, HTML/JSON export
- masker: Hassas verileri rapor öncesi anonimleştirir
- database: SQLite ile kalıcı depolama
- Windows 10/11 (64-bit)
- Python 3.10+ (kaynak koddan çalıştırıyorsanız)
LogWatch-TR_v1.0.0_windows_x64klasörünü indirinevtx_triage.exedosyasını çalıştırın- Sigma kuralları
sigma_rules/dizininde hazır gelir
# Depoyu klonlayın
git clone https://github.com/<kullanici>/LogWatch-TR.git
cd LogWatch-TR
# Bağımlılıkları yükleyin
pip install -r requirements.txt
# Sigma kurallarını güncelleyin (isteğe bağlı)
python update_sigma.py# Windows paketinde
evtx_triage.exe
# Kaynak koddan
python forensics_demo.pyfrom timeline import build_timeline, timeline_to_html, timeline_to_json
# Çok kaynaklı loglardan zaman çizelgesi oluştur
log_sources = {
"Security": [{"EventID": 4624, "TimeCreated": "...", "Computer": "WS01"}, ...],
"Sysmon": [{"EventID": 1, "UtcTime": "...", "Image": "cmd.exe"}, ...],
}
events = build_timeline(log_sources)
# HTML çıktı (maskeleme ile)
timeline_to_html(events, "timeline.html", masking=True)
# JSON çıktı
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", ...},
]
# Tek seferde HTML ve PDF
export_results(results, html_path="rapor.html", pdf_path="rapor.pdf", title="LogWatch-TR Analiz Raporu")from log_processor import process_logs
from sigma_optimized import SIGMA_SEVERITY_FIELD
# Logları Sigma kontrol noktası ile işle
process_logs(all_logs, run_sigma_checkpoint=True, use_parallel=True)
# KRİTİK işaretli logları filtrele
critical = [log for log in all_logs if log.get(SIGMA_SEVERITY_FIELD) == "KRİTİK"]Rapor çıktılarında hassas veriler otomatik maskelenir:
| Ham Veri | Maskelenmiş Çıktı |
|---|---|
192.168.1.100 |
[MASKED_IP] |
Administrator |
ANONYMIZED_USER |
WORKSTATION01 |
ANONYMIZED_MACHINE |
C:\Users\admin\secret.txt |
[MASKED_PATH] |
masking=True parametresi timeline_to_html, timeline_to_json ve logs_to_pie_chart_html fonksiyonlarında kullanılabilir.
Bu proje MIT License altında lisanslanmıştır.
Geliştirici: Recep Şenel
- Bu depoyu çatallayın (Fork)
- Yeni bir özellik dalı oluşturun (
git checkout -b feature/yeni-ozellik) - Değişikliklerinizi commit edin (
git commit -m 'feat: yeni özellik eklendi') - Dalınızı push edin (
git push origin feature/yeni-ozellik) - Pull Request açın