SCW-Symbole
Held-Hintergrund ohne Trennlinie
Blog

코더즈 컨커 보안: 셰어 앤 런 시리즈 - LDAP 인젝션

Jaap Karan Singh
Veröffentlicht Jan 17, 2019
Zuletzt aktualisiert am 09. März 2026

Die große Mehrheit der Computersysteme verwendet das Lightweight Directory Access Protocol (LDAP). Es wird verwendet, um verteilte Verzeichnisinformationsdienste über ein beliebiges Internet Protocol (IP)-Netzwerk zu verwalten. Es dient also im Wesentlichen dazu, den Überblick über die Benutzer zu behalten.

LDAP wird häufig als Authentifizierungsquelle von Anwendungen verwendet, um festzustellen, ob ein Benutzer die Berechtigung hat, verschiedene Aktionen durchzuführen, insbesondere in Bezug auf seine definierte Rolle innerhalb einer Organisation. So können beispielsweise nur Mitarbeiter der Buchhaltung die Buchhaltungssoftware des Unternehmens nutzen. Anwendungen werden oft so programmiert, dass sie eine LDAP-Tabelle überprüfen, um sicherzustellen, dass die Benutzer innerhalb ihrer festgelegten Berechtigungen handeln.

Probleme können auftreten, wenn böswillige Benutzer eine LDAP-Abfrage manipulieren können. Dadurch kann der empfangende Server dazu gebracht werden, ungültige Abfragen auszuführen, die normalerweise nicht erlaubt wären, oder sogar ungültigen oder unsicheren Benutzern ohne Kennwort Zugang auf hoher Ebene oder als Administrator zu gewähren.  

LDAP-Injektionen können knifflig sein, aber in dieser Folge lernen wir es:

  • Wie sie funktionieren
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmaßnahmen ergreifen können, um sie zu stoppen.

Wie nutzen Angreifer LDAP Injection?

Einer der Gründe, warum LDAP-basierte Angriffe seit Jahren beliebt sind, ist die Tatsache, dass fast jedes Computersystem es verwendet. LDAP ist quelloffen und funktioniert extrem gut, sodass nicht viele Alternativen geschaffen wurden.

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 dem Äquivalent einer Datenbankzeile oder eines Datensatzes gespeichert, der als Distinguished Name bezeichnet wird, oft abgekürzt als DN. Jeder DN ist eindeutig. So könnte zum Beispiel ein DN für einen Benutzer aussehen, der in der Buchhaltung eines großen Unternehmens in Chicago arbeitet.

cn=James Smith, ou=Corporate Accounts, dc=Chicago, do=Parkview  

Um sicherzustellen, dass jeder DN eindeutig ist, können dem Datensatz verschiedene Codes hinzugefügt werden, wie "+", "/", "=" und einige andere. Es können auch Leerzeichen vor oder nach einem Datensatz eingefügt werden, um sicherzustellen, dass selbst wenn es zwei James Smiths gibt, die im Chicago Parkview Office in der Abteilung Corporate Accounts arbeiten, sie jeweils individuelle DNs haben.

Anwendungen verwenden LDAP im Allgemeinen, um Benutzern die Möglichkeit zu geben, Abfragen über bestimmte DNs zu senden, wie z. B. beim Versuch, den richtigen Ansprechpartner in der Lohnbuchhaltung zu finden, um über einen Fehler auf dem Scheck zu sprechen. LDAP-Injektionen können auftreten, wenn keine Validierung der vom Benutzer bereitgestellten Parameter in Suchanfragen erfolgt. In diesem Fall können Hacker gutartige Suchanfragen manipulieren, um Authentifizierungsmechanismen zu umgehen oder zusätzliche beliebige Abfragen auszuführen. Dies kann den Server dazu bringen, Ergebnisse anzuzeigen, die nicht erlaubt sein sollten, wie z. B. Benutzerpasswörter, oder sogar eine Anwendung dazu veranlassen, Zugriff auf hochsichere Bereiche innerhalb des Netzwerks zu gewähren, mit oder ohne gültiges Passwort.

Warum sind LDAP-Injektionen so gefährlich?

Die größte Gefahr bei LDAP-Injektionen ist wahrscheinlich die weite Verbreitung des Protokolls in den meisten IP-Computernetzwerken weltweit. Es ist ein leichtes Sprungbrett für Hacker, die Informationen stehlen oder ihre Privilegien in einem Netzwerk erhöhen wollen. Kein geschulter Hacker wird es versäumen, zu prüfen, ob LDAP-Injections möglich sind, daher müssen Sicherheitsteams sicherstellen, dass diese Löcher immer geschlossen sind.

Konkret sind etliche 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. Zum Beispiel könnte eine Anwendung jemandem erlauben, mit LDAP nach den Kontaktinformationen von Buchhaltern in Chicago zu suchen, was unseren Freund James Smith aus dem obigen Beispiel zurückbringen würde. Abhängig von den Berechtigungen ist dies wahrscheinlich eine vollkommen gültige Verwendung einer LDAP-Abfrage.

Die Gefahr entsteht, wenn ein böswilliger Benutzer der Abfrage ungefilterte Parameter hinzufügen kann, wodurch die Art der Suche verändert und der Server dazu gebracht wird, Informationen bereitzustellen, die normalerweise nicht gegeben werden sollten. Durch Hinzufügen einer user=*-Zeichenkette könnten Angreifer beispielsweise Informationen über jeden einzelnen Benutzer einer ganzen Organisation erhalten, was wahrscheinlich niemals erlaubt sein sollte.

Bei Anwendungen, die LDAP zur Authentifizierung verwenden, kann das Problem sogar noch größer sein. Angreifer können z. B. die Zeichenfolge (&) am Ende einer LDAP-Abfrage verwenden, um dem Server vorzugaukeln, dass das Argument wahr ist. Wenn eine Anwendung LDAP zur Überprüfung eines Kennworts verwendet, kann das Erzwingen eines "True"-Arguments durch eine LDAP-Injektion es einem nicht autorisierten Benutzer ermöglichen, sich als Administrator im Netzwerk anzumelden, auch ohne ein Kennwort.

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. Dies ist möglicherweise nicht möglich, wenn es in einem Netzwerk bereits Anwendungen gibt, die LDAP-Abfragen nutzen. Aber selbst in diesem Fall ist es immer noch eine gute Idee, für jede neue Anwendung injektionsresistente Frameworks zu verwenden.

Vorhandene Anwendungen, die LDAP verwenden, können auch durch die Verwendung von Whitelist-Validierung und Eingabensanitisierung gegen Injektionen gehärtet werden. Beschränken Sie die Benutzereingabe nach Möglichkeit auf eine begrenzte Anzahl 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 mit einzubeziehen, da diese ebenfalls als Angriffsvektoren dienen können. Schreiben Sie keine eigenen Funktionen, um die Eingabensanitisierung durchzuführen; verwenden Sie stattdessen eine vertrauenswürdige, auf Sicherheit fokussierte Bibliothek eines Drittanbieters oder integrierte Framework-APIs.

Neben gezielten Korrekturen können auch gute Computerpraktiken helfen, wie z. B. die Zuweisung von LDAP-abfragenden Anwendungen mit den geringsten Berechtigungen, die in einem Netzwerk benötigt werden. Auf diese Weise kann im schlimmsten Fall, wenn eine LDAP-Injektion durchkommt, der Schaden gemindert werden.

Weitere Informationen über LDAP-Injektionen

Weitere Informationen finden Sie im OWASP-Artikel über LDAP-Injektionen oder im Spickzettel zur Vermeidung von Injektionen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Secure Code Warrior Plattform testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Wenn Sie mehr darüber erfahren möchten, wie Sie diese Sicherheitslücke und andere Bedrohungen abwehren können, besuchen Sie den BlogSecure Code Warrior .

Ressourcen anzeigen
Ressourcen anzeigen

악의적인 사용자가 LDAP 쿼리를 조작할 수 있는 경우 문제가 발생할 수 있습니다.이렇게 하면 수신 서버가 평소에는 허용되지 않는 잘못된 쿼리를 실행하도록 속일 수 있으며, 유효하지 않거나 보안 수준이 낮은 사용자에게 암호 없이 상위 수준 또는 관리자 액세스 권한을 부여할 수도 있습니다.

Sind Sie an weiteren Informationen interessiert?

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

mehr erfahren

Secure Code Warrior ist für Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.

Demo-Termin vereinbaren
Freigabeziel:
LinkedIn-MarkenSozialx Logo
Verfasser
Jaap Karan Singh
Veröffentlicht Jan 17, 2019

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

Freigabeziel:
LinkedIn-MarkenSozialx Logo

Die große Mehrheit der Computersysteme verwendet das Lightweight Directory Access Protocol (LDAP). Es wird verwendet, um verteilte Verzeichnisinformationsdienste über ein beliebiges Internet Protocol (IP)-Netzwerk zu verwalten. Es dient also im Wesentlichen dazu, den Überblick über die Benutzer zu behalten.

LDAP wird häufig als Authentifizierungsquelle von Anwendungen verwendet, um festzustellen, ob ein Benutzer die Berechtigung hat, verschiedene Aktionen durchzuführen, insbesondere in Bezug auf seine definierte Rolle innerhalb einer Organisation. So können beispielsweise nur Mitarbeiter der Buchhaltung die Buchhaltungssoftware des Unternehmens nutzen. Anwendungen werden oft so programmiert, dass sie eine LDAP-Tabelle überprüfen, um sicherzustellen, dass die Benutzer innerhalb ihrer festgelegten Berechtigungen handeln.

Probleme können auftreten, wenn böswillige Benutzer eine LDAP-Abfrage manipulieren können. Dadurch kann der empfangende Server dazu gebracht werden, ungültige Abfragen auszuführen, die normalerweise nicht erlaubt wären, oder sogar ungültigen oder unsicheren Benutzern ohne Kennwort Zugang auf hoher Ebene oder als Administrator zu gewähren.  

LDAP-Injektionen können knifflig sein, aber in dieser Folge lernen wir es:

  • Wie sie funktionieren
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmaßnahmen ergreifen können, um sie zu stoppen.

Wie nutzen Angreifer LDAP Injection?

Einer der Gründe, warum LDAP-basierte Angriffe seit Jahren beliebt sind, ist die Tatsache, dass fast jedes Computersystem es verwendet. LDAP ist quelloffen und funktioniert extrem gut, sodass nicht viele Alternativen geschaffen wurden.

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 dem Äquivalent einer Datenbankzeile oder eines Datensatzes gespeichert, der als Distinguished Name bezeichnet wird, oft abgekürzt als DN. Jeder DN ist eindeutig. So könnte zum Beispiel ein DN für einen Benutzer aussehen, der in der Buchhaltung eines großen Unternehmens in Chicago arbeitet.

cn=James Smith, ou=Corporate Accounts, dc=Chicago, do=Parkview  

Um sicherzustellen, dass jeder DN eindeutig ist, können dem Datensatz verschiedene Codes hinzugefügt werden, wie "+", "/", "=" und einige andere. Es können auch Leerzeichen vor oder nach einem Datensatz eingefügt werden, um sicherzustellen, dass selbst wenn es zwei James Smiths gibt, die im Chicago Parkview Office in der Abteilung Corporate Accounts arbeiten, sie jeweils individuelle DNs haben.

Anwendungen verwenden LDAP im Allgemeinen, um Benutzern die Möglichkeit zu geben, Abfragen über bestimmte DNs zu senden, wie z. B. beim Versuch, den richtigen Ansprechpartner in der Lohnbuchhaltung zu finden, um über einen Fehler auf dem Scheck zu sprechen. LDAP-Injektionen können auftreten, wenn keine Validierung der vom Benutzer bereitgestellten Parameter in Suchanfragen erfolgt. In diesem Fall können Hacker gutartige Suchanfragen manipulieren, um Authentifizierungsmechanismen zu umgehen oder zusätzliche beliebige Abfragen auszuführen. Dies kann den Server dazu bringen, Ergebnisse anzuzeigen, die nicht erlaubt sein sollten, wie z. B. Benutzerpasswörter, oder sogar eine Anwendung dazu veranlassen, Zugriff auf hochsichere Bereiche innerhalb des Netzwerks zu gewähren, mit oder ohne gültiges Passwort.

Warum sind LDAP-Injektionen so gefährlich?

Die größte Gefahr bei LDAP-Injektionen ist wahrscheinlich die weite Verbreitung des Protokolls in den meisten IP-Computernetzwerken weltweit. Es ist ein leichtes Sprungbrett für Hacker, die Informationen stehlen oder ihre Privilegien in einem Netzwerk erhöhen wollen. Kein geschulter Hacker wird es versäumen, zu prüfen, ob LDAP-Injections möglich sind, daher müssen Sicherheitsteams sicherstellen, dass diese Löcher immer geschlossen sind.

Konkret sind etliche 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. Zum Beispiel könnte eine Anwendung jemandem erlauben, mit LDAP nach den Kontaktinformationen von Buchhaltern in Chicago zu suchen, was unseren Freund James Smith aus dem obigen Beispiel zurückbringen würde. Abhängig von den Berechtigungen ist dies wahrscheinlich eine vollkommen gültige Verwendung einer LDAP-Abfrage.

Die Gefahr entsteht, wenn ein böswilliger Benutzer der Abfrage ungefilterte Parameter hinzufügen kann, wodurch die Art der Suche verändert und der Server dazu gebracht wird, Informationen bereitzustellen, die normalerweise nicht gegeben werden sollten. Durch Hinzufügen einer user=*-Zeichenkette könnten Angreifer beispielsweise Informationen über jeden einzelnen Benutzer einer ganzen Organisation erhalten, was wahrscheinlich niemals erlaubt sein sollte.

Bei Anwendungen, die LDAP zur Authentifizierung verwenden, kann das Problem sogar noch größer sein. Angreifer können z. B. die Zeichenfolge (&) am Ende einer LDAP-Abfrage verwenden, um dem Server vorzugaukeln, dass das Argument wahr ist. Wenn eine Anwendung LDAP zur Überprüfung eines Kennworts verwendet, kann das Erzwingen eines "True"-Arguments durch eine LDAP-Injektion es einem nicht autorisierten Benutzer ermöglichen, sich als Administrator im Netzwerk anzumelden, auch ohne ein Kennwort.

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. Dies ist möglicherweise nicht möglich, wenn es in einem Netzwerk bereits Anwendungen gibt, die LDAP-Abfragen nutzen. Aber selbst in diesem Fall ist es immer noch eine gute Idee, für jede neue Anwendung injektionsresistente Frameworks zu verwenden.

Vorhandene Anwendungen, die LDAP verwenden, können auch durch die Verwendung von Whitelist-Validierung und Eingabensanitisierung gegen Injektionen gehärtet werden. Beschränken Sie die Benutzereingabe nach Möglichkeit auf eine begrenzte Anzahl 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 mit einzubeziehen, da diese ebenfalls als Angriffsvektoren dienen können. Schreiben Sie keine eigenen Funktionen, um die Eingabensanitisierung durchzuführen; verwenden Sie stattdessen eine vertrauenswürdige, auf Sicherheit fokussierte Bibliothek eines Drittanbieters oder integrierte Framework-APIs.

Neben gezielten Korrekturen können auch gute Computerpraktiken helfen, wie z. B. die Zuweisung von LDAP-abfragenden Anwendungen mit den geringsten Berechtigungen, die in einem Netzwerk benötigt werden. Auf diese Weise kann im schlimmsten Fall, wenn eine LDAP-Injektion durchkommt, der Schaden gemindert werden.

Weitere Informationen über LDAP-Injektionen

Weitere Informationen finden Sie im OWASP-Artikel über LDAP-Injektionen oder im Spickzettel zur Vermeidung von Injektionen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Secure Code Warrior Plattform testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Wenn Sie mehr darüber erfahren möchten, wie Sie diese Sicherheitslücke und andere Bedrohungen abwehren können, besuchen Sie den BlogSecure Code Warrior .

Ressourcen anzeigen
Ressourcen anzeigen

Um den Bericht herunterzuladen, füllen Sie bitte das folgende Formular aus.

Wir bitten um Ihre Zustimmung, Ihnen Informationen zu unseren Produkten und/oder verwandten Themen der Sicherheitscodierung zukommen zu lassen. Wir behandeln Ihre personenbezogenen Daten stets mit größter Sorgfalt und verkaufen sie niemals zu Marketingzwecken an andere Unternehmen.

Einreichung
scw Erfolgssymbol
scw-Fehlersymbol
Um das Formular zu senden, aktivieren Sie bitte das „Analytics“-Cookie. Nach Abschluss können Sie es jederzeit wieder deaktivieren.

Die große Mehrheit der Computersysteme verwendet das Lightweight Directory Access Protocol (LDAP). Es wird verwendet, um verteilte Verzeichnisinformationsdienste über ein beliebiges Internet Protocol (IP)-Netzwerk zu verwalten. Es dient also im Wesentlichen dazu, den Überblick über die Benutzer zu behalten.

LDAP wird häufig als Authentifizierungsquelle von Anwendungen verwendet, um festzustellen, ob ein Benutzer die Berechtigung hat, verschiedene Aktionen durchzuführen, insbesondere in Bezug auf seine definierte Rolle innerhalb einer Organisation. So können beispielsweise nur Mitarbeiter der Buchhaltung die Buchhaltungssoftware des Unternehmens nutzen. Anwendungen werden oft so programmiert, dass sie eine LDAP-Tabelle überprüfen, um sicherzustellen, dass die Benutzer innerhalb ihrer festgelegten Berechtigungen handeln.

Probleme können auftreten, wenn böswillige Benutzer eine LDAP-Abfrage manipulieren können. Dadurch kann der empfangende Server dazu gebracht werden, ungültige Abfragen auszuführen, die normalerweise nicht erlaubt wären, oder sogar ungültigen oder unsicheren Benutzern ohne Kennwort Zugang auf hoher Ebene oder als Administrator zu gewähren.  

LDAP-Injektionen können knifflig sein, aber in dieser Folge lernen wir es:

  • Wie sie funktionieren
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmaßnahmen ergreifen können, um sie zu stoppen.

Wie nutzen Angreifer LDAP Injection?

Einer der Gründe, warum LDAP-basierte Angriffe seit Jahren beliebt sind, ist die Tatsache, dass fast jedes Computersystem es verwendet. LDAP ist quelloffen und funktioniert extrem gut, sodass nicht viele Alternativen geschaffen wurden.

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 dem Äquivalent einer Datenbankzeile oder eines Datensatzes gespeichert, der als Distinguished Name bezeichnet wird, oft abgekürzt als DN. Jeder DN ist eindeutig. So könnte zum Beispiel ein DN für einen Benutzer aussehen, der in der Buchhaltung eines großen Unternehmens in Chicago arbeitet.

cn=James Smith, ou=Corporate Accounts, dc=Chicago, do=Parkview  

Um sicherzustellen, dass jeder DN eindeutig ist, können dem Datensatz verschiedene Codes hinzugefügt werden, wie "+", "/", "=" und einige andere. Es können auch Leerzeichen vor oder nach einem Datensatz eingefügt werden, um sicherzustellen, dass selbst wenn es zwei James Smiths gibt, die im Chicago Parkview Office in der Abteilung Corporate Accounts arbeiten, sie jeweils individuelle DNs haben.

Anwendungen verwenden LDAP im Allgemeinen, um Benutzern die Möglichkeit zu geben, Abfragen über bestimmte DNs zu senden, wie z. B. beim Versuch, den richtigen Ansprechpartner in der Lohnbuchhaltung zu finden, um über einen Fehler auf dem Scheck zu sprechen. LDAP-Injektionen können auftreten, wenn keine Validierung der vom Benutzer bereitgestellten Parameter in Suchanfragen erfolgt. In diesem Fall können Hacker gutartige Suchanfragen manipulieren, um Authentifizierungsmechanismen zu umgehen oder zusätzliche beliebige Abfragen auszuführen. Dies kann den Server dazu bringen, Ergebnisse anzuzeigen, die nicht erlaubt sein sollten, wie z. B. Benutzerpasswörter, oder sogar eine Anwendung dazu veranlassen, Zugriff auf hochsichere Bereiche innerhalb des Netzwerks zu gewähren, mit oder ohne gültiges Passwort.

Warum sind LDAP-Injektionen so gefährlich?

Die größte Gefahr bei LDAP-Injektionen ist wahrscheinlich die weite Verbreitung des Protokolls in den meisten IP-Computernetzwerken weltweit. Es ist ein leichtes Sprungbrett für Hacker, die Informationen stehlen oder ihre Privilegien in einem Netzwerk erhöhen wollen. Kein geschulter Hacker wird es versäumen, zu prüfen, ob LDAP-Injections möglich sind, daher müssen Sicherheitsteams sicherstellen, dass diese Löcher immer geschlossen sind.

Konkret sind etliche 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. Zum Beispiel könnte eine Anwendung jemandem erlauben, mit LDAP nach den Kontaktinformationen von Buchhaltern in Chicago zu suchen, was unseren Freund James Smith aus dem obigen Beispiel zurückbringen würde. Abhängig von den Berechtigungen ist dies wahrscheinlich eine vollkommen gültige Verwendung einer LDAP-Abfrage.

Die Gefahr entsteht, wenn ein böswilliger Benutzer der Abfrage ungefilterte Parameter hinzufügen kann, wodurch die Art der Suche verändert und der Server dazu gebracht wird, Informationen bereitzustellen, die normalerweise nicht gegeben werden sollten. Durch Hinzufügen einer user=*-Zeichenkette könnten Angreifer beispielsweise Informationen über jeden einzelnen Benutzer einer ganzen Organisation erhalten, was wahrscheinlich niemals erlaubt sein sollte.

Bei Anwendungen, die LDAP zur Authentifizierung verwenden, kann das Problem sogar noch größer sein. Angreifer können z. B. die Zeichenfolge (&) am Ende einer LDAP-Abfrage verwenden, um dem Server vorzugaukeln, dass das Argument wahr ist. Wenn eine Anwendung LDAP zur Überprüfung eines Kennworts verwendet, kann das Erzwingen eines "True"-Arguments durch eine LDAP-Injektion es einem nicht autorisierten Benutzer ermöglichen, sich als Administrator im Netzwerk anzumelden, auch ohne ein Kennwort.

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. Dies ist möglicherweise nicht möglich, wenn es in einem Netzwerk bereits Anwendungen gibt, die LDAP-Abfragen nutzen. Aber selbst in diesem Fall ist es immer noch eine gute Idee, für jede neue Anwendung injektionsresistente Frameworks zu verwenden.

Vorhandene Anwendungen, die LDAP verwenden, können auch durch die Verwendung von Whitelist-Validierung und Eingabensanitisierung gegen Injektionen gehärtet werden. Beschränken Sie die Benutzereingabe nach Möglichkeit auf eine begrenzte Anzahl 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 mit einzubeziehen, da diese ebenfalls als Angriffsvektoren dienen können. Schreiben Sie keine eigenen Funktionen, um die Eingabensanitisierung durchzuführen; verwenden Sie stattdessen eine vertrauenswürdige, auf Sicherheit fokussierte Bibliothek eines Drittanbieters oder integrierte Framework-APIs.

Neben gezielten Korrekturen können auch gute Computerpraktiken helfen, wie z. B. die Zuweisung von LDAP-abfragenden Anwendungen mit den geringsten Berechtigungen, die in einem Netzwerk benötigt werden. Auf diese Weise kann im schlimmsten Fall, wenn eine LDAP-Injektion durchkommt, der Schaden gemindert werden.

Weitere Informationen über LDAP-Injektionen

Weitere Informationen finden Sie im OWASP-Artikel über LDAP-Injektionen oder im Spickzettel zur Vermeidung von Injektionen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Secure Code Warrior Plattform testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Wenn Sie mehr darüber erfahren möchten, wie Sie diese Sicherheitslücke und andere Bedrohungen abwehren können, besuchen Sie den BlogSecure Code Warrior .

Webinar ansehen
Beginnen
mehr erfahren

Klicken Sie auf den folgenden Link und laden Sie die PDF-Datei dieser Ressource herunter.

Secure Code Warrior ist für Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.

Bericht anzeigenDemo-Termin vereinbaren
Ressourcen anzeigen
Freigabeziel:
LinkedIn-MarkenSozialx Logo
Sind Sie an weiteren Informationen interessiert?

Freigabeziel:
LinkedIn-MarkenSozialx Logo
Verfasser
Jaap Karan Singh
Veröffentlicht Jan 17, 2019

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

Freigabeziel:
LinkedIn-MarkenSozialx Logo

Die große Mehrheit der Computersysteme verwendet das Lightweight Directory Access Protocol (LDAP). Es wird verwendet, um verteilte Verzeichnisinformationsdienste über ein beliebiges Internet Protocol (IP)-Netzwerk zu verwalten. Es dient also im Wesentlichen dazu, den Überblick über die Benutzer zu behalten.

LDAP wird häufig als Authentifizierungsquelle von Anwendungen verwendet, um festzustellen, ob ein Benutzer die Berechtigung hat, verschiedene Aktionen durchzuführen, insbesondere in Bezug auf seine definierte Rolle innerhalb einer Organisation. So können beispielsweise nur Mitarbeiter der Buchhaltung die Buchhaltungssoftware des Unternehmens nutzen. Anwendungen werden oft so programmiert, dass sie eine LDAP-Tabelle überprüfen, um sicherzustellen, dass die Benutzer innerhalb ihrer festgelegten Berechtigungen handeln.

Probleme können auftreten, wenn böswillige Benutzer eine LDAP-Abfrage manipulieren können. Dadurch kann der empfangende Server dazu gebracht werden, ungültige Abfragen auszuführen, die normalerweise nicht erlaubt wären, oder sogar ungültigen oder unsicheren Benutzern ohne Kennwort Zugang auf hoher Ebene oder als Administrator zu gewähren.  

LDAP-Injektionen können knifflig sein, aber in dieser Folge lernen wir es:

  • Wie sie funktionieren
  • Warum sie so gefährlich sind
  • Wie Sie Abwehrmaßnahmen ergreifen können, um sie zu stoppen.

Wie nutzen Angreifer LDAP Injection?

Einer der Gründe, warum LDAP-basierte Angriffe seit Jahren beliebt sind, ist die Tatsache, dass fast jedes Computersystem es verwendet. LDAP ist quelloffen und funktioniert extrem gut, sodass nicht viele Alternativen geschaffen wurden.

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 dem Äquivalent einer Datenbankzeile oder eines Datensatzes gespeichert, der als Distinguished Name bezeichnet wird, oft abgekürzt als DN. Jeder DN ist eindeutig. So könnte zum Beispiel ein DN für einen Benutzer aussehen, der in der Buchhaltung eines großen Unternehmens in Chicago arbeitet.

cn=James Smith, ou=Corporate Accounts, dc=Chicago, do=Parkview  

Um sicherzustellen, dass jeder DN eindeutig ist, können dem Datensatz verschiedene Codes hinzugefügt werden, wie "+", "/", "=" und einige andere. Es können auch Leerzeichen vor oder nach einem Datensatz eingefügt werden, um sicherzustellen, dass selbst wenn es zwei James Smiths gibt, die im Chicago Parkview Office in der Abteilung Corporate Accounts arbeiten, sie jeweils individuelle DNs haben.

Anwendungen verwenden LDAP im Allgemeinen, um Benutzern die Möglichkeit zu geben, Abfragen über bestimmte DNs zu senden, wie z. B. beim Versuch, den richtigen Ansprechpartner in der Lohnbuchhaltung zu finden, um über einen Fehler auf dem Scheck zu sprechen. LDAP-Injektionen können auftreten, wenn keine Validierung der vom Benutzer bereitgestellten Parameter in Suchanfragen erfolgt. In diesem Fall können Hacker gutartige Suchanfragen manipulieren, um Authentifizierungsmechanismen zu umgehen oder zusätzliche beliebige Abfragen auszuführen. Dies kann den Server dazu bringen, Ergebnisse anzuzeigen, die nicht erlaubt sein sollten, wie z. B. Benutzerpasswörter, oder sogar eine Anwendung dazu veranlassen, Zugriff auf hochsichere Bereiche innerhalb des Netzwerks zu gewähren, mit oder ohne gültiges Passwort.

Warum sind LDAP-Injektionen so gefährlich?

Die größte Gefahr bei LDAP-Injektionen ist wahrscheinlich die weite Verbreitung des Protokolls in den meisten IP-Computernetzwerken weltweit. Es ist ein leichtes Sprungbrett für Hacker, die Informationen stehlen oder ihre Privilegien in einem Netzwerk erhöhen wollen. Kein geschulter Hacker wird es versäumen, zu prüfen, ob LDAP-Injections möglich sind, daher müssen Sicherheitsteams sicherstellen, dass diese Löcher immer geschlossen sind.

Konkret sind etliche 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. Zum Beispiel könnte eine Anwendung jemandem erlauben, mit LDAP nach den Kontaktinformationen von Buchhaltern in Chicago zu suchen, was unseren Freund James Smith aus dem obigen Beispiel zurückbringen würde. Abhängig von den Berechtigungen ist dies wahrscheinlich eine vollkommen gültige Verwendung einer LDAP-Abfrage.

Die Gefahr entsteht, wenn ein böswilliger Benutzer der Abfrage ungefilterte Parameter hinzufügen kann, wodurch die Art der Suche verändert und der Server dazu gebracht wird, Informationen bereitzustellen, die normalerweise nicht gegeben werden sollten. Durch Hinzufügen einer user=*-Zeichenkette könnten Angreifer beispielsweise Informationen über jeden einzelnen Benutzer einer ganzen Organisation erhalten, was wahrscheinlich niemals erlaubt sein sollte.

Bei Anwendungen, die LDAP zur Authentifizierung verwenden, kann das Problem sogar noch größer sein. Angreifer können z. B. die Zeichenfolge (&) am Ende einer LDAP-Abfrage verwenden, um dem Server vorzugaukeln, dass das Argument wahr ist. Wenn eine Anwendung LDAP zur Überprüfung eines Kennworts verwendet, kann das Erzwingen eines "True"-Arguments durch eine LDAP-Injektion es einem nicht autorisierten Benutzer ermöglichen, sich als Administrator im Netzwerk anzumelden, auch ohne ein Kennwort.

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. Dies ist möglicherweise nicht möglich, wenn es in einem Netzwerk bereits Anwendungen gibt, die LDAP-Abfragen nutzen. Aber selbst in diesem Fall ist es immer noch eine gute Idee, für jede neue Anwendung injektionsresistente Frameworks zu verwenden.

Vorhandene Anwendungen, die LDAP verwenden, können auch durch die Verwendung von Whitelist-Validierung und Eingabensanitisierung gegen Injektionen gehärtet werden. Beschränken Sie die Benutzereingabe nach Möglichkeit auf eine begrenzte Anzahl 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 mit einzubeziehen, da diese ebenfalls als Angriffsvektoren dienen können. Schreiben Sie keine eigenen Funktionen, um die Eingabensanitisierung durchzuführen; verwenden Sie stattdessen eine vertrauenswürdige, auf Sicherheit fokussierte Bibliothek eines Drittanbieters oder integrierte Framework-APIs.

Neben gezielten Korrekturen können auch gute Computerpraktiken helfen, wie z. B. die Zuweisung von LDAP-abfragenden Anwendungen mit den geringsten Berechtigungen, die in einem Netzwerk benötigt werden. Auf diese Weise kann im schlimmsten Fall, wenn eine LDAP-Injektion durchkommt, der Schaden gemindert werden.

Weitere Informationen über LDAP-Injektionen

Weitere Informationen finden Sie im OWASP-Artikel über LDAP-Injektionen oder im Spickzettel zur Vermeidung von Injektionen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Secure Code Warrior Plattform testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Wenn Sie mehr darüber erfahren möchten, wie Sie diese Sicherheitslücke und andere Bedrohungen abwehren können, besuchen Sie den BlogSecure Code Warrior .

Inhaltsverzeichnis

PDF herunterladen
Ressourcen anzeigen
Sind Sie an weiteren Informationen interessiert?

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

mehr erfahren

Secure Code Warrior ist für Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.

Demo-Termin vereinbarenDownload
Freigabeziel:
LinkedIn-MarkenSozialx Logo
Ressourcen-Hub

Hilfreiche Ressourcen für den Einstieg

Weitere Beiträge
Ressourcen-Hub

Hilfreiche Ressourcen für den Einstieg

Weitere Beiträge