
공격이 인프라를 통과하는 모습을 지켜보고 방어가 작동하는지 확인할 수 있도록, 시뮬레이션된 인프라를 구축하는 오픈 소스 브라우저 랩.
구축하라. 공격하라. 방어하라. 이해하라.
전적으로 브라우저에서 실행되는 오픈 소스 랩: 시뮬레이션된 인프라를 구축하고, 그 안을 통과하는 공격을 지켜보며, 당신의 방어가 실제로 작동하는지 확인하세요. 모든 단계에는 그것이 작동한 이유가 함께 제공되며, 모든 통제는 어떤 전제 조건을 깨뜨리는지 정확히 알려줍니다.
라이브 데모 · Français · 명세 · 엔진 작동 방식 · 랩 형식 · 기여하기


공격 표면, 측면 이동, 분할, 폭발 반경, 심층 방어: 이런 개념들은 정적인 다이어그램으로는 파악하기 어렵습니다. PCYBOX AttackGraph는 이를 눈으로 보고 조작할 수 있는 것으로 바꿔줍니다:
시뮬레이션 전용. 이 랩은 실제 시스템을 스캔하거나 접촉하거나 공격하지 않습니다. 기법은 개념적 수준에서 설명되며, MITRE ATT&CK에 매핑되어 있고, 익스플로잇 절차는 포함하지 않습니다.
**라이브 데모**를 여세요: 설치할 것도, 계정도 없습니다. 또는 로컬에서 실행하세요:
git clone https://github.com/Mister-iks/pcybox-attackgraph.git
cd pcybox-attackgraph
pnpm install
pnpm dev
그런 다음 터미널에 출력된 URL을 열고, Run attack을 클릭하고, Network segmentation을 켠 뒤 다시 실행하세요.
키보드: Space는 재생 또는 일시정지, 화살표 키는 공격 단계 이동, Home은 시작 지점으로 돌아갑니다.
Edit로 전환한 다음, 팔레트에서 요소를 지도로 끌어다 놓고, 요소 측면의 점에서 끌어 연결하고, 측면 패널에서 서비스, 약점, 저장된 자격 증명, 신원, 자산, 통제, 시나리오를 입력하세요. Problems 탭은 무엇이 잘못되었을 가능성이 있는지 지적합니다(서비스 없는 포트로의 흐름, 아무것에도 적용되지 않는 통제...). Ctrl+Z와 Ctrl+Y로 실행 취소 및 다시 실행하세요. 랩은 브라우저에 저장되며 내보내기, 가져오기, 링크로 공유할 수 있습니다.
.attackgraph.json 파일 내보내기 및 가져오기.다음에 무엇이 나오는지는 로드맵을 참고하세요.
lab (.attackgraph.json) ──▶ validation ──▶ engine (web worker) ──▶ story of events ──▶ map, timeline, Why?
엔진은 라운드마다 공격자의 능력(거점, 자격 증명, 데이터 접근)을 포화시킵니다. 각 기법에는 전제 조건과 효과가 있고, 각 통제는 정확한 전제 조건을 깨뜨립니다. 라운드가 너비 우선이기 때문에, 도달한 대상에 대해 재생되는 이야기는 그 대상의 최단 도출 중 하나입니다. 자세한 내용은 docs/engine.md에 있습니다.
apps/web/ 웹 애플리케이션 (React, React Flow, Vite)
packages/engine/ 시뮬레이션 엔진: 순수 TypeScript, DOM 없음, 완전히 테스트됨
packages/schema/ .attackgraph.json 랩 형식의 JSON Schema
packages/i18n/ 앱과 CLI가 공유하는 메시지 (영어, 프랑스어)
packages/cli/ attackgraph 명령줄 도구
content/templates/ 바로 사용할 수 있는 랩 (CC BY 4.0)
docs/ 명세, 엔진 및 형식 문서
요구 사항: Node.js 20 이상 및 pnpm.
pnpm install
pnpm dev # start the app
pnpm test # engine, schema and app unit tests
pnpm e2e # end-to-end tests (Playwright, desktop and mobile)
pnpm verify # everything the CI checks: text, types, tests, build, bundle budget
pnpm attackgraph validate content/templates
pnpm attackgraph list content/templates/active-directory.attackgraph.json
pnpm attackgraph simulate content/templates/active-directory.attackgraph.json --scenario phishing --enable tiering
pnpm attackgraph compare content/templates/web-application.attackgraph.json --enable segmentation --lang fr
pnpm attackgraph simulate <lab> --format markdown # or json, for other tools
성능 예산: 초기 JavaScript 최대 250 kB(gzip). CI는 이를 초과하면 실패합니다.
| 버전 | 초점 |
|---|---|
| v0.1 | 하나의 네트워크, 하나의 공격, 하나의 방어: Web Application 템플릿 |
| v0.2 (진행 중) | 랩 편집기, 3개 템플릿, 명령줄 도구 |
| v0.3 | 공격 경로, 병목 지점, 폭발 반경, 임베드 가능한 뷰, 오프라인 PWA |
| v0.5 | 챌린지 모드, 교사 모드, NICE, ECSF 및 CyBOK에 맞춘 10개 미션 |
| v1.0 | 안정적인 형식, 8개 템플릿, 아랍어와 중국어를 포함한 9개 언어 |
전체 계획은 명세(프랑스어)에 있습니다.
기여를 환영합니다: 코드, 랩, 번역, 그리고 보안 실무자들의 기법 카탈로그 리뷰. CONTRIBUTING.md부터 시작하세요. 행동 강령을 따라 주시고, 취약점은 SECURITY.md에 설명된 대로 신고해 주세요.
content/, docs/): CC BY 4.0MITRE ATT&CK®는 The MITRE Corporation의 등록 상표입니다. 이 프로젝트는 MITRE와 제휴 관계가 없습니다.