
LDAP Watchdog: Ein Echtzeit-Linux-kompatibles LDAP-Überwachungstool zum Erkennen von Verzeichnisänderungen, das Administratoren und Sicherheitsforschern Einblick in Hinzufügungen, Änderungen und Löschungen bietet.
LDAP Watchdog ist ein Werkzeug, das entwickelt wurde, um Änderungen von Einträgen in einem LDAP-Verzeichnis in Echtzeit zu überwachen. Es bietet einen Mechanismus, um Modifikationen, Hinzufügungen und Löschungen von Benutzer- und Gruppeneinträgen zu verfolgen und zu visualisieren, sodass Benutzer erwartete Änderungen mit tatsächlichen Änderungen korrelieren und mögliche Sicherheitsvorfälle identifizieren können. Es wurde mit OpenLDAP und Linux entwickelt, sollte aber auch mit anderen LDAP-Implementierungen funktionieren. Es ist in Python geschrieben und benötigt nur die ldap3-Bibliothek.
Diese Software wurde von Joshua Rogers geschrieben.
Wenn Sie an einem der folgenden Punkte interessiert sind, dann ist LDAP Watchdog das Richtige für Sie:
Zusätzlich zur Überwachung von Modifikationen, Hinzufügungen und Löschungen in einem LDAP-Verzeichnis kann es so konfiguriert werden, dass bestimmte Attribute ignoriert werden, oder sogar fein abgestimmt werden, um granulare Attribute in Abhängigkeit von ihren alten/neuen Werten zu ignorieren.
Die überwachten Änderungen können entweder an einen Slack-Webhook weitergeleitet oder auf dem Terminal ausgegeben werden (oder beides). Optionale farbige Ausgabe wird ebenfalls unterstützt.
Ehemals benannt als LDAP-Stalker (weil die Überwachung von Änderungen in einem LDAP-Verzeichnis eine ausgezeichnete Möglichkeit ist, Veränderungen in einem Unternehmen zu verfolgen: Erfahren Sie von Beförderungen, bevor sie angekündigt werden, Neueinstellungen, Abgänge usw.), ein Blogbeitrag über die Details und die Geschichte dieses Projekts kann hier gefunden werden.
Hinweis: In den folgenden Beispielen können entryCSN und modifyTimestamp vollständig ignoriert werden, indem LDAP_WATCHDOG_IGNORED_ATTRIBUTES=entryCSN,modifyTimestamp gesetzt wird.


Echtzeit-Überwachung: LDAP Watchdog überwacht kontinuierlich ein LDAP-Verzeichnis auf Änderungen in Benutzer- und Gruppeneinträgen.
Änderungsvergleich: Das Werkzeug vergleicht Änderungen zwischen aufeinanderfolgenden LDAP-Suchen und hebt Hinzufügungen, Modifikationen und Löschungen hervor.
Kontrollbenutzer-Verifizierung: LDAP Watchdog unterstützt einen Kontrollbenutzer-Mechanismus, der einen Fehler auslöst, wenn die Änderungen des Kontrollbenutzers nicht gefunden werden.
Flexible LDAP-Filterung: Benutzer können die LDAP-Filterung mit der Umgebungsvariablen LDAP_WATCHDOG_SEARCH_FILTER anpassen, um sich auf bestimmte Objektklassen oder Attribute zu konzentrieren.
Slack-Integration: Erhalten Sie Echtzeit-Benachrichtigungen in Slack für hinzugefügte, geänderte oder gelöschte LDAP-Einträge.
Anpassbare Ausgabe: Die Konsolenausgabe bietet klare und farbige Hinweise auf Hinzufügungen, Modifikationen und Löschungen für eine einfache Sichtbarkeit.
Ignorierte Einträge und Attribute: Benutzer können UUIDs und Attribute angeben, die während des Vergleichs ignoriert werden sollen.
Bedingte ignorierte Attribute: Bedingte Filterung ermöglicht es Benutzern, bestimmte Attribute basierend auf dem Änderungstyp (Hinzufügungen, Modifikationen, Löschungen) zu ignorieren.
ldap3-Paket. Falls ein Slack-Webhook verwendet wird, ist auch das requests-Paket erforderlich.pip install LDAP-Monitor
Um Slack-Webhook-Unterstützung einzuschließen:
pip install LDAP-Monitor[slack]
docker pull megamansec/ldap-monitor
Oder aus dem GitHub Container Registry:
docker pull ghcr.io/megamansec/ldap-monitoring-watchdog
git clone https://github.com/MegaManSec/LDAP-Monitoring-Watchdog.git
cd LDAP-Monitoring-Watchdog
pip install ".[slack]"
export LDAP_WATCHDOG_SERVER='ldaps://ldaps.intra.lan'
export LDAP_WATCHDOG_BASE_DN='dc=mouse,dc=com'
export LDAP_WATCHDOG_USERNAME='Emily'
export LDAP_WATCHDOG_PASSWORD='qwerty123'
ldap-watchdog
Oder mit python -m:
python -m ldap_watchdog
docker run -d \
-e LDAP_WATCHDOG_SERVER='ldaps://ldaps.intra.lan' \
-e LDAP_WATCHDOG_BASE_DN='dc=mouse,dc=com' \
-e LDAP_WATCHDOG_USERNAME='Emily' \
-e LDAP_WATCHDOG_PASSWORD='qwerty123' \
-e SLACK_WEBHOOK_URL='https://hooks.slack.com/services/[...]' \
-e LDAP_WATCHDOG_IGNORED_ATTRIBUTES='modifyTimestamp,phoneNumber,officeLocation,gecos' \
megamansec/ldap-monitor
Ein Debian-basiertes Installationsskript, install.sh, wird bereitgestellt. Wenn es als root ausgeführt wird, führt dieses Skript Folgendes aus:
/opt/ldap-watchdog./etc/ldap-watchdog.env für die Konfiguration./etc/systemd/system/ldap-watchdog.service), der ldap-watchdog im Hintergrund ausführt./var/log/ldap-watchdog.log und /var/log/ldap-watchdog-error.log./etc/logrotate.d/ldap-watchdog ein.Sie können optional ein einzelnes Argument an install.sh übergeben, um die SLACK_WEBHOOK_URL zu setzen:
sudo ./install.sh "https://hooks.slack.com/services/[...]"
Nach der Installation bearbeiten Sie /etc/ldap-watchdog.env, um die LDAP-Verbindungseinstellungen zu konfigurieren, und starten dann den Dienst neu:
sudo systemctl restart ldap-watchdog
Die gesamte Konfiguration erfolgt über Umgebungsvariablen. Die folgenden Variablen werden unterstützt: