Кафедра ИСиТ УО ВГТУ
  • Специальности
    • Экономика электронного бизнеса
    • Информационные системы
    • Information Control Systems
  • Каталог
  • Сайт кафедры
  • Сервисы
    • GitLab
    • JupyterHub
    • Soft
  1. ЭЭБ
  2. ВТиП
  3. Теория
  4. Веб-безопасность: защита современных веб-приложений
  • ЭЭБ
    • ВТиП
      • Теория
        • Введение в веб технологии
        • Протокол HTTP
        • HTML
        • CSS
        • CSS фреймворки
        • JavaScript
        • jQuery
        • JSON
        • Архитектура и технологии создания веб-приложений
        • React
        • Маршрутизация в React
        • Создание серверных приложений с использованием Express.js
        • REST интерфейс и аутентификация Веб-приложений
        • Современные практики DevOps: от разработки до развертывания
        • Веб-безопасность: защита современных веб-приложений
      • Практика
        • Лаб. работа “Основы HTML и CSS”
        • Лаб. работа “Основы JavaScript”
        • Лаб. работа “Создание веб-приложений с использованием фреймворка Express.js”
        • Лаб. работа “Работа с базами данных в Express.js”
    • СТ
      • Теория
        • Введение в компьютерные сети
        • Топологии сетей
        • Кодирование и мультиплексирование
        • Стеки протоколов
        • Адресация в компьютерных сетях
        • Система доменных имен (DNS)
        • Программирование с использованием сокетов
        • Протокол HTTP
        • Введение в PHP
        • Работа с базами данных в PHP
        • Объектно-ориентированные возможности PHP
      • Практика
        • Программное обеспечение
        • Регистрация в JupyterHub
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
        • Лаб. работа “Основы PHP”
        • Лаб работа “Массивы в PHP”

Содержание

  • Введение в веб-безопасность
    • Значимость веб-безопасности в 2025 году
    • Основные принципы веб-безопасности
    • Современные угрозы веб-безопасности
  • Основные уязвимости веб-приложений
    • SQL инъекции (SQL Injection)
    • Межсайтовый скриптинг (XSS)
    • Нарушение контроля доступа (Broken Access Control)
    • Небезопасная десериализация (Insecure Deserialization)
  • Аутентификация и авторизация
    • Современные методы аутентификации
    • Управление сессиями
    • JWT (JSON Web Tokens)
  • Защита данных
    • Шифрование данных
    • Управление секретами
    • GDPR и защита персональных данных
  • Инструменты безопасности
    • Статический анализ кода (SAST)
    • Динамическое тестирование (DAST)
    • Контейнерная безопасность
    • Мониторинг и логирование безопасности
  • Безопасность в DevOps (DevSecOps)
    • Интеграция безопасности в CI/CD
    • Compliance as Code
  • Реагирование на инциденты
    • План реагирования на инциденты
    • Команда реагирования на инциденты
    • Уведомления и расследование
  • Будущее веб-безопасности
    • Искусственный интеллект и машинное обучение
    • Zero Trust архитектура
    • Квантовая криптография
    • Заключение

Другие форматы

  • RevealJS
  1. ЭЭБ
  2. ВТиП
  3. Теория
  4. Веб-безопасность: защита современных веб-приложений

Веб-безопасность: защита современных веб-приложений

Веб-технологии и программирование
Теория
Автор
принадлежность

Бизюк Андрей

ВГТУ

Дата публикации

13 ноября 2025 г.

Введение в веб-безопасность

Значимость веб-безопасности в 2025 году

Веб-безопасность в современном цифровом мире имеет критическое значение для бизнеса и пользователей. В 2025 году с ростом цифровой трансформации и увеличением числа кибератак, защита веб-приложений стала приоритетной задачей:

  1. Рост киберугроз: Ежегодно фиксируется более 50% роста кибератак, с ущербом в миллиарды долларов для глобальной экономики.
  2. Ужесточение регуляторных требований: Законы о защите данных (GDPR, CCPA, 152-ФЗ) требуют обязательной защиты персональных данных.
  3. Автоматизация атак: Использование ИИ и машинного обучения злоумышленниками для автоматизации и персонализации атак.
  4. Экономические последствия: Средний ущерб от утечки данных составляет $4.45 миллиона по данным IBM Security Report 2025.
  5. Репутационные риски: Утечки данных приводят к потере доверия клиентов и снижению стоимости компаний.

Основные принципы веб-безопасности

Современная веб-безопасность основана на следующих ключевых принципах:

  • Defense in Depth (Многоуровневая защита): Использование нескольких слоёв защиты для предотвращения и обнаружения атак.
  • Zero Trust (Нулевое доверие): Предположение, что ни одна система или пользователь не является доверенной по умолчанию.
  • Security by Design (Безопасность по умолчанию): Встроенная безопасность на всех этапах разработки.
  • Least Privilege (Минимальные привилегии): Предоставление минимально необходимых прав доступа.
  • Continuous Security Testing (Непрерывное тестирование): Постоянная проверка безопасности на всех этапах жизненного цикла.

Современные угрозы веб-безопасности

Топ-10 угроз OWASP 2025:

  1. Injection (Инъекции): SQL, NoSQL, OS, LDAP инъекции
  2. Broken Authentication (Нарушенная аутентификация): Слабые механизмы аутентификации
  3. Sensitive Data Exposure (Разглашение конфиденциальных данных): Незащищённые данные
  4. XML External Entities (XXE): Внешние сущности XML
  5. Broken Access Control (Нарушенный контроль доступа): Неправильная реализация авторизации
  6. Security Misconfiguration (Неправильная конфигурация безопасности): Уязвимые настройки
  7. Cross-Site Scripting (XSS): Межсайтовый скриптинг
  8. Insecure Deserialization (Небезопасная десериализация): Уязвимости десериализации
  9. Using Components with Known Vulnerabilities: Использование компонентов с известными уязвимостями
  10. Insufficient Logging & Monitoring (Недостаточное логирование и мониторинг): Отсутствие контроля

Основные уязвимости веб-приложений

SQL инъекции (SQL Injection)

SQL инъекция — это уязвимость, позволяющая злоумышленнику внедрять вредоносные SQL-запросы в приложение.

Пример уязвимого кода:

$query = "SELECT * FROM users WHERE username = '" . $_POST['username'] . "' AND password = '" . $_POST['password'] . "'";

Безопасный подход:

$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->execute([$_POST['username'], $_POST['password']]);

Методы защиты: - Использование подготовленных выражений (prepared statements) - Валидация и экранирование входных данных - Использование ORM-фреймворков - Принцип наименьших привилегий для базы данных

Межсайтовый скриптинг (XSS)

XSS позволяет злоумышленнику внедрять вредоносные скрипты в веб-страницы, просматриваемые другими пользователями.

Типы XSS: - Stored XSS (Persistent): Вредоносный скрипт сохраняется на сервере - Reflected XSS: Скрипт отражается с сервера немедленно - DOM-based XSS: Уязвимость в клиентском JavaScript коде

Пример уязвимости:

<div>Привет, <?php echo $_GET['name']; ?>!</div>

Безопасная реализация:

<div>Привет, <?php echo htmlspecialchars($_GET['name'], ENT_QUOTES, 'UTF-8'); ?>!</div>

Методы защиты: - Экранирование выходных данных - Использование Content Security Policy (CSP) - Валидация входных данных - Использование безопасных шаблонизаторов

Нарушение контроля доступа (Broken Access Control)

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

Основные проблемы: - Прямой доступ к административным функциям - Просмотр чужих данных - Модификация данных других пользователей - Неправильная реализация прав доступа

Методы защиты: - Реализация принципа наименьших привилегий - Централизованная система авторизации - Проверка прав доступа на сервере - Использование ролевой модели доступа (RBAC)

Небезопасная десериализация (Insecure Deserialization)

Уязвимости десериализации позволяют злоумышленнику выполнить произвольный код на сервере.

Пример уязвимости:

$data = unserialize($_POST['data']);

Безопасная реализация:

// Использование безопасных форматов
$data = json_decode($_POST['data'], true);
// Или строгая валидация перед десериализацией

Методы защиты: - Использование безопасных форматов данных (JSON, XML) - Валидация данных перед десериализацией - Изоляция процессов десериализации - Мониторинг подозрительной активности

Аутентификация и авторизация

Современные методы аутентификации

1. Многофакторная аутентификация (MFA): - Комбинация пароля, SMS-кода, биометрии - Использование TOTP (Time-based One-Time Password) - Push-уведомления на мобильные устройства

2. Безпарольная аутентификация: - WebAuthn и FIDO2 стандарты - Биометрическая аутентификация - Криптографические ключи

3. OAuth 2.0 и OpenID Connect: - Безопасная делегация авторизации - Единый вход (Single Sign-On) - Токен-based аутентификация

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

Безопасные практики: - Использование безопасных, случайных идентификаторов сессий - Установка корректных параметров cookie (HttpOnly, Secure, SameSite) - Ограничение времени жизни сессии - Правильное завершение сессий

Пример безопасной сессии:

app.use(session({
    secret: process.env.SESSION_SECRET,
    resave: false,
    saveUninitialized: false,
    cookie: {
        secure: true,
        httpOnly: true,
        maxAge: 3600000, // 1 час
        sameSite: 'strict'
    }
}));

JWT (JSON Web Tokens)

JWT — это стандарт для создания токенов доступа, позволяющий безопасно передавать информацию между сторонами.

Преимущества JWT: - Самодостаточные токены - Масштабируемость - Кросс-доменная аутентификация

Безопасное использование:

// Подпись с секретным ключом
const token = jwt.sign(payload, process.env.JWT_SECRET, { expiresIn: '1h' });

// Проверка токена
jwt.verify(token, process.env.JWT_SECRET, (err, decoded) => {
    if (err) return res.status(401).json({ error: 'Invalid token' });
    // Обработка валидного токена
});

Защита данных

Шифрование данных

Шифрование при передаче (In Transit): - Использование HTTPS/TLS 1.3 - Принудительное перенаправление HTTP на HTTPS - Использование HSTS (HTTP Strict Transport Security)

Шифрование при хранении (At Rest): - Шифрование баз данных - Шифрование файлов и резервных копий - Управление ключами шифрования

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

Лучшие практики: - Использование менеджеров секретов (HashiCorp Vault, AWS Secrets Manager) - Никогда не хранить пароли в коде - Ротация ключей и паролей - Использование переменных окружения

Пример безопасного хранения:

// Использование переменных окружения
const dbConfig = {
    host: process.env.DB_HOST,
    user: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_NAME
};

GDPR и защита персональных данных

Ключевые требования: - Согласие на обработку данных - Право на удаление (Right to be forgotten) - Право на переносимость данных - Уведомление о утечках данных - Защита данных по умолчанию (Privacy by Design)

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

Статический анализ кода (SAST)

Инструменты для анализа исходного кода на наличие уязвимостей:

Популярные инструменты: - SonarQube: Комплексный анализ качества и безопасности кода - Veracode: Облачная платформа для статического анализа - Checkmarx: Статический анализ безопасности - ESLint Security: Плагины для JavaScript/Node.js

Динамическое тестирование (DAST)

Инструменты для тестирования работающих приложений:

Инструменты: - OWASP ZAP: Бесплатный инструмент для тестирования веб-приложений - Burp Suite: Профессиональный инструмент для тестирования безопасности - Nessus: Сканер уязвимостей - Acunetix: Автоматизированное сканирование веб-приложений

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

Инструменты для защиты контейнеров: - Twistlock: Безопасность контейнеров и облачных сред - Aqua Security: Платформа безопасности контейнеров - Sysdig Secure: Мониторинг и безопасность контейнеров - Clair: Сканирование уязвимостей в образах Docker

Мониторинг и логирование безопасности

SIEM системы (Security Information and Event Management): - Splunk: Анализ логов и мониторинг безопасности - ELK Stack: Elasticsearch, Logstash, Kibana для анализа логов - IBM QRadar: Комплексная SIEM платформа - Azure Sentinel: Облачная SIEM от Microsoft

Безопасность в DevOps (DevSecOps)

Интеграция безопасности в CI/CD

Security as Code: - Автоматическое сканирование уязвимостей в зависимостях - Статический и динамический анализ кода в пайплайне - Проверка конфигурации инфраструктуры - Автоматическая проверка соответствия стандартам

Пример пайплайна DevSecOps:

stages:
  - build
  - test
  - security-scan
  - deploy

security-scan:
  stage: security-scan
  script:
    - npm audit
    - docker run --rm -v "$PWD":/src sonarqube-scanner
    - zap-baseline.py -t https://staging.example.com

Compliance as Code

Автоматизация проверки соответствия стандартам: - PCI DSS: Стандарт безопасности платёжных карт - HIPAA: Защита медицинских данных - SOC 2: Контроль безопасности сервисов - ISO 27001: Международный стандарт безопасности информации

Реагирование на инциденты

План реагирования на инциденты

Ключевые этапы: 1. Подготовка: Создание плана, обучение команды 2. Выявление: Обнаружение и классификация инцидента 3. Сдерживание: Ограничение распространения угрозы 4. Устранение: Удаление причины инцидента 5. Восстановление: Возврат к нормальной работе 6. Анализ: Изучение уроков и улучшение защиты

Команда реагирования на инциденты

Роли и ответственность: - Incident Commander: Координация действий при инциденте - Security Analyst: Анализ угроз и уязвимостей - System Administrator: Техническое устранение последствий - Communication Manager: Внутренняя и внешняя коммуникация

Уведомления и расследование

Требования к уведомлению: - Уведомление пользователей при утечке персональных данных - Сообщение в регуляторные органы (в течение 72 часов по GDPR) - Документирование всех действий при расследовании - Сотрудничество с правоохранительными органами при необходимости

Будущее веб-безопасности

Искусственный интеллект и машинное обучение

AI в кибербезопасности: - Автоматическое обнаружение аномалий: ML-модели для выявления подозрительной активности - Предиктивная аналитика: Прогнозирование и предотвращение атак - Автоматическое реагирование: Без участия человека на известные угрозы - Улучшение точности: Снижение количества ложных срабатываний

Zero Trust архитектура

Принципы Zero Trust: - “Никогда не доверяй, всегда проверяй” - Микросегментация сети - Постоянная проверка подлинности - Минимизация доверия между компонентами

Квантовая криптография

Перспективные технологии: - Квантовое распределение ключей (QKD) - Постквантовая криптография - Устойчивость к квантовым вычислениям - Новые стандарты шифрования

Заключение

Веб-безопасность в 2025 году представляет собой комплексную дисциплину, требующую постоянного внимания и обновления знаний. Организации, уделяющие приоритетное внимание безопасности веб-приложений, достигают:

  • Снижения риска утечек данных на 80%
  • Соответствия регуляторным требованиям
  • Повышения доверия клиентов и партнёров
  • Защиты репутации и бренда
  • Экономии средств на устранение последствий инцидентов

Ключевые принципы успешной веб-безопасности:

  1. Постоянное обучение и повышение квалификации
  2. Проактивный подход к выявлению уязвимостей
  3. Интеграция безопасности во все процессы разработки
  4. Использование современных инструментов и технологий
  5. Готовность к реагированию на инциденты

Безопасность — это не пункт назначения, а постоянное путешествие требующее внимательности, знаний и постоянного совершенствования.

Наверх
Современные практики DevOps: от разработки до развертывания
Практика