Идея: зачем бэкендеру хакинг?
Классическая схема обучения в большинстве учебных заведений выглядит примерно так:
- основы языка;
- консольные приложения;
- алгоритмы;
- теория;
- и только потом, если хватило часов, что-то похожее на реальность.
Проблема в том, что у студентов нет быстрой и понятной обратной связи. Они не видят результата своих действий, не понимают, где это применяется в реальных системах, и довольно быстро теряют мотивацию. Кроме того, на старте в профессии очень тяжело расширять кругозор, если не знаешь, куда смотреть. Не у всех есть привычка развиваться самостоятельно, не у всех есть примеры, на которые можно опереться.
В итоге:
- мотивация падает;
- обучение воспринимается как набор несвязанных тем;
- «реальная разработка» кажется чем-то далеким.
Мне хотелось сделать формат, где студенты могут потрогать руками реальные приложения и сделать с ними что-то, что сразу дает эффект. Я подумал о том, что колледж в основном готовит бэкенд-разработчиков. А лучший способ научить бэкендера писать безопасный код — это показать, как этот самый код ломают. Вот и тема — «Уязвимости в веб-приложениях».
Почему именно воркшоп по ИБ, а не просто гайд по написанию сайта:
- Языковой барьер: студенты пишут на разных языках (C#, Python, js). Тема уязвимостей универсальна.
- Низкий порог входа: даже те, кто пока плохо кодит, могут понять логику SQL-инъекции или подбора пароля. Это вовлекает всех.
Пилотный воркшоп я решил провести в том же учебном заведении, где сам когда-то учился, — Вологодском колледже связи и ИТ.
Формат и сценарий
Идея простая: я пишу пару уязвимых приложений, обучаю студентов базовым атакам, даю им инструменты и выпускаю на «полигон». Чтобы добавить азарта, ввел соревновательный элемент: за лучший отчет об атаке — призы (профессиональная литература).
Сценарий мероприятия:
- Введение и дисклеймер. Объяснил, почему нельзя пентестить Госуслуги, что такое 272-я статья УК РФ и как оставаться в рамках закона (White Hat).
- Демонстрация. Показываю уязвимость на экране -> студенты тут же повторяют ее на своих ноутбуках.
- Обучение отчетности. ИБ — это не только взлом, но и умение грамотно описать проблему.
- Перерыв на пиццу. Критически важная часть любого мероприятия.
- Конкурс. Самостоятельный поиск уязвимостей с составлением отчета.
Техническое оснащение
Я решил ограничиться вебом. Это наглядно, быстро и не требует сложной настройки окружения.
Архитектура стендов
Я разработал два приложения на ASP.NET Core MVC:
- Сервис бронирования отелей.
- Интернет-магазин.
Функционал стандартный: авторизация, витрина, заказы и админка с мониторингом сервера.
Опираясь на рейтинг OWASP Top Ten, я внедрил следующие «дыры»:
- Проблемы с аутентификацией: сервер по-разному отвечал на ввод существующего и несуществующего логина (позволяет собрать список пользователей).
- Слабое хеширование.
- SQL-инъекция в фильтрах товаров на витрине.
- Insecure File Upload: отсутствие проверки расширения файла при загрузке аватара или фото товара.
- RCE (Remote Code Execution): через инъекцию кода в панели мониторинга (которая выполняла системные команды).
Инструментарий: студенты использовали ffuf (для фаззинга), Postman и hashcat (для брутфорса хешей).
Пример идеальной цепочки атаки
Один из сценариев, который разбирался целиком:
- Разведка по поддоменам.
- Enum пользователей по популярным именам и брутфорс паролей.
- В фильтрах витрины — SQL-инъекция.
- Через системные каталоги PostgreSQL получаем структуру БД.
- Вытаскиваем логин администратора и хеш пароля.
- Брутаем хеш.
- Входим в админку.
- Загружаем вредоносный файл через форму добавления товара.
- Через RCE запускаем его.
Результаты воркшопа
На воркшоп пришло около 20 человек. И теория, и практика всем зашли. Ребята посильнее с радостью помогали отстающим, что отдельно приятно удивило. Были заданы интересные вопросы, студенты явно получили заряд мотивации на обучение — и это главное.
Несмотря на общий успех, после воркшопа я собрал фидбэк и выделил три ключевых направления для «прокачки» следующего ивента.
Оживляем стенд
Сейчас лаба была статичной: студенты ломали «заброшенные» сайты. Чтобы приблизить опыт к реальному пентесту, я планирую:
- Написать скрипты, которые имитируют действия реальных людей. Например, админ заходит в панель управления и просматривает странички — так можно реализовать XSS.
- Сделать больше поддоменов и имитацию корпоративной сети. Это научит студентов не просто «биться в одну точку», а проводить более детальную разведку.
- Улучшить дизайн сайтов. Как ни странно, визуал важен. Более «взрослый» интерфейс приложений повышает серьезность восприятия.
Отчет об атаке
В воркшопе раздел с отчетом не был проработан в достаточной степени. Нужно больше примеров, чек-листов и практики.
Дифференциация сложности
В группе всегда есть «звезды», которые выполняют практику быстрее остальных. Пока остальные разбирались с тем, как запустить ffuf, эти ребята уже дошли до RCE и заскучали. В планах сделать несколько версий лабы — Junior, Middle и Senior, а также внедрить элементы CTF.
Заключение
Мероприятия в колледжах — мощный инструмент. Для студентов это шанс прикоснуться к практике, а для вас — прокачка личного бренда и навыков менторства. Если вы чувствуете в себе силы поделиться знаниями — не бойтесь предлагать такие активности учебным заведениям. Поверьте, горящие глаза студентов того стоят!
Кроме того, я веду телеграм-канал Flexible Coding, где рассказываю о программировании на .NET и не только. Подписывайтесь!