Smart Whitelisting mithilfe von Locality Sensitive Hashing (LSH)

Originalartikel von Jon Oliver und Jayson Pryde

Locality Sensitive Hashing (LSH) ist ein Algorithmus, mit dessen Hilfe skalierbare, “Nearest Neighbor”-Suchen nach Objekten durchgeführt werden können. LSH erlaubt eine Vorverarbeitung eines Hash, der schnell mit einem anderen Hash verglichen wird, um die Ähnlichkeit zu prüfen. Der Algorithmus wird in der Praxis für die Optimierung der Datenverarbeitung und -analyse eingesetzt. So nutzt der Taxidienst Uber ihn, um in den Daten Fahrten zu finden mit überlappenden Routen und die Inkonsistenz von GPS-Daten zu reduzieren. Trend Micro ist seit 2009 aktiv in der Erforschung dieses Gebiets tätig. 2013 veröffentlichte Trend Micro den Source Code einer Implementierung von LSH, die für Sicherheitslösungen geeignet ist: Trend Micro Locality Sensitive Hashing (TLSH).

Der TLSH-Ansatz stellt eine Art von Fuzzy Hashing dar, der in Machine Learning-Erweiterungen für Whitelisting genutzt werden kann. TLSH generiert Hash-Werte, die auf Ähnlichkeiten analysiert werden. Ziel ist es, auf der Basis der Ähnlichkeiten mit bekannten, legitimen Dateien zu bestimmen, ob eine Datei sicher auf dem System laufen kann. Tausende Hashes von verschiedenen Versionen einer einzigen Anwendung etwa können durchforstet und für den Vergleich und weitere Analysen gestrafft werden.

TLSH ist auch auf eine proaktive Zusammenarbeit zugeschnitten. Trend Mirco hat quelloffene Tools zur Verfügung gestellt, die die Untersuchung, Evaluierung und weitere Verbesserung von TLSH unterstützen. Es gibt einen regelmäßigen aktualisierten Backend-Abfrageservice, den unabhängige Sicherheitsforscher und Partner nutzen können, um ihre Dateien abzufragen und nach Ähnlichkeiten mit bekannten, gutartigen Dateien zu suchen.

Die Sicherheitsforscher von Trend Micro haben gezeigt, dass im Vergleich zu anderen quelloffenen LSH-Versionen TLSH einen hochgradig akkuraten Ähnlichkeitsalgorithmus darstellt, der flexibler ist, weniger angreifbar und einen schnelleren Suchmechanismus ermöglicht. TLSH unterstützt Linux, Windows (Visual Studio) und Python Extension Umgebungen.

TLSH im Unternehmen

Eine wichtige Aufgabe für jedes Unternehmen ist es, für seine Umgebungen sichere Anwendungen und Dateien zu identifizieren. Dafür nutzen viele IT- und Systemadministratoren Methoden wie Whitelisting oder Zertifikate. Diese Ansätze haben jedoch alle auch Einschränkungen. So etwa sind die Listen der gutartigen Dateien in manchen Whitelisting-Lösungen nicht vollständig, und zudem stellen die häufigen Änderungen in legitimen Dateien bekanntlich eine Herausforderung dar. Andererseits könnten Sicherheitslücken entstehen, wenn sich ein Unternehmen lediglich auf Zertifikate verlässt, denn auch eine Zertifikatsinfrastruktur kann kompromittiert werden.

Unternehmen können Dateien kategorisieren:

  • [Group WL]: Dateien, die auf der Whitelist stehen.
  • [Group TC]: Dateien mit einem Zertifikat, das von einem Trusted Softwareanbieter kommt.

Unternehmen können auch verschiedene Policies aufsetzen:

  1. Ausführung von Dateien allein aus Group WL erlaubt.
    B. Ausführung von Dateien allein erlaubt aus Group WL ODER aus Group TC.

Policy A könnte zu restriktiv sein, und Dateien oder Sicherheits-Updates werden nicht ausgeführt, wenn sie nicht auf der Whitelist sind. Policy B wiederum könnte Probleme verursachen, wenn der Zertifikatsaussteller etwa missbraucht wird (Schadsoftware könnte von einem Trusted Certificate Issuer signiert werden) oder dessen Infrastruktur kompromittiert wird.

TLSH hingegen ermöglicht eine andere Definition für die Gruppierung von Dateien:

  • [Group TLSH]: Dateien, die Ähnlichkeiten mit Dateien in der Whitelist haben und von demselben Unterzeichner signiert sind wie die Bezugsdatei.

Group TLSH könnte immer noch Schadsoftware enthalten, wenn bösartige Komponenten in legitime Anwendungen eingefügt werden. Ein Ähnlichkeitstest kann mit Metadaten kombiniert werden, etwa dem Trusted Certificate-Unterzeichner, um festzulegen, welche Software erlaubt werden soll. Das Ergebnis ist eine neue Policy:

  • Erlaube nur die Ausführung von Dateien (aus Group WL ODER aus Schnittmenge [Group TLSH, Group TC])

Wird TLSH einem Whitelisting-System hinzugefügt, so kann der Algorithmus mit dem schnellen Wechsel von Patches und Versionen Schritt halten. Dies stellt eine effizientere Methode dar, Systeme aktuell zu halten und gleichzeitig die falschen Alarme signifikant zu reduzieren.

Kurz gesagt, erspart TLSH Unternehmen den Vergleich von neuen Hashes einer aktualisierten Software-Version mit den anderen Hashes gutartiger Dateien, die auf dem System ausgeführt werden können. Im Rahmen eines der Forschungsprojekte konnten die Sicherheitsforscher die Abfrage einer Anwendung/Software mit mehr als 50 Versionen und Zehntausenden einzigartiger Hashes so straffen, dass ein Hash-Wert von TLSH generiert wurde, der dann als gutartige Datei bestätigt wurde und nach Analyse ihres digitalen Zertifikats sicher auf dem System laufen kann.

Die technischen Details zu TLSH liefert der Originalbeitrag.

Trend Micro Locality Sensitive Hashing wurde auf der Black Hat Asia 2017 im März als “Smart Whitelisting Using Locality Sensitive Hashing” vorgeführt. Zudem gibt es Reviews wie “TLSH — A Locality Sensitive Hash” und “Using Randomization to Attack Similarity Digests”.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*