Серьезная уязвимость в OpenSSL


SSL-SertifikateСегодня 8 апреля сотрудники The OpenSSL Project выпустили бюллетень безопасности, закрывающую критическую уязвимость CVE-2014-0160 в популярной криптографической библиотеке OpenSSL (1.0.1 и 1.0.2-beta).

Уязвимость связана с отсутствием необходимой проверки границ в одной из процедур расширения Heartbeat (RFC6520) для протокола TLS/DTLS. Из-за незначительной ошибки кто угодно может получить доступ к оперативной памяти компьютеров, коммуникации которых "защищены" уязвимой версией OpenSSL. К тому же, злоумышленник может получить доступ к секретным ключам, именам и паролям пользователей и всему контенту, передаваемому в зашифрованном виде. Самое интересное, что при этом не остается никаких следов проникновения в систему.

И хотя за один такт злоумышленник может прочитать лишь 64 кБ памяти, однако количество тактов не ограничено, конечно, если обновлять соединение.

Те кто знал об уязвимости, имели возможность прослушивать "зашифрованный" трафик в интернете с марта 2012 года, после выхода версии OpenSSL 1.0.1. Именно тогда была продемонстрирована первая успешная атака на TLS (BEAST), и именно после этого многие перешли на защищенную версию TLS 1.2, появление которой совпало с выходом OpenSSL 1.0.1.

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

Для справки, уязвимая версия OpenSSL используется:

  • в популярных веб-серверах Nginx и Apache;
  • на почтовых серверах;
  • IM-серверах;
  • VPN;
  • во множестве других программ.


К тому же, ущерб от бага может привести к трагическим последствиям.

Дистрибутивы с более ранними версиями OpenSSL:

  • Debian Squeeze (oldstable);
  • OpenSSL 0.9.8o-4squeeze14;
  • SUSE Linux Enterprise Server.

Uyazvimosti v versiyah OpenSSL

Баг присутствует во всех версиях веток 1.0.1 и 1.0.2-beta, включая 1.0.1f и 1.0.2-beta1. Исправленной считается версия — 1.0.1g, которую рекомендуется установить всем пострадавшим, после чего сгенерировать новые ключи и сертификаты, а затем предпринять прочие меры безопасности. После проведения данных процедур, также стоит уведомить пользователей о возможной утечке их паролей.

Если же провести немедленный апдейт невозможно, то на исправленную версию следует перекомпилировать OpenSSL с флагом

  • -DOPENSSL_NO_HEARTBEATS.

Обновлено (08.04.2014 15:58)