Bug Bounty: заработай на чужих ошибках
В этой статье я расскажу о Bug Bounty программах, их плюсах и минусах, а также как на этом зарабатывают.
В первую очередь давайте определим что такое Bug Bounty: программа выплата награды за обнаружение проблем в безопасности сервисов и приложений компании. На русский язык уместнее всего это переводится как "Охота за ошибками".
Т.е. это некий свод правил "взаимодействия" с информационными ресурсами компании. Обычно в него входит регламент проведения программы, перечень ресурсов, описание принимаемых уязвимостей, размеры вознаграждения. В классическом исполнении это описание того, что можно "ломать" и сколько багхантер получит за ту или иную уязвимость.
Так выглядит Bug Bounty снаружи. Что это дает компании? В первую очередь непрерывный процесс "проверки на прочность": специалисты с различным уровнем знаний, инструментарием и часовыми поясами в режиме нон-стоп атакуют ресурсы компании. Со стороны компании задействованы ресурсы на:
- мониторинг систем;
- реагирование и обработка репортов;
- баг-фиксинг (быстры или не очень).
Bug Bounty плюсы и минусы
Теперь остановимся на плюсах и минусах Bug Bounty программ.
Очевидными плюсами будет:
- непрерывность процесса тестирования;
- стоимость (выплаты вознаграждений будут меньше стоимости наемных специалистов);
- большое покрытие.
Очевидными минусами будет:
- большое количество дублей;
- огромное количество отчетов сканеров (фолсов);
- узкая направленность;
- оспаривание и «доказательства» уязвимостей.
Зачастую многие багхантеры, участвующие в программах Bug Bounty ограничиваются своими "коронными" фишками, и не исследуют что-то другое, либо наоборот, ставят под сканеры все подряд в надежде уловить хоть что-то. Это дает разноплановый, но не полный подход к тестированию. Также, огромное количество фолс срабатываний сканеров может завалить команду разработчиков ненужной работой (это и дополнительные проверки и отклики по каждому репорту — которых может быть очень много).
Открытые программы
Большинство компаний представлено на площадках — агрегаторах, таких как HackerOne или BugCrowd.
Многие российские компании открыли как собственные программы, так и профили на HackerOne. Среди них такие компании, как: Яндекс, Майл.ру, QiWi, Вконтакте и многие другие. Да что говорить, если даже у Пентагона есть своя программа Bug Bounty. (Взломать Пентагон, получить деньги и остаться на свободе — похоже на мечту хакера, но уже суровая реальность).
Средняя сумма выплат составляет от $200 до $1000, в зависимости от уязвимости и места ее нахождения.
Вот, например, оценка стоимости обнаруженных уязвимостей в программе "Охота за ошибками" — Яндекс:
- A01. Инъекции 170000 руб. (критичные сервисы); 43000 руб. (прочие сервисы).
- A02. Межсайтовый скриптинг – A05. Межсайтовая подделка запросов 17000 руб. (критичные сервисы); 8500 руб. (прочие сервисы).
- A06. Ошибки конфигурации веб-окружения – A10. Открытое перенаправление 8500 руб.(критичные сервисы); 5500 руб. (прочие сервисы).
Наиболее «дорогие ошибки»
За время проведения Bug Bounty программ многие компании суммарно выплатили суммы в $ с 5 и более нулями (только Фейсбук выплатил более $5.000.000 вознаграждений), однако были и вознаграждения, которые сами по себе были довольно внушительными. Что самое интересное — баги были космического масштаба, но находились они иногда чуть-ли не методом тыка:
На баг, принесший ему $10 000, уругвайский школьник Иезекииль Перейра, наткнулся «со скуки». Студент, мечтающий сделать карьеру в области информационной безопасности, возился с сервисами Google, используя Burp Suite для подмены заголовка хоста в запросе к серверу App Engine (*.appspot.com). Большая часть попыток вернула «404», но на одном из внутренних сайтов — yaqs.googleplex.com, — внезапно обнаружилось отсутствие верификации по логину/паролю и отсутствие каких-либо намеков на защиту.
Выявление известной уязвимости:
Россиянин обнаружил в программном обеспечении соцсети ошибку, которая с помощью специальной картинки позволяла запускать на ее серверах произвольный код. Для этого необходимо было воспользоваться уязвимостью в сервисе ImageMagick, предназначенном для быстрого масштабирования и конвертации изображений в новостной ленте Facebook, сообщает Лента.ру. Леонов случайно наткнулся на ошибку во время тестирования стороннего сервиса, изучил ее и представил всю необходимую информацию техническим службам Facebook, которые устранили уязвимость в ноябре 2016 года. В итоге соцсеть выплатила хакеру вознаграждение в 40 тысяч долларов. В 2014 году рекордную сумму в 33,5 тысяч долларов получил от Facebook специалист по кибербезопасности Реджинальдо Сильва.
Или эпохальный взлом Facebook и обнаружение бэкдора в системе, которые принесли исследователю $10.000: Как я взломал Facebook и обнаружил чужой бэкдор.
Хочу участвовать, что надо делать?
Для тех, кто решил попробовать свои силы и возможности в поиске ошибок могу посоветовать несколько основных этапов, которые приведут к победе:
Следите за новостями. Обновился скоп программы — бегом проверять новые сервисы. Производитель добавил новый функционал, расширил старый или интегрировал сторонний сервис? — большая возможность, особенно в сложной инфраструктуре допустить ошибку.
Упорство. Скрупулезное исследование, не упускать никаких деталей. Хорошая практика будет периодически сравнивать результаты прошлых проверок с текущем состоянием системы.
Поиск. Ищите и обрящете. Большинство крупных багов находят на "не публичных" поддоменах и директориях. Здесь вам пригодятся инструменты по выявлению поддоменов и хорошие листы словарей для брута директорий и поддоменов.
Исследование. Отложите автоматические сканеры, просеивайте веб-приложение (а большинство Bug Bounty связано именно с вебом) как песок сквозь сито для поиска крупинок золота. Здесь я рекомендую использовать Burp Suite или Owasp Zap — лучше инструментов нет. Почти все крупные победы в баутни — результат работы с этими инструментами (практически на любом публичном репорте можно это увидеть).
Исследуйте. Скачайте приложение для локального исследования, если это возможно. Читайте отчеты других участников — это может дать пищу для ума. Тот же взлом фейсбука — многие российские багхантеры видели этот поддомен, даже пытались с ним что-то делать — но "не докрутили". Хорошим подспорьем для этого будет ресурс: The unofficial HackerOne disclosure Timeline