критическое обновление OpenSSL — исправлять всем!!!

openssl критическое обновление
7 апреля 2014 года сотрудники The OpenSSL Project опубликовали бюллетень безопасности, в котором сообщается о критической уязвимости CVE-2014-0160 в популярном пакете OpenSSL, используемом почти на всех unix-подобных серверах.

Уязвимость обнаружили специалисты по информационной безопасности из компании Codenomicon, а также, независимо от них, Нил Мехта (Neel Mehta) из подразделения Google Security.
Баг присутствует во всех версиях веток OpenSSL 1.0.1 и 1.0.2-beta, включая 1.0.1f и 1.0.2-beta1.
Некто, знавший об уязвимости, получает доступ к секретным ключам, именам и паролям пользователей и всему контенту, который должен передаваться в зашифрованном виде. При этом не остается следов проникновения в систему.
Дата выхода уязвимой версии OpenSSL 1.0.1 — март 2012 года!!!

OpenSSL 1.0.1 до 1.0.1f (включая) уязвимы!!!
OpenSSL 0.9.8, 1.0.0 не подвержены уязвимости.
Исправленная версия — 1.0.1g.

В официальных репозиториях пока собранного пакета нет, поэтому исправляется баг вручную сборкой из исходников (на примере Centos 6.5):

openssl version
# OpenSSL 1.0.1e-fips 11 Feb 2013

Скачиваем и распаковываем дистрибутив:

cd /tmp
wget //www.openssl.org/source/openssl-1.0.1g.tar.gz
tar -xvzf openssl-1.0.1g.tar.gz
cd /tmp/openssl-1.0.1g

Компилировать лучше указав свою директорию (например /usr/local/ssl), а не в стандартную /usr/ssl. Это поможет избежать последующих проблем с OpenSSH в виде ошибок

ssh_exchange_identification: Connection closed by remote host
OpenSSL version mismatch.

Собираем:

./config --prefix=/usr --openssldir=/usr/local/ssl
make
make test
make install
./config shared --prefix=/usr --openssldir=/usr/local/ssl
make clean
make
make test
make install

Прописываем новый путь в ssl /etc/ld.so.conf добавив строку:

/usr/local/ssl

и говорим об этом системе:

ldconfig

Проверяем:

openssl version
# OpenSSL 1.0.1g 7 Apr 2014

и перезагружаем сервер:

reboot
# либо
shutdown -r now

!!! Обязательно сгенерировать новый приватный ключ (там где *** требуется ввод своих данных):

openssl genrsa -des3 -out /root/private.key 2048
#Generating RSA private key, 2048 bit long modulus 
#.+++
#...........+++
#e is 65537 (0x10001)
Enter pass phrase for /root/private.key:***
Verifying - Enter pass phrase for /root/private.key:***

!!! Обязательно сгенерировать новый запрос на получение сертификата, CSR, на основании нового ключа.

openssl req -new -key /root/private.key -out /root/request.csr
Enter pass phrase for /root/private.key:***
#You are about to be asked to enter information that will be incorporated
#into your certificate request.
#What you are about to enter is what is called a Distinguished Name or a DN.
#There are quite a few fields but you can leave some blank
#For some fields there will be a default value,
#If you enter '.', the field will be left blank.
#-----
Country Name (2 letter code) [AU]:***
State or Province Name (full name) [Some-State]:***
Locality Name (eg, city) []:***
Organization Name (eg, company) [Internet Widgits Pty Ltd]:***
Organizational Unit Name (eg, section) []:***
Common Name (e.g. server FQDN or YOUR name) []:***
Email Address []:***
#Please enter the following 'extra' attributes
#to be sent with your certificate request
A challenge password []:***
An optional company name []:***

Проверить текущее состояние защищенности вашего сервера от данной уязвимости можно тут введя свой_домен:443:

filippo.io heartbleed vulnerability test
rehmann.co heartbleed vulnerability test
possible.lv heartbleed vulnerability test

По материалам openssl.org, heartbleed.com, //habrahabr.ru/post/218609/, //habrahabr.ru/post/218713/

2 комментария

Аватар

Иван on 13.04.2014 at 19:17.

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

Ответить

manager

manager on 14.04.2014 at 08:59.

В репозиториях уже обновлены пакеты openssl. Они закрывают уязвимость, как и сборка вручную, описанная в статье.
Проверяйте по filippo.

P.S. если не получается, контакты в начале страницы, помогу :)

Ответить

Скажите свое мнение

ваш email не публикуется. обязательно *

;-) :yawn: :whew: :toivo: :tmi: :time: :thinking: :talking: :sweating: :swear: :sun: :star: :smoke: :smirk: :sleepy: :skype: :shock: :shake: :rofl: :rain: :punch: :puke: :poolparty: :pizza: :phone: :party: :oops: :nod: :no: :ninja: :neutral: :nerd: :music: :muscle: :mrgreen: :movie: :mooning: :mmm: :middlefinger: :makeup: :mail: :mad: :lol: :lipssealed: :kiss: :itwashtme: :inlove: :idea: :hi: :heidy: :heart: :headbang: :happy: :handshake: :giggle: :fubar: :flower: :evilgrin: :emo: :dull: :drunk: :drink: :doh: :devil: :dance: :cry: :cool: :coffie: :clapping: :cash: :call: :cake: :bug: :brokenheart: :bow: :blush: :beer: :bear: :bandit: :arrow: :angry: :angel: :^) :???: :?: :-| :-o :-P :-D :-) :-( :!:

 

*

code

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.