DLL Hijacking

DLL Hijacking

DLL Hijacking (auch Binary Planting oder Remote Binary Planting) bezeichnet das Laden einer DLL aus den vom Betriebssystem angegebenen Pfaden, sofern in dem lokalen Verzeichnis des Programms diese nicht zu finden ist. Eine DLL wird unter Windows standardmässig als erstes in dem Ordner gesucht, in welchem das Programm zu finden ist, sofern keine Vollständige Pfadangabe zu der DLL gegeben ist. Viele sehen dieses Verhalten als eine Sicherheitslücke, die bei vielen Programmen unter Microsoft Windows zu finden sei, da einer Applikation so Schadcode durch eine präparierte DLL-Datei untergeschoben werden kann, sofern die Programmierung es zulässt. Das Laden einer DLL, ohne vollständige Pfadangabe kann aber auch einen sinnvollen Hintergrund haben. So kann eine sogenannte Proxy-DLL, eine DLL, welche die gleichen Möglichkeiten bietet, wie die DLL, welche geladen werden soll, dazu dienen, eine Applikation sicherer zu machen, indem sie die Parameter einer Funktion darauf überprüft, ob diese zu keinem Programmabsturz führen, wie es bei einer unsicheren systemeigenen DLL sein könnte. Ausserdem erlaubt dieses Systemverhalten einem Entwickler eine DLL Datei mit beliebigen Namen zu laden, ohne sich darum sorgen zu machen, dass eventuell eine DLL mit dem Namen im Betriebssystem Ordner vorhanden ist und diese unbekannte DLL geladen wird, anstatt der DLL die vom Entwickler mitgeliefert wird.

Inhaltsverzeichnis

Funktionsweise

DLLs werden in Windows über die WinAPI-Funktion LoadLibrary*[1] geladen. Binary Planting kann auftreten, wenn die Anwendung keinen vollständig qualifizierten Pfad zum Laden einer externen DLL verwendet. In diesem Fall wird die zu ladende Datei anhand der Dynamic-Link Library Search Order[2] spezifizierten Suchreihenfolge geladen: Dabei wird die Datei standardmäßig zuerst im Programmverzeichnis, dann in Systemverzeichnissen, dann im Arbeitsverzeichnis und zuletzt in den von der Umgebungsvariable PATH angegebenen Verzeichnissen gesucht. Eine „lokale“ DLL-Datei wird geladen und deren Code ausgeführt, falls diese DLL im Verzeichnis einer zu öffnenden Datendatei liegt und wenn die folgenden Bedingungen erfüllt sind: Die Anwendung (EXE-Datei) versucht, die Erweiterung (DLL-Datei) über die PATH-Variable zu laden und wechselt beim Öffnen vom Arbeitsverzeichnis in das Verzeichnis der Datendatei.[3].

Dieses Prinzip ist vergleichbar mit dem Verhalten der Kommando Console unter Windows. Gibt man dort den Befehl cmd.exe ein wird die Datei cmd.exe zu erst in dem ausgewählten Pfad gesucht, wenn das System dort nicht fündig wurde werden in den Pfaden der Umgebungsvariable nach der Datei gesucht.

Wie am 8. September 2010 bekannt wurde[4], sind neben der beschriebenen API-Funktion weitere Funktionen von diesem, nur auf der Englischen MSDN Webseite, offiziell dokumentierten Verhalten[1] betroffen. Es handelt sich dabei um die Funktionen CreateProcess*, ShellExecute*, WinExec, LoadModule, _spawn*p* und _exec*p*,[4] die EXE-Dateien ausführen bzw. Prozesse starten. Die Funktionsweise entspricht der oben genannten, wobei sich die einzelnen Suchreihenfolgen unterscheiden.

Zeitlicher Ablauf

Binary Planting wurde im Jahr 2000 erstmals beschrieben.[5] Am 18. August 2010 wurde dieses Problem in iTunes von ACROS entdeckt und publiziert.[6] Es kam zu einer medialen Verbreitung der Sicherheitslücke. Microsoft hat am 23. August 2010 eine Sicherheitsempfehlung zu diesem Problem herausgegeben.[7] Das Nachladen von DLLs aus dem Arbeitsverzeichnis gehört zum Design des Betriebssystems.[8] Zum sicheren Laden von externen Bibliotheken hat Microsoft eine Empfehlung verfasst.[9]

Verbreitung

Erste Schätzungen gingen von etwa 200 betroffenen Programmen aus.[10] Innerhalb weniger Tage stieg die Anzahl an gefundenen Sicherheitslücken so stark an, dass die Exploit-Datenbank exploit-db.com keinen eigenen Eintrag für jeden Exploit mehr erstellt, sondern diese gesammelt in einer Liste[11] zusammenfasst. Eine inoffizielle Liste wird von Corelan Team geführt.[12] Unter den betroffenen Programmen sind Firefox, Opera, Microsoft PowerPoint, µTorrent und VLC zu finden.[12]

Gegenmaßnahmen

Eine vollständige Lösung des Problems kann nur durch die Entwickler der Anwendungen in Form von Sicherheitsupdates geliefert werden.[8] Als vorübergehende Lösung kann aus dem Microsoft Download Center ein Update installiert werden, welches einen neuen Registrierungseintrag im Betriebssystem auswertbar macht. Mit den anschließend einzufügendenen Einträgen kann im gesamten System aber auch individuell für einzelne Anwendungen die Freiheiten, DLL aus dem Arbeitsverzeichnis zu laden, beschränkt oder unterbunden werden,[13] welcher aber zu Problemen bei Programmen führt, die sich auf dem Funktionsprinzip von LoadLibrary und anderen betroffenen Funktionen korrekt stützen.[14] Daneben empfiehlt Microsoft den Webclient-Dienst abzuschalten und die TCP-Ports 139 und 445 in der Firewall zu blockieren.[7] Dies verhindert den Zugriff auf Netzwerkfreigaben und WebDAV-Verzeichnisse.

Einzelnachweise

  1. a b Microsoft: LoadLibrary Function (Windows). 23. September 2010, abgerufen am 29. September 2010.
  2. Microsoft: Dynamic-Link Library Search Order. 23. September 2010, abgerufen am 29. August 2010.
  3. Christoph H. Hochstätter: Remote Binary Planting: Die unpatchbare Lücke in Windows. 27. August 2010, abgerufen am 18. September 2010.
  4. a b ACROS: ACROS Security Blog: Binary Planting Goes "EXE". 8. September 210, abgerufen am 29. September 2010.
  5. Georgi Guninski: Microsoft Windows DLL Search Path Weakness. 18. September 2000, abgerufen am 18. September 2010.
  6. ACROS: ACROS Security Problem Report #2010-08-18-1. 18. August 2010, abgerufen am 18. September 2010.
  7. a b Nicht sicheres Laden einer Bibliothek kann Remotecodeausführung ermöglichen (2269637). 23. August 2010, abgerufen am 29. August 2010.
  8. a b Binary Planting: Windows-Sicherheitslücke betrifft dutzende Anwendungen. 24. August 2010, abgerufen am 29. August 2010.
  9. Dynamic-Link Library Security. Abgerufen am 29. August 2010.
  10. Researcher: Code-execution bug affects 200 Windows apps. 20. August 2010, abgerufen am 29. August 2010.
  11. DLL Hijacking – Vulnerable Applications. 25. August 2010, abgerufen am 29. August 2010.
  12. a b DLL Hijacking (KB 2269637) – the unofficial list. Abgerufen am 29. August 2010.
  13. Ein neuer Registrierungseintrag „CWDIllegalInDllSearch“ zum Steuern des DLL-Suchpfadalgorithmus ist verfügbar. 27. August 2010, abgerufen am 29. August 2010.
  14. Binary Planting: Microsofts Workaround lässt einzelne Anwendungen ausfallen. 28. August 2010, abgerufen am 29. August 2010.

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Hijacking — (engl. für Entführung, Diebstahl, gewaltsame Übernahme) bezeichnet im Sprachgebrauch des Internets im Allgemeinen den Versuch einer Übernahme einer Internetdomäne bzw. der Inhalte einer Domäne oder eines Benutzerkontos (z. B. Mail, Ebay, Amazon,… …   Deutsch Wikipedia

  • Dynamic-link library — This article is about the OS/2 and Windows implementation. For dynamic linking of libraries in general, see Dynamic linker. Dynamic link library Filename extension .dll Internet media type application/x msd …   Wikipedia

  • Dynamic Link Library — Vorlage:Infobox Dateiformat/Wartung/MagischeZahl fehltVorlage:Infobox Dateiformat/Wartung/Standard fehltVorlage:Infobox Dateiformat/Wartung/Website fehlt Dynamic Link Library Dateiendung: .dll, .DLL MIME Type …   Deutsch Wikipedia

  • Patch Tuesday — is usually the second Tuesday of each month, on which Microsoft releases security patches.[1][2][3] Starting with Windows 98, Microsoft included a Windows Update system that would check for patches to Windows and its components, which Microsoft… …   Wikipedia

  • United 93 (film) — Infobox Film| name = United 93 producer = Tim Bevan Eric Fellner Paul Greengrass Lloyd Levin director = Paul Greengrass writer = Paul Greengrass music = John Powell cinematography = Barry Ackroyd editing = Clare Douglas Richard Pearson… …   Wikipedia

  • Assassination of Mahmoud Al-Mabhouh — Location Dubai, United Arab Emirates Date January 19, 2010 Target M …   Wikipedia

  • List of Mayday episodes — Mayday, also known as Air Crash Investigation(s) in the United Kingdom, Australia and Asia and Air Emergency and Air Disasters in the United States, is a Canadian documentary television program produced by Cineflix investigating air crashes, near …   Wikipedia

  • Islamic terrorism — Terrorism Definitions · Counter terrorism International conventions Anti terrorism legislation Terrorism insurance …   Wikipedia

  • Martin Anderson controversy — Martin Lee Anderson (c. January 15, 1991 ndash; January 6, 2006) was a 14 year old from Florida who died while incarcerated at a boot camp style youth detention center, the Bay County Boot Camp, [http://media.tbo.com/tbo/1128lee3.pdf] Mark A.… …   Wikipedia

  • Spyware — is a type of malware that can be installed on computers, and which collects small pieces of information about users without their knowledge. The presence of spyware is typically hidden from the user, and can be difficult to detect. Typically,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”