
LDAP Watchdog : un outil de surveillance LDAP en temps réel compatible Linux pour détecter les modifications d'annuaire, offrant une visibilité sur les ajouts, les modifications et les suppressions pour les administrateurs et les chercheurs en sécurité.
LDAP Watchdog est un outil conçu pour surveiller en temps réel les modifications des enregistrements dans un annuaire LDAP. Il fournit un mécanisme pour suivre et visualiser les modifications, ajouts et suppressions d'entrées utilisateur et de groupe, permettant aux utilisateurs de corréler les changements attendus avec les changements réels et d'identifier d'éventuels incidents de sécurité. Il a été créé avec OpenLDAP et Linux à l'esprit, mais peut fonctionner avec d'autres implémentations de LDAP. Il est écrit en Python et ne nécessite que la bibliothèque ldap3.
Ce logiciel a été écrit par Joshua Rogers.
Si vous êtes intéressé par l'un des points suivants, LDAP Watchdog est fait pour vous :
En plus de surveiller les modifications, ajouts et suppressions dans un annuaire LDAP, il peut être configuré pour ignorer des attributs spécifiques, ou même affiné pour ignorer des attributs granulaires en fonction de leurs anciennes/nouvelles valeurs.
Les changements surveillés peuvent être transmis à un webhook Slack ou affichés dans le terminal (ou les deux). La sortie colorée optionnelle est également prise en charge.
Anciennement nommé LDAP-Stalker (car surveiller les modifications d'un annuaire LDAP est un excellent moyen d'espionner les changements dans une entreprise : découvrir les promotions avant qu'elles ne soient annoncées, les nouvelles embauches, les départs, etc.), un article de blog sur les détails et l'historique de ce projet est disponible ici.
Remarque : dans les exemples ci-dessous, entryCSN et modifyTimestamp peuvent être complètement ignorés en définissant LDAP_WATCHDOG_IGNORED_ATTRIBUTES=entryCSN,modifyTimestamp.


Surveillance en temps réel : LDAP Watchdog surveille en continu un annuaire LDAP pour détecter les modifications dans les entrées utilisateur et de groupe.
Comparaison des modifications : L'outil compare les changements entre des recherches LDAP consécutives, en mettant en évidence les ajouts, modifications et suppressions.
Vérification de l'utilisateur de contrôle : LDAP Watchdog prend en charge un mécanisme d'utilisateur de contrôle, déclenchant une erreur si les modifications de l'utilisateur de contrôle ne sont pas trouvées.
Filtrage LDAP flexible : Les utilisateurs peuvent personnaliser le filtrage LDAP en utilisant la variable d'environnement LDAP_WATCHDOG_SEARCH_FILTER pour se concentrer sur des classes d'objets ou des attributs spécifiques.
Intégration Slack : Recevez des notifications en temps réel sur Slack pour les entrées LDAP ajoutées, modifiées ou supprimées.
Sortie personnalisable : La sortie console fournit des indications claires et colorées des ajouts, modifications et suppressions pour une visibilité facile.
Entrées et attributs ignorés : Les utilisateurs peuvent spécifier des UUID et des attributs à ignorer lors du processus de comparaison.
Attributs ignorés conditionnels : Le filtrage conditionnel permet aux utilisateurs d'ignorer des attributs spécifiques en fonction du type de modification (ajouts, modifications, suppressions).
ldap3. Si vous utilisez un webhook Slack, le paquet requests est également requis.pip install LDAP-Monitor
Pour inclure le support du webhook Slack :
pip install LDAP-Monitor[slack]
docker pull megamansec/ldap-monitor
Ou depuis le Registre de conteneurs GitHub :
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
Ou en utilisant 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
Un script d'installation basé sur Debian, install.sh, est fourni. Lorsqu'il est exécuté en tant que root, ce script :
/opt/ldap-watchdog./etc/ldap-watchdog.env pour la configuration./etc/systemd/system/ldap-watchdog.service) qui exécute ldap-watchdog en arrière-plan./var/log/ldap-watchdog.log et /var/log/ldap-watchdog-error.log./etc/logrotate.d/ldap-watchdog.Vous pouvez éventuellement passer un seul argument à install.sh pour définir le SLACK_WEBHOOK_URL :
sudo ./install.sh "https://hooks.slack.com/services/[...]"
Après l'installation, modifiez /etc/ldap-watchdog.env pour configurer les paramètres de connexion LDAP, puis redémarrez le service :
sudo systemctl restart ldap-watchdog
Toute la configuration se fait via des variables d'environnement. Les variables suivantes sont prises en charge :