Heartbleed: Что это такое и какие варианты смягчить его?

  

Это Канонический вопрос о понимании и устранении проблемы безопасности, связанной с Heartbleed.

Что такое CVE-2014-0160 AKA «Heartbleed»? В чем причина, какие ОС и версии OpenSSL уязвимы, каковы симптомы, есть ли какие-либо методы для обнаружения успешного использования?

Как проверить, влияет ли моя система? Как можно смягчить эту уязвимость? Должен ли я быть обеспокоен тем, что мои ключи или другие личные данные были скомпрометированы? С какими другими побочными эффектами я должен беспокоиться?

203 голоса | спросил Jacob 8 AMpTue, 08 Apr 2014 04:26:18 +040026Tuesday 2014, 04:26:18

9 ответов


118

Сначала , прежде чем волноваться, убедитесь, что вы понимаете, действительно ли эта уязвимость применяется к вам. Если у вас есть сервер, но на самом деле никогда не было приложений, использующих TLS, то это не очень важно для вас. Если, с другой стороны, у вас когда-либо были TLS-приложения, хорошо, тогда вы готовы к лечению. Читайте дальше:

  

Что такое CVE-2014-0160 aka «Heartbleed»?

Это большой капризный беспорядок, вот что это. Короче говоря, в OpenSSL версиях с 1.0.1 по 1.0.1f была обнаружена уязвимость, удаленная для использования, с помощью которой злоумышленник может считывать определенные части системной памяти. Те части, которые хранят конфиденциальные данные, такие как закрытые ключи, предварительные ключи, пароли и высоко ценные корпоративные данные, между прочим.

Ошибка была обнаружена Нилом Мехтой из Google Security (21 марта 2014 г.) и финской фирмой Codenomicon по тестированию безопасности (2 апреля 2014 г.).

  

В чем причина?

Ну, странный код в OpenSSL. Здесь - это фиксация, которая ввела уязвимость , и здесь - это фиксация, фиксированная уязвимость. Ошибка появилась в декабре 2011 года и была исправлена ​​сегодня, 7 апреля 2014 года.

Ошибка также может рассматриваться как симптом более серьезной проблемы. Две связанные проблемы: (1) какой процесс существует, чтобы гарантировать, что ошибочный код не вводится в базу кода, и (2) почему протоколы и расширения настолько сложны и трудно тестируются. Пункт (1) - это проблема управления и процесса с OpenSSL и многими другими проектами. Многие разработчики просто сопротивляются таким методам, как обзоры кода, анализ и сканирование. Пункт (2) обсуждается в рабочей группе IETF TLS. См. Сложность по протоколу /протоколу .

  

Был ли вредоносный код взломанным?

Я не буду размышлять над тем, действительно ли это была ошибка или, возможно, немного кода, от которого отказался от имени плохого актера. Тем не менее, человек, который разработал код для OpenSSL, утверждает, что он был непреднамеренным. См. Человек, который ввел серьезный недостаток безопасности« Heartbleed », отрицает, что он вставлял его намеренно .

  

Какие ОС и версии OpenSSL уязвимы?

Как упоминалось выше, любая используемая операционная система или приложение, которое связано с OpenSSL 1.0.1 - 1.0.1f.

  

Каковы симптомы, есть ли какие-либо методы для обнаружения успешного использования?

Это страшная часть. Насколько нам известно, нет известного способа определить, была ли эта уязвимость использована. Теоретически возможно, что в ближайшее время будут выпущены подписи IDS, которые смогут обнаружить этот эксплойт, но на момент написания этой статьи они недоступны.

Есть доказательства того, что Heartbleed активно эксплуатировался в дикой природе еще в ноябре 2013 года. См. EFF Wild at Heart: были разведывательными агентствами, использующими Heartbleed в ноябре 2013 года? И Bloomberg сообщает, что NSA вооружило эксплойт вскоре после уязвимости был представлен. См. NSA заявила о том, что Exploit Heartbleed Bug для разведки в течение лет . Однако разведывательное сообщество США отрицает претензии Блумберга. См. ИС НА ЗАПИСИ .

  

Как проверить, не влияет ли моя система?

Если вы поддерживаете OpenSSL в своей системе, вы можете просто выпустить openssl version:

$ openssl version
OpenSSL 1.0.1g 7 Apr 2014

Если дистрибутив поддерживает OpenSSL, вы, вероятно, не сможете определить версию OpenSSL из-за повторного исправления с помощью команды openssl или информации о пакете (например, apt-get, dpkg, yum или rpm). Процесс обратного исправления, используемый большинством (всего?) Дистрибутивов, использует только номер базовой версии (например, «1.0.1e»); и not включает эффективную версию безопасности (например, «1.0.1g»).

Есть открытый вопросна Super User, чтобы определить эффективную версию безопасности для OpenSSL и других пакетов, когда пакеты передаются обратно. К сожалению, нет полезных ответов (кроме проверки сайта дистрибутива). См. Определение эффективной версии безопасности при работе с Backpatching .

Как правило: если вы когда-либо устанавливали одну из уязвимых версий и когда-либо запускали программы или службы, связанные с OpenSSL для поддержки TLS, тогда вы уязвимы.

  

Где я могу найти программу для проверки уязвимости?

В течение нескольких часов после объявления Heartbleed несколько человек в Интернете опубликовали общедоступные веб-приложения, которые предположительно могли быть использованы для проверки сервера на наличие этой уязвимости. На момент написания этой статьи я никого не рассматривал, поэтому я не буду публиковать свои приложения. Их можно найти относительно легко с помощью вашей предпочтительной поисковой системы.

  

Как смягчается эта уязвимость?

Перейдите на версию, не подверженную уязвимости, и сбросьте или переустановите уязвимые данные. Как отмечено на веб-сайте Heartbleed , соответствующие шаги ответа в целом:

  1. Исправить уязвимые системы.
  2. Восстановить новые закрытые ключи.
  3. Отправьте новый CSR вашему CA.
  4. Получить и установить новый подписанный сертификат.
  5. Недействительные ключи сеанса и файлы cookie
  6. Сброс паролей и разделяемых секретов
  7. Отменить старые сертификаты.

Более подробный анализ и ответ см. в разделе Что должен делать оператор веб-сайта о эксплойте OpenBSL с использованием Heartbleed OpenSSL? на Exchange Stack Exchange.

  

Должен ли я быть обеспокоен тем, что мои ключи или другие личные данные были   скомпрометированы? С какими другими побочными эффектами я должен беспокоиться?

Совершенно верно. Системным администраторам необходимо предположить , что их серверы, которые использовали уязвимые версии OpenSSL, действительно скомпрометированы и соответственно реагируют.

Вскоре после того, как была обнаружена уязвимость, Cloudfare предложила проверить, можно ли восстановить личный ключ сервера на практике. Задача была независимо выиграна Федором Indutny и Ilkka Mattila. См. Проблему с кровотечением .

  

Где я могу найти дополнительную информацию?

Ссылка дампа, для тех, кто ищет более подробную информацию:


Скорее подробный график событий раскрытия можно найти на Временная шкала раскрытия информации о кровотечении: кто знал, что и когда .


Если вы программист и заинтересованы в различных программных трюках, таких как обнаружение атаки Heartbleed через обратный вызов OpenSSL msg_cb, см. раздел OpenSSL Рекомендации по безопасности 2014047 .

ответил cnst 26 PM000000100000002131 2017, 22:06:21
42

Простое объяснение ошибки, XKCD:

 XKCD 1354

ответил cnst 26 PM000000100000002131 2017, 22:06:21
36

Ubuntu 12.04, 12.10 и 13.10

Ubuntu выпустила USN-2165-1 , в котором говорится, что обновленные пакеты теперь доступны в архивах. Выполните следующие две команды, чтобы захватить исправление.

sudo apt-get update
sudo apt-get upgrade

Ubuntu 14.04

Я загрузил пакет Debian, содержащий новую версию (1.0.1g), в PPA, который я создал для этой цели. Эти три команды добавят мой PPA в вашу систему, обновят список доступных пакетов и обновят все:

sudo add-apt-repository ppa:george-edison55/openssl-heartbleed-fix
sudo apt-get update
sudo apt-get upgrade

Примечание: PPA также предоставляет пакеты для Ubuntu 12.04 и 13.10, на всякий случай, если вы предпочитаете фактически запускать новую версию (1.0.1g) вместо того, чтобы просто использовать исправленные версии в архивах. суб>

Ubuntu 10.04

Это версия LTS, серверная версия по-прежнему поддерживается и получает обновления для системы безопасности. Но уязвимость, пораженная сердцем, не повлияла на пакет openssl стандартной установки ubuntu 10.04, потому что версия ниже 1.0.1.

Настольная версия достигла конца жизни и нуждается в обновлении /переустановке.

Ubuntu 13.04 и другие устаревшие версии

Ubuntu 13.04 имел очень короткий цикл поддержки, которого вы не ожидаете. Он уже достиг конца жизни и больше не получает обновлений безопасности. Он должен быть давно обновлен. Если все еще кто-то использует его, обновите его сейчас, либо с нуля, либо он может быть обновлен без разрушения до 13.10, следуя этой простой процедуре: http://www.tecmint.com/upgrade-ubuntu-13-04-raring-ringtail-to- ubuntu-13-10-saucy-salamander / После обновления система получает исправленный патч от 13.10.

Для всех остальных устаревших версий ubuntu это означает, что в основном необходима новая установка.

Убедитесь, что патч был применен

По существу, запустите openssl version -a и убедитесь, что дата сборки 7 апреля 2014 года или позже, но см. больше .

Reboot

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

ответил Nathan Osman 8 AMpTue, 08 Apr 2014 08:23:56 +040023Tuesday 2014, 08:23:56
14

RedHat 6.5 и CentOS 6.5

Они уязвимы. erratum RedHat RHSA-2014-0376 говорит, что доступны исправленные библиотеки, и любой пострадавший должен обновляться при первой же возможности.

На момент написания статьи CentOS еще не имела фиксированной версии, но Опубликование Karanbir Singh в CentOS-анонсе говорит, что они выпустили обновленную версию openssl (openssl-1.0.1e-16.el6_5.4.0.1, note последние четыре цифры, которые важны), которые отключили доступную команду TLS и могут быть безопасно применены, поскольку она будет перезаписана фиксированной версией, когда она в конечном итоге будет выпущена.

Временно фиксированная версия, похоже, пока не попала на все зеркала, но находится в основном репозитории на http://mirror.centos.org/centos/6/updates/x86_64/Packages/ (и аналогично для i686).

Изменить : по словам Иэна, теперь появилась полностью исправленная версия для C6.5, и, похоже, она торопилась вокруг зеркал в спешке. Прямое yum update получило его для моих серверов; это openssl-1.0.1e-16.el6_5.7.

Версии RH6 и C6 до 6.5

Они не уязвимы. В соответствии с этим советом от Red Hat ,

  

Эта проблема не повлияла на версии openssl, поставляемые с Red   Hat Enterprise Linux 5 и Red Hat Enterprise Linux 6.4 и более ранних версий.

Отправка Karanbir Singh в CentOS-анонс в равной степени ясно о версии:

  

Ранее сегодня днем ​​нам стало известно о серьезном   выпуск в openssl как отправлен в CentOS-6.5

ответил MadHatter 8 AMpTue, 08 Apr 2014 11:28:07 +040028Tuesday 2014, 11:28:07
13

Debian Wheezy

Debian выпустил DSA-2896-1 и исправленные библиотеки доступны здесь . Скрипт оболочки доступен здесь .

1. Patch

Репозиторий Apt-get обновлен, поэтому теперь исправленные библиотеки доступны через apt-get update && apt-get upgrade

apt-get upgrade libssl1.0.0 openssl

Альтернативно (не рекомендуется) пакеты можно обновить вручную:

wget http://security.debian.org/pool/updates/main/o/openssl/libssl1.0.0-dbg_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/openssl_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/libssl1.0.0_1.0.1e-2+deb7u5_amd64.deb
wget http://security.debian.org/pool/updates/main/o/openssl/libssl-dev_1.0.1e-2+deb7u5_amd64.deb

dpkg -i openssl_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl1.0.0_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl1.0.0-dbg_1.0.1e-2+deb7u5_amd64.deb
dpkg -i libssl-dev_1.0.1e-2+deb7u5_amd64.deb

2. Перезапустить сервер /службы

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

3. Проверьте версию OpenSSL

[email protected]:~$ openssl version
OpenSSL 1.0.1e 11 Feb 2013
[email protected]:~$ dpkg -l libssl1.0.0
||/ Name                    Version          Architecture     Description
+++-=======================-================-================-====================================================
ii  libssl1.0.0                 1.0.1e-2+deb7u6  amd64            SSL shared libraries
ответил jacksoncage 8 PMpTue, 08 Apr 2014 14:37:22 +040037Tuesday 2014, 14:37:22
9

Я хотел бы указать, что закрытые ключи не являются единственными активами, которые следует рассматривать как скомпрометированные. Ошибка имеет возможность протечки любой памяти, работающей в одном и том же адресном пространстве (то же самое), что и OpenSSL. Поэтому, если вы используете серверный процесс, в котором уязвимая версия OpenSSL статически или динамически связана, любая информация, которую этот процесс когда-либо обрабатывал , включая пароли, номера кредитных карт и другие персональные данные , следует рассматривать как потенциально скомпрометированный.

ответил 200_success 8 PMpTue, 08 Apr 2014 17:07:20 +040007Tuesday 2014, 17:07:20
9

FreeBSD 10.0 или openssl из портов

команда безопасности FreeBSD опубликовала рекомендацию относительно CVE-2014-0160 (также известный как «Heartbleed») и: FreeBSD-SA-14: 06.openssl

  1. Обновление FreeBSD

    • Обновление FreeBSD через двоичный патч

      Системы, выполняющие версию RELEASE FreeBSD на i386 или amd64 платформы могут быть обновлены с помощью утилиты freebsd-update (8):

      # freebsd-update fetch
      # freebsd-update install
      
    • Обновление FreeBSD из источников

      1. Загрузите соответствующий патч из приведенного ниже местоположения и проверьте отделив подпись PGP с помощью вашей утилиты PGP.

        # fetch http://security.FreeBSD.org/patches/SA-14:06/openssl-10.patch
        # fetch http://security.FreeBSD.org/patches/SA-14:06/openssl-10.patch.asc
        # gpg --verify openssl-10.patch.asc
        
      2. Выполните следующие команды с правами root:

        # cd /usr/src
        # patch < /path/to/patch
        
      3. Перекомпилируйте операционную систему

        используя buildworld и installworld , как описано в Руководство FreeBSD .

  2. Обновите порт openssl с минимальной версией 1.0.1_10

  3. Перезапустите все демоны с помощью библиотеки или перезагрузите систему

  4. Действуйте так, как если бы ваша система была скомпрометирована, повторно запустите все ваши ключи ssl и /или сертификаты и потенциально просочившиеся данные (см. EEAA более общий ответ).

FreeBSD 9.x и FreeBSD 8.x

Эти системы не уязвимы для проблемы Heartbleed по умолчанию, так как полагаются на более раннюю версию библиотеки openssl версии 0.9.x, если вы не установили openssl из портов (см. наверх).

Если эти системы не уязвимы для проблемы Heartbleed , возможно, было бы целесообразно обновить систему раньше, чем позже из-за другой уязвимости local (см. FreeBSD-SA-14: 06.openssl и Раздел «FreeBSD 10.0» наверху):

  

Локальный злоумышленник может отслеживать процесс подписи и может восстановить   ключ подписи от него. [CVE-2014-0076]

Примечание

Оригинальные Heartbleed консультационные списки FreeBSD 8.4 и 9.1 как потенциально уязвимые. Это неверно из-за отсутствия Heartbeat Extension (по умолчанию библиотека FreeBSD openssl имеет версию 0.9.x).

ответил Ouki 8 PMpTue, 08 Apr 2014 15:23:28 +040023Tuesday 2014, 15:23:28
3

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

Я собрал небольшую виртуальную машину, которая будет выполнять проверки против произвольных хостов и портов, используя тестовый модуль FiloSottile , По предварительным взглядам код выглядит здорово.

Выпуск завершенной виртуальной машины здесь . Он находится в формате VMX.

Слова предупреждения

Этот сценарий и виртуальная машина будут only показывать текущий статус ваших систем. Вполне возможно, что в какой-то момент в прошлом ваши системы находились в уязвимом состоянии и могли подвергнуться насилию.

Что-то, появившееся здесь, безусловно, является высоким приоритетом для исправления, но not избавляет вас от необходимости применять обновления и изменять все ваши ключи.

ответил Tim Brigham 9 AMpWed, 09 Apr 2014 00:23:36 +040023Wednesday 2014, 00:23:36
2

Amazon Linux (дистрибутив Linux, используемый в Amazon EC2)

https: //aws.amazon. ком /амазонка-линукс-AMI /охранно-бюллетени /ALAS-2014-320 /

Обзор проблем: Проверка недостающих границ была обнаружена в том, как OpenSSL обрабатывал пакеты расширения пульса TLS. Этот недостаток может быть использован для обнаружения до 64k памяти от подключенного клиента или сервера.

Затронутые версии: Любой AMA Amazon Linux AMI, на котором установлен openssl 1.0.1, который является любым Amazon Linux AMI 2013.03 или новее, и любой AMI Amazon Linux, обновленный до 2013.03 или позже. OpenSSL устанавливается по умолчанию на AMI Amazon Linux.

Пораженные пакеты: OpenSSL

Исправление ошибок: Запустите yum update openssl, чтобы обновить вашу систему. После установки нового пакета требуется либо вручную перезапустить все службы, которые используют openssl, либо перезагрузить ваш экземпляр. Хотя новый пакет по-прежнему называется openssl-1.0.1e, он содержит исправление для CVE-2014-0160.

Новые пакеты: i686:

openssl-1.0.1e-37.66.amzn1.i686

openssl-static-1.0.1e-37.66.amzn1.i686

openssl-perl-1.0.1e-37.66.amzn1.i686

openssl-devel-1.0.1e-37.66.amzn1.i686

openssl-debuginfo-1.0.1e-37.66.amzn1.i686

x86_64:

openssl-devel-1.0.1e-37.66.amzn1.x86_64

openssl-1.0.1e-37.66.amzn1.x86_64

openssl-debuginfo-1.0.1e-37.66.amzn1.x86_64

openssl-perl-1.0.1e-37.66.amzn1.x86_64

openssl-static-1.0.1e-37.66.amzn1.x86_64
ответил Garreth McDaid 11 PMpFri, 11 Apr 2014 12:03:24 +040003Friday 2014, 12:03:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132