Александр Фролов (Crusher), специалист по анализу защищенности Страхового Дома ВСК, рассказал порталу Cyber Media о своем пути из QA в пентест, а также об опыте поиска уязвимостей в государственных и финансовых сервисах в рамках багбаунти-программ.
Cyber Media: Как вы пришли в анализ защищенности? Сколько времени занял путь от старта до первого валидного отчета или выплаты багбаунти?
Александр Фролов: Мой путь в информационную безопасность начался с работы в QA. Я был QA-инженером, занимался обеспечением качества на проектах, а затем вырос до руководителя направления. Однако интерес к поиску уязвимостей в приложениях всегда был сильным, поэтому я решил сменить сферу и сосредоточиться на безопасности приложений.
Активно заниматься багхантингом я начал в 2022 году. Читал литературу по хакингу, изучал открытые отчеты багхантеров на платформе HackerOne. После ухода этой платформы из России я искал багбаунти-программы через дорки в поисковых системах.
Одной из первых программ, в которой я участвовал, была португальская платформа для маркетинга и рассылки сообщений. Изучив сервис, я обнаружил SQL-инъекцию в API приложения. На весь процесс, от анализа до нахождения уязвимости, ушла примерно неделя.
Интересный момент: платформа выплачивала вознаграждения через PayPal, который на тот момент уже перестал работать в России. В итоге уязвимость признали критичной, поблагодарили за находку, но выплату так и не сделали.
Cyber Media: Какие навыки, полученные в QA, оказались наиболее полезными в багхантинге? Есть ли что-то, что вы считаете ключевым для перехода из тестирования в информационную безопасность?
Александр Фролов: Навыки, приобретенные в QA, очень полезны в багхантинге. Например, умение вести тестовую документацию помогает грамотно оформлять отчеты в багбаунти-программах, где очень важно подробно описать шаги воспроизведения уязвимости, объяснить, в чем заключается суть проблемы, какие риски она несет, а также предложить рекомендации по исправлению. Отчеты в таких программах проверяют люди, поэтому важно максимально точно и ясно донести информацию.
Кроме того, очень пригодились техники тест-дизайна, особенно одна из них — «Предугадывание ошибок». Это техника, при которой тестировщик, опираясь на свой опыт и знания, предугадывает, где с большей вероятностью может возникнуть ошибка. Это позволяет сосредоточиться на потенциально проблемных участках и провести более тщательную проверку.
Что касается перехода в информационную безопасность, то, на мой взгляд, ключевыми являются два фактора: интерес и желание совершенствоваться в этой области. Если есть мотивация и готовность развиваться, перейти в ИБ вполне возможно.
Cyber Media: На что смотрите при выборе скоупа для исследования? Какие программы более привлекательны для вас, как для багхантера?
Александр Фролов: Первое, на что я смотрю, — это скоуп. Чем он шире, тем больше шансов найти уязвимость. Также обращаю внимание на количество репортов, которые компания получила и приняла, а уже затем — на размер выплат.
В целом мне интересны все программы, но особенно привлекательны для меня банки, государственные структуры и сервисы с множественными ролевыми моделями.
Cyber Media: У вас много сданных отчетов в программах региональных государственных информационных систем. Чем они интересны для исследователя безопасности, сильно ли отличаются от бизнес-инфраструктуры?
Александр Фролов: Государственные программы — это те же приложения, что и в бизнесе, но, как правило, содержат большее количество уязвимостей. Для меня они интересны возможностью отточить свои навыки на практике и находить критичные уязвимости.
Например, в таких системах нередко встречаются SQL-инъекции, IDOR, SSRF, LFI, а также mass assignment, позволяющий повысить права пользователя до администратора.
Если вы только начинаете свой путь в багхантинге, я рекомендую обратить внимание на государственные программы. Шансы найти уязвимость здесь значительно выше.
Cyber Media: Есть ли у вас любимый тип уязвимостей или сценариев поиска? Почему именно они вас привлекают?
Александр Фролов: Мне особенно нравятся уязвимости IDOR (Insecure Direct Object References) и BAC (Broken Access Control), а также логические уязвимости, связанные с финансовыми операциями.
IDOR и BAC привлекают меня тем, что их не так сложно искать, но при этом они часто высоко оцениваются, так как могут приводить к серьёзным проблемам с доступом. Логические уязвимости более сложные, потому что требуют глубокого изучения продукта и проработки различных сценариев, особенно в контексте финансовых операций. Этот процесс более трудозатратный, но и результаты могут быть весьма ценными.
Cyber Media: Уязвимости в логике: насколько часто их удается найти и насколько они критичны? Можете ли вы привести примеры таких уязвимостей из своей практики?
Александр Фролов: Логические уязвимости крайне критичны для любого бизнеса, особенно если речь идет о сервисах, работающих с деньгами. Все зависит от специфики продукта, но такие уязвимости встречаются, хотя и не так часто.
Например, в одном интернет-магазине я обнаружил уязвимость, которая позволяла оплачивать товары с баланса другого аккаунта. Изучив API-запрос на редактирование профиля, я сменил номер телефона на другой. После этого в моем аккаунте отобразился баланс другого пользователя, который я смог использовать для оплаты.
В другом случае сервис с внутренней валютой (монетами) принимал отрицательные значения при оформлении заказов. Я оформил заказ на минус 98 наушников, и мне начислили 9800 монет на внутренний баланс, которые можно было потратить на реальные товары.
Еще один пример — популярный сервис, где я смог манипулировать ценой сертификатов. Перехватив запрос, я изменил стоимость сертификата на 10 рублей и успешно купил его по заниженной цене.
Хотя такие кейсы редки, они встречаются. Проверять подобные сценарии можно, опираясь на свою фантазию и глубокое понимание логики приложения.
Cyber Media: Если говорить о функциональности багбаунти-платформ, какие фичи или новые решения, на ваш взгляд, были бы востребованы у багхантеров?
Александр Фролов: Считаю, что одной из самых удобных функций могло бы стать оповещение через Telegram-бота. Например, если изменился статус репорта или триаж оставил комментарий, багхантер мог бы оперативно получить уведомление и быстро отреагировать.
Еще одна полезная функция — уведомления об изменении скоупа в программе. Это также можно интегрировать в Telegram-бота. Чтобы сделать эту функцию еще удобнее, можно добавить версионность изменений. Часто бывает, что скоуп обновляется, но невозможно понять, что именно изменилось.
Также на платформах есть рейтинги багхантеров — это отличная идея, но, на мой взгляд, было бы полезно добавить рейтинги для вендоров программ. Это позволило бы багхантерам оценивать качество программ, а лучших вендоров выводить в топ платформы.
Cyber Media: Какие типы уязвимостей, на ваш взгляд, чаще всего недооцениваются в багбаунти-программах? Почему?
Александр Фролов: Один из недооцененных типов уязвимостей — это возможность неограниченной отправки SMS-сообщений на телефон пользователя. Многие сервисы используют сторонних провайдеров для отправки сообщений, и каждый отправленный SMS стоит денег. Уязвимости, позволяющие злоумышленнику бесконтрольно инициировать отправку сообщений, могут привести к значительным финансовым потерям для владельцев бизнеса. Аналогичная проблема существует с отправкой спама по электронной почте — если нет ограничений на количество отправляемых писем, злоумышленники могут легко злоупотребить этой возможностью.
Также часто недооценены ошибки в бизнес-логике. Их сложность зависит от специфики продукта, но при правильном анализе и четкому описанию импакта такие уязвимости могут быть высоко оценены. Важно помнить, что если багхантер не согласен с оценкой критичности уязвимости, он всегда может обсудить это с вендором или представителем платформы багбаунти. Четкое описание сценария эксплуатации и потенциальных последствий уязвимости поможет повысить ее значимость в глазах вендора.
Cyber Media: Какие ошибки или трудности вы чаще всего встречали в начале своей карьеры багхантера? Что бы вы посоветовали новичкам, чтобы избежать этих проблем?
Александр Фролов: На старте многие новички пытаются найти критичные уязвимости в топовых продуктах. Это часто приводит к потере времени из-за высокой конкуренции и сложности таких проектов. Мой совет — структурировать подход. Составьте четкий план тестирования, опишите шаги, инструменты и методы. Это поможет выстроить процесс и применить его к разным проектам.
Также важно изучать разнообразные уязвимости, а не ограничиваться только самыми популярными. Использовать чек-листы для тестирования, создавать свои словари для фаззинга и брутфорса. Не бойтесь экспериментировать, это поможет найти неожиданные уязвимости.
Нажимая на кнопку, я даю Согласие на обработку персональных данных в соответствии с Политикой обработки.
Зарегистрироваться