POODLE
POODLE (англ. Padding Oracle On Downgraded Legacy Encryption) — вид атаки в компьютерной безопасности типа «человек посередине», когда злоумышленник путём блокировки TLS 1.0 и увеличения числа попыток соединения вызывает принудительное использование интернет-клиентами и пользователями защитного программного обеспечения SSL версии 3.0[1]. После того как был произведен откат системы до SSL 3.0, злоумышленник использует атаку Padding Oracle.
История
Уязвимость данного типа была обнаружена сотрудниками Google Security Team Бодо Мёллером, Таем Дуонгом и Кшиштофом Котовичем[1]. Они публично объявили об обнаружении уязвимости 14 октября 2014 года[2], несмотря на то, что соответствующая статья датирована несколько ранее — сентябрём 2014 года. 8 декабря того же года было объявлено о разновидности уязвимости типа POODLE, которая затрагивает и TLS-трафик[3]. В базу данных общеизвестных уязвимостей информационной безопасности (CVE) оригинальная POODLE-уязвимость была занесена c идентификатором CVE-2014-3566[4]. F5 Networks также подала заявление о внесении в базу данных разновидности POODLE-атаки против TLS, которой был присвоен идентификатор CVE-2014-8730[5].
Ввиду того, что данная атака использует уязвимости протокола SSL 3.0, причем нет разумного решения проблемы этих уязвимостей, чтобы обеспечить безопасное соединение стало необходимым полностью отказаться от использования данного протокола[1]. В октябре 2014 года Google объявил о намерении полностью прекратить поддержку протокола SSL 3.0 в своих продуктах в ближайшие несколько месяцев[6]. Возможность отката к протоколу SSL 3.0 была отключена в браузере Chrome 39, выпущенном в ноябре 2014 года[7]. Поддержка протокола SSL 3.0 была прекращена по умолчанию в браузере Chrome 40, выпущенном в январе 2015 года[8]. 29 октября 2014 года Microsoft выпустила исправление, которое отключало поддержку SSL 3.0 в браузере Internet Explorer и ОС версий Windows Vista / Server 2003 и выше. В этот же день Microsoft объявила о том, что планирует отключить поддержку SSL 3.0 по умолчанию в своих продуктах и сервисах в течение нескольких месяцев[9]. 10 февраля 2015 года Microsoft отключила возможность отката к SSL 3.0 в браузерах Internet Explorer 11 для сайтов в режиме защиты[10]. Для остальных сайтов это было сделано 14 апреля 2015 года[11].
Принцип атаки
POODLE служит примером уязвимости, которую можно успешно эксплуатировать благодаря механизму, созданному для намеренного понижения характеристик безопасности канала для обеспечения совместимости. Для работы с устаревшими серверами, многие TLS-клиенты используют так называемый «downgrade dance», который заключается в следующем: при первой попытке установить связь по протоколу TLS handshake клиент предлагает серверу использовать самую последнюю из версий TLS, поддерживаемых клиентом. Если эта попытка терпит неудачу, клиент пробует установить соединение по более старой версии протокола TLS до тех пор, пока связь не будет установлена. Такое намеренное понижение характеристик безопасности клиентом может быть вызвано сбоями в работе сети, а также атаками злоумышленника. Таким образом, если злоумышленник, контролирующий участок сети между сервером и клиентом, вмешивается в процесс TLS handshake и отбрасывает все сообщения клиента с предложением установить безопасное соединение по протоколу TLS версии 1.0 и выше, клиенты, поддерживающие «downgrade dance», будут готовы ограничиться менее безопасным протоколом SSL 3.0. В результате для сокрытия данных используются небезопасные наборы шифрования протокола SSL, которые используют либо поточный шифр RC4, либо режим шифрования CBC, поддающийся атаке Padding Oracle. В случае успешной эксплуатации данной уязвимости, атакующей стороне в среднем необходимо выполнить только 256 запросов SSL 3.0 для того, чтобы успешно расшифровать 1 байт зашифрованных сообщений[1][12][13].
В процессе дизайна систем, расположенных в доменах с высоким уровнем фрагментации, необходима бо́льшая осторожность, ведь в таких доменах может быть широко распространён механизм понижения характеристик безопасности канала, который используют злоумышленники. Одним из способов, который позволяет злоумышленнику снизить защиту канала, является эмуляция разрывов связи при использовании протокола TLS[14].
Предотвращение атаки
Одним из подходов, позволяющим предотвратить POODLE-атаки, является полное отключение поддержки протокола SSL 3.0 как на стороне клиента, так и на стороне сервера. Однако, некоторые устаревшие версии клиентов и серверов могут не поддерживать протокол TLS версии 1.0 и выше. В таких случаях, авторы статьи про POODLE-атаки рекомендуют со стороны браузера и сервера поддержать механизм TLS_FALLBACK_SCSV[15], предотвращающий эксплуатацию уязвимости злоумышленниками[1].
Ещё один подход для защиты от уязвимости — реализация механизма «Anti-POODLE record splitting» — разделение данных на несколько частей, каждая из которых гарантированно не может быть атакована с использованием данной уязвимости. Однако, проблема подхода с разделением данных в том, что несмотря на точную реализацию механизма в соответствии со спецификацией, данный подход не позволяет избежать проблем с совместимостью в связи с недоработками серверной части механизма[16].
Например, в браузере Opera 25 данный механизм реализован в дополнение к механизму «TLS_FALLBACK_SCSV»[17]. В браузерах Google Chrome разных версий и относящихся к ним серверах также обеспечили поддержку механизма «TLS_FALLBACK_SCSV». Mozilla отключила поддержку SSL 3.0 в своих браузерах Firefox 34 и ESR 31.3, выпущенных в декабре 2014 года и поддержала механизм «TLS_FALLBACK_SCSV» в браузере Firefox 35[18].
Microsoft опубликовала рекомендации по безопасности, в которых объяснялось, как отключить SSL 3.0 в браузере Internet Explorer и операционной системе Windows OS[19].
Браузер Safari компании Apple (для операционных систем OS X 10.8, iOS 8.1 и более поздних ОС) противодействовал POODLE-атакам посредством прекращения поддержки всех CBC-протоколов в SSL 3.0, однако такой подход все ещё обеспечивал поддержку RC4, который также подвержен RC4-атакам на протокол SSL 3.0[20]. Уязвимость для POODLE-атак была полностью закрыта в OS X 10.11 (El Capitan 2015) и iOS 9 (2015). С целью предотвращения POODLE-атак, для некоторых сервисов (например, таких как CloudFlare и Wikimedia) была отключена поддержка SSL 3.0[21].
В наборе библиотек Network Security Services версий 3.17.1 и 3.16.2.3 обеспечена поддержка механизма «TLS_FALLBACK_SCSV»[22][23], впоследствии поддержка протокола SSL 3.0 была отключена по умолчанию[24]. В библиотеках OpenSSL версий 1.0.1j, 1.0.0o и 0.9.8zc обеспечена поддержка механизма «TLS_FALLBACK_SCSV»[25]. В библиотеке LibreSSL версии 2.1.1 поддержка SSL 3.0 отключена по умолчанию[26].
POODLE-атаки, нацеленные на TLS
О новой разновидности классической POODLE-атаки было объявлено 8 декабря 2014 года[3]. Данный тип атак эксплуатирует недостатки в реализации режима шифрования CBC в протоколах TLS 1.0 — 1.2. Даже несмотря на то, что спецификации TLS требуют от серверов проверки так называемого «padding»(заглушки, набора дополнительных битов, добавляемых к ключу, паролю или открытому тексту шифрованием с целью скрыть их истинное значение), некоторые реализации данного протокола не справляются с их корректной проверкой, что делает некоторые сервера уязвимыми для POODLE-атак даже в случае отключения SSL 3.0. Данная разновидность POODLE-атак признана более опасной, чем классическая ввиду того, что при совершении атаки злоумышленникам не нужно искусственно вызывать откат защиты канала до SSL 3.0, что означает необходимость меньшего числа операций для совершения успешной атаки. Проект SSL Pulse обнаружил, что «около 10 % всех серверов подвержены модификациям POODLE-атак для TLS» прежде чем эта уязвимость была анонсирована[27]. Данной ошибке в реализации TLS от F5 Networks был присвоен идентификатор CVE-ID CVE-2014-8730. Информация из Национальной базы данных уязвимостей от NIST показывает, что данный CVE-ID присвоен ошибочным реализациям TLS в исполнении лишь F5 Networks. Другим поставщикам, у которых присутствует такая же ошибка в реализации проверки «padding» (например, A10 и Cisco Systems), по заявлению Национальной базы данных уязвимостей, стоит выпускать собственные CVE-ID, так как некорректная работа их версий TLS обусловлена не изъяном в самом протоколе, а ошибочной реализацией данного протокола[5].
Примечания
- Bodo Möller, Thai Duong, Krzysztof Kotowicz. This POODLE Bites: Exploiting The SSL 3.0 Fallback (September 2014).
- Brandom, Russell. Google researchers reveal new Poodle bug, putting the web on alert (14 октября 2014).
- Langley, Adam. The POODLE bites again (December 8, 2014). Дата обращения: 8 декабря 2014.
- National Institute of Standards and Technology. CVE-2014-3566 Detail (10/14/2014).
- National Institute of Standards and Technology. CVE-2014-8730 Detail (01/02/2017).
- Möller, Bodo This POODLE bites: exploiting the SSL 3.0 fallback . Google Online Security blog. Google (via Blogspot) (October 14, 2014). Дата обращения: 15 октября 2014.
- Ilascu, Ionut. Chrome 39 Disables SSLv3 Fallback, Awards $41,500 / €33,000 in Bounties . Softpedia. Дата обращения: 3 декабря 2014.
- Issue 693963003: Add minimum TLS version control to about:flags and Finch gate it. . Chromium Code Reviews. Дата обращения: 16 апреля 2015.
- Security Advisory 3009008 revised (недоступная ссылка). Microsoft TechNet. Microsoft (October 29, 2014). Дата обращения: 30 октября 2014. Архивировано 30 октября 2014 года.
- Oot, Alec. December 2014 Internet Explorer security updates & disabling SSL 3.0 fallback . Microsoft (December 9, 2014). Дата обращения: 9 декабря 2014.
- February 2015 security updates for Internet Explorer . IEBlog (April 14, 2015). Дата обращения: 15 апреля 2015.
- Bright, Peter. SSL broken, again in POODLE attack, Ars Technica (October 15, 2014).
- Brandom, Russell Google researchers reveal new Poodle bug, putting the web on alert (October 14, 2014).
- Hagai Bar-El. Poodle flaw and IoT . Дата обращения: 15 октября 2014.
- B. Moeller, A. Langley. RFC 7507: TLS Fallback Signaling Cipher Suite Value (SCSV) for Preventing Protocol Downgrade Attacks . IETF (апрель 2015).
- Langley, Adam POODLE attacks on SSLv3 . imperialviolet.org (October 14, 2014). Дата обращения: 16 октября 2014.
- Molland, Håvard Security changes in Opera 25; the poodle attacks . Opera security blog. Opera (October 15, 2014). Дата обращения: 16 октября 2014.
- The POODLE Attack and the End of SSL 3.0 . Mozilla blog. Mozilla (October 14, 2014). Дата обращения: 15 октября 2014.
- Vulnerability in SSL 3.0 Could Allow Information Disclosure . Microsoft TechNet. Microsoft (October 14, 2014). Дата обращения: 15 октября 2014.
- Сведения об обновлении системы безопасности 2014-005 . apple.com (April 24, 2015).
- Сведения о проблемах системы безопасности, устраняемых обновлением ОС iOS 8.1 . apple.com (March 30, 2015).
- NSS 3.17.1 release notes . Mozilla (October 3, 2014). Дата обращения: 27 октября 2014.
- NSS 3.16.2.3 release notes . Mozilla (October 27, 2014). Дата обращения: 27 октября 2014.
- Disable SSL 3 by default in NSS in April 2015. . mozilla.dev.tech.crypto (October 27, 2014).
- OpenSSL Security Advisory [15 Oct 2014] . OpenSSL (October 15, 2014).
- LibreSSL 2.1.1 released. . LibreSSL (October 16, 2014). Дата обращения: 20 октября 2014.
- Ristic, Ivan. Poodle Bites TLS (December 8, 2014). Дата обращения: 8 декабря 2014.