Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
alignment-cage-challenge-2 — Entorno CybORG CAGE 2 actualizado para el artículo "Alignment of Autonomous Cyber Defense Agents via Adaptive Policy Shaping" | Kitploit
Herramientas/GitHubGitHub/itm-kitware/alignment-cage-challenge-2
Herramientas DefensivasSeguridad de RedesPruebas de PenetraciónAprendizaje AutomáticoPapers e InvestigaciónAprendizaje y EducaciónRed TeamingSeguridad de IALabs y Práctica

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
GitHubitm-kitware/alignment-cage-challenge-2

alignment-cage-challenge-2

Entorno CybORG CAGE 2 actualizado para el artículo "Alignment of Autonomous Cyber Defense Agents via Adaptive Policy Shaping"

Ver Repositorio
11hace 8 díasAún no revisado
Compartir

Alineación de agentes autónomos de ciberdefensa mediante modelado adaptativo de políticas

Código de nuestro artículo Alignment of Autonomous Cyber Defense Agents via Adaptive Policy Shaping. Este repositorio amplía CybORG CAGE Challenge 2 para estudiar cómo los defensores autónomos pueden ser dirigidos hacia prioridades operativas mientras conservan su capacidad de defender la red.

Diferencias con el CybORG CAGE Challenge 2 original

El desafío CAGE 2 original evalúa a los defensores azules contra agentes rojos integrados utilizando la recompensa de CAGE. Esta versión modificada añade objetivos operativos, políticas de atacante modificadas y métodos de alineación para los defensores azules. El simulador y los scripts de experimentos permanecen en la estructura CybORG/. La guía original de CAGE 2 conserva la descripción original del desafío.

Escenario modificado y métricas de resiliencia

La red modificada incluye servidores de autenticación (Auth), base de datos (Database) y front-end (Front), además de los hosts de usuario, empresariales, operativos y de defensor. Estos servidores representan prioridades operativas expresadas mediante confidencialidad (C), integridad (I) y disponibilidad (A):

Tipo de servidorPrioridades operativas
Autenticación (Auth)Confidencialidad, integridad, disponibilidad
Base de datos (Database)Confidencialidad, disponibilidad
Front-end (Front)Integridad, disponibilidad

La puntuación de resiliencia está adaptada de Cadet et al. Quantitative Resilience Modeling for Autonomous Cyber Defense. La implementación se basa en el código CyberResilience asociado.

Nuestra métrica de resiliencia registra las caídas de CIA en cada paso y las combina en una caída de resiliencia normalizada, con pesos predeterminados de 0.6 para confidencialidad, 0.2 para integridad y 0.2 para disponibilidad. También puntúa las acciones azules candidatas para la política basada en atributos y el análisis de alineación. Los escenarios generados asignan a los servidores críticos para CIA valores de recompensa de host CAGE ordinarios de cero, lo que permite evaluar por separado la alineación operativa y el rendimiento general de defensa de la red.

Los cambios internos adicionales realizados en el código base de CAGE 2 se detallan en el README de experimentos.

Modificaciones del agente rojo de CAGE 2

Los atacantes originales Meander y B-line se amplían para atacar los servidores operativos añadidos y admitir nombres de host en los tamaños de red generados. La evaluación utiliza cinco adversarios:

Adversario del artículoClase de PythonObjetivos de impacto
M-CIARedMeanderAgent_Combination_CIAServidores Auth, Database y Front críticos para CIA
M-CAGERedMeanderAgent_Combination_CAGEOtros hosts comprometidos elegibles que contribuyen al rendimiento de CAGE
Bline-CB_lineAgent_Resilience_CServidores Auth o Database
Bline-IB_lineAgent_Resilience_IServidores Auth o Front
Bline-AB_lineAgent_Resilience_AServidores Auth, Database o Front

El entrenamiento utiliza RedMeanderAgent_Combination, que selecciona entre objetivos de impacto CIA y CAGE con igual probabilidad en cada decisión de selección de impacto. Las variantes B-line seleccionan un tipo de servidor objetivo una vez por episodio y resuelven los hosts coincidentes a partir de las observaciones. Véase Meander_Resilience.py y B_line_resilience.py.

Instalación

Utilice Python 3.10 o superior e instale uv. Desde la raíz del repositorio:

uv sync
cd CybORG

uv sync crea el entorno del proyecto e instala CybORG y sus dependencias. Ejecute los scripts con uv run ... y los lanzadores de shell con uv run bash ...; no se requiere la activación manual del entorno.

Scripts de experimentos del repositorio

UbicaciónContenido
CybORG/CybORG/Simulador, agentes, recompensas, métricas, escenarios y pruebas upstream
CybORG/experiment_configs/Configuraciones de evaluación en tiempo de prueba, en tiempo de entrenamiento, adaptativas, de escalado y de agente rojo
CybORG/train_agents.pyEntrena agentes azules de referencia o con recompensa modelada
CybORG/test_experiment.pyEvalúa políticas de referencia, fijas y adaptativas
CybORG/test_experiment_training_time.pyEvalúa agentes alineados durante el entrenamiento
CybORG/alignment_analysis.pyCalcula puntuaciones de alineación y analiza los compromisos de recompensa
CybORG/CybORG/Shared/Scenarios/scenario_generation.pyGenera escenarios con poblaciones de hosts y ajustes de recompensa configurables

Entrenamiento

Use train_agents.py para entrenar un defensor PPO contra el atacante mixto errante. PPOAgent entrena la línea base; AlignedPPOAgent añade un término de recompensa para el atributo CIA seleccionado. El bono en tiempo de entrenamiento se denomina lambda en el artículo y alpha solo en la CLI; es independiente del peso de interpolación en tiempo de prueba.

Para entrenar un checkpoint de línea base para 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

Para entrenar a un defensor alineado con la confidencialidad con una bonificación 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

Para los barridos de entrenamiento completos:

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

Estos lanzadores cubren base, hosts_2, hosts_3 y hosts_4 con semillas de entrenamiento 0 1 2 3 4. Los checkpoints se guardan en CybORG/checkpoints/ como PPO_{scenario}_0_seed{seed}.zip para las líneas base y PPO_{scenario}_{bonus}_{attribute}_seed{seed}.zip para los agentes con recompensa modelada. Tras guardar un checkpoint, train_agents.py también ejecuta una breve evaluación. El registro está deshabilitado por defecto; añade --wandb a un comando de entrenamiento de Python para habilitarlo.

Evaluación y análisis

Los scripts de evaluación cargan los checkpoints entrenados y ejecutan los agentes contra el adversario rojo configurado. Las configuraciones proporcionadas usan 100 episodios, una semilla de evaluación que comienza en 42 y cinco semillas de entrenamiento. Los horizontes de episodio son de 200, 300, 400 y 500 pasos para base, hosts_2, hosts_3 y hosts_4, respectivamente.

Descargar herramienta