REST API · STIX 2.1 · SIEM READY

Conhecimento de ataque,
pronto para integrar.

Documentação da API Arachne para consumir táticas, técnicas, cadeias e grafos de ataque em ferramentas de segurança, automações de SOC e pipelines de threat intelligence.

GET localhost:8080/apiNode.js >= 18Somente leituraCORS habilitado
01 · Base de conhecimento

Visão geral

A Arachne expõe uma matriz de ataques a aplicações web inspirada em MITRE ATT&CK. A API mantém os mesmos dados usados pela interface e acrescenta operações de busca, correlação, análise de caminhos e exportação.

22
táticas
108
técnicas
43
cadeias de ataque
86
arestas direcionadas
A API pode ser pública durante o desenvolvimento. Em produção, defina ARACHNE_API_KEY e coloque o serviço atrás de TLS e um gateway.
02 · Inicialização

Como executar

O servidor não possui dependências externas. Na raiz do projeto:

npm start
# ou
node server.js

Por padrão, o serviço escuta em http://localhost:8080.

VariávelPadrãoDescrição
ARACHNE_PORT8080Porta TCP do servidor.
ARACHNE_API_KEYvazioChave opcional para autenticar as rotas.
ARACHNE_RATE_LIMIT120Requisições por janela e por IP.
ARACHNE_RATE_WINDOW60000Janela em milissegundos.
ARACHNE_PORT=9000 ARACHNE_API_KEY="sua-chave" node server.js
03 · Controle de acesso

Autenticação e rate limiting

Quando uma chave é configurada, use um dos formatos abaixo. O método recomendado é o Bearer token.

curl -H "Authorization: Bearer sua-chave" http://localhost:8080/api/techniques
curl -H "X-API-Key: sua-chave" http://localhost:8080/api/chains
curl "http://localhost:8080/api/chains?api_key=sua-chave"

O servidor responde com 401 para uma chave ausente ou inválida. O limite é por IP e processo; os cabeçalhos X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset informam o estado. Ao exceder, a resposta é 429.

04 · Contrato

Convenções

Base URL: http://<host>:<porta>/api. Todas as rotas são somente leitura e aceitam GET. Listas retornam um envelope com data, count e, quando aplicável, pagination.

{
  "data": [],
  "count": 43,
  "pagination": { "total": 43, "limit": 100, "offset": 0, "returned": 43 }
}

Filtros comuns: q (texto), limit (máx. 500), offset, tactic, severity e difficulty.

05 · Estrutura

Modelos de dados

Tática

id, name, color, techniqueCount. Exemplo: TA-W01.

Técnica

id, name, severity, mitigations, references, detection, tools e tactic.

Cadeia

entry, techniques, difficulty, timeframe, impact e steps.

Grafo

nodes, edges direcionadas e stats. Cada aresta relaciona as cadeias que a originaram.

06 · Referência

Endpoints

Os exemplos usam a base http://localhost:8080. Respostas de erro seguem { "error": "...", "message": "..." }.

Catálogo

GET/api/health

Verifica se o serviço está disponível.

curl http://localhost:8080/api/health
GET/api/meta

Retorna versão, estatísticas, STIX e catálogo de rotas.

GET/api/tactics · /api/tactics/:id

Lista táticas ou detalha uma tática com suas técnicas. Filtro: q.

curl "http://localhost:8080/api/tactics?q=recon"
curl http://localhost:8080/api/tactics/TA-W01
GET/api/techniques · /api/techniques/:id

Lista e detalha técnicas. O detalhe inclui cadeias relacionadas e vizinhos.

curl "http://localhost:8080/api/techniques?severity=4&limit=10"
curl http://localhost:8080/api/techniques/W008
GET/api/chains · /api/chains/:id

Lista e detalha cadeias, incluindo entry, passos e mitigações.

curl "http://localhost:8080/api/chains?difficulty=Avancado"
curl http://localhost:8080/api/chains/CHAIN-004

Análise

GET/api/techniques/:id/chains

Lista as cadeias que contêm uma técnica.

GET/api/techniques/:id/neighbors

Retorna vizinhos de entrada e saída com detalhes.

GET/api/chains/:id/steps · /api/chains/:id/techniques

Retorna passos leves ou as técnicas completas usadas por uma cadeia.

GET/api/graph

Retorna nós, arestas e estatísticas para renderização em qualquer front-end.

GET/api/graph/path?from=&to=

Calcula o caminho mais curto entre duas técnicas usando BFS.

curl "http://localhost:8080/api/graph/path?from=W001&to=W022"
GET/api/graph/neighbors/:id

Retorna os ids dos vizinhos diretos de uma técnica.

GET/api/search?q=

Busca simultaneamente em técnicas, táticas e cadeias. Cada categoria retorna até 50 itens.

curl "http://localhost:8080/api/search?q=xss"

Exportações

GET/api/export/stix

Bundle STIX 2.1 completo. Técnicas viram attack-pattern e cadeias viram campaign, com ids determinísticos.

curl -H "Authorization: Bearer $KEY" -o arachne.stix.json http://localhost:8080/api/export/stix
GET/api/export/stix/chains/:id

Bundle STIX de uma cadeia e das técnicas/táticas relacionadas.

GET/api/export/csv/techniques · /chains · /steps

Exporta CSV RFC 4180 para planilhas, dashboards e correlação. Os arquivos sugeridos são techniques.csv, chains.csv e steps.csv.

07 · Operação

Integração com SIEM / SOC

Use o STIX completo para onboarding em MISP, OpenCTI, TheHive ou Elastic. Para enriquecimento em tempo real, consulte uma técnica a partir do id detectado no alerta:

curl -H "Authorization: Bearer $KEY" \
  http://localhost:8080/api/techniques/W008

A resposta inclui severidade, mitigações, detecção e cadeias relacionadas. Para um playbook acompanhar os próximos passos:

curl -H "Authorization: Bearer $KEY" \
  http://localhost:8080/api/chains/CHAIN-004/steps

Para threat hunting, use /api/graph/path para explicar como um atacante pode progredir entre duas técnicas. Faça cache no proxy quando apropriado, monitore /api/health e mantenha a API atrás de TLS.

08 · Diagnóstico

Códigos de erro

HTTPerrorQuando ocorre
400bad_requestParâmetros ausentes ou inválidos.
401unauthorizedChave ausente ou inválida.
404not_foundRecurso ou rota inexistente.
429rate_limitedLimite de requisições excedido.
500internal_errorErro interno inesperado.
{ "error": "not_found", "message": "Técnica W999 não encontrada." }

Referências: STIX 2.1, MITRE ATT&CK, RFC 4180 e RFC 4122. A documentação editável também está em API.md.