Leblebi is a comprehensive, production-ready security intelligence and reporting tool for Wazuh SIEM. It generates detailed HTML security reports by analyzing Wazuh alerts, system information, and API data. The tool provides executive summaries, threat intelligence, agent health monitoring, MITRE ATT&CK mapping, vulnerability detection, and comprehensive security analysis.
- Comprehensive Alert Analysis: Processes alerts from
alerts.jsonwith time-based filtering and multi-day support - Risk Scoring: Calculates security risk scores based on alert severity and frequency
- MITRE ATT&CK Framework: Automatic mapping of alerts to MITRE tactics, techniques, and APT groups
- Vulnerability Detection: CVE analysis, patch priority recommendations, and SCA compliance reporting
- Event Correlation: Identifies related security events within time windows
- Agent Health Monitoring: Real-time agent status via Wazuh API (optional)
- Rootcheck Analysis: System integrity checks and rootkit detection
- Windows Event Analysis: Detailed Windows security event tracking
- HTML Reports: Beautiful, modern HTML reports with visualizations
- Email Notifications: Automated email delivery of reports
- Thread-Safe Logging: Production-ready logging system
- Performance Optimized: Handles large log files (200GB+ daily) with streaming parsers and sampling
- Professional Architecture: Service layer, factory pattern, command pattern, retry mechanisms
Leblebi follows professional software architecture patterns:
- Service Layer Pattern: Business logic separated into service classes (
APIService,ReportService,SystemInfoService,AlertProcessingService) - Factory Pattern:
WazuhAPIFactoryfor creating and managing API client instances - Command Pattern: CLI commands implemented as command classes
- Custom Exception Hierarchy: Proper error handling with specific exception types
- Retry Mechanism: Automatic retry for API calls with exponential backoff
- Configuration Management: Centralized configuration with validation
- Python 3.8 or higher
- Wazuh Manager installed
- Access to Wazuh alerts.json file
- (Optional) Wazuh API access for advanced features
- (Optional)
ijsonpackage for streaming JSON parsing (recommended for large files) - (Optional)
psutilpackage for memory monitoring
- Clone the repository:
git clone https://github.com/cumakurt/leblebi.git
cd leblebi- Install dependencies:
pip install -r requirements.txt- Create configuration file:
cp config.conf.example config.conf
# Edit config.conf with your settings
# IMPORTANT: Update email addresses, SMTP settings, and API credentialsEdit config.conf with your settings. See config.conf for detailed documentation of all options.
Key configuration sections:
- Alert Filtering: Alert level threshold, top alerts count
- Directories: Log directory, output directory
- Email: SMTP server, recipients, authentication
- Logging: Log level, log file path
- Wazuh API: API connection settings (optional)
- Performance: Memory limits, sampling, streaming parser settings
- Report Period: Time period for report generation (e.g., 1d, 7d, 30d)
Generate a daily security report:
python3 leblebi.pypython3 leblebi.py [OPTIONS]
Options:
-c, --config PATH Path to configuration file
-v, --verbose Enable verbose logging (DEBUG level)
-q, --quiet Enable quiet mode (ERROR level only)
-d, --dry-run Generate report but do not send email
--test Test mode: Generate report in current directory without sending email
--log-file PATH Path to log file
--alerts-file PATH Path to alerts.json file (overrides config)
--apitest Test Wazuh API connection
--config-test Test configuration, log file, API connection, and email sendingTest API connection:
python3 leblebi.py --apitestTest configuration:
python3 leblebi.py --config-testGenerate report in test mode (no email):
python3 leblebi.py --testGenerate weekly report (last 7 days):
# Edit config.conf: report_period = 7d
python3 leblebi.pyUse custom alerts file:
python3 leblebi.py --alerts-file /path/to/alerts.jsonThe report_period setting uses a flexible format: Nd where N is the number of days.
Examples:
- 1d: Today only
- 2d: Last 2 days (today + yesterday)
- 3d: Last 3 days
- 7d: Last 7 days (weekly)
- 14d: Last 14 days
- 30d: Last 30 days
Note: If log files for the requested number of days are not available, the application will:
- Process available log files
- Display a warning message showing which dates are missing
- Continue with the report generation using available data
- Executive Summary: High-level overview of security posture
- Security Risk Score Dashboard: Visual risk assessment
- Hourly Activity Heatmap: Time-based alert distribution
- SOC Analyst Threat Focus: Critical alerts for immediate attention
- Windows User Account Activity: User authentication and account events
- Critical Alerts Summary: Detailed breakdown of high-severity alerts
- Top Alerting Agents: Agents generating most alerts
- Alert Categories Distribution: Alert type analysis
- MITRE ATT&CK Framework Analysis: Tactics, techniques, and APT group mapping
- Vulnerability Detection: CVE analysis and patch recommendations
- Event Correlation Analysis: Related security events grouped by correlation keys
- Windows Event IDs: Windows-specific security events
- Agent Health Monitoring: Real-time agent status (if API enabled)
- Rootcheck Analysis: System integrity and rootkit detection (if API enabled)
- Security Recommendations: Actionable security advice
A complete example HTML report is available in the repository:
This sample report demonstrates all features including:
- Executive summary with risk scoring
- Visual dashboards and charts
- MITRE ATT&CK framework analysis
- Vulnerability detection summaries
- Agent health monitoring
- Security recommendations
When Wazuh API is enabled, Leblebi provides:
- Agent Health Monitoring: Real-time agent status, disconnected agents, version distribution, OS distribution
- SCA (Security Configuration Assessment): Policy compliance results and scores
- Syscheck (FIM): File integrity monitoring findings
- Rootcheck Analysis: System integrity and rootkit detection results
- Syscollector Data: Hardware, network, packages, ports, processes
- CIS-CAT Compliance: Benchmark compliance results
- Manager Statistics: Wazuh manager performance metrics
- MITRE ATT&CK Enrichment: Automatic mapping of alerts to MITRE framework
- Vulnerability Detection: CVE analysis and patch priority recommendations
Leblebi is optimized for large-scale environments:
- Streaming JSON Parser: Uses
ijsonfor memory-efficient processing of large files - Sampling: Configurable sampling rate for extremely large datasets
- Memory Monitoring: Automatic memory limit checking with
psutil - Parallel API Collection: Concurrent API requests for faster data collection
- Configurable Limits: Adjustable limits for alerts, agents, and data collection
- Time-based Filtering: Early filtering to reduce memory usage
leblebi/
├── leblebi.py # Main entry point
├── config.conf # Configuration file
├── requirements.txt # Dependencies
├── README.md # This file
├── img/ # Images directory
│ ├── leblebi.png # Main logo
│ └── leblebi2.png # Secondary logo
└── leblebi/ # Package directory
├── __init__.py
├── alerts.py # Alert processing
├── agent_health.py # Agent health monitoring
├── api_collector.py # Parallel API data collection
├── commands.py # Command pattern implementation
├── config.py # Configuration management
├── email.py # Email sending
├── exceptions.py # Custom exception hierarchy
├── factory.py # Factory pattern for API clients
├── logger.py # Logging system
├── mitre_enrichment.py # MITRE ATT&CK enrichment
├── reporting.py # HTML report generation
├── retry.py # Retry mechanism
├── services.py # Service layer (APIService, ReportService, etc.)
├── system_info.py # System information collection
├── utils.py # Utility functions
├── vulnerability_detection.py # Vulnerability detection
├── wazuh_api.py # Wazuh API client
└── windows_events.py # Windows event ID mappings
Ensure alerts.json is accessible in one of these locations:
/var/ossec/logs/alerts/alerts.json<log_dir>/alerts.json(from config)./alerts.json(current directory)- Or use
--alerts-fileoption
- Verify Wazuh API is running:
systemctl status wazuh-api - Check API credentials in
config.conf - Test connection:
python3 leblebi.py --apitest - Verify network connectivity and firewall rules
- Check SSL certificate settings if using HTTPS
- Check if alerts exist in the selected time period
- Increase
report_period(e.g., 7d or 30d) - Verify alerts.json file contains data
- Check file permissions
- Review log files for errors
- Enable
sampling_enabled = truein config - Set
max_alerts_to_processlimit - Install
ijsonfor streaming parser:pip install ijson - Set
memory_limit_mbto enable automatic sampling - Reduce
report_periodto process fewer days
- Use
ijsonfor streaming JSON parsing (install:pip install ijson) - Enable sampling for very large files (>2GB)
- Adjust
api_max_workersfor parallel API collection - Set
max_agents_to_collectto limit agent data collection - Configure appropriate timeouts in performance section
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See LICENSE file for details.
For issues, questions, or contributions, please open an issue on GitHub.
Developer: Cuma KURT
GitHub: https://github.com/cumakurt/leblebi
LinkedIn: https://www.linkedin.com/in/cuma-kurt-34414917/
Leblebi, Wazuh SIEM için kapsamlı, production-ready bir güvenlik istihbarat ve raporlama aracıdır. Wazuh uyarılarını, sistem bilgilerini ve API verilerini analiz ederek detaylı HTML güvenlik raporları oluşturur. Araç, yönetici özetleri, tehdit istihbaratı, ajan sağlık izleme, MITRE ATT&CK eşleme, güvenlik açığı tespiti ve kapsamlı güvenlik analizi sağlar.
- Kapsamlı Uyarı Analizi: Zaman bazlı filtreleme ve çoklu gün desteği ile
alerts.jsondosyasından uyarıları işler - Risk Skorlama: Uyarı önem derecesi ve sıklığına göre güvenlik risk skorları hesaplar
- MITRE ATT&CK Framework: Uyarıların MITRE taktikleri, teknikleri ve APT gruplarına otomatik eşlenmesi
- Güvenlik Açığı Tespiti: CVE analizi, yama öncelik önerileri ve SCA uyumluluk raporlama
- Olay Korelasyonu: Zaman pencereleri içinde ilişkili güvenlik olaylarını belirler
- Ajan Sağlık İzleme: Wazuh API üzerinden gerçek zamanlı ajan durumu (opsiyonel)
- Rootcheck Analizi: Sistem bütünlüğü kontrolleri ve rootkit tespiti
- Windows Olay Analizi: Detaylı Windows güvenlik olay takibi
- HTML Raporlar: Görselleştirmelerle modern HTML raporlar
- E-posta Bildirimleri: Raporların otomatik e-posta ile gönderimi
- Thread-Safe Loglama: Üretim için hazır loglama sistemi
- Performans Optimizasyonu: Streaming parser ve sampling ile büyük log dosyalarını (günlük 200GB+) işler
- Profesyonel Mimari: Service layer, factory pattern, command pattern, retry mekanizmaları
Leblebi profesyonel yazılım mimarisi desenlerini takip eder:
- Service Layer Pattern: İş mantığı service sınıflarına ayrılmıştır (
APIService,ReportService,SystemInfoService,AlertProcessingService) - Factory Pattern: API client instance'ları oluşturmak ve yönetmek için
WazuhAPIFactory - Command Pattern: CLI komutları command sınıfları olarak uygulanmıştır
- Custom Exception Hierarchy: Spesifik exception tipleri ile uygun hata yönetimi
- Retry Mechanism: Exponential backoff ile API çağrıları için otomatik yeniden deneme
- Configuration Management: Validasyon ile merkezi yapılandırma
- Python 3.8 veya üzeri
- Wazuh Manager kurulu
- Wazuh alerts.json dosyasına erişim
- (Opsiyonel) Gelişmiş özellikler için Wazuh API erişimi
- (Opsiyonel) Streaming JSON parsing için
ijsonpaketi (büyük dosyalar için önerilir) - (Opsiyonel) Bellek izleme için
psutilpaketi
- Depoyu klonlayın:
git clone https://github.com/cumakurt/leblebi.git
cd leblebi- Bağımlılıkları yükleyin:
pip install -r requirements.txt- Yapılandırma dosyası oluşturun:
cp config.conf.example config.conf
# config.conf dosyasını ayarlarınızla düzenleyin
# ÖNEMLİ: E-posta adresleri, SMTP ayarları ve API kimlik bilgilerini güncelleyinconfig.conf dosyasını ayarlarınızla düzenleyin. Tüm seçeneklerin detaylı dokümantasyonu için config.conf dosyasına bakın.
Ana yapılandırma bölümleri:
- Alert Filtering: Uyarı seviyesi eşiği, üst uyarı sayısı
- Directories: Log dizini, çıktı dizini
- Email: SMTP sunucusu, alıcılar, kimlik doğrulama
- Logging: Log seviyesi, log dosyası yolu
- Wazuh API: API bağlantı ayarları (opsiyonel)
- Performance: Bellek limitleri, sampling, streaming parser ayarları
- Report Period: Rapor oluşturma için zaman periyodu (örn., 1d, 7d, 30d)
Günlük güvenlik raporu oluşturun:
python3 leblebi.pypython3 leblebi.py [SEÇENEKLER]
Seçenekler:
-c, --config PATH Yapılandırma dosyası yolu
-v, --verbose Detaylı loglama (DEBUG seviyesi)
-q, --quiet Sessiz mod (sadece ERROR seviyesi)
-d, --dry-run Rapor oluştur ama e-posta gönderme
--test Test modu: Raporu mevcut dizinde oluştur
--log-file PATH Log dosyası yolu
--alerts-file PATH alerts.json dosyası yolu (config'i geçersiz kılar)
--apitest Wazuh API bağlantısını test et
--config-test Yapılandırma, log dosyası, API bağlantısı ve e-posta gönderimini test etAPI bağlantısını test et:
python3 leblebi.py --apitestYapılandırmayı test et:
python3 leblebi.py --config-testTest modunda rapor oluştur (e-posta göndermez):
python3 leblebi.py --testHaftalık rapor oluştur:
# config.conf düzenle: report_period = 7d
python3 leblebi.pyÖzel uyarı dosyası kullan:
python3 leblebi.py --alerts-file /path/to/alerts.jsonreport_period ayarı esnek bir format kullanır: Nd burada N gün sayısıdır.
Örnekler:
- 1d: Sadece bugün
- 2d: Son 2 gün (bugün + dün)
- 3d: Son 3 gün
- 7d: Son 7 gün (haftalık)
- 14d: Son 14 gün
- 30d: Son 30 gün
Not: İstenen gün sayısı için log dosyaları mevcut değilse, uygulama:
- Mevcut log dosyalarını işler
- Hangi tarihlerin eksik olduğunu gösteren bir uyarı mesajı gösterir
- Mevcut verilerle rapor oluşturmaya devam eder
- Yönetici Özeti: Güvenlik duruşunun üst düzey görünümü
- Güvenlik Risk Skoru Dashboard'u: Görsel risk değerlendirmesi
- Saatlik Aktivite Isı Haritası: Zaman bazlı uyarı dağılımı
- SOC Analist Tehdit Odaklı Görünüm: Acil dikkat gerektiren kritik uyarılar
- Windows Kullanıcı Hesabı Aktivitesi: Kullanıcı kimlik doğrulama ve hesap olayları
- Kritik Uyarılar Özeti: Yüksek önem dereceli uyarıların detaylı dökümü
- En Çok Uyarı Üreten Ajanlar: En çok uyarı üreten ajanlar
- Uyarı Kategorileri Dağılımı: Uyarı tipi analizi
- MITRE ATT&CK Framework Analizi: Taktikler, teknikler ve APT grup eşleme
- Güvenlik Açığı Tespiti: CVE analizi ve yama önerileri
- Olay Korelasyon Analizi: Korelasyon anahtarlarına göre gruplandırılmış ilişkili güvenlik olayları
- Windows Olay ID'leri: Windows'a özgü güvenlik olayları
- Ajan Sağlık İzleme: Gerçek zamanlı ajan durumu (API etkinse)
- Rootcheck Analizi: Sistem bütünlüğü ve rootkit tespiti (API etkinse)
- Güvenlik Önerileri: Uygulanabilir güvenlik tavsiyeleri
Depoda tam bir örnek HTML rapor mevcuttur:
Bu örnek rapor tüm özellikleri gösterir:
- Risk skorlaması ile yönetici özeti
- Görsel dashboard'lar ve grafikler
- MITRE ATT&CK framework analizi
- Güvenlik açığı tespiti özetleri
- Ajan sağlık izleme
- Güvenlik önerileri
Wazuh API etkinleştirildiğinde, Leblebi şunları sağlar:
- Ajan Sağlık İzleme: Gerçek zamanlı ajan durumu, bağlantısı kesilen ajanlar, versiyon dağılımı, OS dağılımı
- SCA (Security Configuration Assessment): Politika uyumluluk sonuçları ve skorları
- Syscheck (FIM): Dosya bütünlüğü izleme bulguları
- Rootcheck Analizi: Sistem bütünlüğü ve rootkit tespit sonuçları
- Syscollector Verileri: Donanım, ağ, paketler, portlar, süreçler
- CIS-CAT Uyumluluk: Benchmark uyumluluk sonuçları
- Yönetici İstatistikleri: Wazuh yönetici performans metrikleri
- MITRE ATT&CK Enrichment: Uyarıların MITRE framework'e otomatik eşlenmesi
- Güvenlik Açığı Tespiti: CVE analizi ve yama öncelik önerileri
Leblebi büyük ölçekli ortamlar için optimize edilmiştir:
- Streaming JSON Parser: Büyük dosyaların bellek verimli işlenmesi için
ijsonkullanır - Sampling: Aşırı büyük veri setleri için yapılandırılabilir sampling oranı
- Bellek İzleme:
psutilile otomatik bellek limiti kontrolü - Paralel API Toplama: Daha hızlı veri toplama için eşzamanlı API istekleri
- Yapılandırılabilir Limitler: Uyarılar, ajanlar ve veri toplama için ayarlanabilir limitler
- Zaman Bazlı Filtreleme: Bellek kullanımını azaltmak için erken filtreleme
leblebi/
├── leblebi.py # Ana giriş noktası
├── config.conf # Yapılandırma dosyası
├── requirements.txt # Bağımlılıklar
├── README.md # Bu dosya
├── img/ # Görseller dizini
│ ├── leblebi.png # Ana logo
│ └── leblebi2.png # İkincil logo
└── leblebi/ # Paket dizini
├── __init__.py
├── alerts.py # Uyarı işleme
├── agent_health.py # Ajan sağlık izleme
├── api_collector.py # Paralel API veri toplama
├── commands.py # Command pattern implementasyonu
├── config.py # Yapılandırma yönetimi
├── email.py # E-posta gönderme
├── exceptions.py # Custom exception hierarchy
├── factory.py # API client'lar için factory pattern
├── logger.py # Loglama sistemi
├── mitre_enrichment.py # MITRE ATT&CK enrichment
├── reporting.py # HTML rapor oluşturma
├── retry.py # Retry mekanizması
├── services.py # Service layer (APIService, ReportService, vb.)
├── system_info.py # Sistem bilgisi toplama
├── utils.py # Yardımcı fonksiyonlar
├── vulnerability_detection.py # Güvenlik açığı tespiti
├── wazuh_api.py # Wazuh API istemcisi
└── windows_events.py # Windows olay ID eşlemeleri
alerts.json dosyasının şu konumlardan birinde erişilebilir olduğundan emin olun:
/var/ossec/logs/alerts/alerts.json<log_dir>/alerts.json(config'den)./alerts.json(mevcut dizin)- Veya
--alerts-fileseçeneğini kullanın
- Wazuh API'nin çalıştığını doğrulayın:
systemctl status wazuh-api config.confdosyasındaki API kimlik bilgilerini kontrol edin- Bağlantıyı test edin:
python3 leblebi.py --apitest - Ağ bağlantısını ve güvenlik duvarı kurallarını doğrulayın
- HTTPS kullanıyorsanız SSL sertifika ayarlarını kontrol edin
- Seçilen zaman diliminde uyarı olup olmadığını kontrol edin
report_perioddeğerini artırın (örn., 7d veya 30d)- alerts.json dosyasının veri içerdiğini doğrulayın
- Dosya izinlerini kontrol edin
- Hatalar için log dosyalarını inceleyin
- Config'de
sampling_enabled = trueetkinleştirin max_alerts_to_processlimitini ayarlayın- Streaming parser için
ijsonyükleyin:pip install ijson - Otomatik sampling için
memory_limit_mbayarlayın - Daha az gün işlemek için
report_perioddeğerini azaltın
- Streaming JSON parsing için
ijsonkullanın (yükleme:pip install ijson) - Çok büyük dosyalar (>2GB) için sampling etkinleştirin
- Paralel API toplama için
api_max_workersayarlayın - Ajan veri toplamayı sınırlamak için
max_agents_to_collectayarlayın - Performance bölümünde uygun timeout'ları yapılandırın
Katkılarınız memnuniyetle karşılanır! Lütfen şu yönergeleri izleyin:
- Depoyu fork edin: https://github.com/cumakurt/leblebi
- Bir özellik dalı oluşturun
- Değişikliklerinizi yapın
- Kapsamlı test edin
- Bir pull request gönderin
Daha fazla bilgi için GitHub deposu'nu ziyaret edin.
Bu proje GNU General Public License v3.0 (GPL-3.0) altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
Sorunlar, sorular veya katkılar için lütfen GitHub'da bir issue açın.
Geliştirici: Cuma KURT
GitHub: https://github.com/cumakurt/leblebi
LinkedIn: https://www.linkedin.com/in/cuma-kurt-34414917/



