Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
alignment-cage-challenge-2 — Ambiente CybORG CAGE 2 aggiornato per il paper "Alignment of Autonomous Cyber Defense Agents via Adaptive Policy Shaping" | Kitploit
Strumenti/GitHubGitHub/itm-kitware/alignment-cage-challenge-2
Strumenti DifensiviSicurezza di RetePenetration TestingMachine LearningPaper e RicercaApprendimento e FormazioneRed TeamingSicurezza dell'IALab e Pratica

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
GitHubitm-kitware/alignment-cage-challenge-2

alignment-cage-challenge-2

Ambiente CybORG CAGE 2 aggiornato per il paper "Alignment of Autonomous Cyber Defense Agents via Adaptive Policy Shaping"

Vedi Repository
108 giorni faNon ancora revisionato
Condividi

Allineamento di agenti autonomi di cyber difesa tramite Adaptive Policy Shaping

Codice per il nostro articolo Alignment of Autonomous Cyber Defense Agents via Adaptive Policy Shaping. Questo repository estende CybORG CAGE Challenge 2 per studiare come i difensori autonomi possano essere guidati verso priorità operative mantenendo al contempo la loro capacità di difendere la rete.

Differenze rispetto all'originale CybORG CAGE Challenge 2

La sfida originale CAGE 2 valuta i difensori blu contro agenti rossi integrati utilizzando la ricompensa CAGE. Questa versione modificata aggiunge obiettivi operativi, politiche degli attaccanti modificate e metodi di allineamento per i difensori blu. Il simulatore e gli script degli esperimenti rimangono nella struttura CybORG/. La guida originale di CAGE 2 conserva la descrizione originale della sfida.

Scenario modificato e metriche di resilienza

La rete modificata include server di autenticazione (Auth), database (Database) e front-end (Front) oltre agli host utente, enterprise, operativi e difensore. Questi server rappresentano priorità operative espresse tramite riservatezza (C), integrità (I) e disponibilità (A):

Tipo di serverPriorità operative
Autenticazione (Auth)Riservatezza, integrità, disponibilità
Database (Database)Riservatezza, disponibilità
Front-end (Front)Integrità, disponibilità

Il punteggio di resilienza è adattato da Cadet et al. Quantitative Resilience Modeling for Autonomous Cyber Defense. L'implementazione si basa sul relativo codice CyberResilience.

La nostra metrica di resilienza registra i cali di CIA a ogni passo e li combina in un calo di resilienza normalizzato, con pesi predefiniti di 0,6 per la riservatezza, 0,2 per l'integrità e 0,2 per la disponibilità. Assegna inoltre un punteggio alle azioni blu candidate per la politica basata sugli attributi e l'analisi di allineamento. Gli scenari generati assegnano ai server critici per CIA valori di ricompensa host CAGE ordinaria pari a zero, consentendo di valutare separatamente l'allineamento operativo e le prestazioni generali di difesa della rete.

Ulteriori modifiche interne apportate alla base di codice CAGE 2 sono dettagliate nel README degli esperimenti.

Modifiche all'agente rosso CAGE 2

Gli attaccanti originali Meander e B-line sono estesi per prendere di mira i server operativi aggiunti e supportare i nomi degli host attraverso le dimensioni di rete generate. La valutazione utilizza cinque avversari:

Avversario dell'articoloClasse PythonObiettivi di impatto
M-CIARedMeanderAgent_Combination_CIAServer Auth, Database e Front critici per CIA
M-CAGERedMeanderAgent_Combination_CAGEAltri host compromessi idonei che contribuiscono alle prestazioni CAGE
Bline-CB_lineAgent_Resilience_CServer Auth o Database
Bline-IB_lineAgent_Resilience_IServer Auth o Front
Bline-AB_lineAgent_Resilience_AServer Auth, Database o Front

L'addestramento utilizza RedMeanderAgent_Combination, che seleziona tra obiettivi di impatto CIA e CAGE con uguale probabilità a ogni decisione di selezione dell'impatto. Le varianti B-line selezionano un tipo di server bersaglio una volta per episodio e risolvono gli host corrispondenti dalle osservazioni. Vedere Meander_Resilience.py e B_line_resilience.py.

Installazione

Utilizzare Python 3.10 o versioni successive e installare uv. Dalla radice del repository:

uv sync
cd CybORG

uv sync crea l'ambiente del progetto e installa CybORG e le sue dipendenze. Esegui gli script con uv run ... e i launcher shell con uv run bash ...; l'attivazione manuale dell'ambiente non è necessaria.

Script di esperimento del repository

PosizioneContenuto
CybORG/CybORG/Simulatore, agenti, reward, metriche, scenari e test upstream
CybORG/experiment_configs/Configurazioni per valutazione test-time, training-time, adattiva, di scaling e red-agent
CybORG/train_agents.pyAddestra agenti blue baseline o con reward modellata
CybORG/test_experiment.pyValuta policy baseline, fisse e adattive
CybORG/test_experiment_training_time.pyValuta agenti allineati durante il training
CybORG/alignment_analysis.pyCalcola i punteggi di allineamento e analizza i compromessi tra reward
CybORG/CybORG/Shared/Scenarios/scenario_generation.pyGenera scenari con popolazioni di host e impostazioni di reward configurabili

Training

Usa train_agents.py per addestrare un difensore PPO contro l'attaccante misto meandering. PPOAgent addestra la baseline; AlignedPPOAgent aggiunge un termine di reward per l'attributo CIA selezionato. Il bonus di training-time è chiamato lambda nel paper e alpha solo nella CLI; è separato dal peso di interpolazione test-time.

Per addestrare un checkpoint baseline per 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

Per addestrare un defender allineato alla riservatezza con un bonus di 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

Per gli sweep di training completi:

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

Questi launcher coprono base, hosts_2, hosts_3 e hosts_4 con seed di training 0 1 2 3 4. I checkpoint vengono salvati in CybORG/checkpoints/ come PPO_{scenario}_0_seed{seed}.zip per le baseline e PPO_{scenario}_{bonus}_{attribute}_seed{seed}.zip per gli agenti con reward shaping. Dopo aver salvato un checkpoint, train_agents.py esegue anche una breve valutazione. Il logging è disabilitato per impostazione predefinita; aggiungi --wandb a un comando di training Python per abilitarlo.

Valutazione e analisi

Gli script di valutazione caricano i checkpoint addestrati ed eseguono gli agenti contro l'avversario rosso configurato. Le configurazioni fornite utilizzano 100 episodi, un seed di valutazione che parte da 42 e cinque seed di training. Gli orizzonti degli episodi sono rispettivamente di 200, 300, 400 e 500 passi per base, hosts_2, hosts_3 e hosts_4.

test_experiment.py valuta le baseline Blue Monitor e PPO insieme all'allineamento a test-time fisso o adattivo:

# Baselines and fixed test-time interpolation
uv run python test_experiment.py --config experiment_configs/base.yaml
uv run python alignment_analysis.py --config experiment_configs/base.yaml
Scarica lo strumento