Сергей Сарайчиков — пентестер (от penetration test — тестирование на проникновение). Его задача проверить программу на уязвимости — то есть взломать ее до того, как это сделает злоумышленник. Это профессия с налетом «романтичности», но при этом о ней мало говорят и мало знают.
Почему для начинающих специалистов это только плюс и какие навыки нужны пентестеру, Сергей рассказал в интервью журналистке Highload.
Я пришел в сферу безопасности из программирования. Занимался разработкой с 15 лет: писал на PHP — сначала на фрилансе, потом собрал свою команду. Компания, в которой я CTO, есть и сейчас. Мы разрабатываем высоконагруженные CRM-системы. Я непосредственно разработкой уже не занимаюсь, иногда делаю аудит кода — могу найти ошибку с точки зрения безопасности за считанные секунды.
Кибербезопасностью я заинтересовался года три назад. Начал изучать вопрос, чтобы разрабатывать защищенные продукты, и в какой-то момент углубился серьезнее. Понял, что большинство проектов в нашей стране уязвимы, и захотел помочь это исправить.
Сейчас я могу сказать, что закрывал баги на больших государственных сайтах, о которых все знают. Но назвать их, конечно, не могу. Вообще в Украине о таком открыто говорят только Prozorro, «ПриватБанк» и «Хостинг Украина» — это единственные ребята, которые могут сказать, сколько у них найдено багов.
Сейчас такой тренд: все делаем быстро и в продакшен. Все продукты постоянно развиваются дикими темпами, и это дает последствия.
Все это ведет к уязвимости: один маленький незначительный баг может спровоцировать дырку во всей системе, вплоть до административных доступов.
Тестировщик проверяет, чтобы программа работала корректно — различные вещи, которые соответствуют техническому заданию.
Пентестер проверяет не корректность программы, а лазейки, через которые можно залезть в эту программу. У пентестера есть набор софта и правил, по которым он проверяет ПО. Тестировщик тоже может обнаружить уязвимость, но в основном он таким не занимается.
Общее между тестировщиком и пентестером: они оба не могут гарантировать, что продукт на 100% идеальный. Есть только какой-то уровень защищенности, он определяется разными метриками и KPI.
Важен даже не уровень защищенности, а скорость аудита и исправления багов. Например, с сайта career.gov.ua несколько лет назад слили в сеть 300 тысяч документов. Дырка на нем существовала годами. Это плохой пример. Но такая дырка вполне допустима на других сайтах, особенно, если ее закроют в течении получаса.
Также пентестер, как и QA, идет по своему чек-листу — что ему надо проверить. Он ставит себе конкретные задачи, по каждому направлению прорабатывая каждую детальку. Но на bug bounty стратегия немного другая: там участвует много людей, что создает конкуренцию, так что скорость может быть ключевым показателем.
Пентестеру нужно иметь базовые навыки по работе со специализированным софтом, базовые представления о том, что такое XSS (внедрение вредоносного кода в страницы веб системы) и SQL injection (внедрение в запрос произвольного SQL-кода для взлома ПО, работающего с базами данных).
Для этого надо закончить минимальный курс. Например, разработчики софта Burp Suite делают крутую бесплатную академию, которую можно пройти самостоятельно.
Порог вхождения в профессию очень небольшой. В программировании он намного выше. Чтобы стать джуном на JS, с нуля надо учиться минимум месяца четыре, а находить атаки XSS можно при желании научиться за две недели.
При этом востребованность на пике, классных спецов требуется очень много. У мидлов колоссальные возможности. Джуну, конечно, будет тяжелее, но bug bounty — идеальный способ набраться опыта. Ищите открытые программы здесь:
Пентестер может быть и штатным сотрудником: в аутсорс-компаниях или продуктовых (в Украине на постоянную основу нанимает например Lifecell, Vodafone, Raiffeisen Bank). Также можно быть фрилансером и заключать контракты с клиентами напрямую.
Вообще пентестирование — не дешевое удовольствие, может стоить десятки тысяч долларов. Потому то, когда и как часто его внедряют, зависит от компании. Если пентестер есть в штате, такие проверки проводят на каждом этапе жизненного цикла ПО. Если нанимают сторонних специалистов — то раз в полгода-год.
По времени пентестирование занимает от трех месяцев. Обычно нанимают не одного человека, а трех-четырех, плюс одного продакт-менеджера. Один пентестер может работать, но неэффективно.
Но фрилансеру не обязательно искать команду: ты просто закроешь тот кейс, которым обладаешь. Например, можно тестировать много направлений — веб, серверное проникновение. Ты выбираешь специализацию и копаешь в эту сторону.
Если ты работаешь пентестером на фирме, твоя зарплата будет приравниваться к зарплате классного программиста, в соответствии с уровнем. То есть на уровне мидла получишь около $2000–2500. У сеньоров цифра не ограничена.
Если у тебя есть контракт с какой-то компанией, цифра не ограничена. Контракты стартуют от $10–15 тысяч, могут достигать и $50 тысяч.
Оплата в bug bounty зависит от количества найденных багов. Нашел баг — получил деньги, не нашел — не получил.
В Prozorro, например, за маленький баг платят 8400 грн, за большой — 28 тысяч грн. В международных программах расценки выше, но и найти что-то сложнее, ведь участвует весь мир. Плюс, пентестеру на bug bounty всегда надо доказать, что баг, который он нашел, действительно опасен.
Вообще я считаю, что bug bounty — это территория, где ты можешь вытащить счастливый билет, а можешь и нет. И не всегда это зависит от профессионализма.
Сложилась такая цепочка случайностей: в каком-то банке в Великобритании вылетел токен авторизации, который не валидируется. И $30 тысяч у тебя в кармане. А ведь это кейс, который может произойти по банальной ошибке. Токен не проверили, и все. Хотя на самом деле с его проверкой справился бы обычный тестировщик.
Контракт с пентестером обязательно включает неразглашение коммерческой тайны. Его нарушение карается законом Украины — попадешь под суд.
В остальном контракт похож на обычный договор на оказание услуг по тестированию такого-то продукта. Срок исполнения такой-то, объем работ такой-то. Выполнили, составили акт, подписали — все готово.
Штрафы в договор обычно не вписывают. И не думаю, что они работают. Вообще надо быть очень глупым, чтобы все это рассказать. Я боюсь даже название компании назвать, а не то что рассказывать, что у них было.
Большинство государственных продуктов, которые делаются сейчас у нас на рынке, хорошо защищены. Если даже есть какие-то нюансы, я уверен, их исправляют, можно пользоваться и не переживать.
Про «Дию» регулярно появляются какие-то спекулятивные посты в соцсетях, но реальных кейсов уязвимостей я еще ни разу не видел. Я считаю, что «Дия» сделана с точки зрения безопасности на высоком уровне.
Пользователям стоит опасаться не государственных сайтов, а обычных. Например, вроде сервисов подписания документов. Люди загружают туда свои документы, а ведь никто не знает «внутреннюю кухню» такого сайта. Данные сольют — на вас окажется кредит.
Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…
В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…
Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…
Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…
Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…
IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…