Link-Scanning-Sicherheitslösungen Passives Fingerprinting ermöglicht schadhafte Umgehungsstrategien

Autor / Redakteur: Gal Bitensky, Samy Makki / Peter Schmitz

Link-Scanner sind eine kritische Komponente bei verschiedenen Sicherheitslösungen, die eine Untersuchung eines verdächtigen Weblinks erfordern. Diese Lösungen verwenden Web-Clients, um den Inhalt eines Links abzurufen und vorab auf schadhafte Informationen und Inhalte zu testen. Doch es gibt Techniken für den Angreifer, der Entdeckung durch Link-Scanner zu entgehen.

Firmen zum Thema

Passives Fingerprinting kann einem Cyber-Angreifer eine saubere und einfache Umgehungsstrategie ermöglichen.
Passives Fingerprinting kann einem Cyber-Angreifer eine saubere und einfache Umgehungsstrategie ermöglichen.
(Bild: gemeinfrei / Pixabay )

Passives Fingerprinting bezeichnet das Auslesen von Informationen, die beim Aufrufen einer Webressource durch einen Webclient technisch bedingt durch die verwendeten Protokolle übermittelt werden. Hierunter fallen beispielsweise mitgeschickte Header, die Browsertyp, -version und Betriebssystem sowie Netzwerk und Protokollinformationen verraten. Beim passiven Web-Client-Fingerprinting werden die Informationen der HTTP-Anfrage gemessen und analysiert. Im Mittelpunkt stehen dabei Eigenschaften und Merkmale auf jeder Ebene der eingehenden Anfrage – von der physischen bis zur Anwendungsschicht. Anhand der erhaltenen und analysierten Informationen können Angreifer Maßnahmen zur Umgehung des Web-Clients entwickeln. Das Interessante dabei ist, dass ein Server, der passives Fingerprinting durchführt, idealerweise nicht von einem normalen Server zu unterscheiden ist und unverdächtig bleibt.

Ein Angreifer, der Schadsoftware ausliefert (z.B. über Download-Links in E-Mails) kann also auf seinem Webserver die verbindenden Web-Clients durch passives Fingerprinting analysieren und die Requests der Link-Scanning-Tools von den Aufrufen der eigentlich Betroffenen unterscheiden. Im Zuge einer Untersuchung des Security-Anbieters Akamai wurde in einem Experiment untersucht, ob und wie die wichtigsten Link-Scanning-Sicherheitslösungen durch passives Fingerprinting erkannt werden können. Alle getesteten Produkte wiesen mindestens ein Offenlegungsmerkmal auf, die Angreifern nutzen können oder diesen bereits nutzen.

Hier einige Beispiele der gefundenen Fingerprint-Merkmale:

1. Veraltete Browser-Versionen

Die meisten Scanning-Lösungen haben schon vor Jahren erkannt, dass sie einen Web Browser simulieren müssen, indem sie sich im „User-Agent“-Header dafür ausgeben. Leider wird in der Software-Entwicklung Code oft nicht weiter beachtet, wenn er erwartungsgemäß und problemlos funktioniert. Das Ergebnis ist, das viele Link-Scanning-Produkte seit Jahren veraltete Browser Versionen benutzen. In der Untersuchung hat sich ein Produkt beispielsweise als Internet Explorer 6 ausgegeben, obwohl diese Browser-Variante seit dem 12. Januar 2016 nicht mehr unterstützt wird. Für den Angreifer sind das sehr einfach auszuschließende Fälle.

2. Hart codierter Referer-Header

Wenn ein User im Browser auf einen Link klickt, fügt der Browser die Quelle des Aufrufs im sogenannten „HTTP-Referer-Header“ hinzu. Damit wissen Website und Webserver woher der Aufruf kam. Einige Link-Scanning-Anbieter fälschen diesen Header beim Aufruf des zu prüfenden Links, um einen echten Browser zu simulieren. Angenommen, der bösartige Link führt zu www.malicious.server.com, dann haben einige Anbieter mit ihrem Scanning-Aufruf den Referer-Header auf www.google.com/search?q=malisious.server.com gesetzt. Obwohl der Gedanke dahinter nicht schlecht ist, ist dieser Referer-Header viel zu spezifisch, um echt zu sein. Beispielsweise fehlt der Referer-Header wenn ein Benutzer im Kontext des E-Mail-Desktop-Clients von Outlook auf einen Link klickt, da Outlook dies nie mitschickt. Wenn ein Angreifer weiß, dass das potenzielle Opfer Outlook verwendet, dann weiß er auch, dass jede Anforderung, die einen Referer-Header enthält, ein Sicherheitstool ist.

3. Offenlegung von AS

Ein Autonomous System (oft mit AS oder ASN abgekürzt) ist eine Entität, die IP-Adressbereiche an einen Netzbetreiber bindet. Hier gibt es zwei mögliche Probleme, die aus der Überprüfung der IP-AS-Identität des Clients entstehen. Das erste betrifft große Sicherheitsanbieter, die ihre eigenen AS betreiben. Datensätze, die eine IP mit einem AS verknüpfen, sind öffentlich, so dass ein Angreifer den Ursprungs-AS einer eingehenden Anfrage überprüfen und entsprechend reagieren kann.

Code Snippet aus einem Phishing-Kit, das IP-Ranges blacklisted.
Code Snippet aus einem Phishing-Kit, das IP-Ranges blacklisted.
(Bild: Akamai Technologies)

Ein zweites mögliches Problem ist eine IP, die mit Cloud-Diensten wie Amazon AWS oder den entsprechenden Diensten von Google und Microsoft verbunden ist. Sicherheitsdienste sind häufig gezwungen, diese Dienste zu verwenden, um große Mengen von Anforderungen auf skalierbare Weise zu analysieren, was immense Ressourcen erfordert. Die Verwendung einer mit diesen Anbietern verknüpften IP-Adresse ist jedoch ein starker Hinweis für einen Client, der kein echter Benutzer ist, da die überwiegende Mehrheit der potenziellen Opfer keinen Cloud-Dienst betreibt oder solche Dienste nicht als Gateway zum Internet verwendet. Dieses Problem kann zumindest teilweise durch die ordnungsgemäße Verwendung von Proxys behoben werden.

Ein ähnliches Verhalten wurde bereits bei einigen Angriffstools festgestellt, die Aufrufe von einige IP-Ranges vollständig ignorieren. Im Screenshot links ein Beispiel aus einem Phishing-Kit.

4. Ungewöhnliche MTUs

Eine maximale Übertragungseinheit oder eine MTU (engl. maximum transmission unit) definiert die Obergrenze für eine Paketgröße, die in einer einzelnen Transaktion auf Netzwerkebene transportiert werden kann. Die Werte weisen eine geringe Streuung auf und korrelieren eng mit verschiedenen Arten von Link-Layer-Implementierungen. Ethernet impliziert beispielsweise normalerweise einen Wert von 1500, DSL hingegen 1492. Seltsamerweise haben einige Hosting-Dienstanbieter eindeutige Werte, die nirgendwo anders vorhanden sind und leicht als Erkennungsmechanismus genutzt werden können.

5. TCP-Funktionen und User-Agent-Korrelation

Windows, Linux und Mac implementieren den TCP-Stack unterschiedlich. Flags und Optionen, die neben der Größe des Pufferfensters festgelegt werden, sind nur einige der Eigenschaften, die es uns ermöglichen, einen Fingerabdruck auf TCP-Ebene zu erstellen. Daraus ergibt sich eine sehr wirkungsvolle Taktik: Zuerst wird die Betriebssystemvariante anhand der TCP-Parameter ermittelt und dann der User-Agent-Header und das vereinfachte Betriebssystem überprüft, zum Beispiel:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36, was auf ein Mac-Betriebssystem schließen lässt. Wenn es einen Widerspruch zwischen dem von TCP implizierten Wert und dem Header gibt, dann ist es wahrscheinlich, dass es Datenverkehr von einem Scanner ist. Dies ist ein sehr häufiges Problem, da viele Hersteller sich für Linux-basierte virtuelle Maschinen entscheiden, die historisch gesehen einfacher und kostengünstiger zu skalieren sind.

Möglichkeiten zum Schutz

Die Einstellung eines User-Agents oder die Entfernung redundanter Header sind erste Sicherheitsvorkehrungen, die keine großen finanziellen Aufwände bedeuten und verhältnismäßig leicht umgesetzt werden können. Einen User-Agent konsequent auf dem neuesten Stand zu halten, ist etwas mühsam, aber selbst eine Änderung alle paar Monate dürfte ausreichen, um von Angreifern nicht wahrgenommen zu werden.

Eine weitere Überlegung sollte sein, wie schwierig es für einen Gegner ist, Indikatoren zu sammeln. Zum Messen und Analysieren der MTU- und TCP Eigenschaften der eingehenden Aufrufe muss der Angreifer spezielle Software wie beispielsweise p0f aufwendig integrieren, während das Blockieren durch User-Agents durch die Bearbeitung gut dokumentierter Konfigurationsdateien wie Apaches ״htacess״ sehr einfach erreicht werden kann. Man stelle sich ein Szenario vor, in dem ein Angreifer es geschafft hat, eingeschränkten Zugriff auf eine kompromittierte Webseite zu erlangen. Er hätte dann die Möglichkeit Server Konfigurationen wie „htaccess“ hinzuzufügen oder zu modifizieren, aber einen neuen Prozess wie p0f unter bestimmten Bedingungen auszuführen ist schwierig und zieht schnell unerwünschte Aufmerksamkeit auf sich, z.B. vom Serverbetreiber.

Als Service Provider sollte man die Grenzen seines Produktes kennen und schadhafte Techniken wie passives Fingerprinting verstehen, welche die eigenen User bedrohen. Neue client-unabhängige Mitigationsstrategien können eine Lösung sein, um das Risiko einer URL bereits vor dem Aufruf zu bewerten und gefährliche Inhalte daraufhin zu blockieren. Machine Learning Modelle spielen bei diesen Technologien eine immer wichtigere Rolle, um beispielsweise direkt bei der DNS-Abfrage eine Risikobewertung vorzunehmen und Security-Beauftragten beim Verhindern von passivem Fingerprinting zu unterstützen.

Über die Autoren

Gal Bitensky ist Senior Security Researcher bei Akamai Technologies.

Samy Makki ist Senior Cloud Security Architect bei Akamai Technologies.

(ID:47304873)