Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
alignment-cage-challenge-2 — 논문 "적응형 정책 셰이핑을 통한 자율 사이버 방어 에이전트의 정렬"을 위해 업데이트된 CybORG CAGE 2 환경 | Kitploit
도구/GitHubGitHub/itm-kitware/alignment-cage-challenge-2
Defensive ToolsNetwork SecurityPenetration TestingMachine LearningPapers & ResearchLearning & EducationRed TeamingAI SecurityLabs & Practice

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubitm-kitware/alignment-cage-challenge-2

alignment-cage-challenge-2

논문 "적응형 정책 셰이핑을 통한 자율 사이버 방어 에이전트의 정렬"을 위해 업데이트된 CybORG CAGE 2 환경

저장소 보기
118일 전아직 검토되지 않음

적응형 정책 셰이핑을 통한 자율 사이버 방어 에이전트의 정렬

논문 Alignment of Autonomous Cyber Defense Agents via Adaptive Policy Shaping의 코드입니다. 이 저장소는 CybORG CAGE Challenge 2를 확장하여 자율 방어자가 네트워크를 방어하는 능력을 유지하면서 어떻게 운영 우선순위로 유도될 수 있는지 연구합니다.

원본 CybORG CAGE Challenge 2와의 차이점

원본 CAGE 2 챌린지는 CAGE 보상을 사용하여 내장된 레드 에이전트에 대해 블루 방어자를 평가합니다. 이 수정된 버전은 운영 목표, 수정된 공격자 정책, 그리고 블루 방어자를 위한 정렬 방법을 추가합니다. 시뮬레이터와 실험 스크립트는 CybORG/ 레이아웃에 그대로 유지됩니다. 원본 CAGE 2 가이드는 원래 챌린지 설명을 유지합니다.

수정된 시나리오 및 복원력 지표

수정된 네트워크는 사용자, 엔터프라이즈, 운영, 방어자 호스트 외에도 인증(Auth), 데이터베이스(Database), 프런트엔드(Front) 서버를 포함합니다. 이 서버들은 기밀성(C), 무결성(I), 가용성(A)을 통해 표현되는 운영 우선순위를 나타냅니다:

서버 유형운영 우선순위
인증 (Auth)기밀성, 무결성, 가용성
데이터베이스 (Database)기밀성, 가용성
프런트엔드 (Front)무결성, 가용성

복원력 점수 산정은 Cadet 등 **Quantitative Resilience Modeling for Autonomous Cyber Defense**에서 적응되었습니다. 구현은 관련 CyberResilience 코드를 기반으로 합니다.

우리의 복원력 지표는 각 단계에서 CIA 저하를 기록하고 이를 정규화된 복원력 저하로 결합하며, 기본 가중치는 기밀성 0.6, 무결성 0.2, 가용성 0.2입니다. 또한 속성 기반 정책 및 정렬 분석을 위해 후보 블루 행동에 점수를 부여합니다. 생성된 시나리오는 CIA-critical 서버에 일반 CAGE 호스트 보상 값을 0으로 할당하여, 운영 정렬과 일반 네트워크 방어 성능을 별도로 평가할 수 있게 합니다.

CAGE 2 코드베이스에 적용된 추가 내부 변경 사항은 실험 README에 자세히 설명되어 있습니다.

CAGE 2 레드 에이전트 수정 사항

원본 Meander 및 B-line 공격자는 추가된 운영 서버를 대상으로 하고 생성된 네트워크 크기 전반에 걸쳐 호스트 이름을 지원하도록 확장되었습니다. 평가에는 다섯 가지 적대자가 사용됩니다:

논문 적대자Python 클래스영향 대상
M-CIARedMeanderAgent_Combination_CIACIA-critical Auth, Database, Front 서버
M-CAGERedMeanderAgent_Combination_CAGECAGE 성능에 기여하는 기타 적격 침해 호스트
Bline-CB_lineAgent_Resilience_CAuth 또는 Database 서버
Bline-IB_lineAgent_Resilience_IAuth 또는 Front 서버
Bline-AB_lineAgent_Resilience_AAuth, Database, 또는 Front 서버

훈련에는 RedMeanderAgent_Combination이 사용되며, 이는 각 영향 선택 결정에서 CIA와 CAGE 영향 대상 사이를 동일한 확률로 선택합니다. B-line 변형은 에피소드당 한 번 대상 서버 유형을 선택하고 관측으로부터 일치하는 호스트를 확인합니다. Meander_Resilience.py 및 B_line_resilience.py를 참조하세요.

설치

Python 3.10 이상을 사용하고 uv를 설치하세요. 저장소 루트에서:

uv sync
cd CybORG

uv sync는 프로젝트 환경을 생성하고 CybORG와 그 의존성을 설치합니다. 스크립트는 uv run ...으로, 셸 런처는 uv run bash ...로 실행하세요. 수동으로 환경을 활성화할 필요는 없습니다.

저장소 실험 스크립트

위치내용
CybORG/CybORG/시뮬레이터, 에이전트, 보상, 지표, 시나리오, 업스트림 테스트
CybORG/experiment_configs/테스트 시점, 훈련 시점, 적응형, 스케일링, 레드 에이전트 평가 구성
CybORG/train_agents.py베이스라인 또는 보상 형상화된 블루 에이전트 훈련
CybORG/test_experiment.py베이스라인, 고정, 적응형 정책 평가
CybORG/test_experiment_training_time.py훈련 중 정렬된 에이전트 평가
CybORG/alignment_analysis.py정렬 점수 계산 및 보상 트레이드오프 분석
CybORG/CybORG/Shared/Scenarios/scenario_generation.py구성 가능한 호스트 집단과 보상 설정으로 시나리오 생성

훈련

train_agents.py를 사용하여 혼합된 미앤더링 공격자에 대항하는 PPO 방어자를 훈련하세요. PPOAgent는 베이스라인을 훈련하고, AlignedPPOAgent는 선택된 CIA 속성에 대한 보상 항을 추가합니다. 훈련 시점 보너스는 논문에서는 lambda, CLI에서는 alpha라고만 불리며, 테스트 시점 보간 가중치와는 별개입니다.

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

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

전체 학습 스윕의 경우:

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

이 런처들은 base, hosts_2, hosts_3, hosts_4를 학습 시드 0 1 2 3 4와 함께 다룹니다. 체크포인트는 CybORG/checkpoints/ 아래에 베이스라인의 경우 PPO_{scenario}_0_seed{seed}.zip으로, 보상 설계된 에이전트의 경우 PPO_{scenario}_{bonus}_{attribute}_seed{seed}.zip으로 저장됩니다. 체크포인트를 저장한 후 train_agents.py는 짧은 평가도 실행합니다. 로깅은 기본적으로 비활성화되어 있으며, 활성화하려면 Python 학습 명령에 --wandb를 추가하세요.

평가 및 분석

평가 스크립트는 학습된 체크포인트를 불러와 구성된 레드 적대자에 대해 에이전트를 실행합니다. 제공된 구성은 100개의 에피소드, 42에서 시작하는 평가 시드, 그리고 다섯 개의 학습 시드를 사용합니다. 에피소드 지평은 base, hosts_2, hosts_3, hosts_4에 대해 각각 200, 300, 400, 500 스텝입니다.

test_experiment.py는 고정 또는 적응형 테스트 시점 정렬과 함께 Blue Monitor 및 PPO 베이스라인을 평가합니다:

# 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

# Adaptive test-time policy selection
uv run python test_experiment.py --config experiment_configs/adaptive_alpha_config/base/cia.yaml
uv run python alignment_analysis.py --config experiment_configs/adaptive_alpha_config/base/cia.yaml

test_experiment_training_time.py는 보상 기반으로 형성된 체크포인트를 평가합니다:

uv run python test_experiment_training_time.py --config experiment_configs/training_time_config/base.yaml
uv run python alignment_analysis.py --config experiment_configs/training_time_config/base.yaml

구성을 실행하기 전에 해당 구성에서 요청한 모든 체크포인트를 학습시킵니다. 전체 평가 및 분석 스윕을 실행하려면:

uv run bash experiment_configs/run_all.sh
uv run bash experiment_configs/run_training_time_experiments.sh
uv run bash experiment_configs/export_alignment_analysis.sh

메서드 및 적대자 구성에 대해서는 구성 가이드를 참조하십시오.

시나리오 생성

생성된 시나리오는 이미 포함되어 있으므로, 제공된 실험을 실행하는 데 생성은 필요하지 않습니다:

  • 훈련 시나리오는 CybORG/CybORG/Shared/Scenarios/scalability_experiments/에 있으며 블루 에이전트에 AlignedReward를 사용합니다.
  • 평가 시나리오는 CybORG/CybORG/Shared/Scenarios/scalability_eval_scenarios/에 있으며 일반적인 CAGE 성능을 측정하기 위해 HybridAvailabilityConfidentiality를 사용합니다.

두 폴더 모두 다음 논문 시나리오를 포함합니다. 각 시나리오에는 세 개의 서브넷(User, Enterprise, Operational)이 있으며, 총계에는 방어자 호스트 하나가 포함됩니다. 아래의 Operational 호스트는 Op_Server와 Op_Host를 함께 집계한 것이며, CIA 중요 서버와는 별도로 계산됩니다.

시나리오 파일User 호스트Enterprise 호스트Operational 호스트AuthDatabaseFrontDefender총 호스트 수
base.yaml534111116
hosts_2.yaml1068222131
hosts_3.yaml15912333146
hosts_4.yaml201216444161

사용자 지정 시나리오를 생성하려면 scenario_generation.py를 사용하십시오. 예를 들어, 다음은 새로운 31-호스트 훈련 시나리오를 생성합니다:

도구 다운로드