🏆
Достижение разблокировано!
Вы отлично продвигаетесь!

🔐 Обучение безопасному программированию

💻

Освойте лучшие практики безопасности OWASP Top 10

В этом обучении вы научитесь:

  • 💉 Предотвращать SQL-инъекции и другим виды инъекций
  • 🔍 Проводить проверки безопасности кода для выявления уязвимостей
  • 📦 Управлять зависимостями и выявлять уязвимые пакеты
  • 🛡️ Реализовывать аутентификацию и авторизацию надлежащим образом

Выберите вашу роль для продолжения:

💡 Это обучение содержит технический контент по безопасному программированию для разработчиков

📚 OWASP Top 10: основные угрозы безопасности

Нажмите на каждый пункт, чтобы узнать об этих критических уязвимостях:

1 🚫 Нарушение контроля доступа ✓ ▶

Что это такое: Злоумышленники могут действовать за пределами своих разрешенных прав, получая несанкционированный доступ к чужим данным или функциям администратора.

Пример: Изменение параметра в URL (например, account_id=123 на account_id=1) дает доступ к учетной записи другого пользователя без проверки прав сервером.

Предотвращение:

  • Внедряйте механизмы проверки прав доступа строго на стороне сервера
  • Используйте принцип наименьших привилегий (PoLP)
  • Запрещайте доступ ко всем ресурсам по умолчанию (Deny by default)
Подробнее на OWASP →
2 ⚙️ Небезопасная конфигурация ✓ ▶

Что это такое: Неправильные настройки безопасности в приложениях, фреймворках, серверах или облачных средах. Категория поднялась на 2-е место в 2025 году.

Пример: Оставленные включенными отладочные функции в production-среде, открытые S3-корзины без аутентификации или использование паролей по умолчанию.

Предотвращение:

  • Автоматизируйте процессы проверки конфигурации среды
  • Отключайте неиспользуемые функции и порты
  • Применяйте подход "безопасность по умолчанию"
Подробнее на OWASP →
3 📦 Сбои в цепочке поставок ПО ✓ ▶

Что это такое: Новая категория 2025 года. Компрометация продукта через сторонние зависимости, инструменты сборки, CI/CD-конвейеры или образы контейнеров.

Пример: Внедрение вредоносного кода в популярный NPM-пакет или использование OpenSource-библиотеки с известной критической уязвимостью.

Предотвращение:

  • Ведите и проверяйте SBOM (спецификацию программного обеспечения)
  • Используйте автоматическое сканирование зависимостей (SCA)
  • Загружайте пакеты только из доверенных реестров
Подробнее на OWASP →
4 🔐 Криптографические сбои ✓ ▶

Что это такое: Ошибки в реализации криптографии, которые приводят к утечке конфиденциальных данных (паролей, персональных или финансовых данных).

Пример: Использование устаревших алгоритмов хеширования (MD5/SHA1), передача данных в открытом виде по HTTP или жестко закодированные API-ключи в коде.

Предотвращение:

  • Шифруйте данные при передаче (TLS) и во время хранения
  • Используйте современные алгоритмы (например, Argon2id для паролей)
  • Храните секреты в специализированных хранилищах (Vault)
Подробнее на OWASP →
5 💉 Инъекции (Injection) ✓ ▶

Что это такое: Уязвимость возникает, когда недоверенные данные отправляются интерпретатору как часть команды или запроса (SQL, NoSQL, OS-команды, XSS).

Пример: Ввод вредоносного SQL-кода ' OR 1=1 -- в поле логина, который модифицирует запрос и заставляет базу данных вернуть все записи пользователей.

Предотвращение:

  • Используйте параметризованные запросы (Prepared Statements)
  • Избегайте прямого выполнения команд операционной системы
  • Валидируйте и экранируйте все входные данные
Подробнее на OWASP →
6 🏗️ Небезопасный дизайн ✓ ▶

Что это такое: Уязвимости, возникающие из-за отсутствия архитектурного планирования безопасности и моделирования угроз на ранних этапах разработки.

Пример: Механизм восстановления пароля, полагающийся на предсказуемые "секретные вопросы" (например, девичья фамилия матери), что позволяет легко взломать аккаунт.

Предотвращение:

  • Внедряйте моделирование угроз (Threat Modeling) до написания кода
  • Используйте безопасные паттерны проектирования
  • Ограничивайте бизнес-логику (например, лимиты на транзакции)
Подробнее на OWASP →
7 🔑 Нарушения аутентификации ✓ ▶

Что это такое: Ошибки в механизмах проверки личности, управлении сессиями или восстановлении доступа, позволяющие злоумышленникам выдавать себя за других.

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

Предотвращение:

  • Обязательно внедрите многофакторную аутентификацию (MFA)
  • Ограничивайте количество неудачных попыток входа (Rate Limiting)
  • Используйте безопасные, встроенные фреймворки сессий
Подробнее на OWASP →
8 🛡️ Нарушения целостности ПО и данных ✓ ▶

Что это такое: Системы полагаются на обновления, плагины или данные из CI/CD без должной проверки их целостности, что приводит к несанкционированным изменениям.

Пример: Приложение загружает критическое обновление по незашифрованному каналу без проверки цифровой подписи, и злоумышленник подменяет файл.

Предотвращение:

  • Проверяйте цифровые подписи для всех скачиваемых обновлений
  • Используйте надежные механизмы проверки целостности (хэши)
  • Ограничьте и защитите доступ к CI/CD пайплайнам
Подробнее на OWASP →
9 📋 Сбои в журналировании и мониторинге ✓ ▶

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

Пример: Система не записывает неудачные попытки входа или смены привилегий, из-за чего атака длится днями без срабатывания оповещений у команды ИБ.

Предотвращение:

  • Журналируйте все ключевые события контроля доступа и ошибки
  • Обеспечьте защиту логов от изменения или удаления злоумышленником
  • Настройте оповещения об аномалиях в реальном времени (SIEM)
Подробнее на OWASP →
10 ⚠️ Неправильная обработка исключений ✓ ▶

Что это такое: Новая категория 2025 года. Ошибки в логике обработки сбоев системы, приводящие к раскрытию конфиденциальной информации или "небезопасному отказу".

Пример: При ошибке подключения к базе данных приложение выводит пользователю полную трассировку стека (stack trace) с внутренними IP-адресами и фрагментами кода.

Предотвращение:

  • Отображайте пользователям только общие сообщения об ошибках
  • Логируйте детальную информацию об исключениях только на сервере
  • Используйте принцип "безопасного отказа" (fail securely)
Подробнее на OWASP →

0/10 изучено

🚨 Интерактивная лаборатория SQL-инъекций

Вы проверяете pull request коллеги. Сначала выявите уязвимость, затем посмотрите её в действии!

// User authentication endpoint
async function authenticateUser(email, password) {
const query = "SELECT * FROM users WHERE email = '" + email + "' AND password = '" + password + "'";
const result = await db.query(query);
return result.rows[0];
}

⚠️ Требуется проверка безопасности

Этот код обрабатывает аутентификацию пользователей веб-приложения. Какова критическая уязвимость?

Какова уязвимость в этом коде?

🔍 Интерактивная проверка безопасности кода

Проанализируйте эту функцию аутентификации. Нажимайте на строки кода для изучения, затем запустите сканер безопасности!

Инструмент проверки кода — анализирую...
const JWT_SECRET = "secret2024Key!"; // Line 1
function validateLogin(email, password, hashedPassword) {
console.log(`Login attempt for ${email} with password: ${password}`); // Line 2
const isValid = bcrypt.compareSync(password, hashedPassword); // Line 3
const token = jwt.sign({email}, JWT_SECRET); // Line 4 - Uses the hardcoded secret!
return {isValid, token}; // Line 5
}

📦 Сканер уязвимостей зависимостей

Ваш CI/CD-конвейер обнаружил критические уязвимости в npm-пакетах. Каков ваш ответ?

🚨 Обнаружены критические уязвимости

• Package: jodit@3.14.2
CVE-2023-26469 - Remote Code Execution (CVSS: 9.8)
Злоумышленник может выполнить произвольный код через XSS в редакторе
• Package: xml2js@0.4.19
CVE-2023-0842 - XXE Injection (CVSS: 9.1)
Атака XML External Entity позволяет раскрыть файлы
• Package: lodash@4.17.11
CVE-2021-23337 - Command Injection (CVSS: 7.2)
Функция template допускает инъекцию команд

⚠️ Требуется решение по конвейеру сборки

Развёртывание на продакшн запланировано через 2 часа. Каков ваш ответ?

🏆

Чемпион безопасного программирования!

Вы освоили 10 лучших практик безопасного программирования по версии OWASP!

100%
Итоговый результат

Будьте бдительны. Оставайтесь в безопасности. 👾

SCORM: Отключён