
Laboratório de navegador de código aberto para construir uma infraestrutura simulada, observar um ataque se mover através dela e verificar se sua defesa funciona.
Construir. Atacar. Defender. Compreender.
Um laboratório de código aberto que funciona inteiramente no seu navegador: construa uma infraestrutura simulada, observe um ataque percorrê-la e verifique se a sua defesa realmente funciona. Cada passo vem com a razão pela qual funcionou, e cada controlo indica exatamente qual pré-condição quebra.
Demonstração ao vivo · Français · Especificação · Como funciona o motor · Formato do laboratório · Contribuir


Superfície de ataque, movimento lateral, segmentação, raio de impacto, defesa em profundidade: estas ideias são difíceis de compreender a partir de diagramas estáticos. O PCYBOX AttackGraph transforma-as em algo que pode ver e manipular:
Apenas simulação. O laboratório nunca faz scan, contacta ou ataca um sistema real. As técnicas são descritas a um nível conceptual, mapeadas para MITRE ATT&CK, sem qualquer procedimento de exploração.
Abra a demonstração ao vivo: nada para instalar, sem conta. Ou execute-o localmente:
git clone https://github.com/Mister-iks/pcybox-attackgraph.git
cd pcybox-attackgraph
pnpm install
pnpm dev
Depois abra o URL impresso no terminal, clique em Run attack, ative Network segmentation e execute novamente.
Teclado: Space reproduz ou pausa, as teclas de seta avançam pelo ataque, Home volta ao início.
Mude para Edit, depois arraste elementos da paleta para o mapa, ligue-os arrastando a partir do ponto na lateral de um elemento, e preencha serviços, fraquezas, credenciais armazenadas, identidades, ativos, controlos e cenários no painel lateral. O separador Problems aponta o que provavelmente está errado (um fluxo para uma porta sem serviço, um controlo que não se aplica a nada...). Desfaça e refaça com Ctrl+Z e Ctrl+Y. O seu laboratório é guardado no navegador e pode ser exportado, importado e partilhado por link.
.attackgraph.json.Consulte o roadmap para o que vem a seguir.
lab (.attackgraph.json) ──▶ validation ──▶ engine (web worker) ──▶ story of events ──▶ map, timeline, Why?
O motor satura as capacidades do atacante ronda a ronda (pontos de apoio, credenciais, acesso a dados). Cada técnica tem pré-condições e efeitos; cada controlo quebra uma pré-condição precisa. Como as rondas são em largura primeiro, a história reproduzida para um alvo alcançado é uma das suas derivações mais curtas. Detalhes em docs/engine.md.
apps/web/ web application (React, React Flow, Vite)
packages/engine/ simulation engine: pure TypeScript, no DOM, fully tested
packages/schema/ JSON Schema of the .attackgraph.json lab format
packages/i18n/ messages (English, French) shared by the app and the CLI
packages/cli/ attackgraph command line tool
content/templates/ ready-to-use labs (CC BY 4.0)
docs/ specification, engine and format documentation
Requisitos: Node.js 20 ou superior e 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
Orçamento de desempenho: no máximo 250 kB de JavaScript inicial (gzip). O CI falha acima disso.
| Versão | Foco |
|---|---|
| v0.1 | Uma rede, um ataque, uma defesa: o modelo Web Application |
| v0.2 (em curso) | Editor de laboratório, 3 modelos, ferramenta de linha de comandos |
| v0.3 | Caminhos de ataque, pontos de estrangulamento, raio de impacto, vista incorporável, PWA offline |
| v0.5 | Modo desafio, modo professor, 10 missões alinhadas com NICE, ECSF e CyBOK |
| v1.0 | Formato estável, 8 modelos, 9 idiomas incluindo árabe e chinês |
O plano completo está na especificação (francês).