
LDAP Watchdog: Uno strumento di monitoraggio LDAP in tempo reale compatibile con Linux per rilevare le modifiche alla directory, fornendo visibilità su aggiunte, modifiche ed eliminazioni per amministratori e ricercatori di sicurezza.
LDAP Watchdog è uno strumento progettato per monitorare le modifiche ai record in un directory LDAP in tempo reale. Fornisce un meccanismo per tracciare e visualizzare modifiche, aggiunte e rimozioni di voci utente e di gruppo, consentendo agli utenti di correlare le modifiche previste con quelle effettive e identificare potenziali incidenti di sicurezza. È stato creato pensando a OpenLDAP e Linux, tuttavia potrebbe funzionare con altre implementazioni di LDAP. È scritto in Python e richiede solo la libreria ldap3.
Questo software è stato scritto da Joshua Rogers.
Se sei interessato a uno dei seguenti, allora LDAP Watchdog è ciò che fa per te:
Oltre a monitorare modifiche, aggiunte e rimozioni in un directory LDAP, può essere configurato per ignorare attributi specifici, o anche ottimizzato per ignorare attributi granulari a seconda dei loro vecchi/nuovi valori.
Le modifiche monitorate possono essere inoltrate a un webhook di Slack o visualizzate sul terminale (o entrambi). È supportato anche un output opzionale a colori.
Precedentemente chiamato LDAP-Stalker (perché monitorare le modifiche di un directory LDAP è un ottimo modo per spiare i cambiamenti in un'azienda: scoprire promozioni prima che siano annunciate, nuove assunzioni, uscite, ecc.), un post sul blog con i dettagli e la storia di questo progetto può essere trovato qui.
Nota: negli esempi seguenti, entryCSN e modifyTimestamp possono essere completamente ignorati impostando LDAP_WATCHDOG_IGNORED_ATTRIBUTES=entryCSN,modifyTimestamp.


Monitoraggio in tempo reale: LDAP Watchdog monitora continuamente un directory LDAP per rilevare modifiche nelle voci utente e di gruppo.
Confronto delle modifiche: Lo strumento confronta le modifiche tra ricerche LDAP consecutive, evidenziando aggiunte, modifiche e cancellazioni.
Verifica dell'utente di controllo: LDAP Watchdog supporta un meccanismo di utente di controllo, generando un errore se le modifiche dell'utente di controllo non vengono trovate.
Filtraggio LDAP flessibile: Gli utenti possono personalizzare il filtraggio LDAP utilizzando la variabile d'ambiente LDAP_WATCHDOG_SEARCH_FILTER per concentrarsi su classi di oggetti o attributi specifici.
Integrazione Slack: Ricevi notifiche in tempo reale su Slack per voci LDAP aggiunte, modificate o eliminate.
Output personalizzabile: L'output della console fornisce indicazioni chiare e colorate di aggiunte, modifiche e cancellazioni per una facile visibilità.
Voci e attributi ignorati: Gli utenti possono specificare UUID e attributi da ignorare durante il processo di confronto.
Attributi ignorati condizionalmente: Il filtraggio condizionale consente agli utenti di ignorare attributi specifici in base al tipo di modifica (aggiunte, modifiche, cancellazioni).
ldap3. Se si utilizza un webhook di Slack, è necessario anche il pacchetto requests.pip install LDAP-Monitor
Per includere il supporto per webhook Slack:
pip install LDAP-Monitor[slack]
docker pull megamansec/ldap-monitor
Oppure da 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
Oppure usando 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
Viene fornito uno script di installazione basato su Debian, install.sh. Quando eseguito come root, questo script:
/opt/ldap-watchdog./etc/ldap-watchdog.env per la configurazione./etc/systemd/system/ldap-watchdog.service) che esegue ldap-watchdog in background./var/log/ldap-watchdog.log e /var/log/ldap-watchdog-error.log./etc/logrotate.d/ldap-watchdog.Puoi opzionalmente passare un singolo argomento a install.sh per impostare SLACK_WEBHOOK_URL:
sudo ./install.sh "https://hooks.slack.com/services/[...]"
Dopo l'installazione, modifica /etc/ldap-watchdog.env per configurare le impostazioni di connessione LDAP, quindi riavvia il servizio:
sudo systemctl restart ldap-watchdog
Tutta la configurazione avviene tramite variabili d'ambiente. Le seguenti variabili sono supportate:
| Variabile d'ambiente | Descrizione | Predefinito |
|---|---|---|
LDAP_WATCHDOG_SERVER | URL del server LDAP (es. ldaps://ldaps.intra.lan) | "" |
LDAP_WATCHDOG_BASE_DN | Nome distinto di base per le ricerche LDAP | "" |
LDAP_WATCHDOG_USERNAME | Nome utente LDAP per l'autenticazione. Lascia vuoto per bind anonimo. | "" |
LDAP_WATCHDOG_PASSWORD | Password LDAP per l'autenticazione. Lascia vuoto per bind anonimo. | "" |
LDAP_WATCHDOG_USE_SSL | Imposta a true per usare SSL, false altrimenti | true |
LDAP_WATCHDOG_SEARCH_FILTER | Filtro LDAP per le voci utente e di gruppo | (&(|(objectClass=inetOrgPerson)(objectClass=groupOfNames))) |
LDAP_WATCHDOG_SEARCH_ATTRIBUTE | Elenco separato da virgole degli attributi da recuperare. Per impostazione predefinita viene usato *,+ per includere attributi operativi. | *,+ |
LDAP_WATCHDOG_REFRESH_RATE | Intervallo di tempo in secondi tra ricerche LDAP consecutive | 60 |
LDAP_WATCHDOG_DISABLE_COLOR_OUTPUT | Imposta a true per disabilitare l'output colorato del terminale | false |