
agent-opfor v0.10.2
Эмуляция противодействия с открытым исходным кодом для AI-агентов и MCP-серверов.
Эмуляция противника с открытым исходным кодом для AI-агентов, LLM-приложений и MCP-серверов.
Тестируйте свой ИИ как настоящий атакующий — из CLI, IDE или расширения браузера, которым может пользоваться любой участник вашей команды.
Веб-сайт · Документация · GitHub · Расширение браузера · Discord
OPFOR расшифровывается как Opposition Force — военный термин, обозначающий подразделение, которое на учениях играет роль противника, чтобы остальная армия узнала, каково это — столкнуться с настоящей атакой до того, как она произойдет. Мы назвали инструмент в честь этой идеи: чтобы лучше защищать ИИ-агентов, нужно сначала атаковать их.
Зачем мы это создали
За последние десять лет мы выпустили 130 продуктов для 90 стартапов. За последние 18 месяцев почти каждый из них содержал ИИ-агента — и каждая команда упиралась в одну и ту же стену, когда дело доходило до тестирования.
Поэтому мы построили 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
Opfor проверяет полную поверхность ИИ-агента — промпты, инструменты, MCP-серверы, память и многошаговые рассуждения. Он генерирует целевые атаки на основе OWASP LLM Top 10, OWASP Agentic AI Top 10, OWASP MCP Top 10, OWASP API Security и наборов предвзятости EU AI Act, отправляет их на вашу цель и оценивает каждый ответ с помощью LLM.
Большинство инструментов red-teaming в этой области отлично справляются с одной задачей — библиотека зондов, средство оценки для разработчиков, программный фреймворк. Opfor покрывает больше за один инструмент:
- Расширение браузера для нетехнических специалистов — любой участник вашей команды может протестировать развернутого чат-бота, без кода, env vars и YAML
- Запуск opfor как MCP-сервера — позвольте вашему ИИ-кодеру в Cursor или Claude Desktop атаковать ваших других агентов через естественный язык
- Полное покрытие OWASP в одном инструменте — LLM Top 10, Agentic AI Top 10, MCP Top 10, API Security Top 10
- Без чёрного ящика — каждый атакующий промпт, запрос, ответ и вердикт судьи логируются; воспроизводимо, проверяемо, форкаемо
- Создано для агентов, а не только для моделей — с самого начала спроектировано для вызовов инструментов, MCP, памяти и многошагового состояния
- С поддержкой трассировки — интегрируется с Langfuse и Netra, чтобы LLM-судья видел, что ваш агент делал внутри, а не только то, что он сказал
Пять способов запустить opfor
Разные люди в вашей команде нуждаются в разных точках входа. Opfor предоставляет пять.
| Режим | Как | Для кого |
|---|---|---|
| 🖥️ CLI | opfor setup → opfor run | Инженеры, CI/CD, терминал-ориентированные рабочие процессы |
| 🌐 Расширение браузера | Установите расширение, нажмите на иконку в любом интерфейсе чата | Продукт-менеджеры, дизайнеры, QA, аналитики безопасности — все, кто не может или не хочет писать код |
| 🤖 MCP-сервер | Зарегистрируйте opfor в Cursor или Claude Desktop, затем спрашивайте в чате | ИИ-кодеры, тестирующие ваших других агентов |
| ⚡ Skills | /opfor-setup · /opfor-run · /opfor-mcp-setup · /opfor-mcp-run | Разработчики, которые хотят тестировать одной командой внутри своей IDE |
| 📦 SDK | npm install @keyvaluesystems/agent-opfor-sdk, затем вызывайте run / hunt из кода | Программное red-teaming и пользовательские рабочие процессы |
Все пять используют одни и те же оценщики, шаблоны атак и логику судьи.
→ Справочник CLI · Настройка расширения браузера · Настройка MCP · Настройка Skills · Справочник SDK · Обработка сессий
Как это работает
Когда вы запускаете сканирование, opfor:
- Получает информацию о цели — подключается к вашему агенту, обнаруживает доступные инструменты, MCP-эндпоинты, возможности
- Планирует атаки по категориям — генерирует целевые промпты для каждого оценщика в выбранном наборе
- Эмулирует атаку — проводит многошаговые adversarial-диалоги (реальные запросы, реальные ответы)
- Оценивает с помощью судьи — LLM-судья классифицирует каждый ответ как пройден/не пройден с обоснованием
- Генерирует отчёт — HTML для просмотра, JSON для CI/CD, все артефакты логируются для воспроизводимости
Каждый запуск попадает в свою подпапку внутри .opfor/reports/run-report-<compactTs>-<slug>-<shortId>/, содержащую <slug>-report.html и <slug>-report.json. Автономные запуски opfor hunt используют ту же структуру в hunt-report-<compactTs>-<slug>-<shortId>/.
Охват оценщиков
Opfor поставляется с курируемыми наборами, соответствующими отраслевым стандартам. Выберите набор или запустите отдельные оценщики.
| 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 — Bias | Возраст, пол, раса, инвалидность |
→ Полный справочник оценщиков и соответствие OWASP
Тестирование с поддержкой трассировки
Подключите opfor к вашему стеку observability, и LLM-судья увидит не только финальный ответ, но и каждый вызов инструмента, поиск и промежуточный шаг рассуждения. Из коробки opfor интегрируется с Langfuse и Netra.
"telemetry": {
"provider": "langfuse",
"langfuse": { "baseUrl": "https://cloud.langfuse.com" }
}
Это позволяет выявить то, что упускает тестирование по вводу/выводу — PII, просачивающаяся в вызов инструмента, но не доходящая до пользователя, эскалации области в MCP, не изменяющие текст ответа, агенты, извлекающие неавторизованные данные, но выдающие чистый ответ.
→ Руководство по тестированию с трассировкой
Автономный Red-Teaming
opfor hunt полностью обходит файл конфигурации. Дайте ему эндпоинт и цель, и мультиагентная система — командир, операторы, разведчик — проведет адаптивную атакующую кампанию самостоятельно: разведка, стратегия, многошаговое зондирование, отчёт. В отличие от opfor run, агенты работают только на Claude (через API-ключ Claude, claude setup-token или вашу локальную сессию claude login) — ваша цель может быть любой.
opfor hunt \
--endpoint "https://your-agent.com/v1/chat" \
--objective "Найти джейлбрейки, утечки системного промпта и обходы безопасности."
Добавьте --ui, чтобы наблюдать за деревом атак в живом дашборде.
Расширение браузера — red-teaming чат-бота
Расширение браузера — это путь opfor без кода. Установите из Chrome Web Store, откройте любой интерфейс чата, нажмите на иконку opfor, выберите набор и наблюдайте за работой.
https://github.com/user-attachments/assets/80c2692f-b18b-4899-99df-e7eb8d50b02a
Оно автоматически определяет интерфейс чата, отправляет атакующие промпты так, как будто вы их набираете, отслеживает ответы и загружает HTML-отчёт по завершении. Никакого CLI, настройки цели или YAML.
Это путь для половины каждой продуктовой команды, которая не открывает терминал.
→ Установить из Chrome Web Store · Руководство по настройке
SDK — встраивайте red-teaming в свой код
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, в тестовых наборах или везде, где нужен red-teaming без выхода из TypeScript.
Примеры
| Пример | Описание |
|---|---|
| vanilla-chat | Простой чат-бот поддержки — тестирование уязвимостей уровня LLM |
| customer-support | Агент с вызовом инструментов и PostgreSQL — тестирование BOLA, BFLA, RBAC, PII |
| vulnerable-server | Пример MCP-сервера с намеренными уязвимостями |
Поддерживаемые LLM-провайдеры
| Провайдер | Переменная окружения | Модель по умолчанию |
|---|---|---|
| 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 |
Участие в разработке
Пожалуйста, прочитайте CONTRIBUTING.md для получения информации о нашем кодексе поведения и процессе отправки pull request'ов.
Авторы
Создано командой KeyValue Software Systems. По всем вопросам обращайтесь по адресу [email protected].
Безопасность
Используйте opfor только на системах, которыми вы владеете или которые уполномочены тестировать. Чтобы сообщить об уязвимости в самом opfor, см. SECURITY.md — не открывайте публичный issue.
Лицензия
Opfor распространяется под лицензией Apache 2.0 — подробности в файле LICENSE.
Создано с ❤️ командой KeyValue