Zum Inhalt

Sandbox (YARA-Analyse)

Die Sandbox analysiert Anhänge und URLs eingehender Mails auf Schadsoftware und Phishing-Indikatoren.

Verarbeitungsablauf

  1. Eingehende Mail kommt an Port 25 an (Queue-ID 1)
  2. rspamd-Milter-Scan ohne Hard-Reject
  3. Mail wird an den Sandbox-Enqueue-Dienst weitergeleitet (Port 10025)
  4. nmg-sandbox extrahiert Anhänge und URLs und analysiert sie
  5. Ergebnis wird in die Datenbank geschrieben, rspamd-Score angepasst
  6. 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.