Вопрос: Обновление библиотеки SSL не устраняет бровь


Я только что обновил библиотеку openssl на своем сервере Ubuntu 12.04, чтобы исправить ошибку в сердце. Вот результат, который я получаю для команды «openssl version -a»:

OpenSSL 1.0.0g 18 Jan 2012
built on: Fri Apr 11 09:20:16 UTC 2014
platform: linux-x86_64
options:  bn(64,64) rc4(8x,int) des(idx,cisc,16,int) idea(int) blowfish(idx) 
compiler: gcc -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -Wa,--    noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM
OPENSSLDIR: "/usr/local/ssl"

Из того, что я понимаю, дата «построенной» должна быть после 07 апреля 2014 года, что, кажется, имеет место здесь. Я перезапустил Apache после выполнения этих изменений, но я все еще вижу, что мой сайт уязвим для ошибки Heartbleed.

Я что-то упустил?

Я обновил библиотеку ssl, загрузив последний исходный код и скомпилировав / установив его.

[Обновить] После комментариев Stephan ниже я сразу обновил openssl, используя apt-get. Я также обновил свой PATH, чтобы указать на обновленную версию openssl lib. 

Вот что я вижу, когда я делаю «opensl version -a»

OpenSSL 1.0.1 14 Mar 2012
built on: Mon Apr  7 20:33:29 UTC 2014
platform: debian-amd64
options:  bn(64,64) rc4(8x,int) des(idx,cisc,16,int) blowfish(idx) 
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/lib/ssl"

В соответствии с «встроенным», lib был обновлен до последнего апплета 7 апреля. Тем не менее, мой сайт по-прежнему выглядит уязвимым для бровь.

Пожалуйста, помогите!


5
2018-05-01 03:38


Источник


Зачем вам устанавливать из источника? Вам следует никогда сделайте это, если нет специального требования к некоторой функциональности, которую пакет Ubuntu не предоставляет. В этом случае исправленные версии OpenSSL и libssl были выпущены в течение нескольких часов после первоначального объявления. - EEAA♦
Наконец ... перезапуск Apache выполнил эту работу .... спасибо всем за помощь! - Kapil Kaushik
@EEAA, если больше людей будет строить из источника а также посмотрите на источник, тогда у нас не было бы этой ошибки вообще или, по крайней мере, не так серьезно. - Sebastian Godelet
@SebastianGodelet - Это явно ложно. Конечно, системные администраторы, которые очень прилежным может удастся сохранить свои системы в актуальном состоянии при сборке tarball. Однако огромный большинство админов будут устанавливать один раз, а затем не захотят проходить через больную исходную установку с каждой версией. Дисторские бинарные пакеты намного превосходят почти все возможности для очень высокого процента использования. Кроме того, какой процент от администраторов linux, по вашему мнению, имеет умение читать исходный код OpenSSL и Понимаю что это значит? - EEAA♦
Я больше фокусировался на разработчиках. Просто говоря, одной из сильных сторон с открытым исходным кодом является то, что люди делать время от времени смотрите на источник. - Sebastian Godelet


Ответы:


Самый простой и быстрый способ защитить себя от Heartbleed - это обновить OpenSSL из двоичных пакетов, предоставляемых поставщиком. Не компилируйте из источника, если вы не знаете, что делаете, или хотите потратить гораздо больше времени на обучение. Компиляция из источника является более сложной задачей и пустой тратой времени, если все, что вам нужно сделать, это обновление программного обеспечения. Это может быть образовательный и просветительский.

OpenSSL 1.0.0g 18 Jan 2012
built on: Fri Apr 11 09:20:16 UTC 2014

Что-то здесь не так. Вы хотите 1.0.1g не 1.0.0g. Но Heartbleed - это только проблема в OpenSSL 1.0.1 и 1.0.2. OpenSSL 1.0.0 не был уязвим. Вы загружали старые исходные файлы? Обратите внимание, что Ubuntu не всегда точно сообщает версию OpenSSL, и вам также нужно обновить libssl.

Из того, что я понимаю, дата «встроенной» должна быть после 07 апреля 2014 года, что, кажется, имеет место здесь

Нет, посмотри снова. Ваша «встроенная» дата - «11 апреля 09:20:16 UTC 2014». Это когда вы скомпилировали этот источник?

Обратите внимание: если вы создаете исходный код, вам нужно применить правильные флаги. Прочтите уведомление о безопасности в http://www.openssl.org/news/secadv_20140407.txt

Затронутые пользователи должны перейти на OpenSSL 1.0.1g. Пользователи не могут   немедленно обновление может альтернативно перекомпилировать OpenSSL с   -DOPENSSL_NO_HEARTBEATS.


13
2018-05-01 03:44



Привет, Стефан ... спасибо за ваши комментарии. Как я понимаю ... я не должен был компилироваться из источника ..... но теперь, когда я уже это сделал ... как вы думаете, это решение здесь? Должен ли я повторно скомпилировать исходный код с опцией -DOPENSSL_NO_HEARTBEATS и установить его снова? - Kapil Kaushik
Попробуйте удалить из источника, используя make uninstall, Искать помощь здесь askubuntu.com/questions/87111/... - Stefan Lasiewski
«make uninstall» не работает .... но я обновил openssl с помощью «apt-get» .... и указал на свою переменную PATH на нее .... поскольку мой исходный код lib был установлен в другом каталоге. .. Я надеялся, что это сработает ... но это не так! - Kapil Kaushik
Проверьте, продолжают ли процессы работать в памяти со старыми библиотеками, используя grep 'libssl.*(deleted)' /proc/*/maps, Если это так, вам нужно перезапустить процессы, использующие старые библиотеки. Перезагрузка хоста - самый простой способ гарантировать, что ничто не использует старые библиотеки. Видеть askubuntu.com/questions/444702/... - Stefan Lasiewski
хороший один Стефан ... спасибо за подсказку! - Kapil Kaushik


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


3
2018-05-01 07:36



И REBOOT. В противном случае запущенные процессы все еще могут использовать старую версию в памяти. - Tonny
Спасибо Steffen / Tonny за ваши комментарии тоже! Кстати ... вам не обязательно перезагружать вашу систему. Просто перезапуск Apache выполняет эту работу .... но ваш комментарий определенно указал мне в правильном направлении! - Kapil Kaushik
@KapilKaushik: вам нужно перезапустить не только Apache, но и любую другую услугу или программу, которые могли бы использовать OpenSSL. Например, почтовые демоны (postfix / dovecot / etc). Если вы не уверены, что нашли все, перезагрузка, безусловно, самая безопасная опция. - Nate Eldredge