Situatie
O soluție de analiză spam și malware bazată pe Wazuh este o abordare de tip “Enterprise Security”. Nu ne bazăm pe un singur filtru, ci creăm un ecosistem care inspectează mesajul pe mai multe straturi.
Solutie
Pasi de urmat
1. Arhitectura Sistemului (High-Level)
Soluția funcționează ca o linie de asamblare. Fiecare e-mail este dezasamblat, iar componentele sale sunt trimise la experți diferiți (API-uri).
Componentele Fluxului:
-
Ingestion Point: Un script Python monitorizează serverul de mail (via IMAP) sau un director local unde sunt salvate fișierele
.eml. -
Extractorul (Python): Separă corpul textului, extrage toate URL-urile și salvează atașamentele într-o zonă temporară (Sandbox).
-
Analiza Externă (API-uri):
-
VirusTotal: Verifică reputația URL-urilor și hash-ul fișierelor.
-
SpamAssassin API / Pyzor: Verifică semnătura e-mailului (SPF, DKIM, DMARC).
-
-
Wazuh Manager: Primește rezultatele sub formă de log-uri JSON, le trece prin motorul de reguli și generează alerte în Dashboard.
2. Pilonii de Analiză (Ce verificăm?)
| Strat Analiză | Instrument Recomandat | Ce detectăm? |
| Reputație Link-uri | VirusTotal API | Site-uri de phishing sau domenii proaspăt create. |
| Integritate Fișiere | File Integrity Monitoring (Wazuh) | Dacă un atașament cunoscut a fost modificat. |
| Analiză Statică Doc | oletools (Python Library) |
Macro-uri ascunse în fișiere Excel sau Word. |
| Analiză Text | Perspective API / OpenAI | Intenția mesajului (șantaj, fraudă CEO, cerere de date). |
3. Integrarea Tehnică
Pasul 1: Scriptul de Procesare
Vom folosi un script Python care rulează ca un serviciu. Acesta procesează e-mailul și scrie rezultatul într-un fișier log pe care Wazuh îl monitorizează.
Python
import json
import logging
from oletools.olevba import VBA_Parser # Pentru doc-uri malițioase
# Configurăm logarea pentru ca Wazuh să poată citi fișierul
logging.basicConfig(filename='/var/log/email_analysis.log', level=logging.INFO)
def scan_document(file_path):
vba_parser = VBA_Parser(file_path)
if vba_parser.detect_vba_macros():
return "Malițios (Macro detectat)"
return "Curat"
def send_to_wazuh(data):
# Trimitem log-ul în format JSON
logging.info(json.dumps(data))
Pasul 2: Configurarea Wazuh (ossec.conf)
Adăugăm fișierul de log creat de Python în lista de monitorizare a agentului Wazuh:
XML
<localfile>
<log_format>json</log_format>
<location>/var/log/email_analysis.log</location>
</localfile>
Pasul 3: Crearea Regulilor de Alertare
În /var/ossec/etc/rules/local_rules.xml, definim ce înseamnă o alertă critică:
XML
<group name="email_spam_analysis">
<rule id="100001" level="12">
<decoded_as>json</decoded_as>
<field name="analysis.result">Malițios</field>
<description>Alertă Critică: E-mail cu atașament sau link periculos detectat!</description>
</rule>
</group>
4. Beneficiile Soluției
-
Centralizare: Toate alertele de securitate (nu doar spam-ul) sunt în același dashboard Wazuh.
-
Automatizare: Poți configura “Active Response” – dacă un e-mail e periculos, Wazuh poate rula un script care să îl șteargă automat din inbox-ul utilizatorului.
-
Costuri reduse: Folosești instrumente Open Source și versiuni gratuite de API-uri în limita nevoilor.
Leave A Comment?