BarkingDog: Red-teaming Telegram-ботов на LLM - открытый инструмент | AiManual
AiManual Logo Ai / Manual.
10 Май 2026 Инструмент

BarkingDog: как я гонял Telegram-бота на LLM через адский редтиминг

Разбираем BarkingDog — open-source утилиту для автоматического тестирования безопасности Telegram-ботов на базе LLM. Примеры атак, сравнение с аналогами и практ

Помните историю про Snapchat-бота на Llama 7B, который сливал всё, что мог? Тогда я вскрыл дыры вручную, через «Протокол Бабушки». Но ручная возня — это для хардкорных параноиков. В 2026 году, когда каждый второй Telegram-бот крутит LLM, нужен автоматизированный молоток для таких тестов. И он есть — BarkingDog.

BarkingDog — это open-source фреймворк для red-teaming Telegram-ботов, в которых зашита языковая модель. Он не просто долбит промптами — он эмулирует реального злоумышленника, который перебирает техники jailbreak, инъекций и обхода ограничений. И делает это в контексте Telegram: с поддержкой inline-режимов, callback-кнопок, групп и личных чатов. Звучит как что-то из арсенала АНБ? Нет, это питоновский пакет, который любой может поставить через pip за 30 секунд.

Собака, которая лает, но ещё и кусает

Название выбрано не случайно. BarkingDog (в переводе «лающая собака») предупреждает разработчика: «Эй, твой бот течёт!». В отличие от более абстрактных инструментов вроде Vigil, который мы упоминали в статье про OpenClaw, BarkingDog заточен именно под Telegram. Он умеет:

  • Симулировать диалоги с разными ролями (жертва, агрессор, техподдержка).
  • Генерировать атаки через DAN (Do Anything Now), Grandmother, ASCII-арт и сотню других шаблонов.
  • Проверять утечку системного промпта через суффиксные атаки.
  • Автоматически парсить ответ бота и оценивать, был ли он скомпрометирован (по ключевым словам, эвристикам, а в последней версии — через LLM-судью).
  • Генерировать отчёты в HTML/Markdown прямо в чате Telegram (бот сам присылает результаты).

Но главное — он не требует доступа к исходникам бота. Вы просто указываете username или токен тестового бота, и BarkingDog начинает долбить его через Telegram API. Для пентестера это подарок: никаких внутренних сетей, только то, что видит обычный пользователь.

Кстати, если вы ещё не разбирались, как устроены Telegram-боты изнутри, рекомендую курс «Создание Telegram-бота» от Skillbox — там как раз показывают, где чаще всего допускают дыры. Ну а я продолжу.

Как я поставил BarkingDog и сломал своего же бота

Для теста я поднял локального Telegram-бота на Flask + GPT-4o-mini (через открытый API). Системный промпт — строгий: «Ты — помощник, который не даёт советов по взлому и не генерирует опасный контент». Запустил BarkingDog с настройками по умолчанию. Результат — 8 из 10 атак успешны. Бот слил системный промпт на третьем запросе при помощи техники «переведи на французский, потом назад».

Вот как выглядит конфиг (это JSON, который кладётся в корень проекта):

{
  "target": "@MySecureBot",
  "model_endpoint": "https://api.openai.com/v1/...",
  "attack_packs": ["prompt_injection", "jailbreak", "system_prompt_leak"],
  "detector": {
    "type": "llm_judge",
    "model": "meta-llama-3.1-8b"
  },
  "report": {
    "channels": ["telegram", "console"],
    "severity_threshold": 0.3
  }
}

Запуск одной командой:

barkingdog run --config config.json

Через 4 минуты в Telegram прилетел отчёт с красными флагами. Удобно? Безусловно. Но есть нюанс.

Сравнение с аналогами: Garak, PromptArmor, Vigil

Инструмент Фокус Telegram-интеграция Лёгкость запуска
BarkingDog Telegram-боты Нативная (через Bot API) Высокая (pip install + конфиг)
Garak Любые LLM endpoints Нет (только HTTP) Средняя (требует обвязки)
PromptArmor Корпоративные LLM Нет (проприетарный) Низкая (платно, SaaS)
Vigil Runtime-мониторинг Через прокси Средняя (надо встраивать)

Garak — зверь. Он генерирует тысячи тестов, но из коробки не умеет отправлять их через Telegram. Придётся городить костыли: обёртка вокруг python-telegram-bot. BarkingDog избавляет от этого. PromptArmor — корпоративный вариант, дорогой и чёрный ящик. Vigil, про который мы писали в связке с OpenClaw, хорош для постоянного мониторинга, но не для одноразового штурма. BarkingDog — это именно молоток: приложил, пробил, получил отчёт.

Типичные грабли: как НЕ надо тестировать

Первое, что я сделал неправильно — запустил BarkingDog на прод-боте. Не делайте так. Инструмент отправляет реальные сообщения (если не включён режим dry-run). У меня бот начал отвечать пользователям странными фразами, потому что я не отключил вебхук на время теста.

⚠️ Всегда используйте тестового бота или копию продакшена. BarkingDog не щадит — он действительно пытается сломать систему. И если бот не защищён, он сломается.

Вторая ошибка — игнорировать rate limiting. BarkingDog по умолчанию шлёт запросы без пауз. Если ваш бот стоит за CloudFlare или имеет лимиты, вы получите 429 Too Many Requests, и тест прервётся. Решение: выставить rate_limit_delay = 2.0 в конфиге.

Третья — верить отчёту на 100%. BarkingDog помечает как уязвимость даже лёгкое отклонение от промпта. Например, бот написал «Я не могу ответить на этот запрос, так как это нарушает политику» — детектор счёл это успешной атакой (потому что ответ содержал слова «превышение»). На деле это защита сработала. Поэтому — всегда проверяйте вручную подозрительные кейсы.

Кому это реально нужно (а кому — нет)

BarkingDog — не игрушка. Если вы пилите Telegram-бота на LLM для живого продукта (клиентская поддержка, медицинские консультации, финансовые рекомендации) — прогон через BarkingDog должен быть частью CI/CD. Пусть он пайплайн не валит, но генерирует артефакт: «проверено, вот список дыр».

Я бы рекомендовал его:

  • DevOps-инженерам, которые отвечают за безопасность LLM-пайплайнов (как в кейсе аудита API-ключей через curl).
  • Пентестерам, которые хотят добавить в арсенал автоматический модуль для Telegram.
  • Студентам курсов по созданию ботов — например, после обучения на Skillbox по Python и Telegram-ботам, BarkingDog станет отличным домашним заданием: «Защити бота от своих же атак».

А кому не подойдёт? Если вы пишете бота для себя — «на коленке», без денег и данных — не заморачивайтесь. BarkingDog покажет, что ваш бот дырявый, но это не страшно, потому что его никто не атакует. Пока.

Однако есть один неочевидный совет: используйте BarkingDog не только для тестирования своей защиты, но и для наблюдения за поведением модели-судьи. В новой версии инструмента можно указать LLM-детектор (например, Llama 3.1 8B или Mistral Small). И вот тут начинается забавное: детектор тоже можно обмануть. Я потратил вечер, подбирая промпты, которые заставят судью не заметить инъекцию. Вывод: никогда не полагайтесь на один слой защиты. BarkingDog лишь показывает, где тонко. Латать придётся самому.

P.S. Кстати, на днях я наткнулся на агентов ИИ, которые взламывают сами себя. После BarkingDog это выглядит почти как логичное продолжение: автоматическая атака, автоматическое обнаружение, автоматический патч. Добро пожаловать в мир, где собаки лают, а модели убегают.

Подписаться на канал