Я искал надежный и портативный способ проверки версии OpenSSL в GNU / Linux и других системах, чтобы пользователи могли легко определить, следует ли им обновить свой SSL из-за ошибки Heartbleed.
Я думал, что это будет легко, но я быстро столкнулся с проблемой на Ubuntu 12.04 LTS с последней версией OpenSSL 1.0.1g:
версия openssl -a
Я ожидал увидеть полную версию, но вместо этого я получил это:
OpenSSL 1.0.1 14 марта 2012 г. Построен: вт июн 4 07:26:06 UTC 2013 Платформа: [...]
К моему неприятному удивлению, письмо с версией не показывается. Нет f, нет g там, просто "1.0.1" и все. Перечисленные даты также не помогают обнаружить (не) уязвимую версию.
Разница между 1.0.1 (af) и 1.0.1g имеет решающее значение.
Вопросов:
- Какой надежный способ проверить версию, желательно перекрестный дистрибутив?
- Почему буква версии не отображается в первую очередь? Я не смог проверить это ни на чем другом, кроме Ubuntu 12.04 LTS.
Другие также сообщают об этом поведении. Несколько примеров:
- https://twitter.com/orblivion/status/453323034955223040
- https://twitter.com/axiomsofchoice/status/453309436816535554
Некоторые (специфичные для дистрибутива) предложения, появляющиеся в:
- Ubuntu и Debian:
apt-cache policy openssl
иapt-cache policy libssl1.0.0
. Сравните номера версий с пакетами здесь: http://www.ubuntu.com/usn/usn-2165-1/ - Fedora 20:
yum info openssl
(спасибо @znmeb в твиттере) иyum info openssl-libs
Проверка, является ли более старая версия OpenSSL все еще резидентной:
- Это не совсем надежно, но вы можете попробовать
lsof -n | grep ssl | grep DEL
. См. Heartbleed: как надежно и мобильно проверить версию OpenSSL? почему это может не сработать для вас.
Оказывается, что обновления пакета OpenSSL в Ubuntu и Debian не всегда достаточно. Вам также следует обновить пакет libssl1.0.0 и -then- check, если openssl version -a
указывает built on: Mon Apr 7 20:33:29 UTC 2014
.
[root@null~]# openssl version -a OpenSSL 1.0.1e-fips 11 Feb 2013
apt-cache policy openssl
и он ответил: Installed: 1.0.1-4ubuntu5.12
это 1.0.1g, только что выпущенный Ubuntu для 12.04 LTS. Я вышел из системы и вернулся обратно. Могу ли я проверить что-нибудь еще?