
Genera blocklist IPv4 efficienti dai flussi di rete Zeek utilizzando molteplici modelli di prioritizzazione (nuovo, coerente, random forest) per identificare attaccanti emergenti e persistenti, ottimizzati per ambienti IoT.
L'Attacker IP Prioritization (AIP) è uno strumento per generare blocklist di IP efficienti ed economiche basate sul traffico di rete catturato da reti honeypot.
Con l'avvento del 5G, i dispositivi IoT sono spesso connessi direttamente senza protezione firewall. Pertanto abbiamo bisogno di blocklist piccole, efficienti ed economiche. La struttura di AIP è mostrata di seguito.

Ogni modello AIP genera la propria blocklist in base a criteri specifici. I modelli principali sono:
AIP può essere eseguito con Docker (consigliato) o direttamente con Python. In entrambi i casi, necessita di due cose:
Log Zeek in data/raw/, una cartella per giorno (ad esempio data/raw/2024-10-22/conn.*). Con Docker puoi indicare ad AIP la tua cartella dei log Zeek invece di copiarli.
I tuoi IP honeypot in data/external/. Copia i file di esempio e modificali:
cp data/external/honeypots_public_ips_example.csv data/external/honeypots_public_ips.csv
cp data/external/do_not_block_these_ips_example.csv data/external/do_not_block_these_ips.csv
honeypots_public_ips.csv (obbligatorio): gli IP pubblici dei tuoi honeypot. AIP considera solo il traffico inviato a questi IP.do_not_block_these_ips.csv (opzionale): IP che non devono mai comparire in una blocklist.Dalla cartella AIP, assumendo che i tuoi log Zeek siano in /opt/zeek/logs/:
docker run --rm \
-v /opt/zeek/logs/:/home/aip/AIP/data/raw:ro \
-v ${PWD}/data/:/home/aip/AIP/data/:rw \
--name aip stratosphereips/aip:latest bin/aip
Questo esegue tutti i modelli per oggi. Per usare uno qualsiasi dei comandi riportati di seguito, scrivili dopo bin/aip. Ad esempio, per eseguire tutti i modelli per un giorno:
docker run --rm \
-v /opt/zeek/logs/:/home/aip/AIP/data/raw:ro \
-v ${PWD}/data/:/home/aip/AIP/data/:rw \
--name aip stratosphereips/aip:latest bin/aip run-models --start-date 2026-10-12 --end-date 2026-10-12
Per costruire l'immagine da solo, consulta la guida Docker.
git clone https://github.com/stratosphereips/AIP.git ~/AIP
cd ~/AIP
python3 -m venv aip-venv
source aip-venv/bin/activate
pip install -r requirements.txt
export PYTHONPATH=$(pwd)/lib
bin/aip --help
Esegui source aip-venv/bin/activate e di nuovo la riga export PYTHONPATH ogni volta che apri un nuovo terminale.
| Cosa vuoi fare | Comando |
|---|---|
| Eseguire tutti i modelli per oggi | bin/aip |
| Eseguire tutti i modelli per un giorno | bin/aip run-models --start-date 2026-10-02 --end-date 2026-10-02 |
| Eseguire tutti i modelli per diversi giorni | bin/aip run-models --start-date 2026-10-01 --end-date 2026-10-12 |
| Eseguire un solo modello | Aggiungi --model con Alpha, Alpha7, Prioritize_New, Prioritize_Consistent o Random_Forest |
| Ricostruire la cronologia degli attaccanti da una data fino a ieri | bin/aip rebuild-kb --start-date 2026-10-01 |
Cose da sapere:
--end-date, viene usata la data odierna. Quindi --start-date da solo esegue ogni giorno da quella data fino a oggi.data/output/<model name>/.-v (avanzamento) o -d (dettaglio completo) subito dopo bin/aip, ad esempio bin/aip -v run-models.bin/aip --help.Lo strumento Stratosphere AIP è distribuito sotto GNU General Public License v3.0.
Questo strumento è stato sviluppato presso lo Stratosphere Laboratory della Czech Technical University di Praga. Fa parte del progetto di generazione di blocklist di Stratosphere.
Questo strumento è nato originariamente dalla tesi di laurea di Thomas O'Hara, The Attacker IP Prioritizer: An IoT Optimized Blacklisting Algorithm (2021).