Баг-хантинг: как белые хакеры зарабатывают на чужих ошибках
Согласно отчету McAfee и "Центра стратегических и международных исследований" (CSIS), в 2017 году хакеры нанесли глобальной экономике урон на сумму в $600 млрд. Приоритетная цель злоумышленников — банки и бизнес в целом.
Один из методов защиты — проведение баг-баунти-программ. Участники (белые хакеры) ищут уязвимости в продукте и получают вознаграждение за обнаруженные ошибки. Они сообщают о результатах компании, чтобы разработчики продукта могли быстро исправить уязвимости.
О том, что такое баг-хантинг и как проходят баг-баунти-программы, на форуме HackIT в 2017 году рассказал Яссер Али.
Яссер — эксперт по кибербезопасности и социальной инженерии, консультирующий финансовые и государственные институции. В 2015 году он снялся в документальном фильме How Hackers Steal Your ID для британского BBC.
Ниже выдержки из его доклада Introduction to Bug Hunting.
Кто такие белые хакеры и зачем они бизнесу
К хакерам принято относится отрицательно: они же взламывают сайты, воруют личные данные и деньги со счетов. Но это относится только к черным хакерам.
В противовес им существуют белые хакеры. Это специалисты в области кибербезопасности, которые ищут уязвимости, чтобы защитить продукт. В отличие от черных хакеров, белые ищут ошибки не для того, чтобы ими воспользоваться. Их работа заканчивается на стадии "разведки".
В интернете достаточно примеров того, как белые хакеры помогают разным проектам. Например, Гвидо Вранкен за неделю обнаружил 11 уязвимостей блокчейн-платформы EOS (собрала на ICO $4 млрд). Об этом пишет The Next Web. В награду он получил от баг-баунти программы $120 000.
Баг-хантинг и баг-баунти-платформы
Баг-хантинг — это процесс поиска уязвимостей. Дословно — "охота на баги". Баг-хантеры могут находить ошибки в продуктах по собственной инициативе и бесплатно сообщать о них бизнесу. Но все-таки в современном мире за такую работу принято платить.
Хотя термин кажется новым, баг-хантеры появились давно. С 2013 года эта профессия обретает все большую популярность. Отчасти это связано с появлением баг-баунти-платформ.
Баг-баунти-платформа — это сервис, который позволяет бизнесу не тратить ресурсы на организацию собственной баг-баунти-программы с нуля, а привлечь белых хакеров через платформу. Примеры — Hacken Proof, HackerOne, Bugcrowd, Cobalt, Bug Bounty HQ и других.
Как стать баг-хантером
Начать, конечно, нужно с технической подготовки. Лучше всего сосредоточится на одном из направлений пентестинга (тестов на проникновение). Это метод проверки безопасности компьютерных систем, который заключается в моделировании псевдоатаки. Тестировщик действует как злоумышленник и таким способом выявляет уязвимости. В число популярных направлений пентестинга входят IOT, мобильные приложения, веб-приложения и другие.
Что еще нужно баг-хантеру:
1. Знать особенности работы веб-серверов и интернета.
2. Знать операционные системы Windows, Linux, Mac и другие. Тут придется разобраться не только в функциональности, но и в уязвимостях.
3. Понимать, как работают протоколы HTTP, DNS, TCP.
4. Знать PHP. Разобраться в особенностях его работы и применения.
5. Уметь программировать на PHP и MySQL.
Это, конечно, основы. Список можно расширить. Баг-хантер должен иметь глубокие познания в сфере, на которой специализируется, иначе искать ошибки и уязвимости невозможно.
Если эти знания и навыки у вас есть, можно выбирать "место работы". Основных вариантов два:
1. Участвовать в баг-баунти-программах компаний. Такие регулярно проводят, например, Google и Facebook.
2. Присоединиться к баг-баунти-платформе, выполнять задания и получать оплату.
(Теоретически можно и по собственной инициативе находить уязвимости в веб-сайтах, приложениях, платежных и SaaS-сервисах, но если вы не получили четкого разрешения на такие действия, вас могут привлечь к ответственности. — Прим. ред.)
Если решите присоединиться к программе поиска уязвимостей, в первую очередь ознакомьтесь с ее правилами. Скажем, в правилах может быть написано, что баги, найденные в поддоменах, не оплачиваются. Если вы, не зная этого, потратите время на их поиск, то будете разочарованы.
Инструменты для баг-хантинга
Если базовые знания и желание развиваться у вас есть, время переходить к изучению конкретных инструментов. Вот некоторые из них:
Sublist3r — специальный инструмент, который разработали для перечисления поддоменов сайта. Sublist3r поможет добыть информацию о поддоменах. Sublist3r использует популярные поисковые движки, в том числе Google, Bing, Baidu и другие.
DirBuster/Dir Search/Google Hacking — с их помощью баг-хантер получает возможность искать скрытые папки и файлы на веб-сайте.
org — тоже помогает искать скрытые файлы и папки. Позволяет изучить историю домена с момента его попадания на сервис. С помощью Archive.org можно обнаружить страницы, которых уже нет в пользовательском интерфейсе, но по факту еще существующие.
Nmap — инструмент для сканирования сети. Он позволяет получить информацию о сетевых протоколах и службах, запущенных на веб-сервере. Nmap определяет операционную систему, приложения и файрвол.
Burp Suite — полноценная платформа, которая позволяет проверять безопасность веб-приложений. В ней есть функции поиска файлов и папок, составления карты приложения, подбора паролей и другие.
Kali Linux — дистрибутив для пентестинга.
VMware/VirtualBox — ПО для виртуализации.
Легкая добыча
Есть уязвимости, обнаружить которые легче остальных. Легче, конечно, и белому хакеру, и черному. Начинать баг-хантинг можно именно с поиска этих ошибок.
Незащищенные админки. Уязвимости есть и у крупных платформ, и у корпоративных сайтов. Причем в числе ошибок попадаются, например, примитивные логины и пароли. Скажем, admin 123456.
Невостребованные или устаревшие поддомены. Это те поддомены, которые не используются сайтом, но все еще существуют.
Уязвимое программное обеспечение. Слабости и баги некоторых версий ПО широко известны. В этом случае баг-хантеру достаточно просто знать, что, например, эта версия WordPress уязвима. Не нужно тратить время на поиск и детальное описание ошибок, которые уже разобраны другими специалистами. Можно "нагуглить" описание недостатков данного ПО, проверить и добавить в отчет. Сэкономленное время лучше потратить на поиск еще не обнаруженных уязвимостей.
Уязвимости бизнес-логики. Приведу пример: представим, что пользователь проходит верификацию. Это взаимосвязанный процесс, нужно пройти по очереди шаги 1, 2, 3, 4, 5 и 6. Бизнес-логика нарушена, если пользователь сможет перейти с первого шага сразу на шестой, не выполняя все предыдущие.
Уязвимость загрузки файлов. Загружать файлы пользователям разрешают многие сайты, начиная с соцсетей и заканчивая площадками для поиска работы. И часто это "лазейка" для злоумышленников, которая позволяет добиться удаленного выполнения кода и взломать сервер.
Мобильные приложения/API. Наиболее уязвимые точки многих продуктов.
Найденные ошибки документируются в отчетах. И это надо делать максимально точно. Например, обнаружив XSS-уязвимость на сайте в Chrome, нужно проверить ее и в других браузерах. В отчете нужно подробно сообщать об уязвимости и методе ее воспроизведения.
Что читать и где учиться баг-хантеру
Белый хакер, как и любой специалист по кибербезопасности, должен постоянно учиться. Что стоит в первую очередь читать будущим баг-хантерам и тем, кто планирует работать с белыми хакерами?
Историческая статья "Как стать хакером". Ее легко найти в Google. Этот материал поможет понять хакерское мышление и философию. (Скорее всего, Яссер имеет в виду статью How To Become A Hacker Эрика Стивена Реймонда. — ЕП.)
Книга The Web Application Hacker's Handbook. Она даст возможность разобраться во взломах веб-сайтов, приложений, мобильных API и других направлениях. В книге есть примеры хакерских атак и использования уязвимостей.
И новичкам, и опытным профессионалам нужно постоянно учиться: искать обсуждения на форумах, материалы в СМИ, инструкции и статьи, посещать профильные ивенты. Например, с 8 по 11 октября в Киеве пройдет международный форум HackIT 4.0. В программе — практические тренинги, тур в Чернобыль и двухдневная конференция по кибербезопасности.
На конференции будет несколько лекционных залов и более 50 спикеров. В их числе — сооснователь самого защищенного мессенджера Signal Мокси Марлинспайк. Планируются и панельные дискуссии. Одна из них посвящена взлому криптобиржи, транслировать ее будет Майкл Гу, более известный как блогер Boxmining.
В программу ивента включен баг-баунти-марафон Hacken Cup. Участники будут искать баги и уязвимости в реальных продуктах. Лучшие получат призы. И это отличный способ "вживую" увидеть, как именно происходит баг-хантинг, и найти ответы, которых не было в этой статье.
Баг-хантинг — отличный пример взаимовыгодного сотрудничества. Он доказывает, что большинство людей хотели бы применять свои знания во благо, а не во вред. Стоит создавать для хакеров возможности легального заработка — с пользой для других, популяризовать образ белого хакера. И тогда многие талантливые специалисты смогут самореализоваться, защищая продукты, которыми мы пользуемся каждый день, а не ломая их.
Ная Новак, журналист