Es gab Aufregung um CVE-2025-56383 (veröffentlicht am 26. September 2025), eine Hijacking-Schwachstelle in Notepad++ v8.8.3, bei der eine DLL-Datei ausgetauscht werden kann, um bösartigen Code auszuführen.

Die CVE wurde von mehreren Parteien bestritten, aber wir sind nicht hier, um dazu Stellung zu nehmen. Wir sind jedoch hier, um über DLL Hijacking zu sprechen und die sehr reale Bedrohung zu diskutieren, die es für Organisationen darstellt. Betrachten wir, was DLL Hijacking ist und welche Maßnahmen Sie ergreifen können, um Ihre DLLs sicher zu halten.

Was DLL Hijacking ist und wie es geschieht

DLL Hijacking (auch bekannt als DLL Preloading Attack) ist eine Sicherheitslücke, bei der eine legitime und vertrauenswürdige Dynamic Link Library (DLL)-Datei in einer Windows-Anwendung durch eine bösartige ersetzt wird.

Diese Methode nutzt die Art und Weise aus, wie Anwendungen DLL-Dateien laden, die Code und Daten enthalten, die von mehreren Programmen verwendet werden. Durch das Laden einer bösartigen DLL kann ein Bedrohungsakteur seinen eigenen Code mit denselben Berechtigungen wie die legitime Anwendung ausführen, was zu Rechteausweitung, Persistenz und Umgehung von Abwehrmaßnahmen führt.

Wenn ein Programm startet, muss es oft verschiedene DLLs laden, um bestimmte Funktionen auszuführen, typischerweise aus vertrauenswürdigen Systemverzeichnissen. Wenn eine Anwendung jedoch nicht sorgfältig darauf achtet, wo sie nach diesen DLLs sucht, könnte sie eine bösartige DLL von einem unsicheren oder vorhersehbaren Speicherort laden (d.h. dem aktuellen Arbeitsverzeichnis oder einer Netzwerkfreigabe). Dies kann passieren, wenn die Anwendung nicht den vollständigen Pfad zur DLL angibt oder wenn sie in einem Verzeichnis nach der DLL sucht, auf das ein Angreifer zugreifen oder das er ändern kann.

Flussdiagramm, das die DLL-Ladesequenz zeigt. Ein violettes Feld mit der Bezeichnung 'Anwendung startet und fordert DLL an' verbindet sich mit drei Ordnern: 'Aktuelles Arbeitsverzeichnis', 'Netzwerkfreigabe' und 'System32'. Das aktuelle Arbeitsverzeichnis zeigt auf ein rotes Feld mit der Bezeichnung 'Bösartige DLL' mit einem Warnsymbol, während Netzwerkfreigabe und System32 auf orange Felder mit der Bezeichnung 'Legitime DLL' mit Häkchen-Symbolen zeigen.

Obwohl diese Art von Angriff nicht neu ist, bleibt sie aufgrund ihrer Einfachheit effektiv. Und obwohl dieses spezifische Problem Windows-Anwendungen betrifft, ist es wichtig zu erwähnen, dass ähnliche Schwachstellen auch andere Betriebssysteme betreffen können (wie Linux und macOS, die dynamisches Laden für gemeinsam genutzte Bibliotheken verwenden).

DLL Hijacking birgt mehrere Sicherheitsrisiken, darunter:

  • Datendiebstahl: Die bösartige DLL kann sensible Daten wie Passwörter oder persönliche Informationen abfangen und stehlen.
  • Kompromittierte Systeme: Der Angreifer kann die Kontrolle über das System erlangen, was möglicherweise zu weiteren Angriffen oder der Installation zusätzlicher Malware führt.
  • Malware: Die bösartige DLL kann als Kanal für die Verbreitung von Malware dienen und andere Teile des Systems oder Netzwerks infizieren.

Eine DLL kann auf verschiedene Weise gekapert werden; hier sind einige der häufigsten Techniken:

  • Unsichere DLL-Suchreihenfolge: Angreifer platzieren bösartige DLLs in Verzeichnissen, die vor dem Speicherort der legitimen DLL durchsucht werden.
  • Manipulation relativer Pfade: Bösartige DLLs werden geladen, wenn Anwendungen relative Pfade verwenden.
  • DLL-Umleitung: Techniken wie Pfadmanipulation leiten den DLL-Ladevorgang um.
  • Schwache Berechtigungen: Angreifer ersetzen legitime DLLs durch bösartige in Verzeichnissen mit schwachen Berechtigungen.
  • Phantom DLL Hijacking: Angreifer nutzen Anwendungen aus, die nicht existierende DLLs laden, indem sie bösartige DLLs mit demselben Namen in durchsuchten Verzeichnissen platzieren.

Kreisdiagramm, unterteilt in sechs farbige Segmente um ein Zentrum mit der Bezeichnung 'DLL Hijacking-Techniken'. Segmente umfassen 'Phantom DLL Hijacking', 'Unsichere DLL-Suchreihenfolge', 'Manipulation relativer Pfade', 'DLL-Umleitung', 'Schwache Berechtigungen', jeweils mit einem kleinen Symbol, das das Konzept darstellt.Diese potenziellen Schwachstellen unterstreichen die Bedeutung sicherer Coding-Praktiken und der Verwaltung von Verzeichnisberechtigungen, wenn es darum geht, diese Form von Angriffen zu verhindern.

So verhindern Sie DLL Hijacking und halten Ihre DLLs sicher

Obwohl DLL Hijacking weiterhin eine Bedrohung darstellt, gibt es Best Practices, die Sie befolgen und implementieren können, um Ihr Risiko zu reduzieren und eine sicherere IT-Umgebung zu schaffen.

Fünf konzentrische Kreise in Verlaufsfarben von Orange bis Violett, die Sicherheitsebenen darstellen. Der innerste Kreis lautet 'Sicheres DLL-Laden', gefolgt von 'Integritätsprüfungen', 'Benutzerberechtigungen', 'App Control und Sicherheitssoftware' und der äußerste Kreis mit der Bezeichnung 'Patch Management'.

Sicheres DLL-Laden:

  • Vollständige Pfade verwenden: Geben Sie beim Laden immer den vollständigen Pfad zur DLL an. Dies stellt sicher, dass die Anwendung die DLL von einem vertrauenswürdigen Speicherort lädt (und nicht aus einem unsicheren Verzeichnis).
  • Sicheren Suchpfad festlegen: Verwenden Sie die SetDllDirectory-Funktion in Windows, um vertrauenswürdige Verzeichnisse zum Suchpfad hinzuzufügen und unsichere auszuschließen. Dies kann verhindern, dass die Anwendung DLLs von unerwarteten Speicherorten lädt.

Datei-Integritätsprüfungen:

  • Digitale Signaturen: Stellen Sie sicher, dass DLLs mit einer digitalen Signatur signiert sind, und überprüfen Sie die Signatur vor dem Laden der DLL. Dies kann helfen zu bestätigen, dass die DLL nicht manipuliert wurde.
  • Hash-Verifizierung: Verwenden Sie kryptografische Hash-Funktionen, um die Integrität von DLL-Dateien zu überprüfen. Wenn der Hash der DLL nicht mit dem erwarteten Wert übereinstimmt, wurde die Datei möglicherweise geändert.

Benutzerberechtigungen:

  • Prinzip der geringsten Rechte: Führen Sie Anwendungen mit den minimal notwendigen Berechtigungen aus. Dies begrenzt den potenziellen Schaden eines DLL Hijacking, da der bösartige Code weniger Berechtigungen zur Ausführung schädlicher Aktionen hat.
  • Benutzerkontensteuerung (UAC): Aktivieren Sie UAC auf Windows-Systemen, um Benutzer vor der Ausführung von Anwendungen mit erhöhten Berechtigungen um Erlaubnis zu bitten. Dies kann unbefugte Änderungen an Systemdateien verhindern.

Application Control und Privilege Management:

  • Bekannte und vertrauenswürdige Anwendungen: Application Control stellt sicher, dass nur bekannte und vertrauenswürdige Anwendungen gestartet werden können, wodurch das Risiko der Einführung nicht autorisierter Anwendungen beseitigt wird.
  • Privilegienkontrolle: Effektives Privilege Management ist entscheidend für die Verhinderung von DLL Hijacking. Indem Sie sicherstellen, dass Anwendungen über die korrekten Rechte und Berechtigungen zum Starten verfügen, begrenzen Sie die Fähigkeit nicht autorisierter Benutzer, bösartige Dateien einzuführen. Diese Kontrolle fungiert als wichtige Barriere, die den Zugriff einschränkt, den ein Angreifer benötigt, um den DLL-Suchmechanismus auszunutzen, und erhöht dadurch die Sicherheit Ihrer Umgebung.

Sicherheitssoftware:

  • Antivirus und Anti-Malware: Verwenden Sie seriöse Antivirus- und Anti-Malware-Software, um das Laden bösartiger DLLs zu erkennen und zu verhindern. Diese Tools können nach bekannten bösartigen Dateien und Verhaltensweisen scannen.
  • Intrusion Detection Systems (IDS): Implementieren Sie IDS, um ungewöhnliche Aktivitäten zu überwachen, wie z.B. unerwartete Änderungen an DLL-Dateien oder Versuche, DLLs von unsicheren Speicherorten zu laden.

Patch Management:

  • Software aktuell halten: Aktualisieren Sie regelmäßig Anwendungen und Betriebssysteme mit den neuesten Sicherheitspatches. Viele DLL Hijacking-Schwachstellen werden durch Updates behoben, bleiben Sie also auf dem neuesten Stand, um sich vor bekannten Bedrohungen zu schützen.
  • Automatisiertes Patching: Verwenden Sie ein automatisiertes Patch Management Tool, um sicherzustellen, dass alle Systeme ohne manuelle Eingriffe auf dem neuesten Stand gehalten werden. Dies reduziert das Zeitfenster für Angreifer, bekannte Schwachstellen auszunutzen, einschließlich solcher, die für DLL Hijacking verwendet werden könnten. Dieser proaktive Ansatz hilft, die Integrität Ihrer Anwendungen und Betriebssysteme zu wahren und macht es für Angreifer erheblich schwieriger, bösartige DLLs einzuschleusen.

Durch die Implementierung dieser Best Practices können Sie das Risiko von DLL Hijacking erheblich reduzieren und die Gesamtsicherheit Ihrer Anwendungen und Systeme verbessern.

Kombinieren Sie die richtigen Tools und Taktiken zur Verhinderung von DLL Hijackings

DLL Hijacking ist seit Jahren eine anhaltende Angriffsform und beweist, dass es immer noch effektiv ist und daher weiterhin ein Problem für Organisationen darstellen wird.

Machen Sie Ihre Organisation zukunftssicher, indem Sie die oben genannten Best Practices mit bewährten Lösungen wie Ivanti Neurons for App Control kombinieren, um Ihre DLLs sicher zu halten. Funktionen wie Trusted Ownership erkennen und verhindern, dass eine gekaperte DLL ausgeführt wird, indem sichergestellt wird, dass die Eigentümerschaft der Elemente mit Ihrer genehmigten Liste vertrauenswürdiger Eigentümer übereinstimmt.

Und halten Sie Ihre Apps auf dem neuesten Stand, um die Exposition gegenüber bekannten Schwachstellen zu begrenzen. Beseitigen Sie das Risiko menschlicher Fehler, indem Sie das Patching mit Ivanti Neurons for Patch Management automatisieren und sicherstellen, dass Systeme automatisch aktualisiert und gesichert werden.