Você provavelmente ainda tem um processo que está usando a biblioteca antiga.
Você pode testá-lo assim:
grep 'libssl.*(deleted)' /proc/*/maps
Você pode, alternativamente, rejeitar todo o sistema.
Em uma instalação mínima do Centos 6.5, eu compilei o Apache, PHP e rpm instalados no Percona.
Após atualizar o OpenSSL alguns dias atrás, meu site que usa SSL neste servidor está vulnerável ao Heartbleed de alguma forma.
Meu binário do Apache não mostra que está usando libssl.so *, mas quando eu o verifico através do link diz que meu site é de fato vulnerável.
Estou verificando algo incorretamente?
[root@centos user]# ldd /usr/local/apache2/bin/httpd |grep -i ssl
[root@centos user]#
Eu atualizei o OpenSSL através do yum ( yum update openssl openssl-devel
), eu recompilei o Apache (quatro vezes desde a atualização do openssl), eu recompilei o PHP (desde a atualização), e eu reinstalei o Percona.
Ainda recebo a mensagem "Website is vulnerable", apesar de tudo estar atualizado.
[root@centos user]# openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Tue Apr 8 02:39:29 UTC 2014
platform: linux-x86_64
options: bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -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: "/etc/pki/tls"
engines: dynamic
Eu compilo o apache com as seguintes opções se isso for de alguma ajuda:
./configure --prefix=/usr/local/apache2 \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/opt \
--with-mysqli=/usr/bin/mysql_config \
--with-gd --with-ttf=/opt \
--with-xpm-dir=/opt \
--with-freetype-dir=/opt \
--enable-gd-native-ttf \
--with-zlib-dir=/opt \
--with-curl=/opt/include/curl \
--enable-mbstring \
--with-xsl=/opt \
--with-libexpat-dir=/opt \
--with-jpeg-dir=/opt \
--with-png-dir=/opt \
--enable-soap \
--with-openssl \
--with-ssl=/usr/local/openssl \
--with-included-apr \
--with-pcre=/usr/local/pcre/ \
--with-mpm=worker \
--enable-rewrite \
--enable-ssl;
Eu compilei uma versão do OpenSSL 1.0.1g para / usr / local / openssl usando:
export CFLAGS="-fPIC";
openssl-1.0.1g]# ./config shared no-ssl2 no-ssl3 --openssldir=/usr/local/openssl
Eu tentei atualizar o OpenSSL, Recompilar o Apache, Recompilar o PHP, Reinstalar o Percona, reinicializar, compilar o OpenSSL (reconhecidamente incorretamente e sem sorte) e ainda não consegui corrigir esta vulnerabilidade.
Já reinicializei o servidor para garantir que nenhuma biblioteca ainda esteja carregada no Ram.
Aqui está a saída referente às bibliotecas:
[root@centos php-5.5.9]# grep 'libssl.*(deleted)' /proc/*/maps
/proc/4497/maps:7faf80018000-7faf80079000 r-xp 00000000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
/proc/4497/maps:7faf80079000-7faf80278000 ---p 00061000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
/proc/4497/maps:7faf80278000-7faf8027c000 r--p 00060000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
/proc/4497/maps:7faf8027c000-7faf80283000 rw-p 00064000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
/proc/4506/maps:7f21d735d000-7f21d73be000 r-xp 00000000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
/proc/4506/maps:7f21d73be000-7f21d75bd000 ---p 00061000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
/proc/4506/maps:7f21d75bd000-7f21d75c1000 r--p 00060000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
/proc/4506/maps:7f21d75c1000-7f21d75c8000 rw-p 00064000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
/proc/4594/maps:311b000000-311b061000 r-xp 00000000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
/proc/4594/maps:311b061000-311b260000 ---p 00061000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
/proc/4594/maps:311b260000-311b264000 r--p 00060000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
/proc/4594/maps:311b264000-311b26b000 rw-p 00064000 fd:00 1591034 /usr/lib64/libssl.so.6 (deleted)
Para ver qual versão estou usando:
[root@centos php-5.5.9]# strings /usr/lib64/libssl.so.6|grep -i openssl
OpenSSLDie
OPENSSL_cleanse
OPENSSL_DIR_read
OPENSSL_DIR_end
OPENSSL_init_library
OPENSSL_1.0.1
OPENSSL_1.0.1_EC
SSLv2 part of OpenSSL 1.0.1e-fips 11 Feb 2013
SSLv3 part of OpenSSL 1.0.1e-fips 11 Feb 2013
TLSv1 part of OpenSSL 1.0.1e-fips 11 Feb 2013
DTLSv1 part of OpenSSL 1.0.1e-fips 11 Feb 2013
OpenSSL 1.0.1e-fips 11 Feb 2013
OPENSSL_DIR_read(&ctx, '
OPENSSL_DEFAULT_ZLIB
OPENSSL_malloc Error
Não tenho conhecimento se o OpenSSL 1.0.1e-fips 11 de fevereiro de 2013 se relaciona com a saída acima, na qual a versão openssl - um relatório sendo OpenSSL 1.0.1e-fips 11 de fevereiro de 2013, mas patch no dia 8, para heartbleed ou se é vulnerável .
No mesmo servidor, estou executando o Tomcat e o GlassFish, mas, mesmo quando estão desativados, o servidor sinaliza como vulnerável. Alguma ideia? Agradecemos antecipadamente por qualquer conselho.
Você provavelmente ainda tem um processo que está usando a biblioteca antiga.
Você pode testá-lo assim:
grep 'libssl.*(deleted)' /proc/*/maps
Você pode, alternativamente, rejeitar todo o sistema.
Você parece compilar o apache com a versão local do openssl ( --with-ssl=/usr/local/openssl
), que pode ser diferente daquela que você atualizou no yum.
Tags openssl apache-2.4 heartbleed