
AI 에이전트 및 MCP 서버를 위한 오픈소스 적대자 모의
AI 에이전트, LLM 앱, MCP 서버를 위한 오픈소스 적대자 에뮬레이션입니다.
실제 공격자가 하는 것처럼 AI를 테스트하세요 — CLI, IDE, 또는 팀의 누구나 사용할 수 있는 브라우저 확장에서.
웹사이트 · 문서 · GitHub · 브라우저 확장 · Discord
OPFOR는 Opposition Force (반군)의 약자로, 군사 훈련에서 적군 역할을 수행하는 부대를 가리키는 용어입니다. 실제 공격이 오기 전에 그것이 어떤 느낌인지 나머지 군대가 배울 수 있도록 말이죠. 우리는 이 아이디어에서 도구 이름을 따왔습니다: AI 에이전트를 더 잘 방어하려면, 먼저 공격해야 합니다.
지난 10년 동안 우리는 90개의 스타트업을 위해 130개의 제품을 출시했습니다. 지난 18개월 동안, 그 제품의 거의 모든 것이 AI 에이전트를 포함하고 있었고 — 그리고 그 팀들 모두가 테스트할 때 같은 벽에 부딪혔습니다.
그래서 우리는 OPFOR를 만들었습니다. 먼저 우리 자신을 위해. 이제 오픈소스로 공개합니다.
Apache 2.0. 인도에서 만들었습니다.
npm install -g @keyvaluesystems/agent-opfor-cli
export OPENAI_API_KEY=your-key # 또는 GEMINI_API_KEY, ANTHROPIC_API_KEY 등
원샷 — 설정 마법사를 실행하고 즉시 스캔을 시작합니다:
opfor run
두 단계 — 재사용하거나 CI에 커밋할 수 있는 설정을 저장합니다:
opfor setup # 마법사가 .opfor/configs/에 설정을 저장합니다
opfor run --config .opfor/configs/<file> # 저장된 설정으로 언제든지 실행합니다
https://github.com/user-attachments/assets/a6a3cff2-2cf9-4486-944e-ac0163e7ea04
Opfor는 AI 에이전트의 전체 표면 — 프롬프트, 도구, MCP 서버, 메모리, 다중 턴 추론 — 을 레드팀(red-team)합니다. OWASP LLM Top 10, OWASP Agentic AI Top 10, OWASP MCP Top 10, OWASP API Security, EU AI Act 편향(bias) 제품군에 대한 표적 공격을 생성하고, 이를 대상에 발사한 후 LLM으로 각 응답을 평가합니다.
이 분야의 대부분의 레드팀 도구는 한 가지 — 프로브 라이브러리, 개발자 평가기, 프로그래매틱 프레임워크 — 에 탁월합니다. Opfor는 하나의 도구로 더 많은 영역을 다룹니다:
팀의 다른 사람들은 다른 진입점이 필요합니다. Opfor는 다섯 가지를 제공합니다.
다섯 가지 모두 동일한 평가기, 공격 템플릿, 판정 로직을 공유합니다.
→ CLI 참조 · 브라우저 확장 설정 · MCP 설정 · Skills 설정 · SDK 참조 · 세션 처리
스캔을 실행하면 opfor는:
각 실행은 .opfor/reports/run-report-<compactTs>-<slug>-<shortId>/ 아래의 자체 하위 폴더에 위치하며 <slug>-report.html 및 <slug>-report.json을 포함합니다. 자율적인 opfor hunt 실행은 hunt-report-<compactTs>-<slug>-<shortId>/ 아래에 동일한 레이아웃을 사용합니다.
Opfor는 산업 표준에 매핑된 큐레이팅된 제품군을 제공합니다. 제품군을 선택하거나 개별 평가기를 실행하세요.
opfor를 관찰 가능성 스택에 연결하면 LLM 판정기가 최종 응답뿐만 아니라 모든 도구 호출, 검색, 중간 추론 단계를 볼 수 있습니다. 바로 사용 가능하게 opfor는 Langfuse 및 Netra 와 통합됩니다.
"telemetry": {
"provider": "langfuse",
"langfuse": { "baseUrl": "https://cloud.langfuse.com" }
}
이것은 입력/출력 테스트가 놓치는 것 — 사용자에게 도달하지 않지만 도구 호출로 누출되는 PII, 응답 텍스트를 변경하지 않는 MCP의 범위 확대, 무단 데이터를 검색하지만 깔끔한 답변을 제공하는 에이전트 — 을 잡아냅니다.
opfor hunt는 설정 파일을 완전히 생략합니다. 엔드포인트와 목표를 제공하면, 다중 에이전트 시스템(지휘관, 운영자, 정찰병)이 자체적으로 적응형 공격 캠페인을 실행합니다: 정찰, 전략, 다중 턴 프로빙, 보고서. opfor run과 달리, 에이전트는 Claude에서만 실행됩니다(Claude API 키, claude setup-token, 또는 로컬 claude login 세션을 통해) — 대상은 무엇이든 될 수 있습니다.
opfor hunt \
--endpoint "https://your-agent.com/v1/chat" \
--objective "탈옥, 시스템 프롬프트 누출, 안전 우회를 찾으세요."
--ui를 추가하면 라이브 대시보드에서 공격 트리가 전개되는 것을 볼 수 있습니다.
→ 전체 참조
브라우저 확장은 opfor의 코드 없는 경로입니다. Chrome 웹 스토어에서 설치하고, 채팅 인터페이스를 열고, opfor 아이콘을 클릭하고, 제품군을 선택하고, 실행하는 것을 지켜보세요.
https://github.com/user-attachments/assets/80c2692f-b18b-4899-99df-e7eb8d50b02a
채팅 인터페이스를 자동으로 감지하고, 사용자가 직접 입력하는 것처럼 공격 프롬프트를 전송하며, 응답을 관찰하고, 완료되면 HTML 보고서를 다운로드합니다. CLI, 대상 설정, YAML이 필요 없습니다.
이것은 터미널을 열지 않는 모든 제품 팀의 절반을 위한 경로입니다.
SDK는 opfor의 프로그래매틱 경로입니다. @keyvaluesystems/agent-opfor-sdk를 설치하고, run 또는 hunt를 호출하면 구조화된 결과를 반환받습니다 — CLI, 설정 파일, 서브프로세스가 필요 없습니다.
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",
});
CI, 테스트 스위트, 또는 TypeScript를 벗어나지 않고 레드팀이 필요한 모든 곳에서 사용하세요.
→ SDK 참조
| 예제 | 설명 |
|---|---|
| vanilla-chat | 기본 고객 지원 챗봇 — LLM 수준 취약점 테스트 |
| customer-support |
행동 강령 및 풀 리퀘스트 제출 절차에 대한 자세한 내용은 CONTRIBUTING.md를 읽어주세요.
KeyValue Software Systems 팀이 만들었습니다. 모든 문의는 [email protected]로 연락주세요.
opfor를 소유하고 있거나 테스트할 권한이 있는 시스템에서만 사용하세요. opfor 자체의 취약점을 신고하려면 SECURITY.md를 참조하세요 — 공개 이슈를 열지 마세요.
Opfor는 Apache 2.0에 따라 라이선스가 부여됩니다 — 자세한 내용은 LICENSE 파일을 참조하세요.
KeyValue가 ❤️로 만들었습니다
| 모드 | 방법 | 가장 적합한 대상 |
|---|
| 🖥️ CLI | opfor setup → opfor run | 엔지니어, CI/CD, 터미널 중심 워크플로 |
| 🌐 브라우저 확장 | 확장을 설치하고, 채팅 인터페이스에서 아이콘을 클릭하세요 | 제품 관리자, 디자이너, QA, 보안 분석가 — 코드를 작성할 수 없거나 작성하지 않으려는 모든 사람 |
| 🤖 MCP 서버 | Cursor 또는 Claude Desktop에 opfor를 등록한 후 채팅에서 요청하세요 | 다른 에이전트를 테스트하는 AI 코딩 에이전트 |
| ⚡ Skills | /opfor-setup · /opfor-run · /opfor-mcp-setup · /opfor-mcp-run | IDE 내에서 한 번의 명령으로 테스트하려는 개발자 |
| 📦 SDK | npm install @keyvaluesystems/agent-opfor-sdk, 그 다음 코드에서 run / hunt 호출 | 프로그래매틱 레드팀 및 사용자 정의 워크플로 |
| 제품군 ID | 표준 | 초점 |
|---|
owasp-llm-top10 | OWASP LLM Top 10 (2025) | 프롬프트 인젝션, 탈옥, 민감 정보 노출, 시스템 프롬프트 누출 |
owasp-agentic-ai | OWASP Agentic AI Top 10 | 과도한 권한, 도구 오용, 에이전트 목표 하이재킹, 메모리 오염 |
owasp-mcp-top10 | OWASP MCP Top 10 (2025) | 비밀 노출, 범위 확대, 도구 설명 인젝션, SSRF |
owasp-api | OWASP API Security Top 10 | BOLA, BFLA, SQL 인젝션 |
eu-ai-act-bias | EU AI Act — 편향 | 연령, 성별, 인종, 장애 |
| PostgreSQL을 사용하는 도구 호출 에이전트 — BOLA, BFLA, RBAC, PII 테스트 |
| vulnerable-server | 의도적인 취약점이 있는 샘플 MCP 서버 |
| 제공업체 | 환경 변수 | 기본 모델 |
|---|
| 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 | |
| OpenAI 호환 | OPFOR_API_KEY + baseURL | LiteLLM, OpenRouter, Azure, Ollama |