Открыть сервис

POODLE

POODLE (Padding Oracle On Downgraded Legacy Encryption) — это уязвимость криптографических протоколов, позволяющая злоумышленнику расшифровывать данные, передаваемые по защищённому каналу связи. Относится к классу атак, использующих оракул дополнения (padding oracle attack). Впервые была публично раскрыта 14 октября 2014 года группой исследователей из Google Security Team (Бодо Мёллер, Тай Дуонг и Кшиштоф Котович).

История открытия

Уязвимость была обнаружена в ходе планового аудита безопасности протоколов шифрования. Исследователи Google выявили, что механизм принудительного понижения версии протокола (downgrade) в SSL 3.0 позволяет злоумышленнику, находящемуся в позиции «человек посередине» (man-in-the-middle, MITM), выполнить атаку на шифр CBC (Cipher Block Chaining). Результаты исследования были опубликованы в виде технического отчёта и сопровождались демонстрационным кодом. Название POODLE является акронимом, отражающим суть атаки: использование оракула дополнения (padding oracle) для понижения версии шифрования до устаревшего (downgraded legacy encryption).

Технические детали уязвимости

Механизм атаки

Атака POODLE эксплуатирует две особенности протокола SSL 3.0:

  1. Блочное шифрование в режиме CBC — данные разбиваются на блоки фиксированного размера (обычно 16 байт для AES). Последний блок может быть неполным, поэтому к нему добавляется дополнение (padding) до полного блока. В SSL 3.0 дополнение может быть любым байтом, кроме последнего, который указывает длину дополнения.
  2. Оракул дополнениясервер, получив зашифрованный блок с некорректным дополнением, возвращает ошибку (например, «bad_record_mac»). Это позволяет злоумышленнику проверять гипотезы о содержимом зашифрованных данных.

Этапы атаки

  1. Перехват трафика — злоумышленник занимает позицию MITM (например, через компрометацию Wi-Fi-роутера или ARP-спуфинг).
  2. Принудительное понижение версии — атакующий блокирует попытки клиента и сервера установить соединение по TLS 1.0 и выше, заставляя их использовать SSL 3.0. Это возможно, если клиент поддерживает SSL 3.0 для обратной совместимости.
  3. Извлечение данных — злоумышленник перехватывает зашифрованные блоки и модифицирует их, подставляя собственные байты. Если сервер не возвращает ошибку (дополнение корректно), атакующий узнаёт, что последний байт расшифрованного блока равен определённому значению. Повторяя эту операцию, он может восстановить весь блок.

Ограничения

  • Атака требует, чтобы клиент и сервер поддерживали SSL 3.0. Если обе стороны отключили этот протокол, атака невозможна.
  • Для расшифровки одного байта требуется в среднем 256 попыток (в худшем случае — до 512). Это делает атаку медленной, но практически реализуемой для коротких секретов (например, cookie сессии или токенов аутентификации).
  • Атака не позволяет напрямую расшифровать весь трафик, но может быть нацелена на конкретные фрагменты, такие как заголовки HTTP-запросов.

Применение на практике

Целевые данные

Наиболее уязвимыми для атаки POODLE являются:

  • Cookie сессии — злоумышленник может перехватить cookie, используемые для аутентификации на веб-сайтах, и получить несанкционированный доступ к учётной записи жертвы.
  • Токены аутентификации — например, OAuth-токены или CSRF-токены.
  • Данные форм — пароли, номера кредитных карт и другая конфиденциальная информация, передаваемая в теле HTTP-запроса.

Реальные сценарии

Атака POODLE была продемонстрирована на примере перехвата cookie сессии в браузере Google Chrome. Исследователи показали, что, находясь в одной сети с жертвой, можно заставить браузер использовать SSL 3.0 и расшифровать cookie за несколько минут. Однако для успешной атаки необходимо, чтобы сервер поддерживал SSL 3.0 и не требовал Perfect Forward Secrecy (PFS).

Реакция индустрии и меры защиты

Отключение SSL 3.0

Основной мерой защиты является полное отключение поддержки SSL 3.0 на стороне сервера и клиента. Ведущие разработчики браузеров и веб-серверов выпустили обновления, отключающие SSL 3.0 по умолчанию:

  • Google Chrome — версия 39 (ноябрь 2014) отключила SSL 3.0 по умолчанию.
  • Mozilla Firefox — версия 34 (декабрь 2014) отключила SSL 3.0.
  • Microsoft Internet Explorer — версия 11 (обновление ноября 2014) отключила SSL 3.0.
  • Apple Safari — версия 8 (OS X Yosemite) отключила SSL 3.0.
  • OpenSSL — версия 1.0.1j (октябрь 2014) отключила SSL 3.0 по умолчанию.

TLS_FALLBACK_SCSV

Для предотвращения атак, основанных на принудительном понижении версии, был разработан механизм TLS_FALLBACK_SCSV (Signaling Cipher Suite Value). Этот механизм позволяет клиенту сообщить серверу, что соединение было установлено после неудачной попытки использовать более высокую версию протокола. Если сервер получает такой сигнал, он может отклонить соединение, если считает понижение версии небезопасным. TLS_FALLBACK_SCSV был включён в спецификацию TLS 1.2 (RFC 7507) и поддерживается большинством современных реализаций.

Альтернативные протоколы

После раскрытия POODLE использование SSL 3.0 было признано небезопасным. Рекомендуется использовать только TLS 1.2 и TLS 1.3, которые не подвержены данной уязвимости. TLS 1.3, в частности, полностью исключает режим CBC и использует только аутентифицированное шифрование (AEAD).

Варианты атаки

POODLE на TLS

В 2014 году была также обнаружена уязвимость POODLE для протокола TLS 1.0—1.2 при использовании шифров CBC (CVE-2014-8730). Однако она требует более сложных условий (например, наличие уязвимости в реализации дополнения). В отличие от атаки на SSL 3.0, где дополнение может быть любым байтом, в TLS дополнение должно состоять из одинаковых байтов, что делает атаку менее эффективной. Тем не менее, для некоторых реализаций (например, OpenSSL до версии 1.0.1k) атака была возможна.

POODLE на QUIC

В 2019 году была продемонстрирована атака POODLE на протокол QUIC (CVE-2019-11365), использующий шифрование в режиме CBC. Однако QUIC редко использует такой режим, и атака не получила широкого распространения.

Критика и ограничения

  • Необходимость MITM-позиции — атака требует, чтобы злоумышленник находился между клиентом и сервером. Это ограничивает её применение в условиях, где трафик не проходит через контролируемую точку (например, при использовании VPN).
  • Медленная скорость — для расшифровки одного байта требуется несколько сотен запросов. Это делает атаку непрактичной для больших объёмов данных, но эффективной для коротких секретов.
  • Зависимость от поддержки SSL 3.0 — к 2024 году большинство серверов и клиентов отключили SSL 3.0, что делает атаку практически невозможной в современных системах.

Источники

  • B. Möller, T. Duong, K. Kotowicz. «This POODLE Bites: Exploiting The SSL 3.0 Fallback». Google Security Team, 2014.
  • RFC 6101 — The Secure Sockets Layer (SSL) Protocol Version 3.0.
  • RFC 7507 — TLS Fallback Signaling Cipher Suite Value (SCSV) for Preventing Protocol Downgrade Attacks.
  • CVE-2014-3566 — POODLE vulnerability in SSL 3.0.
  • CVE-2014-8730 — POODLE-like vulnerability in TLS.
  • OpenSSL Security Advisory [14 Oct 2014] — SSL 3.0 protocol vulnerability.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →