Как систематичное обучение становится ключом к освоению пентеста? Подробнее о курсе R-319 «Анализ защищённости веб-приложений»
В этом интервью автор курса, пентестер и CTO CyberED — Павел Сорокин поделился своим опытом работы в области информационной безопасности. Он рассказал о курсе и объяснил, почему систематичное обучение — это ключ к успеху для будущих специалистов. Мы также обсудили подходы к обучению, сложности в пентестинге и то, как практические задания помогают глубже понять безопасность веб-приложений.
— Давайте начнем с вашего профессионального пути. Как вы пришли в информационную безопасность и в итоге начали преподавать?
— Я учился на информационной безопасности, пентестами начал заниматься в компании «Информзащита» в 2015 году. Потом работал в BI.ZONE. После этого у меня был опыт работы Application Security инженером в Яндексе и Ozon. Это дало мне возможность смотреть на безопасность с двух сторон: как со стороны атакующих, так и со стороны тех, кто в защите.
Примерно в 2017 году я начал преподавать — накопилось достаточно знаний, и появилось сильное желание ими делиться. Так я начал создавать курс по безопасности веб-приложений на основе своего опыта пентестера. За годы курс отшлифовался: я добавил появившиеся новые темы, некоторые темы убрал. Мне было важно вложить в курс именно те знания, которые пригодятся начинающим пентестерам, с которыми я часто встречался по работе. Я видел, что молодые специалисты часто имеют пробелы в знаниях, которых можно было бы избежать при более систематичном обучении.
— Как возникла идея курса R319, и в чем его основная ценность?
— Основная идея курса — это системность. Я часто видел, что людям сложно выстроить траекторию обучения самостоятельно. В интернете много разрозненной информации, но понять, с чего начать и как всё увязать в единую картину — непросто. Без опыта невозможно адекватно оценить, что нужно учить в первую очередь, а что может подождать.
Многие образовательные программы дают лишь фрагменты знаний. Например, только 2 техники SQL-инъекции или только кражу куки через XSS — но не дают полного представления о глубине этих тем. Это проблема. Поэтому в курсе R319 я построил последовательную структуру: от основ к более сложным темам, чтобы у студентов сформировалось комплексное понимание безопасности веб-приложений.
— Как структурирован курс? Расскажите, как организован учебный процесс.
— Курс начинается с вводных занятий, где мы обсуждаем, что такое веб-приложение, как оно устроено, какие существуют типы уязвимостей. Это помогает студентам сориентироваться в материале и познакомиться с базовыми инструментами. Уже после этого переходим к практической части.
Мы подробно разбираем безопасность серверной части: как устроены инъекции, сериализация данных, что такое шаблоны и какие в них проблемы и т.д. Уделяем внимание клиентской безопасности — обсуждаем уязвимости, связанные с браузерами, такие как XSS и CSRF. Это темы, с которыми пентестеры сталкиваются на каждом проекте, и важно, чтобы студенты их хорошо понимали.
— А что студенты делают на практике?
— Практика — это ключевая часть курса. По большинству тем у нас есть минимум два задания. Первое — это то, что мы разбираем на очном занятии совместно. Второе — похожее, но чуть сложнее, его студенты решают самостоятельно. Так они могут закрепить материал и погрузиться в детали.
Есть темы, по которым предусмотрено только самостоятельное задание, например, сложные случаи SQL-инъекций. Мы просто физически не можем рассмотреть все виды инъекций на очных занятиях — их слишком много. Но студенты получают эти базовые знания, чтобы затем развивать их самостоятельно.
— В чем принципиальная важность системности? Почему вы уделяете этому такое внимание?
— Когда я только начинал работать пентестером, часто видел, что новички пытаются хвататься за инструменты вроде SQLMap. Это удобная утилита, она автоматизирует поиск и эксплуатацию уязвимостей. Но если не понимать, как работают SQL-инъекции «под капотом», инструмент может только навредить развитию пентестера. В какой-то момент, когда ситуация выходит за пределы стандартных сценариев, человек оказывается беспомощным. Также, не понимая, как работает инструмент, неопытный пентестер может пытаться получить от него то, что в данном случае в принципе невозможно.
Поэтому я всегда говорю студентам: важно не просто научиться запускать инструменты, а понять, как они работают. В курсе мы сначала изучаем, как эксплуатируются уязвимости вручную, а уже потом переходим к использованию автоматизированных инструментов. Этот подход развивает понимание процессов на более глубоком уровне. И когда в реальной работе возникает нестандартная ситуация, специалист уже знает, что делать.
— Вы упомянули, что на некоторые темы есть только теоретические материалы. Что это за темы и почему?
— Да, есть темы, на которые у нас не хватает времени для практики в рамках курса. Например, SQL-инъекции — это настолько обширная тема, что можно было бы провести отдельный курс только по ним. Мы рассматриваем основные типы инъекций и на практике студенты решают два задания. Но, конечно, невозможно охватить все аспекты.
Есть задания со «звездочкой» — они предназначены для студентов, которые хотят углубиться в тему самостоятельно. Это не обязательно для всех, но я всегда поощряю тех, кто стремится изучить тему глубже.
— По поводу интерактива в обучении: насколько важен доступ студентов к преподавателю?
— Я считаю, что это один из ключевых моментов. Преподаватель может объяснить сложные моменты, поделиться опытом из реальной работы. Часто на занятиях я рассказываю истории из своей практики, это помогает студентам лучше понять материал и увидеть, как знания применяются на практике.
Кроме того, на последних занятиях мы говорим о методологии тестирования веб-приложений. Это важная тема, потому что не существует идеальной, универсальной методологии. Существуют различные подходы, и у каждого пентестера со временем формируется свой стиль работы. Я показываю студентам своё видение вопроса и рассказываю, как можно выстроить эффективную методологию тестирования.
— В конце курса вы проводите занятия по подготовке к пентестерским интервью. Расскажите подробнее об этом
— Да, это одна из тех частей курса, которая вызывает большой интерес у студентов. На занятиях мы обсуждаем, как проходят интервью во время приема на работу, какие вопросы могут задавать, на что обращают внимание интервьюеры.
Я рассказываю, какие вопросы задаю сам, когда провожу собеседования, и как оцениваю ответы кандидатов. Для многих это полезная информация, потому что она помогает подготовиться к реальным собеседованиям и понять, что важно для работодателей.
— Итак, что вы бы посоветовали студентам, которые еще думают, стоит ли идти на курс R319?
— Если вы хотите не просто научиться запускать инструменты, а понять, как работает безопасность веб-приложений на глубоком уровне, то этот курс для вас. Мы уделяем много внимания системному изучению и практическому применению знаний. Вы научитесь не просто использовать готовые решения, а понимать, как они работают.
Кроме того, у нас большой выбор практических заданий, которые помогают закрепить знания. Мы разбираем темы и с серверной, и с клиентской стороны, чтобы у вас было полное понимание того, как устроена безопасность веб-приложений.
И, конечно, доступ к преподавателю-практику — это важный момент. Вы сможете задать любые вопросы, получить обратную связь и узнать, как функционирует индустрия изнутри.
— Спасибо за подробное интервью! Это был очень содержательный разговор.
— Спасибо вам! Уверен, курс будет полезен всем, кто стремится развиваться в области безопасности веб-приложений.