Пользователь
0,0
рейтинг
5 июня 2014 в 19:35

Разработка → OpenSSL: новая уязвимость: возможность выполнить MITM атаку (CVE-2014-0224) перевод

Атака OpenSSL MITM CCS injection


За несколько последних лет в разных криптографических библиотеках были обнаружены несколько серьезных уязвимостей. Хотя только некоторые из них могли быть реально массово использованы перед тем, как их подробности становились общедоступными, и были выпущены патчи с исправлениями, серьёзные уязвимости типа Heartbleed побудили разработчиков, исследователей и простых пользователей к повышенно внимательному изучению надежности этих продуктов.

Среди недавних багов исправленных в OpenSSL версии 1.0.1h главная это — возможность MITM-атаки (CVE-2014-0224) против протоколов OpenSSL и TLS.

Что такое CVE-2014-0224 и должен ли я волноваться из-за него?

Короткий ответ: неоднозначно, Но как и в случае с любой другой уязвимостью в безопасности, лучше всегда исправить, чем откладывать и волноваться.
Примечание переводчика: мне кажется, что надо просто бежать и обновляться. Данная уязвимость сводить на «нет» весь смысл SSL.

Для эксплуатации этой уязвимость следующие условия должны выполняться:

  • И клиент, и сервер должны быть уязвимы. Со стороны клиента все версии OpenSSL уязвимы. На стороне сервера на данный момент считается уязвимой только версия 1.0.1. Если либо на клиенте, либо на сервере уязвимость исправлена, использование уязвимости становится невыполнимым.
  • Атакующий должен быть «человеком посередине». Атакующий должен иметь возможность перехватывать и модифицировать Ваши пакеты. Десять лет назад такой вектор атаки казался почти невозможным для любого, кроме интернет-провайдеров, так как у них есть доступ ко всем сетевым устройствам, через которые идет трафик интернет.
    (Примечание переводчика: и десять лет назад, и у неразумных провайдеров сейчас можно слушать соседский трафик активными снифферами с помощью, например, arp-poisoning)

Однако с появлением различных публичных беспроводных точек доступа, свободно доступных в кафе, ресторанах и т.д., MITM становится более реальным. К тому же существует множество программного обеспечения, которое позволяет создавать поддельные точки доступа. Как только клиент подключается к такой точке доступа, атакующий может стать «человеком посередине» для трафика от клиента. Успешная атака «человек посередине» может сделать доступными злоумышленнику Ваши учетные данные, конфиденциальную информацию или предоставить злоумышленнику возможность подделать личность жертвы.

Как работает эта атака?

SSL/TLS сессия инициализируется с помощью согласования посредством сообщений ClientHello и ServerHello с соответствующей стороны. Эта часть протокола отвечает за установку атрибутов сессии, таких как версия используемого протокола, протокол шифрования, ключи шифрования, код аутентичности сообщения (Message Authentication Code (MAC)), векторы инициализации и используемые расширения.

По разным причинам, как клиент, так и сервер могут принять решение о модификации стратегий выбора криптографического алгоритма во время этапа согласования (не путайте с протоколом согласования). Это достигается с помощью запроса ChangeCipherSpec (CCS). CCS состоит из одного пакета, посылаемого с клиентской и серверной стороны для уведомления о том, что следующие данные будут защищены новыми криптоалгоритмом и ключами.

В соответствии с стандартами (RFC 2246, RFC 5246) «CCS отправляется во время хэндшейка после согласования параметров безопасности, но до проверки, что сообщение „Finished“ отправлено». Однако, в случае OpenSSL это не так, и он принимает CCS даже до момента согласования параметров безопасности. Ожидается, что при принятии ChangeCipherSpec в неправильном порядке, будет рассинхронизация состояний между обеими сторонами. Обычно это приводит к тому, что обе стороны должны разорвать соединения, если, однако, у вас нет других уязвимостей.

Для того, чтоб эксплуатировать эту уязвимость, «человеку посередине» надо:

Дождаться установки нового соединения, с последующими сообщениями ClientHello / ServerHello. Послать CCS пакет в оба направления, который приведет к тому, что OpenSSL будет использовать мастер-ключ нулевой длины. Сессионные ключи будут созданы, на основе этого «нулевого» ключа и будущие сессионные ключи будут так же уязвимы.
Переинициализировать параметры согласования.
Атакующий получается возможность расшифровывать и даже модифицировать передаваемые пакеты.

В OpenSSL исправлена эта уязвимость следующим образом: CCS пакеты не могут быть получены до установки мастер-ключа, а мастер-ключи нулевой длины не разрешены.

Как защититься?

Обновите пакет OpenSSL до последней версии, предоставленной Вашим дистрибутивом.

Примечание переводчика:

О данной уязвимости в OpenSSL сообщил KIKUCHI Masashi (Lepidum Co. Ltd.) первого мая 2014 года. На основании его патча фикс для OpenSSL разработал Stephen Henson из команды OpenSSL.

Исправленные версии выпущены для
OpenSSL 0.9.8 — 0.9.8za
OpenSSL 1.0.0 — 1.0.0m
OpenSSL 1.0.1 — 1.0.1h

Баг в генту (исправленная версия (openssl-1.0.1h) уже в портажах)
В убунте (trusty) исправлено (openssl (1.0.1f-1ubuntu2.2) trusty-security; urgency=medium)
В debian wheezy фикс есть (1.0.1e-2+deb7u10). Остальные debian (squeeze, jessie, sid) на текущий момент уязвимы.

Спасибо amarao и valdikss за помощь в переводе.
Перевод: Huzaifa Sidhpurwala
@J_o_k_e_R
карма
48,5
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (22)

  • НЛО прилетело и опубликовало эту надпись здесь
    • +3
      Ну радует только то, что не все могут MITM. Но все равно задолбали.
    • +22
      Так ведь после прошлого события библиотеку взялись активно проверять.
    • +12
      И ещё много найдут, код там ужасен.
    • +4
      серьёзные уязвимости типа Heartbleed побудили разработчиков, исследователей и простых пользователей к повышенно внимательному изучению надежности этих продуктов.

      Будем надеяться, что сейчас наковыряют уязвимостей по-максимуму и пофиксят, потом поспокойнее станет. Все-таки лучше знать, что уязвимость была, но исправлена, чем вообще о ней не знать.
  • +1
    В убунте уже исправлено.
    А вот в дебиане — толи я не смог найти правильный ченджлог, толи еще нет :(
    • 0
      Про дебиан дополнил в конфе поста.
      • 0
        Спасибо, исправил по вашим инструкциям.

        Может пригодиться — lля debian смотрим версии ssl:
        dpkg-query -l | egrep 'openssl|sslib|libssl'
  • 0
    На precise тоже прилетело обновление, LTS как-никак.
  • +3
    Вот если бы только это… полный список
    • 0
      Ну этот список всё же в основном воспроизводится, что называется, в лабораторных условиях.

      Хотя хотелось бы отметить пачку CVE в реализации DTLS. Ведь Heartbleed тоже имел к DTLS прямое отношение. Если у кого используется DTLS — лучше откажитесь от него, от греха подальше.
  • +1
    Автор как-то уж больно спокойно относится к MITM-атаке. Короткий ответ на заданный им вопрос должен быть таким: да, необходимо волноваться и исправлять ASAP.
    • +2
      Полностью поддерживаю. Но я не посчитал нужным нести отсебятину. Хотя впишу как примечание.
  • +1
    В CentOS/RHEL 6.5 исправлено.
    # rpm -q --changelog openssl | head -20
    * Mon Jun 02 2014 Tomáš Mráz <tmraz@redhat.com> 1.0.1e-16.14
    — fix CVE-2010-5298 — possible use of memory after free
    — fix CVE-2014-0195 — buffer overflow via invalid DTLS fragment
    — fix CVE-2014-0198 — possible NULL pointer dereference
    — fix CVE-2014-0221 — DoS from invalid DTLS handshake packet
    — fix CVE-2014-0224 — SSL/TLS MITM vulnerability
    — fix CVE-2014-3470 — client-side DoS when using anonymous ECDH
  • 0
    Не могу найти для SUSE Linux Enterprise Server 11 пакета исправления… Ткните, пожалуйста, кто нашел? Стоит версия OpenSSL 0.9.8j-fips, после обновления не пришла OpenSSL 0.9.8za…
  • +2
    Идём сюда: tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20140605-openssl#ID
    Жмём «Affected Products».

    Теперь играем в игру — назовите какой-либо продукт Циски, которого нет в этом списке.
  • 0
  • +2
    Фигасе решето.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.