SCW 아이콘
영웅 배경, 구분선 없음
블로그

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

야프 카란 싱
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 로고
저자
야프 카란 싱
게시일: 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) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약하기
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 알고 싶으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
야프 카란 싱
게시일: 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 로고
자원 허브

시작을 위한 자료

더 많은 글
자원 허브

시작을 위한 자료

더 많은 글