Eu estava procurando uma maneira confiável e portátil de verificar a versão do OpenSSL no GNU / Linux e outros sistemas, para que os usuários possam descobrir facilmente se devem atualizar seu SSL devido ao bug do Heartbleed.
Eu pensei que seria fácil, mas rapidamente encontrei um problema no Ubuntu 12.04 LTS com o OpenSSL 1.0.1g mais recente:
versão openssl -a
Eu esperava ver uma versão completa, mas obtive o seguinte:
OpenSSL 1.0.1 14 de março de 2012 quinta-feira, 4 de junho de 2017 07:26:06 UTC 2013 plataforma: [...]
Para minha surpresa desagradável, a carta da versão não aparece. Não f, não g lá, apenas "1.0.1" e é isso. As datas listadas também não ajudam a descobrir uma versão (não) vulnerável.
A diferença entre 1.0.1 (af) e 1.0.1g é crucial.
Questões:
- Qual é uma maneira confiável de verificar a versão, de preferência entre distros?
- Por que a carta da versão não aparece em primeiro lugar? Não consegui testar isso em nada além do Ubuntu 12.04 LTS.
Outros estão relatando esse comportamento também. Alguns exemplos:
- https://twitter.com/orblivion/status/453323034955223040
- https://twitter.com/axiomsofchoice/status/453309436816535554
Algumas sugestões (específicas para cada distribuição):
- Ubuntu e Debian:
apt-cache policy openssl
eapt-cache policy libssl1.0.0
. Compare os números da versão com os pacotes aqui: http://www.ubuntu.com/usn/usn-2165-1/ - Fedora 20:
yum info openssl
(obrigado @znmeb no twitter) eyum info openssl-libs
Verificando se uma versão mais antiga do OpenSSL ainda é residente:
- Não é totalmente confiável, mas você pode tentar
lsof -n | grep ssl | grep DEL
. Veja Heartbleed: como verificar de forma confiável e portável a versão do OpenSSL? por que isso pode não funcionar para você.
Acontece que atualizar o pacote OpenSSL no Ubuntu e Debian nem sempre é suficiente. Você também deve atualizar o pacote libssl1.0.0 e, em seguida, verificar se openssl version -a
indica 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
e ele respondeu com: Installed: 1.0.1-4ubuntu5.12
qual é o 1.0.1g lançado pelo Ubuntu para o 12.04 LTS. Saí e voltei a entrar. Há mais alguma coisa que eu possa fazer para verificar?