EN

Was ist ein LDAP-Injection-Angriff und wie kann man ihn verhindern

In diesem Artikel:

In der komplexen Welt der Cybersicherheit gibt es unzählige Arten von Bedrohungen, über die man sich im Klaren sein muss, insbesondere im Hinblick auf Schwachstellen in Anwendungen. Injektionsangriffe gehören zu den häufigsten Angriffen, mit denen Sie zu tun haben, und eine LDAP-Injektion ist eine von ihnen.    

Kurz gesagt: Bei einem LDAP-Injektionsangriff nutzt ein böswilliger Benutzer eine Sicherheitslücke aus, die durch nicht validierte Benutzereingaben verursacht wird, um Befehle einzuschleusen und schließlich Zugriff auf sichere Daten zu erhalten. Diese Art von Schwachstelle bei der Eingabevalidierung kann sich nachteilig auf den angegriffenen Server auswirken, da er vollständig manipuliert werden kann. 

Was ist das Lightweight Directory Access Protocol?

LDAP steht für „Lightweight Directory Access Protocol“. Es ist ein beliebtes Softwareprotokoll, das zum Auffinden von Ressourcen, einschließlich Dateien, Geräten und Personen, verwendet wird. In Intranets werden zum Beispiel häufig Verzeichnisdienste wie LDAP eingesetzt. Dieses Protokoll kann auch als Speicherort für Authentifizierungsdaten wie Benutzernamen und Kennwörter innerhalb von Single Sign-On (SSO)-Systemen dienen. 

Bedeutung von LDAP-Servern

LDAP-Server sind weit verbreitet. Das Protokoll stellt eine beliebte Form des Authentifizierungsflusses dar.  

Was ist LDAP-Authentifizierung? Im Wesentlichen handelt es sich um ein weit verbreitetes Authentifizierungsverfahren. Websites, die LDAP verwenden, nutzen LDAP-Verzeichnisse, die Informationen als Objekte sammeln. Die am häufigsten verwendete Methode zur Authentifizierung von LDAP-Clients ist die einfache Bind-Authentifizierung. Der Client erstellt eine anonyme Verbindung mit einem leeren Distinguished Name (DN).  

Ein Angreifer kann bösartigen Code in Form von benutzergesteuerten Eingaben einschleusen. Auf diese Weise kann er auf die gespeicherten Anmeldeinformationen zugreifen und sie verändern. 

Was sind LDAP-Injektionen?

LDAP-Injektionen sind eine von vielen Code-Injektionstechniken. Aufgrund der häufigen Verwendung von LDAP-Authentifizierungsmechanismen und der Anfälligkeit von LDAP-Abfrageschnittstellen stellen sie relativ häufig ein Sicherheitsrisiko dar. 

Wie funktioniert eine LDAP-Injektionsschwachstelle? 

LDAP-Injektionsangriffe können von böswilligen Benutzern ausgeführt werden, wenn webbasierte Anwendungen die Benutzereingaben nicht rigoros überprüfen und somit ein Schlupfloch für nicht autorisierte Änderungen von LDAP-Anweisungen schaffen. 

Ähnlich wie bei einer SQL-Injektion werden LDAP-Injektionsangriffe ausgeführt, wenn ein Angreifer diesen Sicherheitsfehler ausnutzt, der mit Hilfe eines lokalen Proxys unkontrollierte Eingaben ermöglicht. Dadurch können sie Berechtigungen erhalten und bösartige Befehle für nicht autorisierte Abfragen ausführen oder Inhalte innerhalb des LDAP-Baums ändern. 

Insbesondere können Angreifer die Bedeutung einer Abfrage durch die Verwendung von Metazeichen wie Klammern, Sternchen, Ampersands und Anführungszeichen steuern. Wenn sie solche Eingaben machen können, können sie die Abfrage auf nicht autorisierte Weise ändern, um ihr Ziel zu erreichen. Die neu übergebenen Parameter können die Such-, Additions- und Änderungsfunktionen manipulieren.

Die Injektionsfehler im Falle von LDAP stellen eine erhebliche Sicherheitsbedrohung dar. Wenn sie erfolgreich ausgeführt werden, können sie Angreifern sensible Daten wie Anmeldeinformationen, Rollen, Berechtigungen und mehr liefern. Darüber hinaus führt dieser Angriff häufig zu Authentifizierungsumgehungen, Datenbeschädigung oder Denial-of-Service (DoS) und ruiniert den angegriffenen Server. 

Arten von LDAP-Injektionen

Es gibt zwei Haupttypen von LDAP-Injektionen – die klassische und die BLIND-Variante. Erstere wurde oben beschrieben, während letztere im folgenden Abschnitt näher erläutert wird. 

Darüber hinaus kann jede LDAP-Injektion eine von zwei Arten sein, abhängig von den logischen Operatoren: AND (unter Verwendung des Operators „&“) oder OR (unter Verwendung des Operators „I“). Dies gilt sowohl für klassische als auch für BLIND-LDAP-Injection-Angriffe. 

BLIND LDAP Injektion

Der BLIND LDAP Injektionsangriff ist eine besondere Art von LDAP-Angriff. Die Durchführung ist zeitaufwändiger als die des normalen Angriffs. Da er jedoch auf binärer Logik basiert, sind die BLIND-Injektionstechniken relativ einfach auszuführen, so dass sie auch als fortgeschrittene LDAP-Injektion angesehen werden können. 

Der BLIND-Injektionsangriff nutzt die Möglichkeit, auf der Grundlage boolescher Logik Informationen aus den Serverantworten abzuleiten. Auch wenn die Webanwendung keine Fehlermeldungen ausgibt, kann ein Angreifer Code in den LDAP-Filter einschleusen, der eine gültige Antwort oder einen Fehler erzeugt – also entweder ein wahres oder ein falsches Ergebnis. Der böswillige Benutzer kann dies nutzen, um wahre oder falsche Antworttypen von Fragen an den Server zu leiten und so letztendlich sensible Daten zu erhalten.

Wie kann ein LDAP-Injektionsangriff verhindert werden?

Auch wenn LDAP-Injektionsangriffe weit verbreitet sind, bedeutet dies nicht, dass Sie keine Maßnahmen ergreifen können, um zu verhindern, dass sie Ihre Systeme beeinträchtigen. Der Schutz vor LDAP-Injection ist nicht kompliziert. Im Wesentlichen besteht die wesentliche Maßnahme darin, sicherzustellen, dass die Eingaben korrekt validiert werden, so dass das Einfügen von Sonderzeichen und damit das Ausführen bösartiger Befehle verhindert wird.  

Dazu gibt es zwei Hauptmethoden, die Sicherheitsexperten empfohlen haben:

  • Verwenden Sie die entsprechende LDAP-Kodierungsfunktion, um alle Variablen zu entschlüsseln.
  • Einsatz eines Frameworks, das das Escaping automatisch übernimmt 

Im ersten Fall müssen Sie alle nicht vertrauenswürdigen Eingaben vor dem Hinzufügen zu einer LDAP-Abfrage schützen. Dann müssen Sie je nach den Besonderheiten Ihres Systems zwischen LDAP Search und LDAP DN (Distinguished Name) Escaping wählen.

Bei der zweiten Option können Sie ein Framework wie LINQtoAD verwenden. Es erstellt eine automatische LDAP-Kodierung für LDAP-Abfragen. 

In jedem Fall ist es empfehlenswert, zusätzliche Schutzmaßnahmen zu verwenden. Zu den zusätzlichen Schutzmaßnahmen können gehören:

  • Die primäre Verteidigung besteht darin, die dem LDAP-Bindungskonto erteilten Privilegien zu minimieren (Least Privilege). Selbst wenn es erfolgreiche Code-Injektionsangriffe gibt, können Sie so die Auswirkungen begrenzen.
  • Konfigurieren Sie eine angemessene Eingabeüberprüfung (Allow-List-Eingabeüberprüfung). Wenn unautorisierte Eingaben an die LDAP-Abfrage gesendet werden, kann sie dies erkennen. 

Darüber hinaus können Sie das LDAP Injection Prevention Cheat Sheet von OWASP konsultieren, um einen vollständigen Überblick über die Schutzmethoden zu erhalten.

Die Software von Crashtest Security prüft auf alle Arten von Injektionsschwachstellen und verschiedene andere Risiken. Mit ihrer Hilfe können Sie sicherstellen, dass Ihr Unternehmen vor Cyber-Bedrohungen geschützt ist – und dass die Sicherheit Ihrer Anwendung gewährleistet ist. 

Erhalten Sie jetzt kostenlos einen schnellen Sicherheitsbericht für Ihre Website

Wir analysieren derzeit http://example.com
Wir scannen derzeit http://example.com
Status des Scans: In Bearbeitung
Scan target: http://example.com/laskdlaksd/12lklkasldkasada.a
Datum: 27/05/2022
Crashtest Security Suite prüft auf:
Information disclosure Known vulnerabilities SSL misconfiguration Open ports
Scanauftrag ausfüllen
Bitte geben Sie Ihre Daten ein, um die schnelle Sicherheitsüberprüfung zu erhalten.
Ein Sicherheitsspezialist analysiert gerade Ihren Scan-Bericht.
Bitte geben Sie Ihre Telefon-/Handynummer an, damit wir Ihre Identität überprüfen können:
Ihren Bericht anfordern
Vielen Dank.
Wir haben Ihren Antrag erhalten.
Sobald Ihr Sicherheitsaudit fertig ist, werden wir Sie benachrichtigen.