Wallbreaker

Exploitation активный

Терминальный харнесс с открытым исходным кодом для авторизованного red-team тестирования систем на базе языковых моделей с несколькими научно обоснованными сценариями оценки.


Установка
git clone https://github.com/JailbrokenAI/wallbreaker.git
cd wallbreaker
python -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[dev,dashboard]"
cp config.example.toml config.toml
показать оригинал переведено ИИ

Wallbreaker: Инструмент для красной команды ИИ

██╗    ██╗ █████╗ ██╗     ██╗     ██████╗ ██████╗ ███████╗ █████╗ ██╗  ██╗███████╗██████╗
██║    ██║██╔══██╗██║     ██║     ██╔══██╗██╔══██╗██╔════╝██╔══██╗██║ ██╔╝██╔════╝██╔══██╗
██║ █╗ ██║███████║██║     ██║     ██████╔╝██████╔╝█████╗  ███████║█████╔╝ █████╗  ██████╔╝
██║███╗██║██╔══██║██║     ██║     ██╔══██╗██╔══██╗██╔══╝  ██╔══██║██╔═██╗ ██╔══╝  ██╔══██╗
╚███╔███╔╝██║  ██║███████╗███████╗██████╔╝██║  ██║███████╗██║  ██║██║  ██╗███████╗██║  ██║
 ╚══╝╚══╝ ╚═╝  ╚═╝╚══════╝╚══════╝╚═════╝ ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝
        break the wall · not the rules of engagement    ⚔  authorized testing only

Терминал в стиле Claude Code, созданный для красной команды LLM (команда CLI: wallbreaker). Вы общаетесь с ним как с Claude Code; он рассуждает и вызывает инструменты в цикле. Бэкенд полностью настраиваемый, поэтому он работает на OpenRouter, плане кодирования Z.AI GLM, локальном CLI Claude Code, локальном сервере или любом API, совместимом с OpenAI/Anthropic (включая сторонние прокси через bearer-аутентификацию). Он поставляется с мощным набором инструментов для красной команды: движком трансформаций Parseltongue, библиотекой джейлбрейков L1B3RT4S, бенчмарком поведения HarmBench, автоматизированными атаками (PAIR/TAP, Crescendo, best-of-N), автором персон с нуля, имитацией целевых моделей в родном формате на основе утекшего корпуса системных промптов, каналом мультимодальных атак с редактированием изображений, судьёй на базе LLM и проверкой надёжности.

Только для авторизованного тестирования безопасности.

Основные возможности

  • Двухпротокольный слой провайдеров: OpenAI Chat Completions + Anthropic Messages, любой base_url/модель. Захватывает каналы рассуждений/мышления; преобразует сетевые ошибки в чистые сбои (без падений при тайм-ауте).
  • Автономный цикл атаки: продолжает мутировать и повторно запускать атаку, пока не добьётся успеха (finish() завершает работу инструмента) или не потребуется вмешательство оператора (ask_operator()).
  • Стандартизированные, беспристрастные промпты: берёт тестовые батареи из HarmBench (400 типов поведения, 7 категорий) вместо вручную подобранных примеров.
  • Надёжность превыше всего: validate повторно запускает атаку N раз для получения реального показателя успеха; одноразовый COMPLIED никогда не называется "обходом". Закрепите бэкенд OpenRouter для воспроизводимости.
  • Parseltongue: 59 цепочечных трансформаций (кодировки, юникодные шрифты, стеганография, омоглифы, нулевая ширина, контрабанда тегов, биекция, бессмыслица…) плюс mutate (антиклассификатор LLM).
  • P4RS3LT0NGV3 через MCP: опциональный MCP-сервер оборачивает вышестоящий Parseltongue от elder-plinius: все 222 трансформации (45 шифров, рунические/брайлевские/символьные скрипты, все кодировки, стеганография) + универсальный декодер, доступные как инструменты parsel_*, которыми напрямую управляет агент. Любой настроенный [[mcp.servers]] проксируется в реестр инструментов.
  • Конвергенция в единый артефакт: /sysprompt + system_sweep + optimize_universal сходятся к ОДНОМУ универсальному системному промпту; они не могут разделиться на варианты наборов инструментов.
  • Автор персон (author_persona): создаёт полноценный джейлбрейк системного промпта преданной персоны с нуля по кодифицированному методу ENI (черновик → самокритика → валидация → уточнение → дистилляция), автоматически выбирая авторитетный или лимерентный регистр из предметной области цели.
  • Имитация в родном формате: инструменты sysprompt_* ищут в утекшем корпусе системных промптов продуктов (Claude/GPT/Gemini/Grok…) и передают автору персоны собственный раздел/заголовок целевой модели, чтобы полезная нагрузка говорила на родном языке жертвы.
  • Мультимодальный канал изображений: query_image_edit отправляет изображение + инструкцию на цель редактирования изображений и оценивает результат с помощью визуального судьи; image_chain запускает цепочку джейлбрейков, разлагая отвергнутое изображение на лестницу безобидных шагов редактирования. Плюс трансформации фрейминга Tier-3 T2I.
  • Подключаемые мозги атакующего: API OpenAI/Anthropic или локальный CLI Claude Code (protocol = "claude-code", без ключей) в качестве мозга красной команды. Сторонние прокси Anthropic работают через auth_style = "bearer".
  • Расширенный арсенал атак (этот форк): cipherchat (CipherChat/SelfCipher, ICLR 2024) обучает цель шифру в канале, затем отправляет зашифрованный текст; skeleton_key (Russinovich 2024) переформулирует защитный механизм как поправку к политике с меткой "Warning:"; persuasion_attack (PAP, Zeng 2024) переписывает запрос через 16 стратегий убеждения одновременно и ранжирует обходы; drattack (Li 2024) разлагает цель на безобидные фрагменты, затем собирает их обратно; ica (Wei 2023) упаковывает N вредоносных демонстраций Q/A в один контекстный ход. В предварительных измерениях показывает 60% ASR на deepseek/deepseek-chat — см. CHANGELOG.md.

Клонирование репозитория

git clone https://github.com/JailbrokenAI/wallbreaker

cd wallbreaker 

Установка

python -m venv .venv
. .venv/bin/activate
pip install -e ".[dev]"        # add [barcodes] for the QR/barcode tool

Конфигурация

cp config.example.toml config.toml   # add your keys (config.toml is gitignored)
wallbreaker check                            # validate it: profiles, keys, target, judge

Профили задают мозг атакующего; [target] — это модель под атакой; [judge] оценивает ответы. Ключи могут быть встроены или взяты из переменных окружения. Конечные точки OpenRouter поддерживают закрепление provider и переопределение timeout.

default_profile = "glm"

[profiles.glm]
protocol = "openai"
base_url = "https://api.z.ai/api/paas/v4"
api_key  = "..."
model    = "glm-4.6"

[target]
protocol = "openai"
base_url = "https://openrouter.ai/api/v1"
api_key  = "sk-or-..."
model    = "deepseek/deepseek-v4-pro"
# provider = "WandB"   # pin the backend for reproducible results
# timeout  = 60        # seconds (default 120)

[judge]
protocol = "openai"
base_url = "https://openrouter.ai/api/v1"
api_key  = "sk-or-..."
model    = "openai/gpt-4o-mini"

Варианты мозга атакующего:

# Local Claude Code CLI as the attacker brain, keyless (the CLI self-auths).
[profiles.claude-code]
protocol = "claude-code"
model    = "sonnet"
# system_prompt_file = "operator.md"   # optional: leads the harness tool doctrine

# Third-party Anthropic-compatible proxy that wants an OpenAI-style bearer token.
[profiles.proxy]
protocol   = "anthropic"
base_url   = "https://your-proxy.example"     # host root; provider appends /v1/messages
api_key    = "..."
model      = "claude-sonnet-4"
auth_style = "bearer"                          # Authorization: Bearer <key> (default: x-api-key)

Движок P4RS3LT0NGV3 (нативный)

Полный вышестоящий движок P4RS3LT0NGV3 (222 трансформации в 11 категориях плюс универсальный

универсальный декодер) интегрирован напрямую в реестр агентов как нативные инструменты parsel_* (parsel_list/search/inspect/transform/chain/decode/guide/craft). MCP-сервер или конфигурационный блок не требуются; инструменты появляются автоматически после подключения репозитория и наличия Node.js в PATH. Однократная настройка:

wallbreaker parsel update        # git-clone elder-plinius/P4RS3LT0NGV3 into library/ (needs Node.js)
wallbreaker parsel list          # sanity-check: prints all 222 transforms by category

Если Node отсутствует, чисто Python-инструмент parseltongue (50+ трансформаций) остаётся в качестве офлайн-запасного варианта. Переопределите путь к подключённому репозиторию с помощью PARSEL_REPO=/абс/путь/к/P4RS3LT0NGV3.

MCP-серверы (опционально)

Харнесс также является MCP-клиентом: каждый объявленный [[mcp.servers]] запускается через stdio при старте, а его инструменты проксируются в реестр. Тот же движок P4RS3LT0NGV3 доступен как MCP-сервер, если вы предпочитаете запускать его вне процесса (он повторно регистрирует те же имена parsel_* с идентичным поведением):

[[mcp.servers]]
name    = "parsel"
command = "python"
args    = ["-m", "p4rs3lt0ngv3_mcp"]
enabled = false                                       # native tools already cover this
# tool_prefix = "p_"                                  # optional namespace for the proxied tools
# env = { PARSEL_REPO = "/abs/path/to/P4RS3LT0NGV3" } # override the vendored repo location

Установка npm install или сборка не требуются; сервер управляет мостом Node в фоновом режиме. В TUI команды /parsel guide|list|search <запрос>|inspect <ключ> позволяют просматривать каталог. Сервер является самостоятельным MCP-сервером stdio, поэтому любой MCP-клиент (Claude Code, Cursor) может его использовать.

Запуск

wallbreaker                       # TUI on default_profile
wallbreaker --profile openrouter
wallbreaker --auto "objective..." # one-shot autonomous run
wallbreaker --resume              # reopen the autosaved session (survives a crash/Ctrl+C)

TUI автоматически сохраняет весь сеанс в sessions/autosave.json после каждого хода; --resume открывает его заново (или укажите конкретный файл сеанса: wallbreaker --resume mysession.json).

Выбор модели для атаки

/model меняет атакующую модель; /target — целевую.

/target anthropic/claude-3.7-sonnet   attack any model on the target endpoint
/target glm                           attack via a profile
/provider WandB                       pin the OpenRouter backend (reproducibility)

Поиск ОДНОГО универсального промпта (правильный способ)

Цель «один промпт для любой задачи» подразумевает единый фиксированный артефакт, а не набор инструментов.

/sysprompt set <one system prompt>    hold ONE fixed system prompt
/sysprompt test                       sweep it across the HarmBench cyber battery
/validate <task>                      re-fire 8x for the REAL success rate

Просмотрите, какие задачи не прошли → уточните один промпт → снова /sysprompt test. Единичный COMPLIED — это везение; validate покажет правду. Для варианта с пользовательским ходом используйте /template set … {request} + /template test.

Инструменты агента (/tools выводит их в реальном времени)

Инструмент Назначение
run_shell, read_file, write_file, edit_file создание/запуск/сохранение полезных нагрузок
parseltongue, parseltongue_catalog, mutate обфускация / переписывание для обхода классификаторов
parsel_* (нативные) полный движок P4RS3LT0NGV3: parsel_guide/list/search/inspect/transform/chain/decode: 222 трансформации + универсальный декодер. parsel_craft создаёт готовую к использованию полезную нагрузку (кодирует запрос через цепочку + оборачивает его в decode-and-comply / split-into-vars)
l1b3rt4s_*, eni_* библиотеки джейлбрейков: L1B3RT4S + коллекция персон ENI
author_persona создание полноценной преданной персоны системного промпта с нуля (метод ENI: черновик→критика→валидация→уточнение→дистилляция), автоматический выбор авторитетного/лимерического регистра в зависимости от домена цели
sysprompt_list, sysprompt_search, sysprompt_get, sysprompt_native просмотр/поиск по корпусу утекших системных промптов продуктов (Claude/GPT/Gemini/Grok…); sysprompt_native передаёт форматы секций/заголовков целевой модели автору персоны для имитации нативного стиля
harmbench, preset беспристрастный бенчмарк поведения, курированные шаблоны
query_target отправка запроса модели под тестом (с transforms=[...] для кодирования и отправки)
query_image_edit отправка входного изображения + инструкции на ИЗОБРАЖЕНИЕ-цель (modality='image') и оценка отредактированной картинки с помощью vision-судьи
image_chain Цепочка джейлбрейка: разложение отклонённого изображения на последовательность безобидных шагов редактирования и их поочерёдное выполнение
multi_fire прогон одной полезной нагрузки через множество кодировок (параллельно)
crescendo многоходовая эскалация
pair_attack PAIR/TAP: уточнение одной цели на основе отказов целевой модели
pair_sweep запуск цикла PAIR по всей батарее параллельно (максимальный ASR, пакетная обработка)
best_of_n пересемплирование N раз, сохранение обхода
many_shot многоходовый джейлбрейк: заполнение контекста ложными согласованными ходами, затем отправка
prefill прайминг ответа: подстановка начала ответа ассистента, чтобы он продолжал, а не отказывался
narrate рамка вымысла + прайминг в рамках истории (ролевая игра в стиле главы романа); лидирует в рейтинге
diff_fire A/B-тестирование двух полезных нагрузок на одной цели для определения влияния конкретного изменения на ASR
recommend_transforms анализ ~16 кодировок, ранжирование по обходу, синтез цепочки для тестирования
seed_sweep внедрение одного запроса через множество семян ENI+L1B3RT4S, ранжирование по обходу
fire_file отправка файла/семени В ТОЧНОСТИ (дословно, полной длины) в качестве системного промпта цели
adapt_seed атакующая LLM корректирует персону под конкретный отказ (не используйте для дистилляции)
---

| campaign | автоматически повышать уровень атаки в батарее HarmBench по лестнице техник, матрица покрытия | | leaderboard | ранжировать несколько профилей по показателю ASR на одной батарее (бенчмарк устойчивости) | | leak_scan | сканировать ответ на наличие секретов/PII/эха системного промпта (улики, а не вердикт) | | scan | матрица покрытия в стиле Garak (техники + зонды HarmBench) | | indirect_inject | инъекция в RAG/агенты через носители: документы, электронные письма, вывод инструментов | | system_sweep | проверка ОДНОГО системного промпта на батарее задач (многократная выборка) | | optimize_universal | градиентный подъём одного шаблона (пользовательский или slot='system') | | judge_response, validate | оценка ответа LLM-судьёй / измерение реального показателя успешности | | judge_selftest | калибровка оценщика на безобидных примерах перед доверием к ASR | | http_request, barcode | прямая доставка / кодирование QR-кодов и штрихкодов | | finish, ask_operator | завершение работы инструмента / пауза для оператора |

Slash-команды

/profile /target /provider /model /judge [model]   endpoints & grader
/auto /autoexit /rounds                            autonomous loop
/objective /template /sysprompt /validate /replay  campaign + reliability
/transforms /encode /diff /campaign /leaderboard   arsenal, auto-sweep & benchmark
/find /tools /preset /lib /parsel /eni /harmbench  search & libraries
/log /asr /stats /findings /repro /export /report  logging, scoreboard, repro, CI export
Ctrl+S report · Ctrl+Y copy payload · Ctrl+T stats · Ctrl+R repro · Ctrl+L clear

Логирование и отчёты

Каждый запрос, ответ и вердикт записываются в sessions/run-<ts>.jsonl. /findings выводит список обходов; /report [html] создаёт отчёт в формате markdown или стилизованного HTML; /repro [n] копирует пакет для воспроизведения; /export экспортирует структурированные данные в JSON; /session save|load сохраняет или загружает всю сессию (историю, цель, шаблон, системный промпт).

Безголовый режим / CI

Формируйте отчёты и контролируйте сборки прямо из лога запуска, без TUI. Аргумент лога необязателен: если его опустить (или передать директорию), будет использован самый новый sessions/run-*.jsonl:

wallbreaker report                       # markdown for the latest run, to stdout
wallbreaker report --html --out report.html
wallbreaker export --out findings.json   # structured findings JSON
wallbreaker export --fail-on-finding     # exit 2 if any bypass -> fails CI

Готовый к переименованию шаблон GitHub Actions для контроля находится в .github/workflows/redteam-gate.example.yml.

Тестирование

pytest -q

Веб-дашборд

Веб-дашборд поставляется вместе с TUI (бэкенд на FastAPI + SPA на React/Vite). WebUI V2 использует тот же каталог возможностей и сервисы приложений, что и TUI, и добавляет очередь выполнения на стороне сервера, возобновляемые потоки событий, постоянное многопоточное взаимодействие, последовательность рабочих процессов, управление провайдерами/профилями, а также возможность проверки текущих или исторических улик. Agent предназначен для автономного цикла Атака → Цель → Судья; Live обеспечивает целостную и детализированную наблюдаемость.

Консоль атак Wallbreaker

Другие виды: обзор и арсенал

Обзор Арсенал

pip install -e ".[dashboard]"                       # FastAPI + uvicorn
cd wallbreaker/dashboard/web && npm install && npm run build && cd -
wallbreaker dashboard                                # binds to 127.0.0.1:8787

Откройте WebUI V2 по адресу http://127.0.0.1:8787/v2. Предыдущая версия дашборда доступна по адресу http://127.0.0.1:8787/legacy во время перехода на паритет. Бэкенд использует тот же движок, что и TUI. Для горячей перезагрузки фронтенда выполните npm run dev в wallbreaker/dashboard/web; он проксирует /api к бэкенду дашборда.

Инструкции по настройке для Windows, конфигурации провайдеров, хранению истории, рабочему процессу разработки, мерам безопасности при сетевой экспозиции и устранению неполадок см. в руководстве по установке. Визуальный обзор единой поверхности оператора см. в демонстрации WebUI V2.

Ответственное использование

Wallbreaker предназначен исключительно для авторизованного красно-командного тестирования LLM и оценки безопасности: ваших собственных моделей или целей, на тестирование которых у вас есть явное разрешение. Логи запусков и сгенерированные артефакты могут содержать вредоносный контент; они записываются в игнорируемые git-директории wb_runs/, wb_artifacts/, findings/. Полную политику и инструкции по сообщению об уязвимостях в самом инструменте см. в SECURITY.md.

Участие в разработке

Настройка, архитектура и правила проекта описаны в CONTRIBUTING.md. Перед отправкой PR выполните pytest -q; тестовый набор является контрактом.

Лицензия

AGPL-3.0-or-later. Wallbreaker является copyleft: любая изменённая версия (включая ту, которую вы запускаете как сетевой/хостинговый сервис) должна предоставлять свой полный соответствующий исходный код под той же лицензией. Сторонние корпуса джейлбрейков (L1B3RT4S, P4RS3LT0NGV3, ENI) загружаются во время выполнения, а не распространяются; см. NOTICE.

Войдите, чтобы оставить комментарий