Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
alignment-cage-challenge-2 — L'environnement CybORG CAGE 2 a été mis à jour pour l'article « Alignment of Autonomous Cyber Defense Agents via Adaptive Policy Shaping » | Kitploit
Outils/GitHubGitHub/itm-kitware/alignment-cage-challenge-2
Outils DéfensifsSécurité RéseauTests d'IntrusionApprentissage AutomatiqueArticles et RechercheApprentissage et ÉducationRed TeamingSécurité de l'IALabs et Pratique

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
GitHubitm-kitware/alignment-cage-challenge-2

alignment-cage-challenge-2

L'environnement CybORG CAGE 2 a été mis à jour pour l'article « Alignment of Autonomous Cyber Defense Agents via Adaptive Policy Shaping »

Voir le dépôt
11il y a 8 joursPas encore vérifié
Partager

Alignement des agents autonomes de cyberdéfense via un façonnage adaptatif des politiques

Code de notre article Alignment of Autonomous Cyber Defense Agents via Adaptive Policy Shaping. Ce dépôt étend CybORG CAGE Challenge 2 pour étudier comment les défenseurs autonomes peuvent être orientés vers des priorités opérationnelles tout en conservant leur capacité à défendre le réseau.

Différences par rapport au CybORG CAGE Challenge 2 original

Le challenge CAGE 2 original évalue les défenseurs bleus face à des agents rouges intégrés en utilisant la récompense CAGE. Cette version modifiée ajoute des objectifs opérationnels, des politiques d'attaquants modifiées et des méthodes d'alignement pour les défenseurs bleus. Le simulateur et les scripts d'expérimentation restent dans l'arborescence CybORG/. Le guide CAGE 2 original conserve la description originale du challenge.

Scénario modifié et métriques de résilience

Le réseau modifié inclut des serveurs d'authentification (Auth), de base de données (Database) et front-end (Front) en plus des hôtes utilisateur, entreprise, opérationnel et défenseur. Ces serveurs représentent des priorités opérationnelles exprimées par la confidentialité (C), l'intégrité (I) et la disponibilité (A) :

Type de serveurPriorités opérationnelles
Authentification (Auth)Confidentialité, intégrité, disponibilité
Base de données (Database)Confidentialité, disponibilité
Front-end (Front)Intégrité, disponibilité

Le calcul de résilience est adapté de Cadet et al. Quantitative Resilience Modeling for Autonomous Cyber Defense. L'implémentation s'appuie sur le code CyberResilience associé.

Notre métrique de résilience enregistre les baisses de CIA à chaque étape et les combine en une baisse de résilience normalisée, avec des poids par défaut de 0,6 pour la confidentialité, 0,2 pour l'intégrité et 0,2 pour la disponibilité. Elle évalue également les actions bleues candidates pour la politique basée sur les attributs et l'analyse d'alignement. Les scénarios générés attribuent aux serveurs critiques pour la CIA des valeurs de récompense d'hôte CAGE ordinaire nulles, permettant d'évaluer séparément l'alignement opérationnel et la performance de défense générale du réseau.

Les modifications internes supplémentaires apportées à la base de code CAGE 2 sont détaillées dans le README des expérimentations.

Modifications de l'agent rouge CAGE 2

Les attaquants originaux Meander et B-line sont étendus pour cibler les serveurs opérationnels ajoutés et prendre en charge les noms d'hôtes à travers les tailles de réseau générées. L'évaluation utilise cinq adversaires :

Adversaire de l'articleClasse PythonCibles d'impact
M-CIARedMeanderAgent_Combination_CIAServeurs Auth, Database et Front critiques pour la CIA
M-CAGERedMeanderAgent_Combination_CAGEAutres hôtes compromis éligibles contribuant à la performance CAGE
Bline-CB_lineAgent_Resilience_CServeurs Auth ou Database
Bline-IB_lineAgent_Resilience_IServeurs Auth ou Front
Bline-AB_lineAgent_Resilience_AServeurs Auth, Database ou Front

L'entraînement utilise RedMeanderAgent_Combination, qui choisit entre les cibles d'impact CIA et CAGE avec une probabilité égale à chaque décision de sélection d'impact. Les variantes B-line sélectionnent un type de serveur cible une fois par épisode et résolvent les hôtes correspondants à partir des observations. Voir Meander_Resilience.py et B_line_resilience.py.

Installation

Utilisez Python 3.10 ou une version plus récente et installez uv. Depuis la racine du dépôt :

uv sync
cd CybORG

uv sync crée l'environnement du projet et installe CybORG ainsi que ses dépendances. Exécutez les scripts avec uv run ... et les lanceurs shell avec uv run bash ... ; l'activation manuelle de l'environnement n'est pas nécessaire.

Scripts d'expérimentation du dépôt

EmplacementContenu
CybORG/CybORG/Simulateur, agents, récompenses, métriques, scénarios et tests upstream
CybORG/experiment_configs/Configurations d'évaluation en phase de test, en phase d'entraînement, adaptatives, de mise à l'échelle et d'agents rouges
CybORG/train_agents.pyEntraîner des agents bleus de référence ou à récompense modelée
CybORG/test_experiment.pyÉvaluer les politiques de référence, fixes et adaptatives
CybORG/test_experiment_training_time.pyÉvaluer les agents alignés pendant l'entraînement
CybORG/alignment_analysis.pyCalculer les scores d'alignement et analyser les compromis de récompense
CybORG/CybORG/Shared/Scenarios/scenario_generation.pyGénérer des scénarios avec des populations d'hôtes et des paramètres de récompense configurables

Entraînement

Utilisez train_agents.py pour entraîner un défenseur PPO contre l'attaquant mixte sinueux. PPOAgent entraîne la référence ; AlignedPPOAgent ajoute un terme de récompense pour l'attribut CIA sélectionné. Le bonus en phase d'entraînement est appelé lambda dans l'article et alpha uniquement dans la CLI ; il est distinct du poids d'interpolation en phase de test.

Pour entraîner un point de contrôle de référence pour base :

uv run python train_agents.py \
  --scenario scalability_experiments/base \
  --agent_type PPOAgent \
  --red_agent RedMeanderAgent_Combination \
  --alpha 0 --seed 0 --game_steps 200 --training_iter 500000 \
  --agent_export checkpoints/PPO_base_0_seed0

Pour entraîner un défenseur aligné sur la confidentialité avec un bonus de 1,5 :

uv run python train_agents.py \
  --scenario scalability_experiments/base \
  --agent_type AlignedPPOAgent \
  --red_agent RedMeanderAgent_Combination \
  --alignment_attribute C --alpha 1.5 \
  --seed 0 --game_steps 200 --training_iter 500000 \
  --agent_export checkpoints/PPO_base_1.5_C_seed0

Pour les balayages d'entraînement complets :

uv run bash experiment_configs/train_agents/train_base.sh
uv run bash experiment_configs/train_agents/train_trainingtime_alignment.sh

Ces lanceurs couvrent base, hosts_2, hosts_3 et hosts_4 avec les graines d'entraînement 0 1 2 3 4. Les checkpoints sont enregistrés sous CybORG/checkpoints/ sous la forme PPO_{scenario}_0_seed{seed}.zip pour les baselines et PPO_{scenario}_{bonus}_{attribute}_seed{seed}.zip pour les agents à récompense modelée. Après l'enregistrement d'un checkpoint, train_agents.py exécute également une courte évaluation. La journalisation est désactivée par défaut ; ajoutez --wandb à une commande d'entraînement Python pour l'activer.

Évaluation et analyse

Les scripts d'évaluation chargent les checkpoints entraînés et exécutent les agents contre l'adversaire rouge configuré. Les configurations fournies utilisent 100 épisodes, une graine d'évaluation commençant à 42 et cinq graines d'entraînement. Les horizons d'épisode sont de 200, 300, 400 et 500 pas pour base, hosts_2, hosts_3 et hosts_4, respectivement.

Télécharger l’outil