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.
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.
ARACHNE_API_KEY e coloque o serviço atrás de TLS e um gateway.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ável | Padrão | Descrição |
|---|---|---|
| ARACHNE_PORT | 8080 | Porta TCP do servidor. |
| ARACHNE_API_KEY | vazio | Chave opcional para autenticar as rotas. |
| ARACHNE_RATE_LIMIT | 120 | Requisições por janela e por IP. |
| ARACHNE_RATE_WINDOW | 60000 | Janela em milissegundos. |
ARACHNE_PORT=9000 ARACHNE_API_KEY="sua-chave" node server.js
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.
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.
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.
Endpoints
Os exemplos usam a base http://localhost:8080. Respostas de erro seguem { "error": "...", "message": "..." }.
Catálogo
Verifica se o serviço está disponível.
curl http://localhost:8080/api/health
Retorna versão, estatísticas, STIX e catálogo de rotas.
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
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
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
Lista as cadeias que contêm uma técnica.
Retorna vizinhos de entrada e saída com detalhes.
Retorna passos leves ou as técnicas completas usadas por uma cadeia.
Retorna nós, arestas e estatísticas para renderização em qualquer front-end.
Calcula o caminho mais curto entre duas técnicas usando BFS.
curl "http://localhost:8080/api/graph/path?from=W001&to=W022"
Retorna os ids dos vizinhos diretos de uma técnica.
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
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
Bundle STIX de uma cadeia e das técnicas/táticas relacionadas.
Exporta CSV RFC 4180 para planilhas, dashboards e correlação. Os arquivos sugeridos são techniques.csv, chains.csv e steps.csv.
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.
Códigos de erro
| HTTP | error | Quando ocorre |
|---|---|---|
| 400 | bad_request | Parâmetros ausentes ou inválidos. |
| 401 | unauthorized | Chave ausente ou inválida. |
| 404 | not_found | Recurso ou rota inexistente. |
| 429 | rate_limited | Limite de requisições excedido. |
| 500 | internal_error | Erro 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.