Журнал "Information Security/ Информационная безопасность" #6, 2023

Обычная ситуация: за то время, пока вы изучаете уязвимости в одном фрейм- ворке, выходит десяток новых отчетов по их исследованию. Чтобы быстро разо- браться с потенциальными уязвимостя- ми, которые несут прежде неизвестные вам фреймворки и технологии, нужно хорошо ориентироваться в источниках информации. Во время работы в коман- де на реальном проекте времени на вдумчивый поиск, как правило, нет. Если эти навыки накладываются на хорошее базовое образование, у вас есть пер- спективы в профессии. Мои стартовые знания о предмете сформировались на курсах по анализу защищенности в Московском политех- ническом университете, они в дальней- шем и предопределили выбор профес- сии. В вузе я получил базовую подго- товку по разработке в том числе веб- приложений, а практический опыт – в разработке на PHP. Благодаря само- стоятельному обучению у меня появи- лась возможность попрактиковаться в инфраструктурном пентесте. Первые попытки трудоустройства веб- пентестером показали, что моих знаний недостаточно. Тогда я решил поискать компании, работа в которых помогла бы восполнить пробелы в образовании и нако- пить опыт. Так я оказался в ИБ-техпод- держке компании Angara Security. При- мерно через два месяца состоялось мое первое собеседование на позицию спе- циалиста по анализу защищенности, кото- рое выявило все слабые места. Еще через несколько месяцев работы под руковод- ством наставника и погружения в учебные материалы я прошел четыре собеседова- ния и получил должность пентестера. Выбор будущего места работы не так прост, как может показаться. В крупной известной компании вы окажетесь в среде с высоким уровнем экспертизы. Вероятно, вам дадут наставника, но по- настоящему интересных багов на реаль- ных проектах будет немного. Дело в том, что услуги подобных организаций стоят дорого, их заказчики не склонны эконо- мить на разработке и безопасности. Вы будете иметь дело с качественными продуктами, которые до вас уже тести- ровали, так что шансов получить ценный опыт будет меньше. В небольшой компании лучше не рас- считывать на выделение наставника, завидный уровень экспертизы и зарплаты. Зато такие компании часто получают зака- зы на пентест самых дырявых приложений, а это бесценный опыт для новичка в про- фессии. С таким багажом можно со вре- менем перейти в компанию покрупнее. Как подготовиться к собеседованию Поскольку я специализируюсь на ана- лизе уязвимостей веб-приложений, пере- числю базовые знания и умения, отно- сящиеся именно к этой области. 1. Пентестер обязан знать, как прило- жение работает на уровне сети: что такое TCP-хендшейки, разрешения ip, доменные имена, прокси и т.д. К базо- вым знаниям также относятся принципы работы протоколов HTTP/HTTPS. Потре- нируйтесь заранее отвечать на вопросы типа "В чем разница http-методов?", "В каких случаях используется PATCH, а в каких POST?", "Чем HTTP 0.9/1.1 отличается от HTTP/2?". 2. Далеко не всегда уязвимость скры- вается в коде веб-приложения, она может быть заложена в его архитектуре, например в веб-сервере. Зачастую пен- тестер не видит архитектуру приложения, но может предполагать, как оно устрое- но, поэтому полезно иметь соответ- ствующие знания. 3. Сложность уязвимостей постоянно растет. Вам необходимо разбираться в базовых вещах, чтобы на их фундаменте можно быто выстроить понимание более сложных. 4. Навык поиска ответов на возни- кающие вопросы в открытых источниках, даже если есть у кого спросить. Сначала стоит поискать информацию и попробо- вать справиться самостоятельно, а уже потом просить помощи. 5. Умение писать и читать код на раз- ных языках: обязательно на PHP, JavaSc- ript, Python, Java, C#. Для анализа веб- приложений используются разные мето- ды: белый, серый и черный ящики. Если, например, вы используете белый ящик и у вас есть исходные коды приложения, опыт в разработке будет очень полезен. Пригодится навык писать скрипты авто- матизации и адаптировать под свою задачу сторонние инструменты. 6. Проекты часто включают изучение работы приложения со стороны внеш- него периметра. Нужно уметь сканиро- вать сеть и знать уязвимые сервисы, чтобы не пропустить очевидную брешь в безопасности. 7. В работе часто требуется теоретиче- ски обосновать суть уязвимости. Для этого нужно знать базовые понятия, например: принципы работы баз данных, разбираться в свойствах информации и понимать, что такое уязвимость, эксплуатация и т.д. В список необходимых базовых навыков входят администрирование систем Wind- ows и Linux. Изучение максимального числа уязви- мостей не сделает вас специалистом высокого класса, так как оно не нараба- тывает навык их поиска. В реальных проектах самое сложное – это обнару- жение уязвимости. Я рекомендую искать образы уязвимых приложений и анали- зировать их, не подсматривая в стек технологий и подсказки о заложенных уязвимостях. Это упражнение дает базо- вый опыт и представление о том, как все устроено в реальном проекте. Тем, у кого нет базового образования в области анализа защищенности, можно попробовать платные курсы по пентесту. Хорошие курсы, увы, недеше- вы, но в бюджетном сегменте ничего стоящего порекомендовать не могу. Важно понимать, что курсы не сделают из вас готового специалиста, как обе- щают их авторы, но вы получите доста- точное представление о профессии. l 68 • Профессия Карьера пентестера: с чего начинать нализ защищенности веб-приложений – это прежде всего поиск и исследование случаев некорректной работы программного кода и уязвимостей. Тем, кто выбирает эту профессию, следует иметь в виду, что она требует постоянного развития и умения пользоваться библиотекой ресурсов для самообразования. А Андрей Горшков, специалист команды анализа защищенности Angara Security Ваше мнение и вопросы присылайте по адресу is@groteck.ru

RkJQdWJsaXNoZXIy Mzk4NzYw