Rostelecom Security Labs

Rostelecom CyberSec Academy Roadmap

Дорожная карта разработки лабораторных для Rostelecom CyberSec Academy. Шесть направлений покрывают путь от базового secure coding до сложных цепочек атак и edge-case сценариев. Используем как ориентир при планировании релизов и составлении backlog.

6 направлений
54 лабораторий
итераций
Раздел I.

I. Основы.

Базовые практики безопасной разработки: валидация, экранирование, контроль ошибок и логирование.

I-01. Валидация ввода и каноникализация.

Описание
Инъекции через неправильную фильтрацию; обходы через Unicode, percent-encoding и разные кодировки; валидация на границе (API, формы, query).
Цели
Понять необходимость серверной валидации, научиться каноникализации данных и формализовать правила валидации.
Сложность
сложность 2/5

I-02. Контекстное экранирование.

Описание
Контексты: HTML, атрибут, JavaScript, URL, CSS, SQL; ошибки при использовании одного типа экранирования для всех контекстов; практические bypass'ы.
Цели
Применять корректное экранирование в зависимости от контекста, внедрить утилитарные функции/сниппеты.
Сложность
сложность 3/5

I-03. Ошибки и утечки информации.

Описание
Stack traces, debug-панели, verbose-логи, internal IDs/URL в ответах и логах.
Цели
Маскирование технических деталей в ошибках, стандартизация сообщений и безопасное логирование.
Сложность
сложность 2/5

I-04. Логирование без чувствительных данных.

Описание
Риски логирования паролей, токенов, PII; транзакционные и корреляционные идентификаторы, redaction.
Цели
Встроить в приложение безопасное логирование и правила маскирования чувствительных полей.
Сложность
сложность 2/5
Раздел II.

II. OWASP Top-10 Core.

Классические уязвимости OWASP Top 10 и смежные техники с упором на эксплуатацию и устойчивые фиксы.

II-01. XSS: отражённый, сохранённый, DOM.

Описание
Точки входа и sinks, sanitizer’ы, CSP как защитный слой, обходы фильтров.
Цели
Находить XSS и фиксить их в шаблонах/компонентах.
Сложность
сложность 3/5

II-02. CSRF и SameSite.

Описание
CSRF через формы и XHR; CSRF токены, double-submit, SameSite политики.
Цели
Защитить state-changing операции без ухудшения UX.
Сложность
сложность 2/5

II-03. SQL Injection.

Описание
UNION-, error-, blind-SQLi; уязвимости при динамическом формировании запросов.
Цели
Переход на параметризованные запросы/ORM-safe patterns и добавление тестов.
Сложность
сложность 3/5

II-04. NoSQL Injection.

Описание
Инъекции в Mongo/Elasticsearch/Redis (например, $where и неподходящая сериализация).
Цели
Безопасная сборка запросов и отказ от eval-like операций.
Сложность
сложность 3/5

II-05. Path Traversal.

Описание
../../ обходы, символические ссылки, некорректная нормализация путей.
Цели
Каноникализация путей, allow-list для файловых операций, безопасный sandbox.
Сложность
сложность 2/5

II-06. Command Injection.

Описание
Инъекции в вызовы shell (system/exec), опасные шаблоны и неподготовленные аргументы.
Цели
Использовать безопасные API, избегать shell interpolation, внедрить проверки и изоляцию.
Сложность
сложность 4/5

II-07. SSRF (Server-Side Request Forgery).

Описание
Уязвимости при работе с внешними URL: доступ к внутренним сервисам, метаданным облака.
Цели
Валидация/allow-list хостов, схемы, ограничение egress, DNS/HTTP фильтры.
Сложность
сложность 4/5

II-08. SSTI (Server-Side Template Injection).

Описание
Уязвимости движков шаблонов (Jinja, Twig и т.д.) — исполнение выражений -> RCE.
Цели
Отключить небезопасные возможности шаблонов, разнести template/data boundaries.
Сложность
сложность 4/5

II-09. XXE (XML External Entity) и XML-атаки.

Описание
DTD/entity include, Billion Laughs, вытягивание файлов через XML-парсер.
Цели
Отключить внешние сущности в XML-парсерах, применять secure parsing.
Сложность
сложность 3/5

II-10. Unsafe File Upload.

Описание
Polyglot-файлы, обходы MIME, небезопасная обработка превью (image processors RCE).
Цели
Проверять содержимое файла, whitelist-форматы, обработка в песочнице.
Сложность
сложность 4/5

II-11. CORS Misconfiguration.

Описание
Access-Control-Allow-Origin: * для приватных API, некорректные Access-Control-Allow-Credentials.
Цели
Жёсткая политика доверенных origin и минимизация доверия.
Сложность
сложность 2/5

II-12. HTTP Parameter Pollution (HPP).

Описание
Дубли параметров и неоднозначности в разных фреймворках.
Цели
Нормализация параметров и явные правила обработки дубликатов.
Сложность
сложность 3/5

II-13. Cache Poisoning.

Описание
Host/Origin/Accept-vectors для отравления CDN/Proxy кэша.
Цели
Каноникализация входа, контроль vary/host, secure-cache keys.
Сложность
сложность 4/5
Раздел III.

III. Аутентификация и сессии.

Защита аутентификации и сессий: настройки куки, MFA, процессы восстановления и централизованный контроль доступа.

III-01. Cookie-based сессии и флаги безопасности.

Описание
HttpOnly, Secure, SameSite, scope куки; управление сроками жизни.
Цели
Настроить безопасные куки и уменьшить риск кражи сессий.
Сложность
сложность 3/5

III-02. Сессионный hijacking и fixation.

Описание
Угрозы через украденные куки, фиксация сессии до логина.
Цели
Ротация сессий при авторизации, привязка к устройству/IP, механизмы invalidate.
Сложность
сложность 3/5

III-03. Password reset уязвимости.

Описание
Предсказуемые токены, токены в URL, reuse токенов.
Цели
Использовать одноразовые короткоживущие токены, secure storage и логирование попыток.
Сложность
сложность 3/5

III-04. MFA (многофакторная аутентификация) и возможные bypass'ы.

Описание
TOTP, SMS, WebAuthn; уязвимости через recovery flows и social engineering.
Цели
Тестирование MFA-процессов и закрытие векторов обхода.
Сложность
сложность 3/5

III-05. Access Control: RBAC/ABAC и IDOR (Insecure Direct Object Reference).

Описание
Неправильная проверка владения ресурсом (например, прямые ID в URL).
Цели
Централизованная проверка доступа (PEP/PDP), моделирование и закрытие IDOR-случаев.
Сложность
сложность 3/5
Раздел IV.

IV. Современные протоколы и API.

Современные протоколы и API: JWT, OAuth/OIDC, GraphQL, WebSockets и построение безопасных интеграций.

IV-01. JWT: структура и базовые проверки.

Описание
Header/Payload/Signature, верификация exp/nbf/iss/aud, clock skew.
Цели
Корректно проверять токены и claims.
Сложность
сложность 2/5

IV-02. JWT уязвимости: alg=none, kid-инъекции, key confusion.

Описание
Подмена алгоритма, некорректная обработка JWK/kid, слабые/динамические ключи.
Цели
Жёсткая валидация алгоритмов и безопасная загрузка ключей.
Сложность
сложность 4/5

IV-03. OAuth/OIDC: Authorization Code + PKCE (SSO).

Описание
Поток авторизации, state/nonce, redirect_uri, PKCE для публичных клиентов.
Цели
Безопасная реализация SSO и защита потоков.
Сложность
сложность 3/5

IV-04. OAuth уязвимости: open redirect, mix-up, token leakage.

Описание
Open redirect, смешение клиентов, токены в логах/URL.
Цели
Строгие whitelist для redirect_uri, не передавать токены в URL.
Сложность
сложность 4/5

IV-05. JWT/OAuth advanced: refresh & rotation.

Описание
Проблемы с refresh-token (replay, long-lived tokens), approaches to rotation, blacklist/revoke.
Цели
Реализовать безопасную ротацию refresh-токенов и защита от replay.
Сложность
сложность 4/5

IV-06. GraphQL Security.

Описание
Интроспекция, глубина/сложность запросов, batching, expensive-resolvers.
Цели
Ограничить depth/complexity, rate-limit, внедрить authorization на уровне схемы.
Сложность
сложность 4/5

IV-07. WebSockets: аутентификация и авторизация realtime-каналов.

Описание
Авторизация handshake, origin-check, message-ACL, reconnect logic.
Цели
Безопасная архитектура realtime и контроль доступа на уровне сообщений.
Сложность
сложность 3/5
Раздел V.

V. Advanced Web Exploitation.

Продвинутая эксплуатация: гонки, логические изъяны, abuse-сценарии и комплексные цепочки атак.

V-01. Race Conditions (TOCTOU, double-spend).

Описание
Конкурентные запросы к общему ресурсу -> неверное состояние (двойная оплата, дублирующие операции).
Цели
Проектировать идемпотентные операции, применять locking / DB-transactions, detect double-submit.
Сложность
сложность 4/5

V-02. Business Logic Flaws.

Описание
Уязвимости процесса (checkout, discounts, privilege escalation через счастливые пути).
Цели
Моделирование abuse-cases, тестирование workflow и построение защит.
Сложность
сложность 4/5

V-03. Account Takeover Scenarios (ATO).

Описание
Цепочки векторов (XSS + CSRF + reset-flow abuse + social engineering).
Цели
Создавать attack-chain лаборатории и закрывать все вовлечённые векторы.
Сложность
сложность 4/5

V-04. Abuse Cases: rate-limits, spam, automated abuse.

Описание
Массовая регистрация, credential stuffing, API abuse, бот-активность.
Цели
Проектировать adaptive throttling, CAPTCHA, device fingerprinting и progressive challenges.
Сложность
сложность 3/5

V-05. Chaining Vulnerabilities (SSRF -> XXE -> RCE и пр.).

Описание
Комбинации багов, где low-severity issue служит ступенью к критичному.
Цели
Искать цепочки и представлять end-to-end эксплойты в лабораториях.
Сложность
сложность 4/5
Раздел VI.

VI. Дополнительные веб-лабораторные (расширения).

Расширенные веб-сценарии: edge-cases клиентской безопасности, CDN/third-party риски и новые стандарты.

ADD-01. Subdomain takeover (dangling CNAME).

Описание
Поиск висящих CNAME/subdomain takeover (S3, Heroku, GitHub Pages и т.д.) и последствия (cookie scope, impersonation).
Цели
Научиться находить takeover, понимать исправления (DNS + cloud config).
Сложность
сложность 3/5

ADD-02. DNS rebinding & DNS-based exfiltration.

Описание
DNS rebinding для обхода same-origin и доступа к internal endpoints; настройка controlled DNS; практики exfil.
Цели
Понять механику rebinding и защиты (dns pinning, loopback rules).
Сложность
сложность 4/5

ADD-03. CSP: настройка, bypasses и мониторинг.

Описание
Формирование CSP, демонстрация обходов (unsafe-inline, nonce mistakes), использование report-uri/report-to.
Цели
Писать безопасные CSP и тестировать обходы.
Сложность
сложность 3/5

ADD-04. Clickjacking & Frame-Ancestors.

Описание
Демонстрация clickjacking и защита (frame-ancestors, X-Frame-Options), недостатки frame-busting.
Цели
Закрыть UI-based атаки через фреймы.
Сложность
сложность 2/5

ADD-05. Host / Origin header attacks (password reset, cache poisoning).

Описание
Манипуляции Host/Origin/Referer и влияние на генерацию ссылок (password reset), последствия для кеша.
Цели
Защита генерации ссылок, canonical host checks.
Сложность
сложность 3/5

ADD-06. Reflected File Download (RFD) / Insecure download flows.

Описание
Отражённая загрузка файла через Content-Disposition abuse; манипуляции content-type/mime.
Цели
Безопасная генерация и отдача файлов.
Сложность
сложность 3/5

ADD-07. Source map leakage & client-side secret exposure.

Описание
Утечка исходников (source maps), dev endpoints, .env в публичных сборках.
Цели
Научиться обнаруживать и закрывать клиентские утечки.
Сложность
сложность 2/5

ADD-08. Service Worker & PWA takeover.

Описание
Уязвимости service-worker: scope misconfig, stale caches, interception.
Цели
Понимать security-модель SW и паттерны безопасной регистрации/обновления.
Сложность
сложность 4/5

ADD-09. postMessage / Cross-window messaging flaws.

Описание
Небезопасная обработка window.postMessage без origin-check -> data leakage / RCE в page context.
Цели
Безопасная обработка сообщений и origin-валидация.
Сложность
сложность 3/5

ADD-10. WebAssembly (WASM) security basics.

Описание
Безопасность импортов/экспортов, взаимодействие WASM ↔ JS, недостоверная валидация.
Цели
Ознакомиться с потенциальными векторами при внедрении WASM.
Сложность
сложность 4/5

ADD-11. Browser Extension / Add-on vulns (web-integration lab).

Описание
Простейшее расширение + уязвимый сайт: message passing/permissions abuse.
Цели
Понять модель расширений и взаимодействия с сайтом.
Сложность
сложность 3/5

ADD-12. Cross-origin Resource Leaks via Redirects / PRG pitfalls.

Описание
Как open-redirects/redirect chains могут утекать токены и Referer.
Цели
Закрывать цепочки redirect и безопасно обрабатывать редиректы.
Сложность
сложность 3/5

ADD-13. Client-side prototype pollution -> server impact chains.

Описание
JS prototype pollution на клиенте и трансформация в цепочку до server-side impact.
Цели
Демонстрировать chaining до RCE и методы защиты.
Сложность
сложность 4/5

ADD-14. URL parsing / normalization discrepancies.

Описание
Различия в парсерах (browser vs backend vs proxy) приводят к bypass (path normalization, percent-encoding).
Цели
Понимать где возникают несогласованности и фиксить canonicalization.
Сложность
сложность 4/5

ADD-15. Insecure client-side crypto / bad JWT usage in front-end.

Описание
Хранение токенов в localStorage, использование JWT для client-side trust decisions.
Цели
Правильная стратегия хранения токенов и разделение обязанностей client/server.
Сложность
сложность 2/5

ADD-16. Cross-site search / autocomplete injection.

Описание
Autosuggest/search endpoints как источник XSS/LEAK.
Цели
Безопасно обрабатывать поисковые результаты и previews.
Сложность
сложность 2/5

ADD-17. Open redirect advanced (phishing/OAuth chains).

Описание
Chains open-redirect -> phishing -> OAuth abuse.
Цели
Понять влияние redirect и внедрить строгие whitelist-механизмы.
Сложность
сложность 3/5

ADD-18. Edge-case CORS labs (preflight misimpl, wildcard+credentials).

Описание
Сложные взаимодействия preflight/credentials и обходы.
Цели
Научиться выявлять и исправлять subtle CORS bugs.
Сложность
сложность 3/5

ADD-19. Insecure third-party widgets / compromised CDN scenario.

Описание
Симуляция компрометации CDN/third-party script и последствия (inject/ exfiltrate).
Цели
Защита через SRI, CSP, review of third-party use.
Сложность
сложность 3/5

ADD-20. HTTP/3 / QUIC oddities (introductory lab).

Описание
Отличия в поведении HTTP/3/QUIC, потенциальные parsing/DoS edge cases.
Цели
Ознакомиться с новым surface и возможными проблемами.
Сложность
сложность 4/5