Кибербезопасность

Учебник Веб-безопасность для начинающих

37 уроков · 11 разделов · бесплатно, без регистрации

Практический курс о том, как устроены типовые уязвимости веб-приложений и, главное, как их закрывать. Мы идём по OWASP Top 10 2021, разбираем XSS, CSRF, TLS и заголовки безопасности, управление секретами и инструменты аудита. Курс полностью защитный и образовательный: мы объясняем, как возникает уязвимость и почему она опасна, и фокусируемся на конкретных мерах защиты — валидации, параметризации запросов, заголовках и политиках. Для junior- и middle-разработчиков, тестировщиков и студентов. В финале — раздел про закон и этику: тестировать можно только свои системы или с письменного разрешения.

Курс «Веб-безопасность: OWASP Top 10» состоит из 11 разделов и 37 уроков: Модель угроз и принципы безопасности, OWASP Top 10: контроль доступа и данные, OWASP Top 10: конфигурация, компоненты, аутентификация, OWASP Top 10: целостность, мониторинг, SSRF, Атаки на стороне клиента: XSS и CSRF, Транспорт, секреты и инструменты, Закон и этика, Безопасность API: OWASP API Top 10, Аутентификация, сессии и OAuth вглубь, Продвинутые веб-уязвимости и защита и Безопасная разработка и DevSecOps. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Модель угроз и принципы безопасности

    1. Триада CIA: что мы вообще защищаем

      Конфиденциальность, целостность и доступность данных: что означает каждое свойство и как нарушения проявляются в вебе.

    2. Модель угроз: думать как защитник

      Как строить модель угроз: активы, точки входа, нарушители и поверхность атаки. Подход STRIDE простыми словами.

    3. Наименьшие привилегии и эшелонированная защита

      Принципы least privilege, defense in depth, fail securely и secure by default — основа надёжной архитектуры.

  2. 2 OWASP Top 10: контроль доступа и данные

    1. A01: Broken Access Control

      Сломанный контроль доступа: IDOR, обход проверок прав и privilege escalation. Как правильно проверять авторизацию.

    2. A02: Cryptographic Failures

      Криптографические сбои: данные без шифрования, слабые алгоритмы, хранение паролей. Как хешировать и шифровать правильно.

    3. A03: Injection и защита от SQL-инъекций

      Инъекции и SQLi: почему конкатенация строк опасна и как параметризованные запросы полностью закрывают проблему.

    4. A04: Insecure Design

      Небезопасный дизайн: дефекты на уровне архитектуры, которые нельзя залатать кодом. Threat modeling и secure design patterns.

  3. 3 OWASP Top 10: конфигурация, компоненты, аутентификация

    1. A05: Security Misconfiguration

      Ошибки конфигурации: дефолтные пароли, открытые порты, подробные ошибки, лишние сервисы. Hardening по шагам.

    2. A06: Vulnerable and Outdated Components

      Уязвимые зависимости: чужой код в вашем проекте. CVE, SCA-сканеры, обновления и управление цепочкой поставок.

    3. A07: Identification and Authentication Failures

      Сбои аутентификации: слабые пароли, брутфорс, плохие сессии. MFA, rate limiting, безопасные cookie.

  4. 4 OWASP Top 10: целостность, мониторинг, SSRF

    1. A08: Software and Data Integrity Failures

      Сбои целостности: непроверенные обновления, небезопасная десериализация, CI/CD-конвейер. Подписи и проверка источников.

    2. A09: Security Logging and Monitoring Failures

      Сбои логирования и мониторинга: атаки остаются незамеченными. Что логировать, как алертить и не утечь данные в логи.

    3. A10: Server-Side Request Forgery (SSRF)

      SSRF: сервер обманом отправляет запросы по указанию злоумышленника. Белые списки, изоляция метаданных, сегментация сети.

  5. 5 Атаки на стороне клиента: XSS и CSRF

    1. XSS: типы и защита экранированием

      Межсайтовый скриптинг: хранимый, отражённый и DOM-based XSS. Экранирование вывода по контексту и безопасный рендеринг.

    2. Content Security Policy (CSP)

      CSP как второй слой защиты от XSS: белый список источников скриптов, запрет inline-кода, отчёты о нарушениях.

    3. CSRF: токены и SameSite

      Подделка межсайтовых запросов (CSRF): как работает атака и как защищаться CSRF-токенами и атрибутом cookie SameSite.

  6. 6 Транспорт, секреты и инструменты

    1. HTTPS, TLS и заголовки безопасности

      TLS и HTTPS: защита канала, и заголовки безопасности HSTS, X-Content-Type-Options, X-Frame-Options и другие.

    2. Управление секретами

      Секреты в приложениях: пароли, ключи, токены. Почему нельзя хранить их в коде и как использовать переменные окружения и хранилища.

    3. Инструменты безопасности: обзор

      Обзор инструментов безопасности: OWASP ZAP, SAST-линтеры, SCA-сканеры зависимостей и сканеры секретов. Когда что применять.

  7. 7 Закон и этика

    1. Ответственность и согласие на тестирование

      Граница закона в кибербезопасности: почему нельзя тестировать чужие системы без разрешения и какая ответственность за это (ст. 272-274 УК РФ).

    2. Легальные пути: CTF, bug bounty, пентест

      Как развиваться в безопасности легально: CTF-соревнования, программы bug bounty, пентест по договору и сертификации.

  8. 8 Безопасность API: OWASP API Top 10

    1. BOLA: нарушение авторизации на уровне объекта

      BOLA (IDOR) — самая частая уязвимость API: доступ к чужому объекту по id без проверки владения. Как возникает и как защищает серверная проверка прав на каждый объект.

    2. Сломанная аутентификация API и BFLA

      Сломанная аутентификация API и BFLA: слабые токены, незащищённый refresh, отсутствие проверки роли на эндпоинт. Как защищает строгая проверка прав на каждую функцию.

    3. Чрезмерная выдача данных и mass assignment

      Чрезмерная выдача данных и mass assignment в API: лишние поля в ответе и слепое присваивание входных полей модели. Защита — явные схемы ответа и allow-list полей на входе.

    4. Отсутствие лимитов и инвентаризация

      Отсутствие rate limiting и пагинации в API ведёт к отказу в обслуживании и перебору. Теневые и устаревшие эндпоинты. Защита: лимиты потребления ресурсов и инвентаризация API.

  9. 9 Аутентификация, сессии и OAuth вглубь

    1. Правильное хранение паролей

      Почему пароли нельзя хранить в plaintext и MD5, как работают bcrypt/argon2/scrypt, зачем соль и перец и как защититься от перебора. Хеширование на практике.

    2. Управление сессиями

      Безопасные сессии: cookie с HttpOnly/Secure/SameSite, ротация идентификатора при логине, тайм-ауты, фиксация сессии (session fixation) и защита от неё.

    3. OAuth 2.0 и OpenID Connect: безопасность

      Безопасность OAuth 2.0 и OpenID Connect: поток authorization code с PKCE, валидация redirect_uri и state, типичные ошибки и защита токенов доступа.

    4. JWT: ловушки и правильное применение

      Ловушки JWT: атака alg=none, слабые ключи, отсутствие проверки подписи и срока, неверное хранение токена. Когда JWT не нужен и как применять его безопасно.

  10. 10 Продвинутые веб-уязвимости и защита

    1. Небезопасная десериализация

      Почему десериализация недоверенных данных ведёт к выполнению кода на сервере и как защититься: форматы только для данных, проверка целостности, allow-list классов.

    2. Инъекции в шаблоны (SSTI)

      Как пользовательский ввод в шаблонизаторе превращается в исполняемый код (SSTI) и как закрыть: статический шаблон, ввод как данные, автоэкранирование, песочница.

    3. HTTP Request Smuggling

      Как рассинхронизация фронтенда и бэкенда по границе тела запроса создаёт HTTP Request Smuggling и как защититься: единый парсер, нормализация, HTTP/2.

    4. CORS-мисконфиги и prototype pollution

      Слишком открытый CORS и prototype pollution в JavaScript: как возникают и как закрыть — allow-list источников, фильтрация ключей, Object.create(null), заморозка.

  11. 11 Безопасная разработка и DevSecOps

    1. SAST, DAST и SCA: автоматический поиск уязвимостей

      Три семейства сканеров безопасности: SAST анализирует исходный код, DAST — работающее приложение, SCA — зависимости. Где их место в пайплайне и как читать находки.

    2. Безопасность зависимостей и supply chain

      Уязвимые и устаревшие компоненты в OWASP Top 10: известные CVE в библиотеках, lock-файлы, проверка целостности, риск цепочки поставок и типосквоттинг.

    3. Управление секретами в разработке

      Почему пароли и API-ключи не должны жить в коде и репозитории: переменные окружения, менеджеры секретов, ротация и сканирование на утёкшие ключи.

    4. Гейты безопасности в CI/CD и threat modeling

      Как сделать проверки безопасности обязательным гейтом сборки: провал пайплайна на критичных находках, политика порогов и моделирование угроз в процессе разработки.