Icônes SCW
héros bg sans séparateur
Blog

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

Jaap Karan Singh
Publié le 17 janvier 2019
Dernière mise à jour le 9 mars 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.

Consulter la ressource
Consulter la ressource

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.

Souhaitez-vous en savoir davantage ?

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

En savoir plus

Secure Code Warrior là pour aider votre entreprise à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre entreprise à réduire les risques liés à un code non sécurisé.

Réserver une démonstration
Partager sur :
marques LinkedInSocialLogo x
Auteur
Jaap Karan Singh
Publié le 17 janvier 2019

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

Partager sur :
marques LinkedInSocialLogo x

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.

Consulter la ressource
Consulter la ressource

Veuillez remplir le formulaire ci-dessous pour télécharger le rapport.

Nous sollicitons votre autorisation pour vous envoyer des informations sur nos produits et/ou des sujets connexes liés au codage sécurisé. Nous traitons toujours vos données personnelles avec le plus grand soin et ne les vendons jamais à d'autres entreprises à des fins de marketing.

Soumettre
icône de réussite scw
icône d'erreur scw
Pour envoyer le formulaire, veuillez activer les cookies « Analytics ». Une fois que vous avez terminé, vous pouvez les désactiver à tout moment.

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.

Veuillez consulter le webinaire.
Veuillez commencer
En savoir plus

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.

Secure Code Warrior là pour aider votre entreprise à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre entreprise à réduire les risques liés à un code non sécurisé.

Consulter le rapportRéserver une démonstration
Télécharger le PDF
Consulter la ressource
Partager sur :
marques LinkedInSocialLogo x
Souhaitez-vous en savoir davantage ?

Partager sur :
marques LinkedInSocialLogo x
Auteur
Jaap Karan Singh
Publié le 17 janvier 2019

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

Partager sur :
marques LinkedInSocialLogo x

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.

Table des matières

Télécharger le PDF
Consulter la ressource
Souhaitez-vous en savoir davantage ?

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

En savoir plus

Secure Code Warrior là pour aider votre entreprise à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre entreprise à réduire les risques liés à un code non sécurisé.

Réserver une démonstrationTélécharger
Partager sur :
marques LinkedInSocialLogo x
Centre de ressources

Ressources pour débuter

Plus d'articles
Centre de ressources

Ressources pour débuter

Plus d'articles