
Génère des listes de blocage IPv4 efficaces à partir des flux réseau Zeek en utilisant plusieurs modèles de priorisation (nouveau, cohérent, forêt aléatoire) pour identifier les attaquants émergents et persistants, optimisé pour les environnements IoT.
L'outil de hiérarchisation des IP d'attaquants (AIP) est un outil permettant de générer des listes de blocage d'IP efficaces et économiques à partir du trafic réseau capturé sur des réseaux de pots de miel.
Avec l'avènement de la 5G, les appareils IoT sont directement connectés, souvent sans protection par pare-feu. Nous avons donc besoin de listes de blocage qui soient petites, efficaces et économiques. La structure de l'AIP est présentée ci-dessous.

Chaque modèle AIP génère sa propre liste de blocage selon un critère spécifique. Les principaux modèles sont :
AIP peut fonctionner avec Docker (recommandé) ou directement avec Python. Dans les deux cas, il a besoin de deux éléments :
Les journaux Zeek dans data/raw/, un dossier par jour (par exemple data/raw/2024-10-22/conn.*). Avec Docker, vous pouvez pointer AIP vers votre dossier de journaux Zeek au lieu de les copier.
Vos IP de pots de miel dans data/external/. Copiez les fichiers d'exemple et modifiez-les :
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 (requis) : les IP publiques de vos pots de miel. AIP ne prend en compte que le trafic envoyé vers ces IP.do_not_block_these_ips.csv (facultatif) : les IP qui ne doivent jamais apparaître dans une liste de blocage.Depuis le dossier AIP, en supposant que vos journaux Zeek se trouvent dans /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
Cela exécute tous les modèles pour aujourd'hui. Pour utiliser l'une des commandes ci-dessous, écrivez-les après bin/aip. Par exemple, pour exécuter tous les modèles pour un jour :
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
Pour construire l'image vous-même, consultez le guide 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
Exécutez source aip-venv/bin/activate et la ligne export PYTHONPATH à nouveau chaque fois que vous ouvrez un nouveau terminal.
| Ce que vous voulez | Commande |
|---|---|
| Exécuter tous les modèles pour aujourd'hui | bin/aip |
| Exécuter tous les modèles pour un jour | bin/aip run-models --start-date 2026-10-02 --end-date 2026-10-02 |
| Exécuter tous les modèles pour plusieurs jours | bin/aip run-models --start-date 2026-10-01 --end-date 2026-10-12 |
| Exécuter un seul modèle | Ajoutez --model avec Alpha, Alpha7, Prioritize_New, Prioritize_Consistent ou Random_Forest |
| Reconstruire l'historique des attaquants depuis une date jusqu'à hier | bin/aip rebuild-kb --start-date 2026-10-01 |
Points à connaître :
--end-date, il s'agit d'aujourd'hui. Ainsi, --start-date seul exécute chaque jour à partir de cette date jusqu'à aujourd'hui.data/output/<model name>/.-v (progression) ou -d (détail complet) juste après bin/aip, par exemple bin/aip -v run-models.bin/aip --help.L'outil Stratosphere AIP est sous licence GNU General Public License v3.0.
Cet outil a été développé au Stratosphere Laboratory de l'Université technique tchèque de Prague. Il fait partie du projet de génération de listes de blocage Stratosphere.
Cet outil est à l'origine issu de la thèse de bachelor de Thomas O'Hara, The Attacker IP Prioritizer: An IoT Optimized Blacklisting Algorithm (2021).