
Emulação de adversário de código aberto para agentes de IA e servidores MCP.
Emulação adversária open‑source para agentes de IA, aplicações LLM e servidores MCP.
Teste sua IA como um atacante real faria — a partir do terminal, da sua IDE ou de uma extensão de navegador que qualquer membro da equipa pode usar.
Site · Documentação · GitHub · Extensão para navegador · Discord
OPFOR é a abreviatura de Opposition Force — um termo militar para a unidade que faz o papel de inimigo nos treinos, para que o resto do exército aprenda como são os ataques reais antes que eles aconteçam. Nomeámos a ferramenta com essa ideia em mente: para defender melhor os agentes de IA, primeiro tens de os atacar.
Entregámos 130 produtos para 90 startups nos últimos dez anos. Nos últimos 18 meses, quase todos tinham um agente de IA — e todas essas equipas bateram no mesmo muro ao testá-lo.
Por isso construímos o OPFOR. Primeiro para nós. Agora open source.
Apache 2.0. Feito na Índia.
npm install -g @keyvaluesystems/agent-opfor-cli
export OPENAI_API_KEY=your-key # or GEMINI_API_KEY, ANTHROPIC_API_KEY, etc.
Passo único — executa o assistente de configuração e inicia imediatamente a verificação:
opfor run
Dois passos — guarda uma configuração que podes reutilizar ou enviar para CI:
opfor setup # wizard saves a config to .opfor/configs/
opfor run --config .opfor/configs/<file> # run any time against the saved config
https://github.com/user-attachments/assets/a6a3cff2-2cf9-4486-944e-ac0163e7ea04
O opfor testa a superfície completa de agentes de IA — prompts, ferramentas, servidores MCP, memória e raciocínio multi‑turno. Gera ataques direcionados para OWASP LLM Top 10, OWASP Agentic AI Top 10, OWASP MCP Top 10, OWASP API Security e conjuntos de preconceito da EU AI Act, dispara‑os contra o teu alvo e avalia cada resposta com um LLM.
A maioria das ferramentas de red‑team neste espaço é excelente numa coisa — uma biblioteca de sondas, um avaliador para programadores, um framework programático. O Opfor cobre mais terreno com uma única ferramenta:
Diferentes pessoas na tua equipa precisam de diferentes pontos de entrada. O Opfor fornece cinco.
Todos os cinco partilham os mesmos avaliadores, modelos de ataque e lógica de juiz.
→ Referência do CLI · Configuração da extensão para navegador · Configuração do MCP · Configuração de Skills · Referência do SDK · Gestão de sessões
Quando executas uma verificação, o opfor:
Cada execução fica na sua própria sub‑pasta em .opfor/reports/run-report-<compactTs>-<slug>-<shortId>/ contendo <slug>-report.html e <slug>-report.json. As execuções autónomas opfor hunt usam a mesma estrutura em hunt-report-<compactTs>-<slug>-<shortId>/.
O Opfor inclui conjuntos selecionados que mapeiam os padrões da indústria. Escolhe um conjunto ou executa avaliadores individuais.
→ Referência completa dos avaliadores e mapeamento OWASP
Liga o opfor à tua stack de observabilidade e o juiz LLM vê não só a resposta final — mas cada chamada de ferramenta, cada recuperação e cada passo intermédio de raciocínio. Fora da caixa, o opfor integra‑se com Langfuse e Netra .
"telemetry": {
"provider": "langfuse",
"langfuse": { "baseUrl": "https://cloud.langfuse.com" }
}
Isto capta o que os testes de entrada/saída perdem — PII que vaza para uma chamada de ferramenta mas nunca chega ao utilizador, escaladas de âmbito no MCP que não alteram o texto da resposta, agentes que recuperam dados não autorizados mas produzem uma resposta limpa.
opfor hunt salta completamente o ficheiro de configuração. Dá‑lhe um endpoint e um objetivo, e um sistema multi‑agente — comandante, operadores, batedor — executa uma campanha de ataque adaptativa por conta própria: reconhecimento, estratégia, sondagens multi‑turno, relatório. Ao contrário de opfor run, os agentes executam apenas no Claude (através de uma chave API do Claude, claude setup‑token ou da tua sessão local claude login) — o teu alvo pode ser qualquer coisa.
opfor hunt \
--endpoint "https://your-agent.com/v1/chat" \
--objective "Encontre jailbreaks, fuga do prompt do sistema e desvios de segurança."
Adiciona --ui para ver a árvore de ataque a desenrolar‑se num painel ao vivo.
A extensão de navegador é o caminho sem código do opfor. Instala a partir da Chrome Web Store, abre qualquer interface de chat, clica no ícone do opfor, escolhe um conjunto e vê‑o executar.
https://github.com/user-attachments/assets/80c2692f-b18b-4899-99df-e7eb8d50b02a
Ela deteta automaticamente a interface de chat, envia prompts de ataque como se tu os estivesses a escrever, observa as respostas e descarrega um relatório HTML quando termina. Sem CLI, sem configuração do alvo, sem YAML.
Este é o caminho para a metade de cada equipa de produto que não abre um terminal.
→ Instalar a partir da Chrome Web Store · Guia de configuração
O SDK é o caminho programático do opfor. Instala @keyvaluesystems/agent-opfor-sdk, chama run ou hunt , e obtém resultados estruturados de volta — sem CLI, sem ficheiros de configuração, sem subprocessos.
import { Opfor } from "@keyvaluesystems/agent-opfor-sdk";
const opfor = new Opfor({ apiKey: process.env.ANTHROPIC_API_KEY });
const results = await opfor.run({
target: { url: "https://api.example.com/chat" },
suite: "owasp-llm-top10",
});
Usa‑o em CI, em conjuntos de teste, ou em qualquer sítio onde precises de red‑teaming sem sair do TypeScript.
| Exemplo | Descrição |
|---|---|
| vanilla-chat | Chatbot simples de suporte ao cliente — testa vulnerabilidades ao nível do LLM |
Lê CONTRIBUTING.md para detalhes sobre o nosso código de conduta e o processo para submeter pull requests.
Construído pela equipa da KeyValue Software Systems. Contacta [email protected] para qualquer questão.
Usa o opfor apenas em sistemas que possuas ou que tenhas autorização para testar. Para reportar uma vulnerabilidade no próprio opfor, vê SECURITY.md — não abras um issue público.
O Opfor está licenciado sob Apache 2.0 — consulta o ficheiro LICENSE para mais detalhes.
Construído com ❤️ pela KeyValue
| Modo | Como | Melhor para |
|---|
| 🖥️ CLI | opfor setup → opfor run | Engenheiros, CI/CD, fluxos centrados no terminal |
| 🌐 Extensão de navegador | Instala a extensão, clica no ícone em qualquer interface de chat | Gestores de produto, designers, QA, analistas de segurança — qualquer um que não consiga ou não queira escrever código |
| 🤖 Servidor MCP | Regista o opfor no Cursor ou Claude Desktop, depois pergunta no chat | Agentes de IA que programam e testam os teus outros agentes |
| ⚡ Skills | /opfor-setup · /opfor-run · /opfor-mcp-setup · /opfor-mcp-run | Programadores que querem testes com um comando dentro da IDE |
| 📦 SDK | npm install @keyvaluesystems/agent-opfor-sdk, depois chama run / hunt a partir do teu código | Red‑teaming programático e fluxos personalizados |
| ID do Conjunto | Norma | Foco |
|---|
owasp-llm-top10 | OWASP LLM Top 10 (2025) | Injeção de prompt, jailbreaks, divulgação de informação sensível, fuga do prompt do sistema |
owasp-agentic-ai | OWASP Agentic AI Top 10 | Agência excessiva, uso indevido de ferramentas, sequestro do objetivo do agente, envenenamento da memória |
owasp-mcp-top10 | OWASP MCP Top 10 (2025) | Exposição de segredos, escalada de âmbito, injeção na descrição da ferramenta, SSRF |
owasp-api | OWASP API Security Top 10 | BOLA, BFLA, SQL injection |
eu-ai-act-bias | EU AI Act — Preconceito | Idade, género, raça, deficiência |
| customer-support | Agente com chamadas de ferramentas e PostgreSQL — testa BOLA, BFLA, RBAC, PII |
| vulnerable-server | Servidor MCP de exemplo com vulnerabilidades intencionais |
| Fornecedor | Variável de ambiente | Modelo predefinido |
|---|
| Groq | GROQ_API_KEY | llama-3.3-70b-versatile |
| OpenAI | OPENAI_API_KEY | gpt-4o-mini |
| Anthropic | ANTHROPIC_API_KEY | claude-3-5-haiku-20241022 |
GOOGLE_GENERATIVE_AI_API_KEY | gemini-2.0-flash | |
| Compatível com OpenAI | OPFOR_API_KEY + baseURL | LiteLLM, OpenRouter, Azure, Ollama |