
Investigare gli accessi dannosi a Windows visualizzando e analizzando il registro eventi di Windows
LogonTracer v2 è uno strumento per indagare su accessi dannosi visualizzando e analizzando i log degli eventi di Windows Active Directory. Questo strumento associa un nome host (o un indirizzo IP) e un nome account presenti negli eventi di accesso e li mostra come un grafico. In questo modo è possibile vedere in quale account si verifica un tentativo di accesso e quale host viene utilizzato.
Questo strumento può visualizzare i seguenti ID evento relativi all'accesso Windows.
| ID Evento | Descrizione |
|---|---|
| 4624 | Accesso riuscito |
| 4625 | Accesso non riuscito |
| 4662 | È stata eseguita un'operazione su un oggetto |
| 4672 | Assegnazione di privilegi speciali |
| 4719 | Modifica dei criteri di controllo di sistema |
| 4720 | Creazione di un account utente |
| 4726 | Eliminazione di un account utente |
| 4728 / 4732 / 4756 | Aggiunto un membro a un gruppo abilitato per la sicurezza |
| 4729 / 4733 / 4757 | Rimosso un membro da un gruppo abilitato per la sicurezza |
| 4768 | Autenticazione Kerberos (Richiesta TGT) |
| 4769 | Ticket di servizio Kerberos (Richiesta ST) |
| 4776 | Autenticazione NTLM |
| 5137 | Creazione di un oggetto del servizio directory |
| 5141 | Eliminazione di un oggetto del servizio directory |
Maggiori dettagli sono descritti nei seguenti documenti:

LogonTracer v2.0 integra un motore di analisi AI che utilizza i modelli GPT di OpenAI per fornire un rilevamento delle minacce intelligente oltre agli approcci tradizionali basati su regole.
LogonTracer utilizza PageRank, Hidden Markov Model e ChangeFinder per rilevare host e account dannosi dai log degli eventi.

Con LogonTracer è anche possibile visualizzare i log degli eventi in ordine cronologico.

Python 3.9 o successivo (raccomandato 3.12)
Neo4j 5.x (Community o Enterprise)
Chiave API OpenAI (opzionale — richiesta solo per le funzionalità di analisi AI)
Moduli Python
numpy
evtx
lxml
scipy
changefinder
flask
hmmlearn>=0.2.8
scikit-learn
elasticsearch-dsl>=7.0.0,<8.0.0
pyyaml
flask-sqlalchemy
flask-login
flask_wtf
flask-limiter
wtforms
GitPython
pysigma>=0.11.0
pysigma-backend-sqlite
openai>=1.0.0
aiohttp
neo4j
git clone https://github.com/JPCERTCC/LogonTracer.git
cd LogonTracer
pip3 install -r requirements.txt
Scarica e avvia Neo4j. Imposta la password iniziale e annota la porta Bolt (predefinita: 7687).
vi config/config.yml
Impostazioni chiave:
settings:
logontracer:
WEB_PORT: "8080"
default_user: "neo4j" # Nome utente Neo4j per l'account LogonTracer predefinito
default_password: "password" # Modificare prima del primo avvio
neo4j:
NEO4J_USER: "neo4j"
NEO4J_PASSWORD: "password" # La tua password Neo4j
NEO4J_SERVER: "localhost"
WS_PORT: "7687"
python3 logontracer.py --run
Apri il browser su http://localhost:8080.
python3 logontracer.py -e <path/to/Security.evtx> -z <UTC offset> -s <Neo4j server> -u <user> -p <password>
python3 logontracer.py -x <path/to/event.xml> -z <UTC offset> -s <Neo4j server> -u <user> -p <password>
python3 logontracer.py --es -s <Neo4j server> -u <user> -p <password> --es-server <ES host:port>
Aggiungi il flag --sigma per eseguire il rilevamento delle regole Sigma durante l'importazione:
python3 logontracer.py -e <path/to/Security.evtx> -z 9 -s localhost -u neo4j -p password --sigma
python3 logontracer.py -e <path/to/Security.evtx> -z 9 -s localhost -u neo4j -p password --add
Dopo aver avviato l'applicazione web, clicca su Upload Event Log nella barra laterale sinistra. Puoi:

Dopo il caricamento con scansione Sigma abilitata, o dopo aver attivato una nuova scansione tramite API, clicca su Sigma Scan Results nella barra laterale per visualizzare i risultati.