Эта статья входит в число добротных статей

POODLE (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]

Примечания

[править | править код]
  1. 1 2 3 4 5 Bodo Möller, Thai Duong, Krzysztof Kotowicz. This POODLE Bites: Exploiting The SSL 3.0 Fallback (сентябрь 2014). Дата обращения: 11 декабря 2019. Архивировано 14 октября 2014 года.
  2. Brandom, Russell. Google researchers reveal new Poodle bug, putting the web on alert (14 октября 2014). Дата обращения: 11 декабря 2019. Архивировано 11 декабря 2019 года.
  3. 1 2 Langley, Adam. The POODLE bites again (8 декабря 2014). Дата обращения: 8 декабря 2014. Архивировано 19 декабря 2017 года.
  4. National Institute of Standards and Technology. CVE-2014-3566 Detail (14 октября 2014). Дата обращения: 11 декабря 2019. Архивировано 12 декабря 2019 года.
  5. 1 2 National Institute of Standards and Technology. CVE-2014-8730 Detail (1 февраля 2017). Дата обращения: 11 декабря 2019. Архивировано 11 декабря 2019 года.
  6. Möller, Bodo This POODLE bites: exploiting the SSL 3.0 fallback. Google Online Security blog. Google (via Blogspot) (14 октября 2014). Дата обращения: 15 октября 2014. Архивировано 20 января 2015 года.
  7. Ilascu, Ionut. Chrome 39 Disables SSLv3 Fallback, Awards $41,500 / €33,000 in Bounties. Softpedia. Дата обращения: 3 декабря 2014. Архивировано 11 декабря 2019 года.
  8. Issue 693963003: Add minimum TLS version control to about:flags and Finch gate it. Chromium Code Reviews. Дата обращения: 16 апреля 2015. Архивировано 16 апреля 2015 года.
  9. Security Advisory 3009008 revised. Microsoft TechNet. Microsoft (29 октября 2014). Дата обращения: 30 октября 2014. Архивировано из оригинала 30 октября 2014 года.
  10. Oot, Alec. December 2014 Internet Explorer security updates & disabling SSL 3.0 fallback. Microsoft (9 декабря 2014). Дата обращения: 9 декабря 2014. Архивировано 16 декабря 2014 года.
  11. February 2015 security updates for Internet Explorer. IEBlog (14 апреля 2015). Дата обращения: 15 апреля 2015. Архивировано 17 апреля 2015 года.
  12. Bright, Peter (2014-10-15). "SSL broken, again in POODLE attack". Ars Technica. Архивировано 8 июля 2017. Дата обращения: 11 декабря 2019.
  13. Brandom, Russell Google researchers reveal new Poodle bug, putting the web on alert (14 октября 2014). Дата обращения: 11 декабря 2019. Архивировано 11 декабря 2019 года.
  14. Hagai Bar-El. Poodle flaw and IoT. Дата обращения: 15 октября 2014. Архивировано 27 марта 2016 года.
  15. B. Moeller, A. Langley. RFC 7507: TLS Fallback Signaling Cipher Suite Value (SCSV) for Preventing Protocol Downgrade Attacks. IETF (апрель 2015). Дата обращения: 11 декабря 2019. Архивировано 12 декабря 2019 года.
  16. Langley, Adam POODLE attacks on SSLv3. imperialviolet.org (14 октября 2014). Дата обращения: 16 октября 2014. Архивировано 8 апреля 2016 года.
  17. Molland, Håvard Security changes in Opera 25; the poodle attacks. Opera security blog. Opera (15 октября 2014). Дата обращения: 16 октября 2014. Архивировано 22 октября 2015 года.
  18. The POODLE Attack and the End of SSL 3.0. Mozilla blog. Mozilla (14 октября 2014). Дата обращения: 15 октября 2014. Архивировано 10 апреля 2016 года.
  19. Vulnerability in SSL 3.0 Could Allow Information Disclosure. Microsoft TechNet. Microsoft (14 октября 2014). Дата обращения: 15 октября 2014. Архивировано 6 апреля 2016 года.
  20. Сведения об обновлении системы безопасности 2014-005. apple.com (24 апреля 2015). Дата обращения: 11 декабря 2019. Архивировано 11 декабря 2019 года.
  21. Сведения о проблемах системы безопасности, устраняемых обновлением ОС iOS 8.1. apple.com (30 марта 2015). Дата обращения: 11 декабря 2019. Архивировано 11 декабря 2019 года.
  22. NSS 3.17.1 release notes. Mozilla (3 октября 2014). Дата обращения: 27 октября 2014. Архивировано 19 апреля 2019 года.
  23. NSS 3.16.2.3 release notes. Mozilla (27 октября 2014). Дата обращения: 27 октября 2014. Архивировано 19 апреля 2019 года.
  24. Disable SSL 3 by default in NSS in April 2015. mozilla.dev.tech.crypto (27 октября 2014). Дата обращения: 11 декабря 2019. Архивировано 8 декабря 2019 года.
  25. OpenSSL Security Advisory [15 Oct 2014]. OpenSSL (15 октября 2014). Дата обращения: 11 декабря 2019. Архивировано 13 августа 2015 года.
  26. LibreSSL 2.1.1 released. LibreSSL (16 октября 2014). Дата обращения: 20 октября 2014. Архивировано 23 марта 2019 года.
  27. Ristic, Ivan. Poodle Bites TLS (8 декабря 2014). Дата обращения: 8 декабря 2014. Архивировано 16 января 2016 года.