Sandbox (YARA-Analyse)¶
Die Sandbox analysiert Anhänge und URLs eingehender Mails auf Schadsoftware und Phishing-Indikatoren.
Verarbeitungsablauf¶
- Eingehende Mail kommt an Port 25 an (Queue-ID 1)
- rspamd-Milter-Scan ohne Hard-Reject
- Mail wird an den Sandbox-Enqueue-Dienst weitergeleitet (Port 10025)
- nmg-sandbox extrahiert Anhänge und URLs und analysiert sie
- Ergebnis wird in die Datenbank geschrieben, rspamd-Score angepasst
- Mail wird reinjeiziert (Port 10026, Queue-ID 2) und normal zugestellt oder in Quarantäne verschoben
Job-Tabelle¶
Die Sandbox-Seite zeigt alle vergangenen Jobs mit Status und Ergebnis:
| Spalte | Beschreibung |
|---|---|
| Zeit | Startzeitpunkt des Jobs |
| Queue-ID | Postfix Queue-ID der analysierten Mail |
| Absender / Betreff | Metadaten der Mail |
| Status | pending / running / done / failed / cancelled |
| Verdict | clean / suspicious / virus / error |
| Threat-Score | 0–100 (0 = clean, 100 = hochgradig schädlich) |
| Dauer | Analyselaufzeit (grün <2 s, orange <10 s, rot ≥10 s) |
| Node | Cluster-Node |
Der Report-Button öffnet das vollständige Analyse-Ergebnis (nur bei abgeschlossenen Jobs sichtbar).
Sandbox-Report im Detail¶
Der Sandbox-Report ist die umfangreichste Einzelanalyse in nmg. Er zeigt alle Ergebnisse der Analyse-Pipeline:
Bedrohungs-Score & Verdict¶
- Threat-Score: 0–100 — aggregierter Risiko-Score aller Analyzer-Stufen
- Verdict:
clean,suspicious,virus - Konfidenz: Wie sicher das Verdict ist
- Verdict-Gründe: Liste der wichtigsten Erkennungs-Gründe als Tags
E-Mail-Metadaten¶
Absender (Envelope-From und Header-From), Empfänger, Betreff, Nachrichten-ID, Zeitstempel.
Authentifizierung¶
SPF, DKIM und DMARC-Ergebnis werden als farbige Tags angezeigt: - pass = grün - fail / none = rot - softfail / neutral = gelb
Absender-Reputation¶
| Feld | Beschreibung |
|---|---|
| Sender-IP | IP-Adresse des einliefernden Servers |
| Land | Herkunftsland der IP |
| ASN | Autonomous System Number |
| rDNS | Reverse-DNS-Hostname |
| Reputation-Score | Historischer Reputations-Score des Absenders |
MIME-Struktur¶
| Feld | Beschreibung |
|---|---|
| MIME-Parts | Anzahl der MIME-Teile (Textteile + Anhänge) |
| MIME-Tiefe | Maximale Verschachtelungstiefe |
| Received-Hops | Anzahl der Relay-Hops in den Received-Headern |
| Received-Chain | Aufklappbar: vollständige Hop-Liste mit from/by/with/Zeitstempel |
Erkennungs-Indikatoren¶
| Indikator | Beschreibung |
|---|---|
| Encoding-Anomalien | Ungewöhnliche Zeichenkodierungen (Base64-verschleierte Skripte, etc.) |
| Homoglyph-Angriff | Verwendung visuell ähnlicher Zeichen zur Täuschung |
| Dringlichkeits-Score | Sprach-basierter Score für Drohungen/Zeitdruck |
| Impersonation-Score | Hinweise auf Identitätsfälschung |
| Brand-Spoofing | Erkannte Marken, die gefälscht werden (z. B. Microsoft, DHL) |
| Social-Engineering-Indikatoren | Sprachliche Muster typischer Social-Engineering-Angriffe |
YARA-Treffer¶
- Gescannte Dateien: Anzahl der gegen YARA-Regeln geprüften Dateien
- Gesamt-Treffer: Summe aller Rule-Matches
- Top-Regeln: Die häufigsten anschlagenden Regeln als Tags
MITRE ATT&CK Mapping¶
Wenn YARA-Regeln oder andere Analyzer MITRE-Tags enthalten, werden Taktik und Technik als Kacheln angezeigt (z. B. Initial Access → Spearphishing Attachment T1566.001).
IOC-Zusammenfassung¶
Extrahierte Indicators of Compromise:
| IOC-Typ | Beispiel |
|---|---|
| IPs | Externe IPs aus URLs und Headern |
| Domains | Domains aus URLs |
| URLs | Vollständige URLs mit Redirect-Chain |
| Hashes | SHA256-Hashes von Anhängen |
Anhänge¶
Pro Anhang:
| Feld | Beschreibung |
|---|---|
| Dateiname | Originaler Dateiname |
| MIME-Typ | Erkannter MIME-Typ |
| Größe | Dateigröße |
| SHA256 | Hash des Anhang-Inhalts |
| YARA-Treffer | Anzahl der YARA-Rule-Matches für diesen Anhang |
| VirusTotal | VT-Erkennungsrate (wenn API-Key konfiguriert) |
URLs¶
Pro URL:
| Feld | Beschreibung |
|---|---|
| URL | Originale URL aus dem Mail-Body |
| Redirect-Chain | Aufgelöste Weiterleitungskette |
| End-URL | Finale Ziel-URL |
| Phishing-Feed-Treffer | Welcher Feed die URL listet |
HTML-Anhang-Erkennung¶
HTML-Anhänge (.html, .htm) gelten als eigenständiger Phishing-Indikator (Symbol NMG_HTML_ATTACHMENT). Sie werden häufig für Phishing-Formulare verwendet, die ohne Server-Infrastruktur im Browser funktionieren.
Sandbox-Whitelist¶
Absender, die von der Sandbox-Analyse ausgenommen sein sollen, werden unter Sandbox → Sandbox-Whitelist eingetragen. Wildcards und Domain-Einträge sind möglich.
YARA-Regeln¶
Wie YARA in nmg funktioniert¶
Die Sandbox scannt den rohen MIME-Blob der Mail — den kompletten RFC-2822-Nachrichteninhalt so wie er von Postfix empfangen wird, inklusive aller Header. Anhänge liegen darin base64-kodiert vor. Das hat Einfluss darauf, welche Muster zuverlässig erkannt werden:
| Inhalt | Im MIME-Blob | YARA-tauglich |
|---|---|---|
E-Mail-Header (Content-Disposition, etc.) |
Klartext | ✓ immer |
| HTML-Body, Text-Body | Klartext | ✓ immer |
Binär-Magic als Base64 (0M8R4KGxGuE = OLE2) |
deterministisch kodiert | ✓ |
| Binärinhalt in Anhängen (Office-Dokument-Streams, etc.) | base64-kodiert | ✗ |
Ein YARA-Treffer setzt den Threat-Score auf mindestens 50 und das Verdict auf mindestens suspicious.
Verwaltete Regeln (nmg-managed)¶
nmg liefert drei Regel-Dateien mit, die bei jedem Update automatisch auf den neuesten Stand gebracht werden. Dateien unter /var/lib/nmg/yara-rules/nmg-*.yar sind nmg-verwaltet und werden bei Updates überschrieben.
nmg-default.yar — Basis-Regeln¶
| Regel | Erkennung | Score |
|---|---|---|
EICAR_AV_TEST_FILE |
EICAR-Testvirus | 10 |
MAIL_PE_Executable |
PE-Executable (EXE/DLL) im Anhang | 5 |
MAIL_Office_With_Macros |
OOXML-ZIP + vbaProject.bin |
3 |
MAIL_PDF_With_JS |
PDF mit eingebettetem JavaScript | 3 |
MAIL_DoubleExtension_Trick |
Doppelte Dateiendung (z. B. rechnung.pdf.exe) |
4 |
MAIL_Powershell_EncodedCommand |
PowerShell -EncodedCommand / IEX-Cradle |
6 |
MAIL_HTML_Smuggling |
HTML-Smuggling — atob() + new Blob() |
6 |
nmg-office-macros.yar — Office-Makro-Erkennung¶
| Regel | Erkennung | Score |
|---|---|---|
MAIL_OOXML_MacroEnabled_Filename |
Anhang-Dateiname .xlsm / .docm / .pptm / .xlsb u. a. |
7 |
MAIL_Office_Legacy_Filename |
Anhang-Dateiname .doc / .xls / .ppt (OLE2-Format) |
3 |
MAIL_OLE2_Attachment_Base64 |
OLE2-Magic D0CF11E0 als Base64 (0M8R4KGxGuE) im MIME |
3 |
MAIL_OLE2_With_Macro_Filename |
OLE2-Base64 + verdächtiger Dateiname kombiniert | 8 |
MAIL_VBA_AutoExec_ShellAPI |
VBA-Autoexec-Trigger + Shell/Download-API im Klartext | 9 |
MAIL_VBA_Chr_Obfuscation |
VBA-Chr()-Ketten zur String-Verschleierung |
6 |
nmg-js-droppers.yar — Script-Dropper-Erkennung¶
| Regel | Erkennung | Score |
|---|---|---|
MAIL_Script_Dangerous_Extension |
Anhang .js / .vbs / .hta / .wsf / .ps1 / .jse u. a. |
8 |
MAIL_JS_WSH_DownloadExecute |
ActiveXObject + XMLHTTP/Download + .Run/.Exec |
9 |
MAIL_JS_PowerShell_Spawn |
WScript.Shell + powershell + -ExecutionPolicy Bypass o. ä. |
9 |
MAIL_VBS_ShellDropper |
VBScript CreateObject + .Run + Download/cmd |
9 |
MAIL_JS_Eval_Obfuscation |
eval(unescape(...)) / String.fromCharCode kombiniert |
6 |
MAIL_HTA_Dropper |
HTA:APPLICATION + ActiveXObject + .Run |
8 |
MAIL_BAT_EnvVar_Obfuscation |
Batch %var:~x,y%-Substring-Obfuskierung |
6 |
Score-Feld in YARA-Meta
Das score-Feld in der YARA-Regel-Metadaten dient nur zur Dokumentation. Die Sandbox wertet es nicht aus — jeder Treffer, unabhängig vom Score-Wert, setzt den Threat-Score auf mindestens 50.
Externe Regel-Updates (freshyara)¶
Der Timer nmg-freshyara zieht täglich Regeln aus konfigurierten Quellen (z. B. signature-base) und kompiliert anschließend alle .yar-Dateien in /var/lib/nmg/yara-rules/ zu einem einzigen compiled.yar. Das Update-Intervall ist in Mail-Konfiguration → YARA konfigurierbar.
Eigene Regeln hinzufügen¶
Eigene Regeln werden als .yar-Dateien unter /var/lib/nmg/yara-rules/ abgelegt. Dateien, die nicht mit nmg- beginnen, werden von Updates nicht berührt.
# Eigene Regel anlegen
sudo -u nmg nano /var/lib/nmg/yara-rules/my-custom.yar
# Neu kompilieren (ohne auf den nächtlichen Timer zu warten)
sudo -u nmg /usr/share/nmg/yara-base/compile.sh
Syntaxprüfung
compile.sh bricht bei Syntaxfehlern ab. Das bisher kompilierte compiled.yar bleibt dann unverändert erhalten — laufende Scans sind nicht betroffen.
VirusTotal-Integration¶
Mit konfiguriertem API-Key in Mail-Konfiguration werden SHA256-Hashes von Anhängen gegen VirusTotal abgefragt. Das Ergebnis erscheint im Sandbox-Report bei jedem Anhang.