Артем Бельченко, независимый исследователь и автор блога «Омский багхантер», а также игрок команд Cult и 89cr3w, рассказал порталу Cyber Media о багхантерском инструментарии, критериях выбора багбаунти-программ для изучения, борьбе с выгоранием и применимости опыта редтим-проектов в деятельности исследователя.
CyberMedia: Какой опыт проведения пентестов и редтим-проектов полезен в багбаунти, а какой, наоборот, не подходит под такой формат поиска уязвимостей?
Артем Бельченко: Редтим — это не только фишинг и веселые похождения внутри инфраструктуры. Часто для успешного проникновения требуется обнаружить и эксплуатировать уязвимости на внешнем периметре. Именно этот внешний периметр — игровое поле для багхантера.
Опыт пробива веб-приложений оказался весьма полезным в багхантинге, так как позволяет находить более критические уязвимости с точки зрения потенциального ущерба, например, RCE.
Однако багхантинг отличается от пентестов и редтима рядом ограничений. Самое важное из них — невозможность проведения постэксплуатации обнаруженных уязвимостей. Задача багхантера — только обнаружение проблемы, а не ее использование для дальнейшего развития атаки.
Условия багбаунти-программ четко ограничивают действия багхантера при эксплуатации уязвимостей. Например, при эксплуатации RCE разрешено выполнять только определенные команды внутри системы, и только для подтверждения уязвимости.
CyberMedia: Инструментарий багхантера: что в него входит?
Артем Бельченко: Я не очень люблю автоматизацию, поэтому не использую «окуней» (Acunetix) для исследования сервисов. Считаю, что они слишком шумные для живого прода, поэтому применяю автоматизированные инструменты только для точечного исследования потенциально уязвимых мест. Все остальное делаю вручную — мне некуда торопиться, я получаю удовольствие от самого процесса.
Что касается самого инструментария, то Burp Suite — мой основной инструмент. Недавно появился аналог Burp — Caido, я пробовал его использовать по подписке, но на текущий момент он проигрывает Burp по количеству функционала и не может похвастаться стабильностью работы. Хотя, честно говоря, в последнее время и сам Burp далек от стабильности — на моем компьютере он тормозит и съедает всю оперативную память за полчаса.
Из расширений Burp Suite использую HTTP Mock, Collaborator Everywhere, Wayback Machine и Param Miner. Недавно в Burp появилась возможность написания собственных сценариев сканирования — BCheck. Пока что руки не дошли до исследования, но выглядит это очень интересно с точки зрения автоматизации.
Второй по популярности и полезности инструмент — dirsearch, который перебирает директории веб-приложения по заданному словарю. За несколько лет багхантинга я перепробовал несколько популярных словарей, но в итоге собрал собственную сборку из открытых отчетов на HackerOne и различных статей исследователей в интернете. Иногда я просто находил репозиторий проекта на GitHub и оттуда вытаскивал список файлов и API-ручек. У меня выработалось правило — каждый день выделяю от 30 минут до одного часа на исследование новых отчетов об уязвимостях для актуализации знаний и пополнения wordlist.
Далее идут так называемые ситуативные инструменты, которые я использую, когда хочу исследовать сервис на какие-то точечные типы уязвимостей или пытаюсь найти векторы для симуляции атаки. К таким инструментам относятся nmap, sqlmap и мои самописные инструменты.
Если в багбаунти программу входит исследование мобильных приложений, то использую эмулятор Android Studio, а для исследования самих APK-файлов использую jadx.
CyberMedia: Как вы выбираете программу для изучения? Что, помимо суммы выплат, вы считаете значимыми критериями?
Артем Бельченко: Как и любой багхантер, я люблю исследовать новые программы. Вначале они обычно доступны только по приглашению и привлекательны небольшим кругом исследователей. Но часто в них скрываются подводные камни в виде низких выплат и внутреннего триажа команды. Триаж — сложный процесс, требующий тщательной подготовки команд и процессов. Чтобы багхантеры были довольны работой вендора, нужно сократить процесс валидации уязвимости и ускорить выплаты. Вендору нужно пройти путь от получения обратной связи от багхантеров до оптимизации внутренних процессов. Нередко после запуска программы багхантеры заваливают вендора отчетами, а потом ждут месяц-два ответа и выплаты. Иногда вендор неверно оценивает критичность уязвимости, и приходится доказывать ее значимость.
Я придерживаюсь такой тактики: после запуска программы быстро изучаю сервисы и собираю все более или менее очевидные уязвимости. Затем прекращаю поиск, так сначала возникает ажиотаж, и большой риск, что отправленный отчет будет дубликатом. Я собираю «низко висящие фрукты» и жду исправления всех уязвимостей. Через какое-то время активность багхантеров смещается в сторону новых программ, и это отличный момент для поиска обходов для исправленных уязвимостей или исследования более сложных уязвимостей.
При выборе программы важна статистика по выплатам. Часто вендоры указывают большие выплаты в правилах, но в статистике за 30 принятых отчетов максимальная сумма выплаты — 5000 рублей. Это должно насторожить багхантера.
Полезно изучать правила программы. Вендоры иногда добавляют таблицу с максимальными суммами выплат за определенный тип уязвимостей. Часто вместо конкретной суммы пишут: «Оценивается индивидуально». Я видел, как вендор принимал серьезные уязвимости, входящие в scope, но оценивал их «индивидуально» в ноль рублей. Это вызывает сильное недовольство, когда ты потратил время на поиск уязвимостей, на запись PoC, на описание проблемы в отчете. В такие моменты ощущаешь, что твой труд обесценен, и больше не хочется исследовать эту программу.
CyberMedia: ББ-платформы и программы используют множество разных способов привлечения исследователей, в том числе и не связанные с уровнем выплат в программе. Для вас, как для исследователя, какие методы выглядят наиболее интересными и мотивирующими?
Артем Бельченко: Одним из наиболее эффективных методов привлечения исследователей является введение рейтинга на платформах багбаунти. Это своеобразная геймификация усилий багхантера.
Давайте вспомним компьютерные игры. В одной гонке, например, за 100 самых длинных прыжков на трамплинах вы получаете увеличенное количество нитро для машины, что мотивирует вас выполнить челлендж. То же самое происходит на платформах багбаунти: чем больше валидных отчетов сдает багхантер и чем выше он в рейтинге, тем больше получает приглашений в частные программы, а это, как правило, приносит больше денег.
Кроме того, багбаунти-программы могут проводить специальные события, открывать эксклюзивный доступ к дополнительному скоупу на ограниченное время. Это также стимулирует багхантеров к более активному поиску уязвимостей.
Некоторые платформы организуют закрытые соревнования между багхантерами, параллельно проводя конференции и мероприятия для отдыха и общения. Это позволяет исследователям получить выгоду в виде денег и возможности пообщаться с коллегами. Приятно собраться после соревнований и в неформальной обстановке обсудить новые уязвимости и поделиться опытом.
CyberMedia: Почему для вас особенно интересны логические баги? Можете ли вы привести примеры наиболее интересных своих находок?
Артем Бельченко: Логические баги для меня — особая ценность. С детства я люблю творить, сочинять, а поиск логических уязвимостей — это своеобразное творчество. Процесс поиска часто строится на теоретических предположениях о том, как будет вести себя логика сервиса в случае ошибки. Затем гипотеза проверяется, и часто оказывается, что в функционале есть логическая ошибка. Не всегда проблема только в логике, но часто именно она приводит к цепочкам уязвимостей, которые могут привести к серьезным багам.
Одним из моих любимых примеров таких цепочек является исследование, в котором я обнаружил возможность потенциальной кражи криптовалюты на одном из сайтов. Сначала я обнаружил возможность переполнения целочисленного значения переменной баланса кошелька в аккаунте пользователя. Это приводило к появлению огромной отрицательной суммы на счету пользователя, но вывести эти средства было невозможно. Нужно было придумать, как получить положительное значение суммы.
Я продолжил исследовать сервис и обнаружил функционал создания ваучеров, с помощью которого можно было сгенерировать уникальный код с указанным количеством средств и активировать его на другом аккаунте. Этот функционал не учитывал отрицательное значение баланса в аккаунте, поэтому отрицательное значение становилось положительным. Я активировал созданный ваучер на другом аккаунте и получил положительное значение счета пользователя. Оставалось только указать криптокошелек для вывода денег и дождаться проведения транзакции. Таким образом, можно было украсть всю криптовалюту со счета компании. Это достаточно интересная цепочка уязвимостей, которая при эксплуатации злоумышленниками могла привести к серьезным убыткам для компании.
CyberMedia: Многие багхантеры отмечают, что сталкиваются с выгоранием. На ваш взгляд, с чем это связано и как бороться с симптомами выгорания?
Артем Бельченко: Багхантеры часто сталкиваются с выгоранием. Одной из причин может быть чрезмерная одержимость рейтингом на платформах багбаунти. Постоянная гонка за лидирующие позиции приводит к негативным последствиям:
Выгорание — серьезная проблема, может негативно влиять на жизнь и работу багхантера. Но я знаю, как бороться с выгоранием:
Важно помнить, что каждый человек уникален и у каждого свои методы борьбы с выгоранием. Главное — своевременно замечать признаки выгорания и принимать меры для восстановления баланса в жизни.
Нажимая на кнопку, я даю Согласие на обработку персональных данных в соответствии с Политикой обработки.
Зарегистрироваться