Сообщение обычно приходит не туда: в поддержку, в отдел продаж, в личную почту основателя. В нём сказано, что отправитель нашёл уязвимость в вашем продукте. Иногда есть детали, иногда вопрос, есть ли у вас программа bug bounty, иногда деньги упоминаются в первой же строке.
От того, что вы сделаете дальше, зависят две вещи: будет ли эта уязвимость исправлена без шума и кому напишет следующий исследователь — вам или о вас.
Кто пишет такие сообщения
- Добросовестные исследователи. Они что-то нашли — часто случайно или при проверке целого класса продуктов — и хотят, чтобы это исправили. Многие надеются на вознаграждение или благодарность; настаивают немногие.
- Авторы автоматических находок. Сканер обнаружил отсутствующий заголовок или устаревшую библиотеку, и сообщение разослано сотням компаний. Находка может быть реальной и обычно незначительна.
- Вымогатели. В сообщении есть угроза: заплатите, иначе данные будут опубликованы. Это преступление, и работают с ним как с инцидентом, а не как с сообщением об уязвимости.
По первому сообщению часто нельзя понять, кто перед вами. План ниже подходит для всех трёх случаев, пока это не прояснится.
Первый час
- Не отвечайте в раздражении и не угрожайте. Угроза судом превращает частное сообщение в публичную историю.
- Не платите и не обещайте оплату. Вы ещё не знаете, за что платили бы.
- Не переходите по ссылкам и не открывайте вложения из сообщения на рабочем компьютере. Передайте его тому, кто отвечает за безопасность.
- Сообщите ответственному за безопасность. Если такого нет, это первая находка.
Первый день
Подтвердите получение. Достаточно двух предложений: сообщение получено, оно изучается, и вот с кем можно общаться. Именно молчание заставляет исследователей выходить в публичное поле.
Запросите детали по каналу, который контролируете вы. Выделенный почтовый ящик, лучше с ключом шифрования. Спросите затронутый адрес, шаги воспроизведения и то, к чему автор смог получить доступ.
Проверьте на своей стороне. Воспроизведите проблему сами, по возможности в тестовой среде. Посмотрите журналы за период, который называет автор: к чему обращались, откуда, как часто. По журналам видно, остановился ли автор на доказательстве.
Первая неделя
Оцените критичность. Что может сделать злоумышленник и насколько это сложно? Общий язык для ответа даёт оценка CVSS.
Решите, является ли это инцидентом. Если уязвимость давала доступ к персональным данным и вы не можете исключить, что ею воспользовались, могут применяться обязанности по уведомлению из законодательства о защите данных — с короткими сроками. Это вопрос к юристам в первый день, а не в последний.
Исправьте и сообщите автору. Скажите, что исправлено и когда. Если вы не согласны с сообщением, скажите об этом и объясните почему.
Поблагодарите. Публичная благодарность — с согласия автора — ничего не стоит. Вознаграждение — ваше решение; если платите, платите за находку, а не под давлением, и укажите, что выплата добровольная.
Если сначала говорят о деньгах
Исследователь, который спрашивает, есть ли у вас программа вознаграждений, задаёт обычный вопрос. Ответом может быть: «нет, но мы благодарны за сообщение».
Отправитель, который отказывается сообщать какие-либо детали до оплаты, назначает срок или угрожает публикацией данных, об уязвимости не сообщает. Сохраните переписку, не ведите переговоры в одиночку, привлеките юристов и рассмотрите обращение в правоохранительные органы.
Чтобы следующее сообщение пришло куда нужно
Сообщение попало не в тот ящик, потому что нужного не было. Это исправляют три вещи:
- Политика раскрытия на сайте: что можно тестировать, как сообщать, чего ожидать автору, и ваше обязательство не преследовать тех, кто соблюдает правила.
- Файл security.txt по адресу
/.well-known/security.txt— туда исследователи смотрят в первую очередь. RFC 9116 требует двух полей,ContactиExpires; после даты изExpiresфайл считается устаревшим. - Процесс за почтовым ящиком: кто читает, кто проверяет, кто принимает решение и в какой срок.
Из этого и состоит программа раскрытия уязвимостей. Если сообщение ждёт ответа прямо сейчас, оставьте заявку и укажите это: на такие заявки мы отвечаем в первую очередь.