Iconos SCW
héroe bg sin separador
Blog

Programmierer erobern die Sicherheit: Serie „Teilen und Lernen“ — LDAP-Injektionen

Jaap Karan Singh
Publicado el 17 de enero de 2019
Última actualización el 9 de marzo de 2026

Die überwiegende Mehrheit der Computersysteme verwendet das Lightweight Directory Access Protocol (LDAP). Es wird verwendet, um verteilte Verzeichnisinformationsdienste über ein beliebiges Internet Protocol (IP) -Netzwerk bereitzustellen. Im Grunde genommen dient es also dazu, den Überblick über Benutzer zu behalten.

LDAP wird häufig von Apps als Authentifizierungsquelle verwendet, um festzustellen, ob ein Benutzer die Berechtigung hat, verschiedene Aktionen auszuführen, insbesondere im Zusammenhang mit seiner definierten Rolle innerhalb einer Organisation. Beispielsweise können möglicherweise nur Personen in der Buchhaltung die Buchhaltungssoftware des Unternehmens verwenden. Anwendungen werden häufig so programmiert, dass sie eine LDAP-Tabelle überprüfen, um sicherzustellen, dass die Benutzer im Rahmen ihrer festgelegten Berechtigungen handeln.

Probleme können auftreten, wenn böswillige Benutzer eine LDAP-Abfrage manipulieren können. Auf diese Weise kann der Empfangsserver dazu verleitet werden, ungültige Abfragen auszuführen, die normalerweise nicht zulässig wären, oder sogar Benutzern mit eingeschränkter Sicherheit ohne Passwort Zugriff auf hohe Ebenen oder Administratorrechte zu gewähren.

LDAP-Injektionen können schwierig sein, aber in dieser Episode werden wir lernen:

  • So funktionieren sie
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmechanismen einrichten können, um sie zu stoppen.

Wie verwenden Angreifer LDAP-Injection?

Einer der Gründe, warum LDAP-basierte Angriffe seit Jahren beliebt sind, ist die Tatsache, dass fast jedes Computersystem sie verwendet. LDAP ist Open Source und funktioniert sehr gut, daher wurden nicht viele Alternativen entwickelt.

Im Kern ist LDAP eine Datenbank, die gültige Benutzer innerhalb eines IP-basierten Computersystems oder Netzwerks verfolgt. Es kann Benutzern ermöglichen, Informationen über Systeme, Netzwerke, Server, Anwendungen und sogar andere Benutzer im selben Netzwerk auszutauschen.

Informationen werden von LDAP in der Form einer Datenbankzeile oder eines Datensatzes gespeichert, der als definierter Name bezeichnet wird und häufig mit DN abgekürzt wird. Jeder DN ist einzigartig. So könnte beispielsweise ein DN für einen Benutzer aussehen, der in der Buchhaltungsabteilung eines großen Unternehmens in Chicago arbeitet.

cn=James Smith, OU=Unternehmenskonten, DC=Chicago, DO=Parkview

Um sicherzustellen, dass jeder DN einzigartig ist, können dem Datensatz verschiedene Codes hinzugefügt werden, z. B. „+“, „/“, „=“ und einige andere. Leerzeichen vor oder nach einem Datensatz können ebenfalls eingefügt werden, um sicherzustellen, dass selbst dann, wenn zwei James Smiths im Büro in Chicago Parkview im Bereich Corporate Accounts arbeiten, sie jeweils individuelle DNs haben.

Anwendungen verwenden im Allgemeinen LDAP, um Benutzern das Senden von Anfragen zu bestimmten DNs zu ermöglichen, z. B. wenn sie versuchen, den richtigen Kontakt in der Gehaltsabrechnung zu finden, um über einen Fehler auf ihrem Scheck zu sprechen. LDAP-Injektionen können auftreten, wenn die vom Benutzer angegebenen Parameter in Suchanfragen nicht validiert werden. In diesem Fall können Hacker harmlose Suchanfragen manipulieren, um Authentifizierungsmechanismen zu umgehen oder zusätzliche willkürliche Abfragen auszuführen. Dies kann den Server dazu verleiten, Ergebnisse anzuzeigen, die nicht erlaubt sein sollten, wie z. B. Benutzerkennwörter, oder sogar dazu führen, dass eine Anwendung Zugriff auf hochsichere Bereiche im Netzwerk gewährt, mit oder ohne gültiges Passwort.

Warum sind LDAP-Injektionen so gefährlich?

Die größte Gefahr bei LDAP-Injektionen ist wahrscheinlich die Verbreitung des Protokolls in den meisten IP-Computernetzwerken weltweit. Es ist ein einfaches Sprungbrett für Hacker, die Informationen stehlen oder ihre Rechte in einem Netzwerk erweitern wollen. Kein geschulter Hacker wird es versäumen, zu überprüfen, ob LDAP-Injektionen möglich sind. Daher müssen Sicherheitsteams sicherstellen, dass diese Sicherheitslücken immer geschlossen werden.

Insbesondere sind einige Anwendungen so programmiert, dass sie gültigen Benutzern helfen, begrenzte Informationen über Benutzer und Gruppen innerhalb einer Organisation oder andere in den DNs enthaltene Informationen zu finden. Eine App könnte es beispielsweise jemandem ermöglichen, LDAP zu verwenden, um nach den Kontaktinformationen von Wirtschaftsprüfern zu suchen, die in Chicago arbeiten, was unseren Freund James Smith aus dem obigen Beispiel zurückgeben würde. Abhängig von den Berechtigungen ist dies wahrscheinlich eine absolut legitime Verwendung einer LDAP-Abfrage.

Die Gefahr besteht, wenn ein böswilliger Benutzer der Abfrage ungefiltert Parameter hinzufügen kann, wodurch die Art der Suche geändert wird und der Server dazu verleitet wird, Informationen bereitzustellen, die normalerweise nicht angegeben werden sollten. Beispielsweise könnten Angreifer durch Hinzufügen einer user=*-Zeichenfolge Informationen über jeden einzelnen Benutzer in einer gesamten Organisation abrufen, was wahrscheinlich niemals erlaubt sein sollte.

Bei Anwendungen, die LDAP zur Authentifizierung verwenden, kann das Problem noch schlimmer sein. Angreifer können beispielsweise die Zeichenfolge (&) am Ende einer LDAP-Abfrage verwenden, um dem Server vorzugaukeln, dass das Argument wahr ist. Wenn eine App LDAP zur Überprüfung eines Passworts verwendet, kann es einem nicht autorisierten Benutzer möglich sein, sich als Administrator in das Netzwerk einzuloggen, und zwar auch ohne Passwort, wenn das Argument True durch eine LDAP-Injektion erzwungen wird.

Machen Sie LDAP-Injection zu einem L-DON'T in Ihrem Netzwerk

Eine der besten Möglichkeiten, LDAP-Injektionen zu verhindern, besteht darin, etwas wie LinqToad oder andere Frameworks zu implementieren, die speziell dafür entwickelt wurden, dem zu widerstehen. Dies ist möglicherweise nicht möglich, wenn ein Netzwerk bereits über Anwendungen verfügt, die LDAP-Abfragen nutzen. Aber selbst in diesem Fall ist es für jede neue Anwendung immer noch eine gute Idee, in Zukunft injektionsresistente Frameworks zu verwenden.

Bestehende Anwendungen, die LDAP verwenden, können durch Whitelist-Validierung und Eingabebereinigung auch gegen Einschleusungen abgesichert werden. Beschränken Sie Benutzereingaben nach Möglichkeit auf einen begrenzten Satz vertrauenswürdiger Werte. Andernfalls sollten Benutzereingaben, die Teil einer LDAP-Abfrage sind, zuerst bereinigt werden. Vergessen Sie nicht, GET- und POST-Parameter, Cookies und HTTP-Header anzugeben, da diese auch als Angriffsvektoren dienen können. Schreiben Sie keine eigenen Funktionen, um die Eingabebereinigung durchzuführen. Verwenden Sie stattdessen eine vertrauenswürdige, sicherheitsorientierte Bibliothek eines Drittanbieters oder integrierte Framework-APIs.

Neben gezielten Korrekturen können auch gute Computerpraktiken helfen, z. B. LDAP-Abfrageanwendungen die geringsten Rechte zuzuweisen, die in einem Netzwerk benötigt werden. Auf diese Weise würde der Schaden gemindert, falls das Schlimmste passieren sollte und eine LDAP-Injektion durchkommt.

Weitere Informationen zu LDAP-Injektionen

Für weitere Informationen können Sie sich die OWASP ansehen schreiben Sie auf LDAP-Injektionen oder die Vorbeugung von Injektionen Spickzettel. Du kannst dein neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

Ver recurso
Ver recurso

Probleme können auftreten, wenn böswillige Benutzer eine LDAP-Abfrage manipulieren können. Auf diese Weise kann der Empfangsserver dazu verleitet werden, ungültige Abfragen auszuführen, die normalerweise nicht zulässig wären, oder sogar Benutzern mit eingeschränkter Sicherheit ohne Passwort Zugriff auf hohe Ebenen oder Administratorrechte zu gewähren.

¿Te interesa saber más?

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

Más información

Secure Code Warrior a disposición de su empresa para ayudarle a proteger el código durante todo el ciclo de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de seguridad de aplicaciones, desarrollador, responsable de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su empresa a reducir los riesgos asociados al código inseguro.

Reservar una demostración
Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Jaap Karan Singh
Publicado el 17 de enero de 2019

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

Compartir en:
marcas de LinkedInSocialx logotipo

Die überwiegende Mehrheit der Computersysteme verwendet das Lightweight Directory Access Protocol (LDAP). Es wird verwendet, um verteilte Verzeichnisinformationsdienste über ein beliebiges Internet Protocol (IP) -Netzwerk bereitzustellen. Im Grunde genommen dient es also dazu, den Überblick über Benutzer zu behalten.

LDAP wird häufig von Apps als Authentifizierungsquelle verwendet, um festzustellen, ob ein Benutzer die Berechtigung hat, verschiedene Aktionen auszuführen, insbesondere im Zusammenhang mit seiner definierten Rolle innerhalb einer Organisation. Beispielsweise können möglicherweise nur Personen in der Buchhaltung die Buchhaltungssoftware des Unternehmens verwenden. Anwendungen werden häufig so programmiert, dass sie eine LDAP-Tabelle überprüfen, um sicherzustellen, dass die Benutzer im Rahmen ihrer festgelegten Berechtigungen handeln.

Probleme können auftreten, wenn böswillige Benutzer eine LDAP-Abfrage manipulieren können. Auf diese Weise kann der Empfangsserver dazu verleitet werden, ungültige Abfragen auszuführen, die normalerweise nicht zulässig wären, oder sogar Benutzern mit eingeschränkter Sicherheit ohne Passwort Zugriff auf hohe Ebenen oder Administratorrechte zu gewähren.

LDAP-Injektionen können schwierig sein, aber in dieser Episode werden wir lernen:

  • So funktionieren sie
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmechanismen einrichten können, um sie zu stoppen.

Wie verwenden Angreifer LDAP-Injection?

Einer der Gründe, warum LDAP-basierte Angriffe seit Jahren beliebt sind, ist die Tatsache, dass fast jedes Computersystem sie verwendet. LDAP ist Open Source und funktioniert sehr gut, daher wurden nicht viele Alternativen entwickelt.

Im Kern ist LDAP eine Datenbank, die gültige Benutzer innerhalb eines IP-basierten Computersystems oder Netzwerks verfolgt. Es kann Benutzern ermöglichen, Informationen über Systeme, Netzwerke, Server, Anwendungen und sogar andere Benutzer im selben Netzwerk auszutauschen.

Informationen werden von LDAP in der Form einer Datenbankzeile oder eines Datensatzes gespeichert, der als definierter Name bezeichnet wird und häufig mit DN abgekürzt wird. Jeder DN ist einzigartig. So könnte beispielsweise ein DN für einen Benutzer aussehen, der in der Buchhaltungsabteilung eines großen Unternehmens in Chicago arbeitet.

cn=James Smith, OU=Unternehmenskonten, DC=Chicago, DO=Parkview

Um sicherzustellen, dass jeder DN einzigartig ist, können dem Datensatz verschiedene Codes hinzugefügt werden, z. B. „+“, „/“, „=“ und einige andere. Leerzeichen vor oder nach einem Datensatz können ebenfalls eingefügt werden, um sicherzustellen, dass selbst dann, wenn zwei James Smiths im Büro in Chicago Parkview im Bereich Corporate Accounts arbeiten, sie jeweils individuelle DNs haben.

Anwendungen verwenden im Allgemeinen LDAP, um Benutzern das Senden von Anfragen zu bestimmten DNs zu ermöglichen, z. B. wenn sie versuchen, den richtigen Kontakt in der Gehaltsabrechnung zu finden, um über einen Fehler auf ihrem Scheck zu sprechen. LDAP-Injektionen können auftreten, wenn die vom Benutzer angegebenen Parameter in Suchanfragen nicht validiert werden. In diesem Fall können Hacker harmlose Suchanfragen manipulieren, um Authentifizierungsmechanismen zu umgehen oder zusätzliche willkürliche Abfragen auszuführen. Dies kann den Server dazu verleiten, Ergebnisse anzuzeigen, die nicht erlaubt sein sollten, wie z. B. Benutzerkennwörter, oder sogar dazu führen, dass eine Anwendung Zugriff auf hochsichere Bereiche im Netzwerk gewährt, mit oder ohne gültiges Passwort.

Warum sind LDAP-Injektionen so gefährlich?

Die größte Gefahr bei LDAP-Injektionen ist wahrscheinlich die Verbreitung des Protokolls in den meisten IP-Computernetzwerken weltweit. Es ist ein einfaches Sprungbrett für Hacker, die Informationen stehlen oder ihre Rechte in einem Netzwerk erweitern wollen. Kein geschulter Hacker wird es versäumen, zu überprüfen, ob LDAP-Injektionen möglich sind. Daher müssen Sicherheitsteams sicherstellen, dass diese Sicherheitslücken immer geschlossen werden.

Insbesondere sind einige Anwendungen so programmiert, dass sie gültigen Benutzern helfen, begrenzte Informationen über Benutzer und Gruppen innerhalb einer Organisation oder andere in den DNs enthaltene Informationen zu finden. Eine App könnte es beispielsweise jemandem ermöglichen, LDAP zu verwenden, um nach den Kontaktinformationen von Wirtschaftsprüfern zu suchen, die in Chicago arbeiten, was unseren Freund James Smith aus dem obigen Beispiel zurückgeben würde. Abhängig von den Berechtigungen ist dies wahrscheinlich eine absolut legitime Verwendung einer LDAP-Abfrage.

Die Gefahr besteht, wenn ein böswilliger Benutzer der Abfrage ungefiltert Parameter hinzufügen kann, wodurch die Art der Suche geändert wird und der Server dazu verleitet wird, Informationen bereitzustellen, die normalerweise nicht angegeben werden sollten. Beispielsweise könnten Angreifer durch Hinzufügen einer user=*-Zeichenfolge Informationen über jeden einzelnen Benutzer in einer gesamten Organisation abrufen, was wahrscheinlich niemals erlaubt sein sollte.

Bei Anwendungen, die LDAP zur Authentifizierung verwenden, kann das Problem noch schlimmer sein. Angreifer können beispielsweise die Zeichenfolge (&) am Ende einer LDAP-Abfrage verwenden, um dem Server vorzugaukeln, dass das Argument wahr ist. Wenn eine App LDAP zur Überprüfung eines Passworts verwendet, kann es einem nicht autorisierten Benutzer möglich sein, sich als Administrator in das Netzwerk einzuloggen, und zwar auch ohne Passwort, wenn das Argument True durch eine LDAP-Injektion erzwungen wird.

Machen Sie LDAP-Injection zu einem L-DON'T in Ihrem Netzwerk

Eine der besten Möglichkeiten, LDAP-Injektionen zu verhindern, besteht darin, etwas wie LinqToad oder andere Frameworks zu implementieren, die speziell dafür entwickelt wurden, dem zu widerstehen. Dies ist möglicherweise nicht möglich, wenn ein Netzwerk bereits über Anwendungen verfügt, die LDAP-Abfragen nutzen. Aber selbst in diesem Fall ist es für jede neue Anwendung immer noch eine gute Idee, in Zukunft injektionsresistente Frameworks zu verwenden.

Bestehende Anwendungen, die LDAP verwenden, können durch Whitelist-Validierung und Eingabebereinigung auch gegen Einschleusungen abgesichert werden. Beschränken Sie Benutzereingaben nach Möglichkeit auf einen begrenzten Satz vertrauenswürdiger Werte. Andernfalls sollten Benutzereingaben, die Teil einer LDAP-Abfrage sind, zuerst bereinigt werden. Vergessen Sie nicht, GET- und POST-Parameter, Cookies und HTTP-Header anzugeben, da diese auch als Angriffsvektoren dienen können. Schreiben Sie keine eigenen Funktionen, um die Eingabebereinigung durchzuführen. Verwenden Sie stattdessen eine vertrauenswürdige, sicherheitsorientierte Bibliothek eines Drittanbieters oder integrierte Framework-APIs.

Neben gezielten Korrekturen können auch gute Computerpraktiken helfen, z. B. LDAP-Abfrageanwendungen die geringsten Rechte zuzuweisen, die in einem Netzwerk benötigt werden. Auf diese Weise würde der Schaden gemindert, falls das Schlimmste passieren sollte und eine LDAP-Injektion durchkommt.

Weitere Informationen zu LDAP-Injektionen

Für weitere Informationen können Sie sich die OWASP ansehen schreiben Sie auf LDAP-Injektionen oder die Vorbeugung von Injektionen Spickzettel. Du kannst dein neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

Ver recurso
Ver recurso

Rellene el siguiente formulario para descargar el informe.

Solicitamos su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Tratamos sus datos personales con el máximo cuidado y nunca los vendemos a otras empresas con fines comerciales.

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, active las cookies de «Analytics». Cuando haya terminado, puede desactivarlas en cualquier momento.

Die überwiegende Mehrheit der Computersysteme verwendet das Lightweight Directory Access Protocol (LDAP). Es wird verwendet, um verteilte Verzeichnisinformationsdienste über ein beliebiges Internet Protocol (IP) -Netzwerk bereitzustellen. Im Grunde genommen dient es also dazu, den Überblick über Benutzer zu behalten.

LDAP wird häufig von Apps als Authentifizierungsquelle verwendet, um festzustellen, ob ein Benutzer die Berechtigung hat, verschiedene Aktionen auszuführen, insbesondere im Zusammenhang mit seiner definierten Rolle innerhalb einer Organisation. Beispielsweise können möglicherweise nur Personen in der Buchhaltung die Buchhaltungssoftware des Unternehmens verwenden. Anwendungen werden häufig so programmiert, dass sie eine LDAP-Tabelle überprüfen, um sicherzustellen, dass die Benutzer im Rahmen ihrer festgelegten Berechtigungen handeln.

Probleme können auftreten, wenn böswillige Benutzer eine LDAP-Abfrage manipulieren können. Auf diese Weise kann der Empfangsserver dazu verleitet werden, ungültige Abfragen auszuführen, die normalerweise nicht zulässig wären, oder sogar Benutzern mit eingeschränkter Sicherheit ohne Passwort Zugriff auf hohe Ebenen oder Administratorrechte zu gewähren.

LDAP-Injektionen können schwierig sein, aber in dieser Episode werden wir lernen:

  • So funktionieren sie
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmechanismen einrichten können, um sie zu stoppen.

Wie verwenden Angreifer LDAP-Injection?

Einer der Gründe, warum LDAP-basierte Angriffe seit Jahren beliebt sind, ist die Tatsache, dass fast jedes Computersystem sie verwendet. LDAP ist Open Source und funktioniert sehr gut, daher wurden nicht viele Alternativen entwickelt.

Im Kern ist LDAP eine Datenbank, die gültige Benutzer innerhalb eines IP-basierten Computersystems oder Netzwerks verfolgt. Es kann Benutzern ermöglichen, Informationen über Systeme, Netzwerke, Server, Anwendungen und sogar andere Benutzer im selben Netzwerk auszutauschen.

Informationen werden von LDAP in der Form einer Datenbankzeile oder eines Datensatzes gespeichert, der als definierter Name bezeichnet wird und häufig mit DN abgekürzt wird. Jeder DN ist einzigartig. So könnte beispielsweise ein DN für einen Benutzer aussehen, der in der Buchhaltungsabteilung eines großen Unternehmens in Chicago arbeitet.

cn=James Smith, OU=Unternehmenskonten, DC=Chicago, DO=Parkview

Um sicherzustellen, dass jeder DN einzigartig ist, können dem Datensatz verschiedene Codes hinzugefügt werden, z. B. „+“, „/“, „=“ und einige andere. Leerzeichen vor oder nach einem Datensatz können ebenfalls eingefügt werden, um sicherzustellen, dass selbst dann, wenn zwei James Smiths im Büro in Chicago Parkview im Bereich Corporate Accounts arbeiten, sie jeweils individuelle DNs haben.

Anwendungen verwenden im Allgemeinen LDAP, um Benutzern das Senden von Anfragen zu bestimmten DNs zu ermöglichen, z. B. wenn sie versuchen, den richtigen Kontakt in der Gehaltsabrechnung zu finden, um über einen Fehler auf ihrem Scheck zu sprechen. LDAP-Injektionen können auftreten, wenn die vom Benutzer angegebenen Parameter in Suchanfragen nicht validiert werden. In diesem Fall können Hacker harmlose Suchanfragen manipulieren, um Authentifizierungsmechanismen zu umgehen oder zusätzliche willkürliche Abfragen auszuführen. Dies kann den Server dazu verleiten, Ergebnisse anzuzeigen, die nicht erlaubt sein sollten, wie z. B. Benutzerkennwörter, oder sogar dazu führen, dass eine Anwendung Zugriff auf hochsichere Bereiche im Netzwerk gewährt, mit oder ohne gültiges Passwort.

Warum sind LDAP-Injektionen so gefährlich?

Die größte Gefahr bei LDAP-Injektionen ist wahrscheinlich die Verbreitung des Protokolls in den meisten IP-Computernetzwerken weltweit. Es ist ein einfaches Sprungbrett für Hacker, die Informationen stehlen oder ihre Rechte in einem Netzwerk erweitern wollen. Kein geschulter Hacker wird es versäumen, zu überprüfen, ob LDAP-Injektionen möglich sind. Daher müssen Sicherheitsteams sicherstellen, dass diese Sicherheitslücken immer geschlossen werden.

Insbesondere sind einige Anwendungen so programmiert, dass sie gültigen Benutzern helfen, begrenzte Informationen über Benutzer und Gruppen innerhalb einer Organisation oder andere in den DNs enthaltene Informationen zu finden. Eine App könnte es beispielsweise jemandem ermöglichen, LDAP zu verwenden, um nach den Kontaktinformationen von Wirtschaftsprüfern zu suchen, die in Chicago arbeiten, was unseren Freund James Smith aus dem obigen Beispiel zurückgeben würde. Abhängig von den Berechtigungen ist dies wahrscheinlich eine absolut legitime Verwendung einer LDAP-Abfrage.

Die Gefahr besteht, wenn ein böswilliger Benutzer der Abfrage ungefiltert Parameter hinzufügen kann, wodurch die Art der Suche geändert wird und der Server dazu verleitet wird, Informationen bereitzustellen, die normalerweise nicht angegeben werden sollten. Beispielsweise könnten Angreifer durch Hinzufügen einer user=*-Zeichenfolge Informationen über jeden einzelnen Benutzer in einer gesamten Organisation abrufen, was wahrscheinlich niemals erlaubt sein sollte.

Bei Anwendungen, die LDAP zur Authentifizierung verwenden, kann das Problem noch schlimmer sein. Angreifer können beispielsweise die Zeichenfolge (&) am Ende einer LDAP-Abfrage verwenden, um dem Server vorzugaukeln, dass das Argument wahr ist. Wenn eine App LDAP zur Überprüfung eines Passworts verwendet, kann es einem nicht autorisierten Benutzer möglich sein, sich als Administrator in das Netzwerk einzuloggen, und zwar auch ohne Passwort, wenn das Argument True durch eine LDAP-Injektion erzwungen wird.

Machen Sie LDAP-Injection zu einem L-DON'T in Ihrem Netzwerk

Eine der besten Möglichkeiten, LDAP-Injektionen zu verhindern, besteht darin, etwas wie LinqToad oder andere Frameworks zu implementieren, die speziell dafür entwickelt wurden, dem zu widerstehen. Dies ist möglicherweise nicht möglich, wenn ein Netzwerk bereits über Anwendungen verfügt, die LDAP-Abfragen nutzen. Aber selbst in diesem Fall ist es für jede neue Anwendung immer noch eine gute Idee, in Zukunft injektionsresistente Frameworks zu verwenden.

Bestehende Anwendungen, die LDAP verwenden, können durch Whitelist-Validierung und Eingabebereinigung auch gegen Einschleusungen abgesichert werden. Beschränken Sie Benutzereingaben nach Möglichkeit auf einen begrenzten Satz vertrauenswürdiger Werte. Andernfalls sollten Benutzereingaben, die Teil einer LDAP-Abfrage sind, zuerst bereinigt werden. Vergessen Sie nicht, GET- und POST-Parameter, Cookies und HTTP-Header anzugeben, da diese auch als Angriffsvektoren dienen können. Schreiben Sie keine eigenen Funktionen, um die Eingabebereinigung durchzuführen. Verwenden Sie stattdessen eine vertrauenswürdige, sicherheitsorientierte Bibliothek eines Drittanbieters oder integrierte Framework-APIs.

Neben gezielten Korrekturen können auch gute Computerpraktiken helfen, z. B. LDAP-Abfrageanwendungen die geringsten Rechte zuzuweisen, die in einem Netzwerk benötigt werden. Auf diese Weise würde der Schaden gemindert, falls das Schlimmste passieren sollte und eine LDAP-Injektion durchkommt.

Weitere Informationen zu LDAP-Injektionen

Für weitere Informationen können Sie sich die OWASP ansehen schreiben Sie auf LDAP-Injektionen oder die Vorbeugung von Injektionen Spickzettel. Du kannst dein neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

Ver seminario web
Empiece
Más información

Haga clic en el enlace de abajo y descargue el PDF de este recurso.

Secure Code Warrior a disposición de su empresa para ayudarle a proteger el código durante todo el ciclo de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de seguridad de aplicaciones, desarrollador, responsable de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su empresa a reducir los riesgos asociados al código inseguro.

Ver informeReservar una demostración
Ver recurso
Compartir en:
marcas de LinkedInSocialx logotipo
¿Te interesa saber más?

Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Jaap Karan Singh
Publicado el 17 de enero de 2019

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

Compartir en:
marcas de LinkedInSocialx logotipo

Die überwiegende Mehrheit der Computersysteme verwendet das Lightweight Directory Access Protocol (LDAP). Es wird verwendet, um verteilte Verzeichnisinformationsdienste über ein beliebiges Internet Protocol (IP) -Netzwerk bereitzustellen. Im Grunde genommen dient es also dazu, den Überblick über Benutzer zu behalten.

LDAP wird häufig von Apps als Authentifizierungsquelle verwendet, um festzustellen, ob ein Benutzer die Berechtigung hat, verschiedene Aktionen auszuführen, insbesondere im Zusammenhang mit seiner definierten Rolle innerhalb einer Organisation. Beispielsweise können möglicherweise nur Personen in der Buchhaltung die Buchhaltungssoftware des Unternehmens verwenden. Anwendungen werden häufig so programmiert, dass sie eine LDAP-Tabelle überprüfen, um sicherzustellen, dass die Benutzer im Rahmen ihrer festgelegten Berechtigungen handeln.

Probleme können auftreten, wenn böswillige Benutzer eine LDAP-Abfrage manipulieren können. Auf diese Weise kann der Empfangsserver dazu verleitet werden, ungültige Abfragen auszuführen, die normalerweise nicht zulässig wären, oder sogar Benutzern mit eingeschränkter Sicherheit ohne Passwort Zugriff auf hohe Ebenen oder Administratorrechte zu gewähren.

LDAP-Injektionen können schwierig sein, aber in dieser Episode werden wir lernen:

  • So funktionieren sie
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmechanismen einrichten können, um sie zu stoppen.

Wie verwenden Angreifer LDAP-Injection?

Einer der Gründe, warum LDAP-basierte Angriffe seit Jahren beliebt sind, ist die Tatsache, dass fast jedes Computersystem sie verwendet. LDAP ist Open Source und funktioniert sehr gut, daher wurden nicht viele Alternativen entwickelt.

Im Kern ist LDAP eine Datenbank, die gültige Benutzer innerhalb eines IP-basierten Computersystems oder Netzwerks verfolgt. Es kann Benutzern ermöglichen, Informationen über Systeme, Netzwerke, Server, Anwendungen und sogar andere Benutzer im selben Netzwerk auszutauschen.

Informationen werden von LDAP in der Form einer Datenbankzeile oder eines Datensatzes gespeichert, der als definierter Name bezeichnet wird und häufig mit DN abgekürzt wird. Jeder DN ist einzigartig. So könnte beispielsweise ein DN für einen Benutzer aussehen, der in der Buchhaltungsabteilung eines großen Unternehmens in Chicago arbeitet.

cn=James Smith, OU=Unternehmenskonten, DC=Chicago, DO=Parkview

Um sicherzustellen, dass jeder DN einzigartig ist, können dem Datensatz verschiedene Codes hinzugefügt werden, z. B. „+“, „/“, „=“ und einige andere. Leerzeichen vor oder nach einem Datensatz können ebenfalls eingefügt werden, um sicherzustellen, dass selbst dann, wenn zwei James Smiths im Büro in Chicago Parkview im Bereich Corporate Accounts arbeiten, sie jeweils individuelle DNs haben.

Anwendungen verwenden im Allgemeinen LDAP, um Benutzern das Senden von Anfragen zu bestimmten DNs zu ermöglichen, z. B. wenn sie versuchen, den richtigen Kontakt in der Gehaltsabrechnung zu finden, um über einen Fehler auf ihrem Scheck zu sprechen. LDAP-Injektionen können auftreten, wenn die vom Benutzer angegebenen Parameter in Suchanfragen nicht validiert werden. In diesem Fall können Hacker harmlose Suchanfragen manipulieren, um Authentifizierungsmechanismen zu umgehen oder zusätzliche willkürliche Abfragen auszuführen. Dies kann den Server dazu verleiten, Ergebnisse anzuzeigen, die nicht erlaubt sein sollten, wie z. B. Benutzerkennwörter, oder sogar dazu führen, dass eine Anwendung Zugriff auf hochsichere Bereiche im Netzwerk gewährt, mit oder ohne gültiges Passwort.

Warum sind LDAP-Injektionen so gefährlich?

Die größte Gefahr bei LDAP-Injektionen ist wahrscheinlich die Verbreitung des Protokolls in den meisten IP-Computernetzwerken weltweit. Es ist ein einfaches Sprungbrett für Hacker, die Informationen stehlen oder ihre Rechte in einem Netzwerk erweitern wollen. Kein geschulter Hacker wird es versäumen, zu überprüfen, ob LDAP-Injektionen möglich sind. Daher müssen Sicherheitsteams sicherstellen, dass diese Sicherheitslücken immer geschlossen werden.

Insbesondere sind einige Anwendungen so programmiert, dass sie gültigen Benutzern helfen, begrenzte Informationen über Benutzer und Gruppen innerhalb einer Organisation oder andere in den DNs enthaltene Informationen zu finden. Eine App könnte es beispielsweise jemandem ermöglichen, LDAP zu verwenden, um nach den Kontaktinformationen von Wirtschaftsprüfern zu suchen, die in Chicago arbeiten, was unseren Freund James Smith aus dem obigen Beispiel zurückgeben würde. Abhängig von den Berechtigungen ist dies wahrscheinlich eine absolut legitime Verwendung einer LDAP-Abfrage.

Die Gefahr besteht, wenn ein böswilliger Benutzer der Abfrage ungefiltert Parameter hinzufügen kann, wodurch die Art der Suche geändert wird und der Server dazu verleitet wird, Informationen bereitzustellen, die normalerweise nicht angegeben werden sollten. Beispielsweise könnten Angreifer durch Hinzufügen einer user=*-Zeichenfolge Informationen über jeden einzelnen Benutzer in einer gesamten Organisation abrufen, was wahrscheinlich niemals erlaubt sein sollte.

Bei Anwendungen, die LDAP zur Authentifizierung verwenden, kann das Problem noch schlimmer sein. Angreifer können beispielsweise die Zeichenfolge (&) am Ende einer LDAP-Abfrage verwenden, um dem Server vorzugaukeln, dass das Argument wahr ist. Wenn eine App LDAP zur Überprüfung eines Passworts verwendet, kann es einem nicht autorisierten Benutzer möglich sein, sich als Administrator in das Netzwerk einzuloggen, und zwar auch ohne Passwort, wenn das Argument True durch eine LDAP-Injektion erzwungen wird.

Machen Sie LDAP-Injection zu einem L-DON'T in Ihrem Netzwerk

Eine der besten Möglichkeiten, LDAP-Injektionen zu verhindern, besteht darin, etwas wie LinqToad oder andere Frameworks zu implementieren, die speziell dafür entwickelt wurden, dem zu widerstehen. Dies ist möglicherweise nicht möglich, wenn ein Netzwerk bereits über Anwendungen verfügt, die LDAP-Abfragen nutzen. Aber selbst in diesem Fall ist es für jede neue Anwendung immer noch eine gute Idee, in Zukunft injektionsresistente Frameworks zu verwenden.

Bestehende Anwendungen, die LDAP verwenden, können durch Whitelist-Validierung und Eingabebereinigung auch gegen Einschleusungen abgesichert werden. Beschränken Sie Benutzereingaben nach Möglichkeit auf einen begrenzten Satz vertrauenswürdiger Werte. Andernfalls sollten Benutzereingaben, die Teil einer LDAP-Abfrage sind, zuerst bereinigt werden. Vergessen Sie nicht, GET- und POST-Parameter, Cookies und HTTP-Header anzugeben, da diese auch als Angriffsvektoren dienen können. Schreiben Sie keine eigenen Funktionen, um die Eingabebereinigung durchzuführen. Verwenden Sie stattdessen eine vertrauenswürdige, sicherheitsorientierte Bibliothek eines Drittanbieters oder integrierte Framework-APIs.

Neben gezielten Korrekturen können auch gute Computerpraktiken helfen, z. B. LDAP-Abfrageanwendungen die geringsten Rechte zuzuweisen, die in einem Netzwerk benötigt werden. Auf diese Weise würde der Schaden gemindert, falls das Schlimmste passieren sollte und eine LDAP-Injektion durchkommt.

Weitere Informationen zu LDAP-Injektionen

Für weitere Informationen können Sie sich die OWASP ansehen schreiben Sie auf LDAP-Injektionen oder die Vorbeugung von Injektionen Spickzettel. Du kannst dein neu gewonnenes Defensivwissen auch auf die Probe stellen mit dem kostenlose Demo der Secure Code Warrior-Plattform, die Cybersicherheitsteams zu ultimativen Cyberkriegern ausbildet. Um mehr über die Beseitigung dieser Sicherheitslücke und eine Galerie mit anderen Bedrohungen zu erfahren, besuchen Sie die Blog von Secure Code Warrior.

Índice

Descargar PDF
Ver recurso
¿Te interesa saber más?

Jaap Karan Singh ist Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

Más información

Secure Code Warrior a disposición de su empresa para ayudarle a proteger el código durante todo el ciclo de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de seguridad de aplicaciones, desarrollador, responsable de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su empresa a reducir los riesgos asociados al código inseguro.

Reservar una demostraciónDescargar
Compartir en:
marcas de LinkedInSocialx logotipo
Centro de recursos

Recursos para empezar

Más entradas
Centro de recursos

Recursos para empezar

Más entradas