#!/usr/bin/env python3 """ siem_analyzer.py ----------------- نظام SIEM مبسط: يجمع السجلات من 3 مصادر (Web Server / Auth-OS / Firewall)، يحللها لاكتشاف أنماط مشبوهة، ويحفظ النتائج في alerts.json ليقرأها الـ Dashboard. الاستخدام: python3 siem_analyzer.py --once # تشغيل مرة واحدة python3 siem_analyzer.py --watch 30 # تشغيل دوري كل 30 ثانية (مثل خدمة حقيقية) يمكن تعديل مسارات ومحددات (thresholds) الكشف في قسم CONFIG أدناه. """ import re import json import argparse import time from collections import defaultdict, Counter from datetime import datetime # ================== CONFIG ================== CONFIG = { "web_log_path": "logs/access.log", "auth_log_path": "logs/auth.log", "firewall_log_path": "logs/firewall.log", "output_path": "output/alerts.json", "thresholds": { "web_404_403_count": 15, # عدد 404/403 من نفس IP يعتبر Scanning "brute_force_fails": 5, # عدد محاولات فاشلة من نفس IP قبل التنبيه "port_scan_ports": 15, # عدد منافذ مختلفة محظورة من نفس IP }, } SQLI_PATTERN = re.compile( r"(\bunion\b.*\bselect\b|\bselect\b.*\bfrom\b|\bor\b\s+1=1|--\s*$|'.*or.*'.*=.*')", re.IGNORECASE, ) TRAVERSAL_PATTERN = re.compile(r"(\.\./|%2e%2e%2f|\.\.%2f)", re.IGNORECASE) WEB_LOG_LINE = re.compile( r'(?P\d{1,3}(?:\.\d{1,3}){3}).*\[(?P