Крупные IT-компании охотно платят сторонним тестировщикам и разработчикам за поиск багов и уязвимостей своих сервисов и приложений. Искать ошибки может любой, кто разбирается в программировании и тестировании. Если вы тестировщик или мечтаете им стать, эта статья поможет узнать о неочевидной стороне профессии — багхантинге.
Кто такие багхантеры
Багхантеры или белые хакеры ищут уязвимости в крупных сервисах и приложениях и сообщают о них разработчикам прежде, чем об этом узнают злоумышленники. Компании за это платят и создают программы поиска уязвимостей — Bug Bounty, Хакеры могут искать уязвимости ради развлечения или интереса, но есть специалисты, которые профессионально зарабатывают на багхантинге. Например, минский разработчик Дмитрий Лукьяненко превратил своё хобби в бизнес и зарабатывает на поиске уязвимостей в продуктах Google и Facebook. В зале славы багхантеров Google Дмитрий занимает занимает 15 место.
Где багхантеры ищут работу
Крупные компании хотят как можно раньше узнавать о проблемах в безопасности продуктов и сервисов, поэтому объявляют Bug Bounty — программы поиска уязвимостей за денежное вознаграждение. Такие программы есть у Яндекса, Лаборатории Касперского, GitHub, Apple, Facebook, Google, Mozilla. Искать ошибки, как правило, могут любые пользователи продуктов и сервисов. В теории даже простой пользователь может случайно найти ошибку, рассказать компании и получить награду. Возраст тоже почти не имеет значения. Яндекс принимает ошибки от всех пользователей, кому есть 14 лет.
Проще всего найти программы Bug Bounty на платформах-агрегаторах с большой базой зарегистрированных хакеров. Например, на Hackerone, Background, Hacker Proof. На Hackerone по данным их отчёта за 2019 год зарегистрировано 500 тыс. хакеров, а в каталоге программ можно найти предложения багбаунти-программ от Mail.ru, Flickr, Ford, Toyota, Evernote, PicsArt. аталог программ на Hackerone
Иногда компании устраивают конкурсы на поиск уязвимостей конкретного продукта. Например, в 2019 году Яндекс. Драйв запустил конкурс по поиску уязвимостей в безопасности каршеринга. Главный приз был — 500 000 рублей.
Сколько можно заработать на поиске ошибок
Обычно компании классифицируют ошибки по сложности и предлагают выплаты в зависимости от типа ошибки.
- Яндекс платит от 5 000 до 170 000 рублей. Недостатки в управлении сессией, межсайтовый скриптинг, межсайтовая подделка запросов, небезопасное хранилище данных — за найденные ошибки можно заработать от 5 000 до 18 000 рублей.
- Mail.ru — от $150 до $35 000. За обход аутентификации интерфейса администратора можно заработать от $500 до $3000 в зависимости от сложности проблемы.
- Минимальная выплата в Twitter — $140, максимальная — $20 000, но за серьезные находки компания готова платить больше.
Уровни наград обычно указывают ориентировочно, и нет никакой гарантии, что эту ошибку уже не нашли, но новичку-багхантеру может повезти найти небольшие уязвимости, за которыми не охотятся хакеры посерьезнее. Они превращают поиск багов в работу, но в этом бизнесе как на рыбалке: за одну ошибку можно заработать как $1000 так $15 000.
Совсем продвинутые хакеры состоят в мировых сообществах и зарабатывают сотни тысяч долларов. В феврале 2020 года хакер Эрик, известный в сообществе как todayisnew, стал восьмым хакером, зарабатывающим от одного миллиона долларов.
Известные истории багхантеров
Дмитрий Лукьяненко. $15 000 на одной ошибке в Facebook. Дмитрий Лукьяненко — минский Android-разработчик. Ищет ошибки в Facebook и Google. Дмитрий обнаружил, что стороннее приложение может без действий пользователя получить доступ к приватным данным Facebook. Компания выплатила вознаграждение — $15 000.
Google удостоил в честь Дмитрия регулярный грант «1 dmitry» в $1337. Грант — выплата, за которую разработчик исследует то, что попросит компания. Если он находит уязвимость, получает бонус, а если нет, то ничего — грант так и останется у него.
Хакер из Санкт-Петербурга. $70 000 за уязвимость в PayPal. Link — хакер из Санкт-Петербурга, занимает 37 место среди багхантеров на HackerOne. Зарабатывает от $2000 до $8000. Находил уязвимости в Sony, Adobe, Mail.ru. В 2019 году он рассказал vc.ru, как нашёл уязвимость в PayPal, и заработал свой самый крупный гонорар — $70 000.
Андрей Леонов. $40 000 за уязвимость в Facebook. В 2017 году специалист тестировал сторонний сервис и нашел ошибку, которая с помощью специальной картинки позволяла запускать на ее серверах произвольный код. За уязвимость Андрей получил рекордный на тот момент гонорар от компании — $40 000.
Какие навыки нужны багхантеру
Чтобы участвовать в программах Bug Bounty, нужно знать методы поиска и использования уязвимостей, мыслить нестандартно, читать отчеты хакеров об уже найденных уязвимостях, чтобы понимать логику ошибок, практиковаться на тренажерах вроде Hack The Box. Это тренажер-сервис по пентестингу — тестирование на проникновения.
Что ещё нужно знать и уметь багхантеру?
- Знать архитектуру веб-приложений, типы тестирований;
- Понимать, как работают протоколы HTTP, DNS, TCP;
- Знать языки программирования: Python, MySQL, PHP;
- Разбираться в библиотеках для автоматизированного тестирования и тестовые фреймворки;
- Работать с шаблонами проектирования и автоматизации тестирования.
Освоить такие навыки можно на курсе «Тестировщик ПО с автоматизацией на Python». Этот курс помогает стартовать в ИТ с нуля. Вы освоите навыки программирования на Python, узнаете про особенности тестирования Android и iOS приложений, напишете 20 автотестов на Selenium и 20 автотестов к API и соберете полноценное портфолио.
Специалист с такими навыками может претендовать на работу тестировщика со средней зарплатой 70 000 рублей. Потолок зарплат по данным исследования «Хабр.Карьера» среди тестировщиков достигает 150 000 рублей.