Режим обучения
Режим обучения предоставляет интерактивные пошаговые сценарии атак в симулированной среде браузера. Пройдите реальные цепочки атак, чтобы понять, как эксплуатируются уязвимости и как их предотвратить.
Как это работает
Режим обучения использует управляемый интерфейс с разделённым экраном, где Вы следуете за интерактивным сценарием атаки:
Левая панель — Гид по сценарию
Пошаговые инструкции, контекст сценария и нарратор, который проводит Вас через всю цепочку атаки. Каждый шаг говорит Вам точно, что делать.
Правая панель — Симулированная среда
Полностью интерактивный браузер, мобильное устройство или прокси-симуляция, где Вы выполняете действия — нажимаете кнопки, заполняете формы и наблюдаете за ответами в реальном времени.
Интерфейс Режима обучения
Вот как выглядит режим обучения с разделённым экраном во время сценария:
Измените id в URL с /profile/1 на /profile/2. Обратите внимание, что приложение выдаёт данные второго пользователя без проверки владения.
params.id как источнику истины вместо проверки сессии.Структура сценария
Каждый сценарий следует согласованному пятиэтапному шаблону, отражающему реальные оценки безопасности:
Симулированные среды
Режим обучения использует три типа симуляции в зависимости от категории уязвимости:
| Среда | Используется для | Описание |
|---|---|---|
| SimBrowser | Web-уязвимости | Полностью интерактивная симуляция веб-браузера с адресной строкой, навигацией, формами и динамическими ответами. Используется для XSS, CSRF, SQL Injection и других веб-атак. |
| SimMobilePhone | Мобильные уязвимости | Симуляция устройств iOS и Android с нативными элементами UI, статус-баром и сенсорными взаимодействиями. Используется для незащищённого хранилища, WebView injection и сценариев certificate pinning. |
| SimWebProxy | API-уязвимости | HTTP request/response прокси, показывающий сырые API-вызовы, заголовки и полезные нагрузки. Используется для BOLA, mass assignment, broken authentication и других сценариев безопасности API. |
Отслеживание прогресса
Каждый сценарий отслеживает Ваш прогресс, чтобы Вы могли продолжить с того места, где остановились:
| Метрика | Описание |
|---|---|
| Текущий шаг / Всего шагов | Показывает Вашу позицию в сценарии — например, «Шаг 8 из 14» |
| Статус завершения | in_progress или completed |
| Поддержка возобновления | Вы можете закрыть сценарий и вернуться позже — он возобновится с Вашего последнего шага |
Прогресс сценария
Ваш список сценариев показывает текущий прогресс с одного взгляда:
Когда управляемый сценарий учит тому, чего не может задание по ревью кода
Задание по ревью кода в Режим практики даёт Вам самодостаточный фрагмент. Это справедливое представление того, как уязвимости выглядят построчно, но большинство реальных уязвимостей не находятся в одной строке. Они живут между файлами, между сервисами или на границе между клиентом и сервером. IDOR — это канонический пример: плохой код — это не запрос к базе данных, это отсутствующая проверка авторизации на три слоя выше в стеке. Режим обучения — это формат, который может показать Вам этот зазор, потому что он ставит всё приложение перед Вами.
То же верно для любой уязвимости, где эксплуатация зависит от состояния сессии, многошаговых потоков запросов или контролируемого атакующим тайминга. Stored XSS имеет значение только когда payload путешествует от одного пользователя к другому. Mass assignment имеет значение только когда слой моделей доверяет ключам тела запроса, которые он никогда не должен был выставлять. Фрагмент не может показать эту цепочку. Сценарий может, потому что Вы входите в систему, выполняете действия, наблюдаете за ответами и видите, как уязвимость превращается в нарушение в реальном времени. Пятиэтапная структура сценария выше спроектирована именно вокруг этой дуги.
Как использовать Режим обучения, если Вы уже senior
Senior-разработчики и инженеры безопасности иногда пропускают Режим обучения, потому что нарратор и пошаговые инструкции кажутся медленными. Это справедливо для классов уязвимостей, которые Вы лично эксплуатировали десятки раз. Правильное использование Обучения для senior-учащихся — целевое, а не «всё подряд». Бегло просмотрите Введение, бегло просмотрите Разведку и замедляйтесь на Эксплуатации только когда поверхность атаки незнакома. Бэкенд-инженер, никогда не писавший iOS-код, узнает больше из одного мобильного сценария про незащищённое хранилище, чем из двадцати заданий Практики в той же категории, потому что незнакомая часть — это платформа, а не концепция.
Другой senior-кейс — закрытие языковых пробелов. Если Вы присоединились к команде, использующей стек, который Вы плохо знаете, сценарии Обучения в этом стеке работают как быстрая экскурсия по форме приложения и поверхности атаки, которую Вы будете рецензировать. Сочетайте это с Практикой в выровненном стеке из Настройки стека, чтобы быстрее войти в новую кодовую базу, чем чтением одной только документации.
Пользовательские курсы объединяют Обучение и Практику
Администраторы организации могут собирать именованные последовательности, смешивающие сценарии Обучения и темы Практики в один кураторский путь — см. Пользовательские курсы для процесса сборки. Когда Вам назначен пользовательский курс, Вы потребляете его по адресу /learn/custom/<courseId>, как будто это встроенный курс, и элементы появляются в порядке, который определил администратор. Элементы Практики всё ещё начисляют и награждают XP так же, как они это делают в Режиме практики; элементы Обучения всё ещё пишут прогресс по сценариям так же, как они это делают здесь.