Wissen Sie, was LDAP-Injection ist? Dabei handelt es sich um eine Code-Injection-Technik, die auf Anwendungen abzielt, die mithilfe nicht bereinigter Benutzereingaben Injection-Abfragen erstellen. LDAP (Lightweight Directory Access Protocol) wird häufig für Verzeichnissuchen verwendet, beispielsweise zur Benutzerauthentifizierung oder zum Abrufen von Unternehmensdaten. Wenn Angreifer speziell gestaltete Eingaben mit LDAP-Metazeichen bereitstellen, können sie die Logik von Verzeichnisabfragen modifizieren, um auf Daten zuzugreifen oder diese unberechtigt zu verändern. Eine LDAP-Injection-Schwachstelle entsteht, wenn Filter dynamisch aus benutzergesteuerten Werten ohne Eingabebereinigung oder -validierung erstellt werden.
Funktionsweise: Mechanismen eines LDAP-Injection-Angriffs #
Ein LDAP‑Injection‑Angriff tritt auf, wenn vom Benutzer bereitgestellte Daten unsicher in eine LDAP‑Abfrage eingebunden werden. Betrachten Sie einen login Filter:
(&(cn=” + Benutzername + “)(Benutzerpasswort=” + Passwort + “))Wenn ein Angreifer anstelle eines gültigen Benutzernamens * oder Terminatorsequenzen eingibt, bricht die Filterlogik zusammen und führt zu einer umfassenderen Auswertung oder einer Always-True-Bedingung, wodurch die Authentifizierung effektiv umgangen wird. Genau so funktioniert diese Injektion: Sie injiziert LDAP-Logik, um das beabsichtigte Verhalten zu untergraben.
Die LDAP-Injection-Schwachstelle entsteht also durch die Erstellung von Abfragen über nicht vertrauenswürdige Eingaben, die Sonderzeichen wie Klammern, Anführungszeichen und Platzhalter enthalten, die die Abfragesemantik verändern.
Darüber hinaus treten sie auf, wenn Anwendungscode Benutzerdaten unsicher in eine LDAP-Abfrage kopiert und Metazeichen nicht neutralisiert, wodurch Angreifer die Abfragelogik unterbrechen oder manipulieren, auf nicht autorisierte Daten zugreifen oder den Ausführungsfluss verändern können.
Warum ist ein LDAP-Injection-Angriff wichtig? #
Ein LDAP-Injection-Angriff kann die Authentifizierung stören, vertrauliche Informationen preisgeben oder sogar die Verzeichnisstruktur verändern. Imperva weist darauf hin, dass Angreifer Authentifizierungsprozesse kompromittieren, Benutzernamen und Passwörter einsehen oder verändern, Malware installieren und Berechtigungen erweitern können. Dies kann zu Datenlecks, Reputationsschäden und finanziellen Verlusten führen.
LDAP-Injection-Schwachstellen können sich über miteinander verbundene Dienste ausbreiten, insbesondere in enterprise Umgebungen, die LDAP für Single Sign-On (SSO), Autorisierung oder Koordination von Benutzeridentität und -berechtigungen verwenden.
Anzeichen einer bestehenden LDAP-Injection-Schwachstelle #
In der Cybersicherheit bezieht sich Governance darauf, wie Führung, Richtlinien und wichtige Warnsignale:
- Der Code verknüpft Benutzereingaben direkt mit LDAP-Filtern.
- Fehlende Eingabevalidierung oder Escape-Funktion.
- Verwendung von Sonderzeichen wie () * & | = in der Eingabe ohne Einschränkung.
- Unerwartete Abfrageergebnisse, beispielsweise ist die Authentifizierung unabhängig von den Anmeldeinformationen erfolgreich oder es werden umfassende Benutzerlisten bei minimaler Eingabe zurückgegeben.
Falsch erstellte Abfragen aus Benutzereingaben können einen unbefugten Datenabruf oder eine Umgehung der Logik ermöglichen.
Wie kann man sie eindämmen? #
Die Minderung der LDAP-Injection-Sicherheitslücke erfordert:
a. Eingabevalidierung / Zulassungsliste
Akzeptiert nur bekannte sichere Zeichen oder Muster. Steuerzeichen wie *, (, ), &, |, = werden abgelehnt oder bereinigt. PortsWigger empfiehlt, Eingaben mit LDAP-Metazeichen zu blockieren oder strikte alphanumerische Muster zu erzwingen.
b. Escapezeichen / Kodierung
Verwenden Sie LDAP‑spezifische Escaping‑Funktionen: Distinguished Name Escaping für DN‑Kontexte und Suchfilter‑Escaping für Prädikate. OWASP bietet eine detaillierte Präventions-Spickzettel mit maßgeschneiderter Anleitung
c. Parametrisierte Abfragen / Sichere APIs
Vermeiden Sie die Erstellung von Filtern durch Zeichenfolgenverkettung. Verwenden Sie LDAP-Bibliotheken, die Parameterbindung oder APIs zur Filtererstellung unterstützen (z. B. Filter.createANDFilter(…) des UnboundID SDK), um sicherzustellen, dass Benutzereingaben als Daten und nicht als Syntax behandelt werden.
D. Prinzip der geringsten Privilegien (PoLP)
Binden Sie LDAP mit minimalen Zugriffsrechten. Selbst wenn eine Injektion erfolgt, schränkt dies die Aktionen eines Angreifers ein. Unterstreichen Sie PoLP in Kombination mit Zero‑Trust und MFA, um die Auswirkungen zu begrenzen.
e. Sichere Frameworks/Bibliotheken
Verwenden Sie Frameworks, die Eingaben automatisch maskieren oder bereinigen und die Erstellung von Rohabfragen verhindern.
f. Codeanalyse-Tools
Verwenden Sie in .NET die CA3005-Analyse, um nicht vertrauenswürdige HTTP-Eingaben zu erkennen, die LDAP-Anweisungen erreichen. Beheben Sie das Problem, indem Sie die Eingabe bereinigen, maskieren oder in die Zulassungsliste aufnehmen.
g. Testen (statisch, dynamisch, Pen-Testing)
Integrieren Sie sowohl Static AppSec (SAST) und Dynamisch (DAST) Scannen, um LDAP-Injection-Schwachstellen sowohl im Ruhezustand als auch zur Laufzeit zu erkennen.
h. Protokollierung, Überwachung, Alarmierung
Erkennen Sie anomale Filtermuster, fehlgeschlagene Versuche oder unerwartete Abfragestrukturen. Semperis empfiehlt, Active Directory auf unregelmäßige LDAP-Abfragen oder Metadatenmanipulationen zu überwachen.
Glossar-Zusammenfassungstabelle #
| Bedingungen | Bedeutung |
|---|---|
| LDAP-Injektion | Eine Code-Injektionstechnik, die nicht bereinigte Benutzereingaben in LDAP-Filtern ausnutzt. |
| Was ist LDAP-Injection? | Eine Sicherheitslücke, die durch das Erstellen von LDAP-Abfragen mit nicht vertrauenswürdigen Eingaben entsteht. |
| LDAP-Injection-Angriff | Die eigentliche Ausnutzung, bei der Eingaben die LDAP-Abfragelogik ändern oder Zugriff erlangen. |
| LDAP-Injection-Sicherheitslücke | Der Fehler auf Codeebene ermöglicht LDAP-Injection-Angriffe. |
Warum ist das bei DevSecOps wichtig? #
Für DevSecOps-TeamsDie Verhinderung von LDAP-Injection-Schwachstellen ist für die Sicherung von Authentifizierungsabläufen und verzeichnisgestützter Zugriffskontrolle von entscheidender Bedeutung. Kontinuierliche Integration pipelines müssen statische Codeprüfungen auf unsichere Abfragekonstruktionen und dynamische Tests auf Filtermanipulationen umfassen. Sicherheitsmanager müssen die Verwendung von Escape-Bibliotheken, die parametrisierte API-Nutzung und die Einhaltung der Richtlinien für geringste Berechtigungen und Eingabevalidierung durchsetzen.
Stärkung von DevSecOps Pipelines mit Xygeni #
Nachdem Sie nun wissen, was LDAP-Injection ist, wissen Sie, dass die Absicherung moderner Anwendungen gegen diese mehr erfordert als Korrekturen auf Codeebene. DevSecOps-Teams müssen die Sicherheit im gesamten Unternehmen gewährleisten. Lebenszyklus der Softwareentwicklung, vom Code über die Erstellung bis zur Bereitstellung.
Tools wie Xygeni Teams durch die Integration statischer Analysen in die Lage versetzen, Injektionsrisiken frühzeitig zu erkennen, IaC Scannen und sichere Richtliniendurchsetzung direkt in CI/CD Arbeitsabläufe. Durch die kontinuierliche Überwachung auf unsichere Abfragekonstruktionen, Abhängigkeitsrisiken oder Fehlkonfigurationen hilft Xygeni, LDAP-Injection-Angriffe zu verhindern, bevor sie die Produktion erreichen.
Durch die Einbindung von Plattformen wie Xygeni wird die Sicherheit an die Entwicklungsgeschwindigkeit angepasst, indem Echtzeittransparenz, automatisierte Kontrollen und auf Secure-by-Design-Engineering zugeschnittene Anleitungen zur Fehlerbehebung bereitgestellt werden.
