Атака POODLE¶
Атака POODLE (англ. Padding Oracle On Downgraded Legacy Encryption) — это тип криптографической атаки, направленной на протоколы защищённой передачи данных, эксплуатирующей уязвимость в механизме дополнения (padding) блочных шифров при использовании протокола SSL 3.0. Атака относится к классу атак с использованием оракула дополнения (padding oracle attack) и позволяет злоумышленнику, находящемуся в позиции «человек посередине» (Man-in-the-Middle, MITM), расшифровывать содержимое защищённых сессий, в частности, конфиденциальные данные, такие как файлы cookie сессий, пароли и токены аутентификации.
¶История
Уязвимость, получившая название POODLE, была впервые обнаружена и опубликована 14 октября 2014 года группой исследователей из компании Google в составе Брэда Кейна, Адама Ланга и Алекса Пинкертона. Исследователи выявили, что протокол SSL 3.0, несмотря на свою устаревшую природу, всё ещё поддерживался многими современными браузерами и веб-серверами для обеспечения обратной совместимости. Атака была названа POODLE как отсылка к механизму «понижения» версии протокола (downgrade), который, по замыслу разработчиков, должен был обеспечивать совместимость, но на практике открывал путь для эксплуатации.
В момент публикации уязвимость затрагивала миллионы веб-сайтов и клиентских приложений, включая популярные браузеры (Internet Explorer, Chrome, Firefox, Safari) и серверное программное обеспечение (Apache, Nginx, IIS). Атака получила широкий резонанс в сообществе информационной безопасности, так как позволяла перехватывать данные, которые считались защищёнными, в том числе при использовании HTTPS. В ответ на уязвимость разработчики браузеров и серверов оперативно выпустили обновления, отключающие поддержку SSL 3.0 по умолчанию, а также ввели механизмы, предотвращающие принудительное понижение версии протокола.
¶Механизм атаки
¶Предпосылки
Атака POODLE основана на двух ключевых предпосылках:
- Использование протокола SSL 3.0. В отличие от более поздних версий TLS (Transport Layer Security), SSL 3.0 использует устаревший и небезопасный метод дополнения (padding) для блочных шифров в режиме CBC (Cipher Block Chaining). В SSL 3.0 дополнение не обязательно должно быть корректным с точки зрения длины — оно может содержать произвольные байты, и проверка дополнения на стороне получателя ограничена только проверкой последнего байта, который указывает длину дополнения.
- Возможность принудительного понижения версии протокола. Злоумышленник, контролирующий сетевой трафик (например, через точку доступа Wi-Fi или вредоносное ПО), может вмешаться в процесс установления соединения (handshake) и заставить клиент и сервер использовать SSL 3.0 вместо более защищённых версий TLS. Это достигается путём прерывания или модификации сообщений handshake, что приводит к повторной попытке соединения с пониженной версией протокола.
¶Этапы атаки
- Перехват и понижение версии протокола. Злоумышленник, находясь в позиции MITM, перехватывает начальный handshake между клиентом и сервером. Если клиент предлагает использовать TLS 1.2 или 1.3, а сервер подтверждает это, злоумышленник прерывает соединение или модифицирует сообщения, заставляя клиент и сервер повторить handshake с использованием SSL 3.0. Многие реализации клиентов (например, браузеры) поддерживают автоматическое понижение версии при неудаче handshake, что позволяет злоумышленнику добиться использования уязвимого протокола.
- Эксплуатация оракула дополнения. После установления соединения по SSL 3.0 злоумышленник перехватывает зашифрованные блоки данных. Атака использует тот факт, что в SSL 3.0 проверка дополнения в режиме CBC ограничена: если последний байт расшифрованного блока (после дешифрования) не соответствует ожидаемой длине дополнения, сервер отправляет клиенту сообщение об ошибке (например, «bad_record_mac»). Если же дополнение корректно, соединение продолжается без ошибки. Это различие в поведении сервера (ошибка или её отсутствие) служит «оракулом», который злоумышленник может использовать для угадывания содержимого зашифрованного блока.
- Угадывание содержимого. Злоумышленник многократно отправляет серверу модифицированные зашифрованные блоки, подставляя различные значения последнего байта. Каждый раз, когда сервер не сообщает об ошибке, это указывает на то, что последний байт расшифрованного блока совпадает с ожидаемой длиной дополнения (обычно 0x00 или 0x01). Таким образом, злоумышленник постепенно восстанавливает содержимое зашифрованного сообщения, байт за байтом. В среднем для расшифровки одного байта требуется около 256 попыток, что делает атаку практичной, хотя и требующей времени.
¶Цель атаки
Основной целью атаки POODLE является расшифровка конфиденциальных данных, передаваемых в защищённой сессии. Наиболее часто злоумышленники нацеливаются на файлы cookie сессий, которые используются для аутентификации пользователя на веб-сайтах. Получив cookie, злоумышленник может выдать себя за жертву и получить несанкционированный доступ к её учётной записи (например, в банковском приложении или почтовом сервисе). Кроме того, атака может быть направлена на перехват паролей, токенов доступа и других секретных данных.
¶Уязвимые системы и протоколы
Атака POODLE напрямую затрагивает протокол SSL 3.0, который был объявлен устаревшим в 2015 году (RFC 7568) и не рекомендуется к использованию. Однако уязвимость также может быть применена к некоторым реализациям TLS 1.0 и 1.1, если они используют устаревшие методы дополнения, хотя в этих версиях проверка дополнения более строгая, что делает атаку менее эффективной. В 2015 году была обнаружена вариация атаки, названная «POODLE over TLS» (CVE-2014-8730), которая затрагивала некоторые реализации TLS, но она была менее распространена.
Уязвимыми считаются:
- Веб-браузеры: Internet Explorer, Chrome, Firefox, Safari и другие, поддерживающие SSL 3.0 по умолчанию до выхода соответствующих обновлений.
- Веб-серверы: Apache HTTP Server, Nginx, Microsoft IIS и другие, поддерживающие SSL 3.0.
- Почтовые клиенты и серверы: использующие SSL 3.0 для защищённой передачи почты (POP3S, IMAPS, SMTPS).
- VPN-решения: некоторые старые реализации OpenVPN и других VPN-протоколов, использующие SSL 3.0.
- Мобильные приложения: приложения, использующие устаревшие криптографические библиотеки, поддерживающие SSL 3.0.
¶Методы защиты
¶Отключение поддержки SSL 3.0
Наиболее эффективным и рекомендованным методом защиты от атаки POODLE является полное отключение поддержки протокола SSL 3.0 на стороне сервера и клиента. Начиная с 2015 года, все основные браузеры и веб-серверы по умолчанию отключают SSL 3.0. Пользователям рекомендуется обновить программное обеспечение до последних версий, которые не поддерживают этот протокол.
¶Использование современных версий TLS
Вместо SSL 3.0 следует использовать протоколы TLS 1.2 или TLS 1.3, которые не подвержены атаке POODLE благодаря более строгой проверке дополнения и другим улучшениям безопасности. TLS 1.3, в частности, полностью исключает использование устаревших режимов CBC и дополнения.
¶Механизмы предотвращения понижения версии
Для предотвращения принудительного понижения версии протокола были разработаны специальные механизмы, такие как:
- TLS_FALLBACK_SCSV (Signaling Cipher Suite Value) — расширение для TLS, которое позволяет клиенту сигнализировать серверу о том, что понижение версии протокола не должно происходить. Если сервер получает такое сообщение от клиента, он прерывает соединение, предотвращая атаку.
- HSTS (HTTP Strict Transport Security) — политика безопасности, которая заставляет браузер использовать только HTTPS-соединения и предотвращает понижение до HTTP, что косвенно снижает риск атаки POODLE.
¶Обновление криптографических библиотек
Разработчики программного обеспечения должны обновить используемые криптографические библиотеки (например, OpenSSL, GnuTLS, BoringSSL) до версий, которые не поддерживают SSL 3.0 или имеют исправления для предотвращения атаки POODLE. OpenSSL, например, выпустил обновления (версии 1.0.1j и 1.0.2) с отключением SSL 3.0 по умолчанию.
¶Последствия и влияние
Атака POODLE оказала значительное влияние на индустрию информационной безопасности. Она продемонстрировала, что даже устаревшие протоколы, поддерживаемые для обратной совместимости, могут представлять серьёзную угрозу. В результате атаки:
- Ускорен отказ от SSL 3.0. Многие организации и разработчики окончательно отказались от использования SSL 3.0, что привело к повышению общей безопасности интернет-соединений.
- Улучшение механизмов понижения версии. Были разработаны и внедрены механизмы, предотвращающие принудительное понижение версии протокола, такие как TLS_FALLBACK_SCSV.
- Повышение осведомлённости. Атака привлекла внимание к проблемам безопасности устаревших криптографических протоколов и важности своевременного обновления программного обеспечения.
¶Критика и ограничения
Несмотря на свою эффективность, атака POODLE имеет ряд ограничений:
- Требование позиции MITM. Атака возможна только при условии, что злоумышленник может перехватывать и модифицировать сетевой трафик между клиентом и сервером. Это ограничивает её применение локальными сетями, общедоступными точками Wi-Fi или сетями, скомпрометированными вредоносным ПО.
- Необходимость поддержки SSL 3.0. Атака неэффективна, если клиент или сервер полностью отключили поддержку SSL 3.0. В современных системах это стандартная практика.
- Скорость расшифровки. Для расшифровки одного байта данных требуется в среднем 256 попыток, что делает атаку медленной, особенно при расшифровке длинных сообщений. Однако для перехвата коротких конфиденциальных данных (например, cookie) это время может быть приемлемым.
- Зависимость от поведения сервера. Атака требует, чтобы сервер чётко различал ошибки дополнения и другие ошибки. Некоторые реализации серверов могут не отправлять явных сообщений об ошибке, что усложняет атаку.
¶Источники
- B. Kaine, A. Lang, A. Pinkerton. «This POODLE Bites: Exploiting The SSL 3.0 Fallback». Google Security Blog, 2014.
- CVE-2014-3566. National Vulnerability Database, NIST.
- RFC 7568. «Deprecating Secure Sockets Layer Version 3.0». IETF, 2015.
- A. Lang. «POODLE Attack and SSL 3.0». USENIX Security Symposium, 2015.
- OpenSSL Security Advisory. «SSL 3.0 Protocol Vulnerability (POODLE)». OpenSSL Foundation, 2014.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →

