Multi-Engine-Malware-Scan: warum mehrere heterogene Scanner statt einem grossen

5 Min Lesezeit Serie: malware #malware#clamav#yara#capa#scan

Ein einzelner Virenscanner erkennt neue Samples in erstaunlich wenigen Fällen. Die Lösung ist nicht, einen besseren Scanner zu finden, sondern mehrere unterschiedliche zu kombinieren. Welche Engine-Familien es gibt, was jede einzelne gut kann und wie die Aggregation aussieht.

Problem

Cohens Resultat von 1987 steht noch: ein generisches Problem "ist diese Datei bösartig?" ist berechenbar nicht entscheidbar. Jeder Scanner, der behauptet, es zu lösen, ist in Wirklichkeit ein Mustererkennungssystem, das einen Teilbereich abdeckt.

Die empirische Konsequenz: kein einzelner Scanner findet alle Samples. Vergleichstests der Forschungslabore (AV-Comparatives, AV-Test) zeigen für brandneue Samples typische Erkennungsraten zwischen 30 und 70 Prozent pro Engine. Und selbst die Top-Engines haben jeweils eigene blinde Flecken, die andere Engines besser abdecken.

Die richtige Antwort ist nicht "einen besseren Scanner finden". Sie ist: mehrere heterogene Scanner kombinieren und ihre Ergebnisse zu einer Entscheidung verdichten.

Kurze Antwort

Fünf Scanner-Familien ergänzen sich gegenseitig: Signatur-basiert (ClamAV mit SaneSecurity/LMD-Feeds), Regel-basiert (YARA mit yara-forge/CORE), Capability-basiert (Capa), Format-spezifisch (oletools, pdfid, diec), Similarity-/Hash-basiert (ssdeep, TLSH, abuse.ch MalwareBazaar). Jeder Typ findet Dinge, die die anderen übersehen; kein Typ kann die anderen ersetzen. Die praktische Pipeline führt sie parallel aus, aggregiert ihre Ergebnisse zu einem Urteil und leitet das Sample je nach Urteil weiter, in Quarantäne oder zu einer manuellen Analyse.

Tiefgang

Die fünf Familien

Signatur-basiert (ClamAV). Schnell, erkennt alles Bekannte, braucht aktuelle Signaturen. ClamAV ist Open Source, die offizielle Signaturquelle ist Cisco Talos. Dazu kommen Community-Feeds: SaneSecurity sammelt und kuratiert zusätzliche Signaturen aus verschiedenen Quellen, LMD (Linux Malware Detect) fokussiert auf Web-Shell- und Linux-Server-Malware. Gemeinsam decken sie eine deutlich breitere Basis ab als ClamAV ohne Feeds.

Regel-basiert (YARA). YARA ist die Standardsprache für Malware-Forscher, um Muster zu beschreiben, Byte-Sequenzen, Strings, Dateistruktur-Eigenschaften, boolesche Kombinationen davon. Ein YARA-Regel-Korpus wie yara-forge (bündelt Rules aus Signature-Base, Elastic, Neo23x0, ReversingLabs) enthält tausende kuratierte Regeln und ist damit eine Art "Verhaltens-Signatur-Datenbank". YARA erkennt oft Familien, die Signatur-Scanner noch nicht erwischt haben.

Capability-basiert (Capa). Das Mandiant/Google-Werkzeug Capa analysiert ausführbare Dateien (PE, ELF) und benennt ihre Fähigkeiten in menschenlesbaren Begriffen: "reads files", "communicates over HTTP", "uses cryptography", "persists via registry run key". Aus der Kombination von Capabilities lässt sich eine Malware-Klasse oft treffsicherer erkennen als aus Strings allein. Capa findet keine einzelnen Samples, sondern beschreibt Verhaltens-Profile.

Format-spezifisch. Dokumente sind eigene Welten. oletools (Python) analysiert Office-Dokumente auf eingebettete Makros, OLE-Objekte, verdächtige Strukturen. pdfid und pdfparser (Didier Stevens) tun dasselbe für PDF. diec ("Detect It Easy") identifiziert Packer und Compiler für ausführbare Dateien. Diese Tools sind schmal im Scope, aber in ihrem Teilbereich oft die zuverlässigsten Erkenner.

Similarity- und Hash-basiert. Exakte Hashes (MD5, SHA-256) finden nur identische Samples. Fuzzy-Hashes wie ssdeep (Context Triggered Piecewise Hashing) und TLSH (Trend Micro Locality Sensitive Hash) finden ähnliche Samples, Varianten derselben Familie, gepackte Versionen, minimale Modifikationen. MalwareBazaar (abuse.ch) stellt eine öffentliche API bereit, über die Hashes gegen eine kuratierte Malware-Datenbank geprüft werden können.

Aggregation der Ergebnisse

Die Frage "was ist ein Hit?" ist nicht trivial. Eine einfache Regel "irgendein Scanner sagt Ja → Quarantäne" führt zu False-Positive-Fluten, weil jeder Scanner eigene Schwächen hat. Eine bessere Aggregation gewichtet:

  • Signatur-Treffer in ClamAV oder yara-forge mit hohem Confidence-Level: sofort Quarantäne.
  • Capa-Ergebnis mit mehreren verdächtigen Capabilities plus oletools-Hinweis auf VBA-Makros: Quarantäne.
  • ssdeep-Ähnlichkeit > 80% zu einem bekannten Sample plus ein anderer schwacher Indikator: Quarantäne.
  • Ein einzelner schwacher Hit, keine weiteren Treffer: Warnung an den Analysten, kein automatisches Blockieren.

Die Schwelle ist empirisch; sie wird anhand des False-Positive-Schmerzes gegen den False-Negative-Schmerz eingestellt.

Heterogenität ist die Pointe

Der Wert des Multi-Engine-Ansatzes liegt darin, dass die Engines unterschiedliche Fehlermodi haben. Zwei Signatur-Scanner, die mit denselben Feeds arbeiten, verdoppeln nicht die Abdeckung, sie finden dasselbe. Ein Signatur-Scanner plus ein YARA-Scanner plus ein Capability-Scanner plus ein Format-Scanner: jeder sieht andere Aspekte derselben Datei, und die Aggregation erwischt das, was einer allein übersehen hätte.

Das ist auch der Grund, warum ein Cloud-Dienst wie VirusTotal 60 bis 80 Engines parallel laufen lässt. Die Anzahl ist nicht Selbstzweck; die Heterogenität ist es.

Netzwerk-Isolation als Begleitmassnahme

Jeder Engine, der ein unbekanntes Sample verarbeitet, ist selbst ein potentielles Einfallstor (siehe historische CVEs in ClamAV, oletools, sogar yara). Produktive Scan-Pipelines lassen die Engines in getrennten Sandboxen mit null Internet-Zugang laufen. Das ist Thema des nächsten Beitrags dieser Serie. Ohne diese Isolation wird der Scanner zum Exfiltrations-Vektor.

Abgelehnte Alternativen und Mythen

"VirusTotal als API-Service." VirusTotal sendet Samples an Google und die angeschlossenen AV-Hersteller. Für Malware-Forscher in Ordnung; für Scans von Kundendokumenten DSGVO-problematisch und vertraulichkeitsbrechend. Für B2B-Workloads ungeeignet.

"Ein grosser kommerzieller Scanner ist besser als mehrere kleine." Kommerzielle Scanner wie Kaspersky, ESET oder Bitdefender sind individuell stark, decken aber alle dieselbe Kategorie ab (Signatur- und Heuristik-Scan). Der strukturelle Vorteil heterogener Engines entsteht erst durch Kategorien-Mix.

"Sandbox-Detonation (Cuckoo, any.run) ersetzt alles." Dynamische Analyse hat eigene blinde Flecken: VM-Erkennung, zeitbasierte Payloads, Umgebungs-Abhängigkeiten. Sie ist eine hervorragende Ergänzung, aber kein Ersatz für statische Multi-Engine-Analyse.

"Signatur-Feeds sind von gestern." Für brandneue Samples ja, für die tägliche Wartungslast aber nicht. 80 Prozent des Malware-Durchsatzes im Massen-Mailverkehr sind Varianten bekannter Familien, die mit Signaturen in Sekunden erkannt werden. Ohne Signaturen verbrennt die Pipeline Rechenzeit für Entscheidungen, die schneller zu haben wären.

Wie Svelnor hier hilft

Svelnor Scan ist die Endnutzer-Oberfläche für die hier beschriebene Engine-Kombination: ClamAV mit kuratierten SaneSecurity/LMD-Feeds, yara-forge-Regeln, Capa-Capabilities, format-spezifische Tools (oletools, pdfid, diec) und Fuzzy-Hash-Prüfung gegen die abuse.ch-MalwareBazaar-Datenbank. Svelnor Transit stellt die gleiche Pipeline als API für andere Anwendungen bereit. Beide laufen in der isolierten Sandbox-Umgebung, die im naechsten Beitrag dieser Serie im Detail beschrieben ist: gVisor-Runtime, kein Netzwerk-Egress für Scan-Worker, Signatur-Updates über einen getrennten Update-Daemon.

Verifikation

Offene Punkte

Latenz der Pipeline. Sechs Engines parallel zu betreiben kostet Ressourcen. Für Massen-Scans müssen die Schritte priorisiert werden, ein schneller Signatur-Check zuerst, teurere Engines nur bei unklarem Ergebnis.

Signatur-Aktualität. Die besten Engines nützen wenig mit veralteten Signaturen. Der Update-Prozess muss zuverlässig laufen, und der Signatur-Pfad muss gegen Angriffe auf die Update-Kette abgesichert sein (signierte Feeds, geprüfte Spiegel).

Zero-Day. Für wirklich neue Samples greifen auch die besten Heuristik- und Capability-Scanner nicht sicher. Das Restrisiko bleibt, und die einzige strukturell saubere Antwort ist eine isolierte Bearbeitungsumgebung für potenziell bösartige Dateien, nicht ein besserer Scanner.