SCW アイコン
ヒーロー背景(区切りなし)
ブログ

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

Jaap Karan Singh
2019年1月17日 掲載
最終更新日: 2026年3月9日

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.

リソースを表示
リソースを表示

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.

もっと知りたいですか?

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

もっと詳しく

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

デモを予約する
共有する:
リンクトインのブランドソーシャルx ロゴ
著者
Jaap Karan Singh
2019年1月17日発行

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

共有する:
リンクトインのブランドソーシャル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.

リソースを表示
リソースを表示

以下のフォームに記入してレポートをダウンロードしてください

当社製品および/またはセキュアコーディングに関連する情報について、お客様にご案内させていただくことをお許しください。お客様の個人情報は常に細心の注意をもって取り扱い、マーケティング目的で他社に販売することは一切ありません。

提出
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには、「アナリティクス」クッキーを有効にしてください。完了後、いつでも無効に戻せます。

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.

ウェビナーを見る
始めましょう
もっと詳しく

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

レポートを見るデモを予約する
PDFをダウンロード
リソースを表示
共有する:
リンクトインのブランドソーシャルx ロゴ
もっと知りたいですか?

共有する:
リンクトインのブランドソーシャルx ロゴ
著者
Jaap Karan Singh
2019年1月17日発行

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

共有する:
リンクトインのブランドソーシャル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.

目次

PDFをダウンロード
リソースを表示
もっと知りたいですか?

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

もっと詳しく

Secure Code Warrior 、ソフトウェア開発サイクル全体を通じてコードの安全性を確保し、サイバーセキュリティを最優先とする文化を構築するため、貴社をSecure Code Warrior 。アプリセキュリティ管理者、開発者、CISO、あるいはセキュリティに関わるあらゆる立場の方々に対し、当社が貴社のビジネスにおける不安全なコードに関連するリスクの低減を支援します。

デモを予約するダウンロード
共有する:
リンクトインのブランドソーシャルx ロゴ
リソースハブ

入門リソース

さらに多くの投稿
リソースハブ

入門リソース

さらに多くの投稿