Мой путь в ИБ начался с нуля - у меня не было опыта работы и образования в айти в целом, будь это системное администрирование или программирование. Я просто планомерно учился и сдавал сертификации. За три года у меня собрался определенный стек: OSCP, HTB CWES, CRTP, PNPT, PJPT, PJOR, CompTIA A+, Network+ и Security+.
Когда пришло время искать работу пентестером, я столкнулся с реальностью: вакансий в моем регионе почти нет, а те, что находил, не приносили даже приглашений на собеседование. Профиль без практического опыта не вызывал интереса у работодателей. Чтобы начать нарабатывать реальный стаж, я решил попробовать себя в багхантинге.
Основная цель была простой получить опыт и проверить свои знания в бою, а не в лабораторной среде. Ну и, конечно, был интерес заработать репутацию практика и получить первые выплаты.
Выбор площадки
Я решил начать с локальной казахстанской платформы RTeam. На мировых площадках вроде HackerOne меня пугала огромная конкуренция - казалось, что новичку там делать нечего, всё уже найдено до меня. Я не смогу конкурировать с лучшими хакерами из всего мира.
На RTeam у меня была программа с маленьким скоупом. Первое время я не столько искал баги, сколько экспериментировал, пробовал применять методы, о которых недавно узнал, изучал новые тулзы в багхантинге. Я не ставил задачу сразу найти уязвимости, а старался больше вникнуть в то, как всё устроено.
Месяц в цифрах
Изначально мои ожидания были скромными: я надеялся найти хотя бы одну небольшую уязвимость. В итоге за месяц активной работы получилось отправить 9 отчетов.
Результаты распределились так:
3 выплаты на сумму ~$400: за одну уязвимость уровня High я получил ~$200, за Medium - ~$100, и еще одна High принесла ~$100. Понятие «нормальности» у всех разное, но для старта, для меня, это неплохой результат.
Остальное: 1 Low (не выплачивается), 1 Info (не выплачивается) и 1 отчет ушел в «вне скоупа».
Дубликаты: 3 отчета были помечены как дубликаты. Поначалу это сильно демотивирует, главное не опускать руки и дальше продолжать “тыкать”).
Отдельным пунктом идет одна находка. Я обнаружил небольшую уязвимость уровня Medium в софте и обратился напрямую к разработчикам. Они подтвердили наличие бага и эскалировали его на дальше внутри команды разработки. Сейчас я жду новостей - надеюсь на выплату и, если повезет, на присвоение номера CVE.
Чему меня научил этот месяц (Уроки)
За этот месяц я пересмотрел много обучающих видео и понял несколько очевидных вещей):
Если технически не силен, нужно брать качественной разведкой. Нужно искать активы и эндпоинты, которые другие просто не нашли.
Многие исследователи не хотят тратить время на глубокое изучение функционала: создавать несколько аккаунтов, тестировать взаимодействие между ролями «жертва-атакующий». Если ты доходишь до этой стадии и разбираешь каждую кнопку на винтики, шанс найти баг резко возрастает.
Не зацикливаться на Application level. Баги есть не только в коде приложения. Многие хантеры просто забивают на уровень сервисов (открытые порты, устаревшие версии ПО, работающие на этих портах, и мисконфиги).
Багхантинг и обучение должны идти параллельно (по крайней мере для меня, так как у меня немного скиллов). Недостаточно просто гуглить по мере возникновения проблем. Я выделил время на системное прохождение курсов. Например, за этот месяц я прошел материалы по методологии Jason Haddix и изучил новые темы в PortSwigger Academy (атаки на ИИ и JWT-токены). Надо расширять свой кругозор.
Экономика и время
Многих интересует, сколько времени нужно тратить, чтобы получить результат. У меня это выглядело так: в будние дни я старался уделять багхантингу минимум три часа после основной работы (обычно до 9 вечера), в выходные сидел чуть дольше. В итоге в где-то среднем в день выходило по 4 часа.
Весь месяц я разделил на два этапа:
Первые две недели ушли на обучение. Я смотрел материалы по методологии Jason Haddix и проходил PortSwigger Academy.
Следующие две недели я занимался непосредственно поиском багов на выбранной программе с учетом новых знаний и методологии.
По взаимодействию с платформой: проблем не возникло. Триаж на RTeam работал быстро - в среднем 1–2 дня на ��тчет. Выплаты приходили в течение 7–10 дней. Были случаи занижения критичности, но я относился к этому спокойно - аргументация со стороны платформы была адекватной, и на их месте я бы, скорее всего, поступил так же.
Советы новичкам
Главный вывод, который я сделал: сертификация и реальный багхантинг - это очень разные вещи. Сертификаты дают примерно 20–30% от того, что нужно на практике. В обучении вам обычно дают урезанной приложение с парой функций, где баг точно есть. В багхантинге всё иначе:
В курсах почти не учат разведке (recon), а без неё твой скоуп будет слишком узким.
Реальные приложения огромны. Вас не учат справляться с таким потоком информации и расставлять приоритеты - что проверять первым, а на что не тратить время.
Мои рекомендации тем, кто начинает:
Выберите одну программу и потратьте на неё хотя бы 50 часов, если скоуп большой, то и все 100 часов, не меньше. Не бегайте между программами. Изучите каждый винтик в приложении. Ваша цель в начале - не «срубить денег», а стать исследователем, который понимает программу лучше, чем остальные хантеры. Баги найдутся сами как побочный эффект такого погружения.
Живой опыт бесценен. Рекомендую каналы: NahamSec, JakSec, InsiderPhD, The-magn4, BugBountyReportsExplained и подкаст Critical Thinking. Там дают рабочие советы из жизни.
Если её нет базы по вебу, то лучшие ресурсы - это курсы HTB CWES и подготовка к Burp Suite Certified Practitioner (BSCP). Также слышал, что крутые лабы у PentesterLab (у них делается упор на баги, которые можно найти в реальной жизни).
Если вы совсем с нуля, начните с CompTIA Security+ и курсов от TCM Security (PJPT, PNPT). Экзамены сдавать не обязательно (но я настоятельно рекомендую), но пройти материал нужно для понимания базы.
Заключение и планы
Сейчас, когда я закончил работу с программой на RTeam, пришло время двигаться дальше. Мой следующий шаг - выход на зарубежные площадки (но это еще неточно).
Я уже присматриваюсь к платформе Intigriti. Пока я не выбрал конкретную программу, но планирую действовать по той же схеме: не распыляться на всё подряд, а найти один интересный проект и глубоко в него погрузиться.
Сегодня создал телеграм-канал. Буду и дальше выкладывать там свой прогресс по багхантингу и просто мысли по теме, не только технические. Комментарии открыты, так что если есть вопросы или хотите что-то обсудить - заходите, пообщаемся.
