Как запустить bug bounty или программу раскрытия уязвимостей
Продвинутое4 минРедакция Innovialabs
Коротко
Начните с программы раскрытия уязвимостей: файл security.txt, понятная политика со scope и гарантиями для исследователей, процесс триажа; платные вознаграждения добавляйте, только когда команда успевает быстро чинить найденное.
Короткий ответ
Исследователи и так находят уязвимости в публичных продуктах. Вопрос лишь в том, есть ли у них безопасный и понятный способ сообщить вам. Есть два уровня:
- Программа раскрытия уязвимостей (VDP) — публичное обещание: «сообщайте о проблемах сюда, мы ответим и не будем преследовать за добросовестное исследование». Деньги не обязательны.
- Bug bounty — VDP плюс вознаграждения за подтверждённые находки. Это привлекает больше исследователей и больше отчётов.
Для большинства компаний правильный порядок такой: сначала VDP, затем приватный bug bounty и только потом публичный.
VDP и bug bounty
| VDP | Приватный bug bounty | Публичный bug bounty | |
|---|---|---|---|
| Кто участвует | Любой, кто что-то нашёл | Приглашённые исследователи | Все желающие |
| Награда | Благодарность, hall of fame | Деньги | Деньги |
| Поток отчётов | Небольшой | Контролируемый | Большой, с шумом |
| Нагрузка на команду | Лёгкая | Средняя | Высокая |
| Подходит для | Любого публичного продукта | Обкатки процесса | Зрелых команд безопасности |
Критерии готовности
Не запускайте платную программу, пока не можете честно ответить «да»:
- Базовая гигиена сделана: сканирование, чек-лист перед запуском, в идеале пентест. Иначе вы будете платить за то, что находит любой сканер.
- Есть конкретный ответственный за входящие отчёты и его замена.
- У разработчиков зарезервировано время на исправление уязвимостей, а не «когда спринт позволит».
- Есть реестр активов: какие домены, приложения и API ваши и работают в production.
- Руководство и юристы утвердили политику и бюджет.
- Вы умеете быстро выкатить исправление и при необходимости уведомить пользователей.
security.txt
Небольшой текстовый файл по адресу /.well-known/security.txt подсказывает исследователям, куда писать. Формат описан в RFC 9116, поля Contact и Expires обязательны.
Contact: mailto:security@example.com
Expires: 2027-10-01T00:00:00.000Z
Policy: https://example.com/security-policy
Preferred-Languages: en, ru, uz
Canonical: https://example.com/.well-known/security.txt
Поставьте напоминание обновить Expires — просроченный файл выглядит как заброшенная программа.
Политика раскрытия
Хорошая политика короткая и однозначная:
- Scope — конкретные домены, приложения и API-хосты, которые можно тестировать.
- Вне scope — сторонние сервисы, staging, физические офисы, социальная инженерия сотрудников.
- Правила — никакого DoS, никакого доступа к чужим данным сверх минимума для доказательства, никакого удаления данных; получили доказательство — остановитесь и сообщите.
- Safe harbor — чёткое заявление, что добросовестное исследование в рамках правил не повлечёт юридических претензий.
- Как сообщить — канал, нужные детали, язык.
- Ваши обязательства — когда подтвердите получение, как будете держать исследователя в курсе и как согласуется публичное раскрытие.
- Что не принимается — например, отсутствие заголовков без реального влияния, self-XSS, отчёты автоматических сканеров без доказательств.
Scope и таблица вознаграждений
Вознаграждение обычно привязывают к критичности, а не к затраченным усилиям. Опубликуйте таблицу, чтобы исследователи знали, чего ждать:
| Критичность | Типичные примеры | Вознаграждение |
|---|---|---|
| Критическая | Удалённое выполнение кода, полный захват аккаунта, доступ к данным всех пользователей | Максимальный уровень |
| Высокая | Доступ к чужим данным (IDOR), stored XSS в админке, SQL-инъекция | Высокий уровень |
| Средняя | CSRF на важных действиях, reflected XSS | Средний уровень |
| Низкая | Раскрытие информации с ограниченным влиянием | Низкий уровень или благодарность |
Суммы определяйте исходя из бюджета, важности актива и того, сколько платят похожие программы на вашем рынке. Для основных и второстепенных активов можно сделать разные таблицы.
Платформа или своими силами
Bug bounty-платформа даёт доступ к исследователям, интерфейс для работы с отчётами, выплаты и часто услугу триажа, которая отсеивает дубли и шум. Вы платите комиссию платформы и следуете её правилам.
Своя программа дешевле по комиссиям и даёт полный контроль, но всё ложится на вас: приём, триаж, юридические вопросы, выплаты людям из разных стран.
Частый путь — своя VDP, затем приватная программа на платформе.
Процесс триажа
- Принять отчёт в одном отслеживаемом канале, а не в личной почте.
- Подтвердить получение в срок, обещанный в политике.
- Воспроизвести проблему и проверить, не дубль ли это.
- Оценить критичность единым методом, например CVSS плюс влияние на бизнес.
- Исправить и проверить, в идеале попросив исследователя подтвердить.
- Наградить и поблагодарить исследователя.
- Раскрыть, если договорились, и зафиксировать первопричину, чтобы похожие ошибки не повторялись.