DLL-Entführung.

DLL-Hijacking

DLL-Hijacking, auch bekannt als "Binary Planting," ist eine Cyberangriffstechnik, die den Such- und Ladeprozess für Dynamic-Link Libraries (DLLs) in Windows ausnutzt. Bei diesem Angriff platziert ein bösartiger Akteur strategisch eine gefälschte DLL-Datei, oft getarnt als legitime Datei, an einem Ort, an dem das Betriebssystem sie gegenüber der echten DLL priorisieren wird. Folglich führt das System beim Laden der DLL unbeabsichtigt den nicht autorisierten Code des Angreifers aus.

Wie DLL-Hijacking funktioniert

Der Prozess des DLL-Hijackings umfasst typischerweise die folgenden Schritte:

  1. Identifizierung anfälliger Anwendungen: Angreifer führen eine Erkundung durch, um Anwendungen zu identifizieren, die den vollständigen Pfad zu den benötigten DLLs nicht angeben. Diese Anwendungen verlassen sich auf die Suchreihenfolge des Systems, um die notwendigen DLLs zu finden und zu laden.

  2. Platzierung bösartiger DLLs: Sobald eine anfällige Anwendung identifiziert wurde, platziert der Angreifer eine bösartige DLL mit demselben Namen wie die legitime DLL an einem vom System bevorzugten Ort. Häufige Orte sind das Anwendungsverzeichnis, Windows-Systemverzeichnisse oder das aktuelle Arbeitsverzeichnis.

  3. Auslösung der Ausführung: Wenn die anfällige Anwendung gestartet wird, beginnt das Betriebssystem mit der Suche und dem Laden der DLLs gemäß der Suchreihenfolge. Unglücklicherweise lädt das System aufgrund der Platzierung der bösartigen DLL unbeabsichtigt den Code des Angreifers anstelle der vorgesehenen legitimen DLL.

Diese Angriffsmethode kann von Bedrohungsakteuren genutzt werden, um beliebigen Code im Kontext der gezielten Anwendung auszuführen. Dabei werden Sicherheitsmaßnahmen umgangen und möglicherweise die Integrität und Vertraulichkeit des Systems gefährdet.

Präventionstipps

Um das Risiko von DLL-Hijacking-Angriffen zu mindern, sollten folgende Präventionsmaßnahmen ergriffen werden:

  • Vollspezifikation des Pfads: Entwickler sollten den vollständigen Pfad für die zu ladende DLL angeben, anstatt sich auf die Suchreihenfolge des Systems zu verlassen. Durch die Angabe des vollständigen Pfads stellen Entwickler sicher, dass die beabsichtigte DLL geladen wird und eliminieren die Möglichkeit, dass ein Angreifer das System zu einer bösartigen DLL umleitet.

  • Code-Signierung: Die Implementierung von Code-Signierungspraktiken erhöht die Integrität und Authentizität der von Anwendungen geladenen DLLs. Code-Signierung bedeutet das digitale Signieren von DLLs mit einer vertrauenswürdigen Zertifizierungsstelle (CA), sodass das System die Integrität und Herkunft der DLL überprüfen kann, bevor es sie lädt. Diese Praxis hilft, die Ausführung manipulierten oder bösartigen DLLs zu verhindern.

  • Benutzerberechtigungen: Die Begrenzung von Benutzerberechtigungen spielt eine entscheidende Rolle bei der Verhinderung, dass unbefugte Benutzer DLLs manipulieren oder sie an anfälligen Orten platzieren, die gehijackt werden können. Durch die Durchsetzung angemessener Zugriffskontrollen können Organisationen das Risiko von DLL-Hijacking-Angriffen reduzieren.

  • Automatisches Laden deaktivieren: Das Deaktivieren der automatischen DLL-Suche und -Ladung kann eine effektive Verteidigung gegen DLL-Hijacking darstellen. Dies kann erreicht werden, indem das aktuelle Arbeitsverzeichnis aus dem Suchpfad des Systems entfernt wird. Auf diese Weise lädt das System nur die explizit mit einem vollständigen Pfad angegebenen DLLs, was das Risiko unbeabsichtigter DLL-Ausführung minimiert.

Es ist wichtig für Organisationen, die Sicherung ihrer Anwendungen und Systeme gegen DLL-Hijacking zu priorisieren und diese vorbeugenden Maßnahmen zu implementieren, um potenzielle Risiken zu mindern.

Verwandte Begriffe

  • DLL-Injection: DLL-Injection ist der Akt, einen Prozess zu zwingen, eine Dynamic-Link Library (DLL) zu laden. Diese Technik kann für legitime Zwecke verwendet werden, wie die Erweiterung von Funktionalitäten, aber sie kann auch als Methode für Cyberangriffe dienen.

  • Rootkit: Ein Rootkit ist eine Art bösartige Software, die darauf abzielt, unbefugten Zugriff und Kontrolle über ein Computersystem zu erlangen und dabei unentdeckt zu bleiben. Rootkits operieren mit erhöhten Privilegien, sodass sie ihre Präsenz verbergen und eine verdeckte Plattform für Angreifer bieten können, um Systeme zu kompromittieren oder sensible Informationen zu sammeln.

Quellen:

  • Microsoft Security Advisory 2269637: Unsicheres Laden von Bibliotheken könnte Remote-Codeausführung ermöglichen
  • OWASP: DLL-Hijacking

Get VPN Unlimited now!