Вознаграждения в Bug Bounty VK, или Как мы работаем с деньгами
Привет, Хабр! В прошлой статье я рассказал о том, как правильно искать уязвимости и составлять отчёты для программы Bug Bounty VK, сегодня я хочу раскрыть тему вознаграждений. Если тебе интересно узнать, почему с точки зрения владельца программы и багхантера это два абсолютно разных процесса и зачем нужна независимая платформа, то велком под кат.
Выплаты и их расчёт
VK использует многокритериальную систему анализа стоимости, давайте разберем, что это такое и как она работает.
Мы анализируем уровень зрелости сервиса (подробнее об этом ниже).
Мы анализируем российский рынок и ориентируемся на сложность нахождения уязвимости в инфраструктуре: чем сильнее защищён сервис, чем сложнее в нём найти уязвимость, тем выше будет цена находки.
Если вы когда-либо изучали правила программ Bug Bounty VK на разных платформах, то могли заметить закономерность в формировании стоимости. В схожих продуктах стоимость зачастую одинаковая, но возможны исключения, специфичные для сервиса. Все наши сервисы распределены по категориям зрелости, которые варьируются по классам от А до G: где А — это самый высокий, а G — соответственно, самый базовый.
Как определяется уровень зрелости сервиса?
Оценка происходит из ответов на вопросы: как давно проводились пентесты, когда был внутренний аудит, запущено ли сканирование инфраструктуры изнутри и снаружи, а также установлены ли на серверы все средства защиты и насколько они соответствуют корпоративному стандарту.
Присвоение класса и дальнейший его пересмотр происходит коллегиально. В комиссию входит, в среднем, пять человек, с обязательным присутствием директора департамента защиты инфраструктуры.
Как выставляются цены за баги в программе Bug Bounty
Общепринятый подход: уязвимость оплачивается в соответствии с её критичностью по CVSS-влиянию. Но тогда нельзя акцентировать внимание на определенном классе проблем внутри сервиса. Поэтому внутри каждой программы Bug Bounty VK вводится собственная система вознаграждения (таблица «Размер вознаграждения»), в которой заявлены оплачиваемые уязвимости. Не упомянутые в таблице «Размер вознаграждения» уязвимости оплачиваются на усмотрение владельца программы.
Такой подход выбран сознательно, чтобы направить усилия исследователей на поиск наиболее интересных проблем внутри продукта и исключить менее приоритетные ошибки. Например, Почта, Облако и Календарь Mail.ru оценивают простую XSS в 60 000 руб., а XSS в переписке пользователей — в 120 000 руб., так как считают вторую проблему более важной и приоритетной, хотя CVSS-влияние у них одинаковое.
Размер выплаты может увеличиться, если аналитику отдела Bug Bounty удаётся выявить большее влияние уязвимости на безопасность приложения, чем заявил исследователь. В отчёте ниже мы увеличили размер вознаграждения в три раза, так как аналитику удалось увеличить влияние IDOR до максимального.
Взаимодействие компании и платформы
Между VK и платформами, на которых компания размещает свои программы Bug Bounty, устанавливаются договорные отношения о проведении конкурса, именно поэтому выплаты исследователям происходят после нескольких раундов проверки предоставленных отчётов. VK оценивает отчёты с точки зрения ценности исследования, а владельцы платформы подтверждают, что присуждение выплат соответствует заявленным правилам. Все выплаты багхантерам производятся с баланса платформы после подтверждения результатов. Платформа, на которой размещается программа, выступает гарантом проведения конкурса и того, что выплаты исследователям будут осуществлены.
Наличие независимой платформы для программ Bug Bounty позволяет решать многие юридические вопросы, а также выплачивать награды, соблюдая анонимность хакеров. Кроме того, наличие третьей независимой стороны позволяет дополнительно регулировать взаимодействие владельца программы с исследователями. Платформа включается в решение всех спорных вопросов в качестве третейского судьи.
Кворум, или Почему мы всегда принимаем совместные решения о выплатах
Любое решение о присуждении вознаграждения и размере выплаты за проведённое исследование принимается во время обсуждения внутренней комиссией из сотрудников ИБ VK. Также к оценке размера выплаты и последующему кворуму периодически привлекаются разработчики сервисов, потому что они лучше понимают продукт.
В стандартных ситуациях у аналитиков программы Bug Bounty нет доступа к коду — так мы при анализе и подтверждении ошибок ставим себя в те же условия, что и исследователь. Получить доступ к исходникам сотрудники отдела Bug Bounty могут, например, при подтверждении комплексных уязвимостей и проверке повсеместности или корректности исправления проблемы, но не на этапе проверки отчёта.
Сроки и условия выплат за уязвимости могут отличаться в различных сервисах: внутренняя «кухня» каждого сервиса по исправлению багов даже в рамках одной программы различна. Например, ВКонтакте — это огромный сервис, состоящий из множества подсистем и разрабатываемый большим количеством программистов, поэтому скорость исправления ошибки будет варьироваться. Но мы всегда стараемся выплатить вознаграждение до факта закрытия бага.
По статистике HackerOne, программы Bug Bounty, аналогичные VK, тратят на исправление одной ошибки от 42,2 до 148,3 рабочих дней. Мы стараемся закрывать ошибки примерно за это время, хотя можем похвастаться и рекордом: самый быстрый из зарегистрированных фиксов длился 11 минут. Но рекорд — это, скорее, исключение из правил, и на исправление, в среднем, уходит несколько месяцев.
Скорость важна не только для исследователей ИБ, но и для компании, так как быстро закрытый отчёт помогает уменьшить количество дубликатов, экономя время всем участникам программы.
Что делать, если вы считаете, что вам заплатили неправильно или мало?
Возможна ситуация, когда исследователь не согласен с размером выплаты или статусом «дубликата». В таком случае первое, что нужно сделать — написать комментарии и грамотно аргументировать свою позицию.
Например, если вы считаете, что ваш отчёт неправильно оценили по критичности, то вам нужно открыть CVSS-калькулятор, оценить отчёт самостоятельно и описать, почему был выбран каждый из указанных параметров. Добавьте таблицу CVSS и аргументацию выбранных параметров CVSS-калькулятора в комментарий к отчёту.
Правильно оформленный отчёт сокращает переписку между исследователем и владельцем Bug Bounty-программы. Но если вышло так, что вам заплатили меньше, чем вы рассчитывали, и вам кажется, что влияние уязвимости было более весомым, — напишите, по какой категории, вы считаете, должна быть оценена данная уязвимость, и приведите аргументы, почему именно по ней. VK выплачивает вознаграждение в соответствии с заявленным типом и может отказать в выплате, если вектора атаки нет в таблице «Размер вознаграждения».
Искусство конфликта
Основные конфликты в Bug Bounty возникают именно из-за выплат или их размера. Конфликтующие стороны видят одну и ту же ситуацию по-разному:
Охотник за багами считает, что:
владелец программы пользуется его трудом и не хочет оплачивать уязвимость;
владелец программы закрыл проблему до того, как принял и оплатил отчёт.
Владелец же программы видит, что:
отсутствует факт уязвимости;
уязвимость относится к проблеме бизнес-логики, не ИБ;
ошибка носит теоретический характер и не может быть воспроизведена;
ошибка не заявлена в таблице «Размер вознаграждения»;
отсутствует доказательство раннего присутствия ошибки и возможности её воспроизведения в данный момент.
В любой конфликтной для вас ситуации помните, что в программе Bug Bounty VK работают люди, которые всегда открыты к диалогу с исследователями. Любой спорный момент всегда можно обсудить и мирно решить, если обе стороны заинтересованы, а грамотная позиция и аргументация позволят ускорить процесс. Если вы оказались в ситуации конфликта, попробуйте сперва поставить себя на место оппонента или обратитесь за помощью к платформе.
Помните, что мы, как владельцы программы, заинтересованы в хакерах и хотим, чтобы они искали уязвимости в наших программах с удвоенным ажиотажем. Для нас поругаться с исследователем — это навредить программе Bug Bounty.
Вместо послесловия
ИБ-аналитики, работающие в программе Bug Bounty, стремятся создавать и поддерживать дружескую атмосферу, без конфликтных ситуаций. Мы ценим ваш труд и хотим, чтобы вы возвращались к нам с новыми (и, желательно, высокооплачиваемыми) отчётами.