Как исправить ошибку Heartbleed (CVE-2014-0160) в OpenSSL?

Если вы

amixer sset 'Speaker' playback 0%

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

Однако ...

Если вы измените регулятор громкости, настройка громкости «Динамик» будет настроена снова. Это связано с тем, что pulseaudio пытается быть умным с настройками томов (см. Http://pulseaudio.org/wiki/PulseAudioStoleMyVolumes для получения дополнительной информации). Мы можем остановить его от беспорядка с томами.

Откройте /etc/pulse/default.pa

и найдите строку

load-module module-udev-detect

и измените это

load-module module-udev-detect ignore_dB=1

Перезапустить pulseaudio.

killall pulseaudio

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

1
задан 10 April 2014 в 20:59

5 ответов

баг под названием heartbleed.

я уязвим?

в целом, вы пострадали, если вы запустите какой-то сервер, который вы сгенерировали ключ SSL для в какой-то момент. Большинство конечных пользователей не (непосредственно) влияет; по крайней мере, Firefox и Chrome не использовать openssl. СШ это не влияет. Распределение пакетов Ubuntu не повлияет (он опирается на подписи gpg).

Вы уязвимы, если вы запустите какой-либо сервер, который использует openssl версий 1.0–1.0.1 F (кроме версий курса, которые были исправлены, поскольку была обнаружена ошибка). Уязвимые версии в Ubuntu онейроидного 11.10 через верного 14.04 пре-релизов. Это баг, не ошибка в протоколе, так страдают только программы, которые используют библиотеки openssl несколько. Если у вас есть программа, привязанных к старой 0.9.х версии openssl, это не повлияет. Влияет только программы, которые используют библиотеки openssl для реализации протокола SSL протокола; программы, которые используют openssl для других вещей это не влияет.

если ты проехал на уязвимый сервер подключен к Интернету, считают его зараженным, если ваши логи показывают никакой связи с объявлением о 2014-04-07. (Это предполагает, что Уязвимость не воспользовавшийся до его анонса.) Если ваш сервер подвергается лишь внутренне, нужно ли менять ключи будет зависеть от того, какие другие меры безопасности.

каковы последствия?

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

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

Как восстановить на сервере?

принять всех пострадавших сервера в автономном режиме. Пока они бегут, они потенциально утечка важных данных. Обновление пакета [Ф1], и убедиться, что все сервера будут перезапущены. Вы можете проверить, если нарушены процессы по-прежнему работает с `команда grep 'libssl.(удалено)' /proc и//карты генерировать новые ключи. Это необходимо, потому что ошибка, возможно, позволили злоумышленнику получить старый закрытый ключ. Выполните ту же процедуру Вы использовали изначально. Если вы используете сертификаты, подписанные центром сертификации, представить свои новые открытые ключи центра сертификации. Когда вы получаете новый сертификат, установить его на свой сервер. Если вы используете самоподписанные сертификаты, установить его на свой сервер. В любом случае, перенести старые ключи и сертификаты в сторону (но не удалить их, просто убедитесь, что они не привыкают больше). Теперь у вас есть новая бескомпромиссная ключи, вы можете восстановить работу сервера. Отменить старые сертификаты. Оценка ущерба: любые данные, которые были в памяти процесс, обслуживающий SSL-подключения может быть утечка. Это может включать в себя пользовательские пароли и другие конфиденциальные данные. Вы должны оценить, что эти данные могут быть. Если вы используете сервис, который позволяет проверку пароля, то пароли пользователей, которые связаны с мало до того, как Уязвимость была озвучена следует считать скомпрометированными. (Немного раньше, потому что пароль может остались неиспользованными в памяти на некоторое время.) Проверьте ваши журналы и изменить пароль любого пользователя. Также проверяют все файлы cookie сеанса, так как они могут быть скомпрометированы. Клиентские сертификаты не нарушена. Любые данные, которые были обменены, поскольку немного до того, как Уязвимость может остались в памяти сервера, и поэтому, возможно, была утечка злоумышленнику. Если кто-то записан старый SSL-соединение и получить ключи от вашего сервера, теперь они могут расшифровывать свои стенограммы. (Если ПФС была обеспечена — если Вы не знаете, это не так.) [d43 см.]Как восстановить на клиенте?[!d43 см.]

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

программа-клиент используется глючная версия библиотеки openssl для реализации протокола SSL. Клиент, подключенный к вредоносному серверу. (Так, например, если вы подключены к провайдеру по электронной почте, это не проблема.) Это должно было произойти после того, как владелец сервера, стало известно о уязвимости, так что, видимо, после 2014-04-07. Клиентский процесс имел конфиденциальные данные в памяти, что не поделился с сервером. (Так что если вы просто побежал [F2], чтобы скачать файл, нет данных утечка.)

если вы сделали, что между 2014-04-07 вечера по Гринвичу и обновление библиотеки openssl, рассмотрите все данные в памяти процесса клиента, чтобы быть нарушена.

литература

программа-клиент используется глючная версия библиотеки openssl для реализации протокола SSL. как именно в openssl TLS сердцебиение (разработки) использовать в работе? клиент подключен к вредоносному серверу. (Так, например, если вы подключены к провайдеру по электронной почте, это не проблема.) Это должно было произойти после того, как владелец сервера, стало известно о уязвимости, так что, видимо, после 2014-04-07. идея неплохая: что это такое и какие варианты, чтобы смягчить его?
71
ответ дан 24 May 2018 в 09:43
  • 1
    Я не верю " "затрагивает только серверные соединения SSL / TLS " правда. openssl.org/news/secadv_20140407.txt говорит, что он может раскрывать секреты от клиента или сервера. ubuntu.com/usn/usn-2165-1 согласен. Шансы на то, что вы используете клиентские сертификаты при подключении к вредоносному серверу, небольшие, но существует такая возможность. – armb 8 April 2014 в 17:14
  • 2
    @armb Вы делаете хороший момент. Даже не имеет значения, используются ли клиентские сертификаты, утечка данных не связана с использованием сертификатов. Я заручился помощью профессионалов . – Gilles 8 April 2014 в 17:58
  • 3
    Сертификаты клиентов - это случай, когда вы будете пропускать закрытые ключи, но да, пароли, файлы cookie авторизации и т. Д. Могут протекать в любом случае. Однако при использовании обычного клиента на основе OpenSSL, такого как curl или wget, у вас не будет секретов для других сайтов в памяти при подключении к вредоносному серверу, поэтому в этом случае я думаю, что единственная утечка была бы, если бы вы предоставили секреты клиента ожидая предоставления их законному сайту, и Heartbleed просочились в течение рукопожатия, прежде чем проверка сертификата показывает, что вы не подключены к правильному сайту. – armb 9 April 2014 в 13:41
  • 4
    @Gilles Вам могут быть интересны ответы на . Какие клиенты оказались уязвимыми для Heartbleed? . Мне удалось получить «интересный». память на nginx (режим прокси), wget, ссылки и другие. – Lekensteyn 10 April 2014 в 12:50
  • 5
    @ MuhamedHuseinbašić Пакет openssl содержит инструменты командной строки. Он не используется приложениями, использующими библиотеку OpenSSL для реализации протокола SSL (например, Apache). Но вы должны просто применить обновления безопасности дистрибутива. – Gilles 7 September 2017 в 21:01

Чтобы узнать, какая версия OpenSSL установлена ​​на Ubuntu, выполните следующие действия:

dpkg -l | grep openssl

Если вы видите выход следующей версии, необходимо включить патч для CVE-2014-0160.

ii  openssl      1.0.1-4ubuntu5.12      Secure Socket Layer (SSL)...

Глядя на https://launchpad.net/ubuntu/+source/openssl/1.0.1-4ubuntu5.12, он показывает, какие ошибки исправлены:

...
 SECURITY UPDATE: memory disclosure in TLS heartbeat extension
    - debian/patches/CVE-2014-0160.patch: use correct lengths in
      ssl/d1_both.c, ssl/t1_lib.c.
    - CVE-2014-0160
 -- Marc Deslauriers <email address hidden>   Mon, 07 Apr 2014 15:45:14 -0400
...
40
ответ дан 24 May 2018 в 09:43
  • 1
    Я обновил и получил версию 5.12, но этот инструмент все еще говорит мне, что я уязвим filippo.io/Heartbleed Мысли? – toxaq 8 April 2014 в 16:23
  • 2
    Я тестировал наши обновленные серверы с этой стороны, и он сказал мне, что меня это не затрагивает. Перезагрузили ли вы систему или, по крайней мере, вы уверены, что все необходимые процессы были перезапущены? – crimi 8 April 2014 в 16:33
  • 3
    После обновления OPENSSL все, что мне нужно было сделать, это перезапустить службу apache, но изящный не помог . Я должен был пойти и перезапустить, используя sudo service apache2 restart – Tom Hert 8 April 2014 в 22:14
  • 4
    Я только что нашел причину своей уязвимости: у меня установлена ​​мода-spdy-бета. После удаления и перезапуска apache все тесты теперь зеленые. – Andreas Roth 9 April 2014 в 10:30
  • 5
    Обновление openssl не исправляет такие приложения, как Apache, Nginx или postfix. Вы должны обновить libssl1.0.0 и перезапустить их, как описано в других сообщениях. – tnj 10 April 2014 в 15:28

Если ваши репозитории apt-get не содержат предварительно скомпилированной версии 1.0.1g OpenSSL, просто загрузите источники с официального сайта и скомпилируйте их.

Ниже одной командной строки для компиляции и установки последнего версия [.d3]

curl https://www.openssl.org/source/openssl-1.0.1g.tar.gz | tar xz && cd openssl-1.0.1g && sudo ./config && sudo make && sudo make install

Заменить старый двоичный файл openssl новым с помощью символической ссылки.

sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`

Вы все хороши! 6]
# openssl version should return
openssl version
OpenSSL 1.0.1g 7 Apr 2014

Cf это сообщение в блоге.

apt-get repositories Как указано в сообщении в блоге, это обходное решение не исправит «Nginx и Apache-сервер, у которых есть для перекомпиляции с 1.0.1g источниками openSSL. "

17
ответ дан 24 May 2018 в 09:43
  • 1
    Как обычно, Ubuntu не предоставляет новую версию восходящего потока, но исправлял версии для всех поддерживаемых релизов, чтобы сохранить изменения как минимум. – Florian Diesch 8 April 2014 в 07:55
  • 2
    Примечание. После обновления OpenSSL убедитесь, что вы перезагрузили сервер. Apache и Nginx подняли новую библиотеку, и уязвимость была закрыта. – dAngelov 8 April 2014 в 22:27
  • 3
    Хех, теперь, когда я трачу время на чтение деталей этого сообщения, я еще более ошеломлен - загрузка tarball из какого-то случайного места из Интернета, распаковка и выполнение его частей, как root - это просто безрассудное поведение. Было бы немного лучше, если бы подписи tarball были загружены и проверены, но убедившись, что вы подтвердили, что подписи были подписаны с помощью правильного ключа, сам по себе является сложным вопросом. Распределения уже направлены на обеспечение безопасного происхождения архивов и патчей. Благодарю. – sarnold 9 April 2014 в 05:05
  • 4
    это может быть хорошей идеей скомпилировать из источника NOW и установить более новую версию позже с apt, таким образом, вы будете более безопасны, чем без ожиданий в старых версиях ubuntu, так или иначе, только мои два цента – nwgat 10 April 2014 в 21:02
  • 5
    @sarnold openssl.org не похоже на случайное место для загрузки источника для openssl. Canonical должен сделать это ненужным, но openssl.org должен быть авторитетным вверх по течению от работы. – Rustavore 13 September 2016 в 18:53

Для тех, кто не хочет обновлять серверный пакет. Сегодня я прочитал кучу этих руководств, а apt-get upgrade openssl === apt-get upgrade применит все исправления безопасности, требуемые вашей машиной. Замечательно, если вы явно не опираетесь на старую версию пакета где-нибудь.

Это минимальное действие, требуемое для Ubuntu 12.04 LTS, выполняющего Apache 2:

. Перейдите по этому адресу и докажите, что у вас есть уязвимость. Вы должны использовать ПРЯМОЙ ВНЕШНИЙ АДРЕС ВАШЕГО WEB-СЕРВЕРА. Если вы используете loadbalancer (например, ELB), вы можете напрямую связаться с вашим веб-сервером. Для обновления пакетов и перезапуска выполните следующие 1 лайнер. Да, я видел, как все гиды говорили, что вы должны иметь отметку времени позже 4 апреля 2014 года, похоже, это не так. apt-get update & amp; & amp; & amp; apt-get install openssl libssl1.0.0 & amp; & amp; & amp; & amp; Перезапуск /etc/init.d/apache2 Убедитесь, что у вас установлены соответствующие версии пакетов и еще раз проверьте свой веб-сервер на предмет этой уязвимости.

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

$ dpkg -l | grep ssl

ii  libssl-dev                       1.0.1-4ubuntu5.12          SSL development libraries, header files and documentation
ii  libssl1.0.0                      1.0.1-4ubuntu5.12          SSL shared libraries
ii  openssl                          1.0.1-4ubuntu5.12          Secure Socket Layer (SSL)* binary and related cryptographic tools

1.0.1-4ubuntu5.12 НЕ должен содержать уязвимость. Убедитесь, что это происходит, снова перейдя на сайт ниже и протестировав ваш веб-сервер.

http://filippo.io/Heartbleed/

12
ответ дан 24 May 2018 в 09:43
  • 1
    Использование внешнего сайта для доказательства уязвимости на сервере кажется неправильным подходом ко мне. – Rinzwind 9 April 2014 в 03:00
  • 2
    В наши дни скрипты тестирования внешней уязвимости становятся все более распространенными. Он выполняет именно то, что делает внутренний скрипт, соединение инициируется только с внешнего веб-сервера. Вы можете посмотреть сайты, такие как WhiteHatSecurity.com, на примере программы, которая инициирует все подключения удаленно. Бывают случаи, когда это не будет летать, например, тестирование сетевой уязвимости, но для тестирования веб-сервера с прямым доступом (который в общем случае будет сервером SSL) это почти идеально. – Adrian 9 April 2014 в 04:03
  • 3
    Зачем устанавливать пакет, если он обновляется? – Braiam 9 April 2014 в 05:37
  • 4
    apt-get install openssl libssl1.0.0 сделал это для меня. Запуск openssl version -a теперь показывает: built on: Mon Apr 7 20:33:29 UTC 2014 – topher 9 April 2014 в 12:26
  • 5
    «Скрипты внешнего тестирования уязвимости становятся все более и более обыденными в наши дни. & Quot; что открывает возможность того, что внешний сайт нарушает мою систему: все, что им нужно знать, что это не удается и взломать мою систему, прежде чем я ее исправлю. Нет, это не так. (и да, я размещаю свои собственные сайты с apache и openssl). – Rinzwind 10 April 2014 в 17:13

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

Вы должны проверить, чтобы у вас не было пакетов на удержании, таких как libssl.

:~$ sudo apt-get upgrade -V
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
  libssl-dev (1.0.1-4ubuntu5.10 => 1.0.1-4ubuntu5.12)
  libssl1.0.0 (1.0.1-4ubuntu5.10 => 1.0.1-4ubuntu5.12)
  linux-image-virtual (3.2.0.31.34 => 3.2.0.60.71)
  linux-virtual (3.2.0.31.34 => 3.2.0.60.71)
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.

Чтобы обновить эти apt-mark unhold libssl1.0.0 (например). Затем выполните обновление: apt-get upgrade -V. Затем перезапустите соответствующие службы.

11
ответ дан 24 May 2018 в 09:43

Другие вопросы по тегам:

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