Разработка 4 мин чтения

GramFuzz: как проверить Telegram-бота на дыры до клиентов

GramFuzz это открытый сканер безопасности для Telegram-ботов и мини-приложений. Разбираю репозиторий: кто автор, какая лицензия, что сканер делает на самом деле и что оставляет на ручную проверку. И какие категории проблем стоит прогнать по своему боту на тестовой копии.

безопасностьTelegram-ботымини-приложенияаудит
Коротко. GramFuzz это открытый сканер безопасности для Telegram-ботов и мини-приложений. Проекту чуть больше пяти недель, автор один, на GitHub 15 звёзд. Лицензия MIT с добавленным запретом на проверку без разрешения. По коду живые запросы идут к вашему серверу и сайту мини-приложения, а проверки самого бота выдаются списком для ручного прогона. Аудит он не заменит, но хорошо показывает типовые дыры. Проверять можно только свои боты и только на тестовой копии.
Нужно мини-приложение для вашего бизнеса?

Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.

Аудит безопасности бота и мини-приложения

Бот живёт в идеальном мире, пока его не нажмёт неидеальный человек

Вы запустили бота для записи или магазина. Сами прошли весь сценарий, всё работает. Через месяц клиентка нажимает «Оплатить» дважды, потому что интернет подвис. Другой клиент открывает ссылку из старого сообщения и попадает на экран, которого уже нет. Третий вписывает в поле «Имя» длинную строку с кавычками и угловыми скобками.

Что случится в каждом из трёх случаев, часто не знает даже владелец бота. Разработчик проверял «счастливый путь», а на кривые данные и повторные нажатия времени не хватило.

Для такой проверки есть класс инструментов DAST: сканер ведёт себя как внешний посетитель и смотрит, как приложение реагирует на неожиданное. GramFuzz пытается быть таким сканером для Telegram. Ниже разбор по репозиторию: код и README я читал, сам инструмент не запускал.

Что за проект и кто за ним стоит

Репозиторий лежит на GitHub под аккаунтом thefear078/GramFuzz. Автор один, в файлах он назван kiurakku (The Fear). В README ссылки ведут на аккаунт kiurakku, а репозиторий сейчас лежит под другим именем. Похоже на переименование, подтверждения я не нашёл.

Возраст и активность: создан 2 сентября 2026 года, все восемь коммитов сделаны в тот же день, релизов на GitHub нет, в истории дальше только автоматические обновления зависимостей. На 11 октября 15 звёзд и ноль форков. В сообщениях коммитов указан соавтор Cursor, то есть код писался с ИИ-помощником. Проверенным временем инструментом проект назвать нельзя.

Лицензия по файлу LICENSE: MIT, к которой добавлен раздел «Ethical use restriction». Он разрешает использование только против систем, которыми вы владеете или на проверку которых есть письменное разрешение. Это уже не чистая MIT, для платной услуги текст лучше показать юристу.

Что он проверяет на самом деле

README описывает 13 фаз: от разведки и перебора команд до инъекций, оплаты, вебхука и доступа к чужим данным (BOLA). Выглядит как полноценный пентест. Смотрю код.

Живые запросы делает только часть фаз:

  • публичная страница t.me с вашим ботом: по ней определяется тип бота, есть ли оплата, рефералка, мини-приложение;
  • ваш сервер: перебор адресов по списку, запросы вида /api/users/1 с подменой номера, заход на /admin с поддельными заголовками, пробный POST на типичные адреса вебхука;
  • сайт мини-приложения: заголовки безопасности;
  • по желанию, если задать токен в переменной BOT_TOKEN, вызовы Bot API.

Всё остальное (команды бота, инъекции в текст, подмена callback-кнопок, платёжные сценарии, частые нажатия) выдаётся списком ручных проверок с пометкой manual-test. Боту сканер ничего не пишет, он подсказывает, что нажать самому. В итоговый рейтинг идут только подтверждённые и вероятные находки.

Модуль «симулятор пользователя», который по README нажимает кнопки и запускает мини-приложение, в коде оказался заготовкой. В режиме live он отвечает, что не настроен. Проверка подписи initData там есть, но она работает на строке, которую вы сами подаёте вместе с токеном, ваш сервер она не опрашивает. Модуль на TypeScript и разбор через локальную модель я не проверял.

Ещё одна особенность по коду: находкой о чужих данных считается любой ответ 200 длиннее десяти байт. Сайт, который на любой адрес отдаёт главную страницу, получит ложную «высокую» находку.

Какие проблемы бывают в ботах и как проверить у себя

Вот категории, которые стоит прогнать по собственному боту, пока он не набрал клиентов.

  • Подпись initData. Мини-приложение передаёт серверу данные о пользователе. Документация Telegram требует проверять на сервере хеш и не доверять полю initDataUnsafe. Проверка у себя: отправьте тестовому серверу запрос с испорченной подписью, ответом должен быть отказ.
  • Чужие данные. Запрос «мои записи» с номером другого пользователя должен отказывать. Нужны два тестовых аккаунта.
  • Повторные нажатия. Дважды нажатая «Оплатить» не должна создать два заказа. Повторно пришедшее уведомление об оплате не должно выдать товар второй раз.
  • Старые кнопки. Нажатие на кнопку из сообщения недельной давности или после отмены заказа.
  • Вебхук. Telegram умеет подписывать запросы секретным токеном в заголовке X-Telegram-Bot-Api-Secret-Token. Без его проверки сервер примет любой POST за сообщение от Telegram.
  • Бонусы и рефералки. Приглашение самого себя, повторное использование кода.
  • Кривой ввод. Очень длинные строки, пустые значения, кавычки в полях заявки.

Про флуд и накрутки есть отдельный разбор: защита бота от спама и атак.

Где это не сработает и что важно учесть

Проект сырой. Симуляция живого пользователя в коде не доделана, многие фазы выдают шаблонные подсказки вместо результата. Отчёт читайте как список вопросов к разработчику.

Проверять можно только свою систему. Для чужого бота нужно письменное согласие владельца бота и сервера. Неправомерный доступ к компьютерной информации и вредоносные программы описаны в ст. 272 и 273 УК РФ, правила эксплуатации сетей в ст. 274, текст ст. 273 на КонсультантПлюс. Это не юридическая консультация. Как договариваются о проверке, описано в статье про пентест простыми словами.

Запускать только на тестовой копии. Пробные запросы на вебхук живого бота могут запустить обработку, которую вы не планировали. Токен боевого бота в такой инструмент не давайте.

Реальных клиентов на стенде быть не должно, иначе добавляются вопросы по 152-ФЗ для чат-ботов.

Автоматика не видит бизнес-логику: скидку, применённую дважды, и запись на занятое время находит человек.

Что можно сделать уже сейчас

  1. Создайте у BotFather второго бота и поднимите копию сервера с пустой базой. Это стенд для любых проверок.
  2. Пройдите список из раздела выше руками, двумя тестовыми аккаунтами. Хватит пары часов. Общий порядок проверки перед запуском есть в статье тест бота и сайта перед запуском.
  3. Спросите разработчика, в каком месте кода проверяется подпись initData и секретный токен вебхука. Ответ должен быть конкретным.
  4. Если хотите попробовать GramFuzz, соберите его из исходников (нужен Go 1.25 или новее), запустите по имени тестового бота без токена и передайте разработчику пункты manual-test.

Такую проверку мы делаем в рамках аудита безопасности и при разработке ботов: гоняем бот на стенде кривыми данными и повторными нажатиями, потом отдаём список исправлений.

Частые вопросы

Можно ли проверить бот, который мне сделал подрядчик?

Да, если бот и сервер ваши или есть письменное согласие владельца. Начните с тестовой копии.

Нужен ли токен бота для GramFuzz?

Для основной работы нет, хватает имени бота. Токен нужен только для проверок Bot API, и давать стоит токен тестового бота.

Заменит ли такой сканер аудит?

Нет. Он показывает типовые слабые места, а логику вашего бизнеса оценивает человек.

Коротко о главном

GramFuzz напоминает, какие вопросы задать боту до клиентов и после крупных правок: подпись данных мини-приложения, доступ к чужим записям, повторные платежи, защита вебхука. Инструмент ранний и неполный, зато список категорий подходит любому боту.

Хотите проверить своего бота или мини-приложение на кривых данных и повторных нажатиях? Напишите мне в Telegram слово «ФАЗЗИНГ». Разберём, с чего начать.

Обсудим вашу задачу

Что я делаю для бизнеса

Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ
Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх