Como instalar uma versão vulnerável do OpenSSL em um servidor Linux?

9

Gostaria de compilar e instalar uma versão OpenSSL vulnerável ao Heartbleed em um servidor que estou configurando para um desafio de segurança da equipe da web (já que eles não estão disponíveis para instalação no repositório do Ubuntu por razões óbvias).

Eu baixei e compilei a partir do código-fonte OpenSSL 1.0.1f usando as instruções fornecidas (execute ./config, então makee make install) e tentei executar o Heartbleed POC disponível no GitHub no meu PC, no entanto, o script não está me dizendo que nenhuma resposta de pulsação foi recebida e o servidor provavelmente não está vulnerável.

A execução openssl versionproduz a seguinte saída: OpenSSL 1.0.1f 6 de janeiro de 2014 . Instalei um certificado SSL, é claro, e o acesso SSL funciona no servidor.

O OpenSSL está instalado para funcionar com o Apache 2.4.7.

Alguém pode ajudar?

mittelmania
fonte
3
Em geral, uma boa maneira de testar versões mais antigas e distribuições Linux é fazer o download de imagens ISO mais antigas da distribuição e, possivelmente, instalar uma VM usando-a. Nem todos os pacotes estão disponíveis, mas o OpenSSL certamente estaria.
de Bruno
Se você está familiarizado com o pacote Debian, deve ser bastante fácil fazer o download do seu pacote fonte openssl atual, remova o CVE-2014-0160.patch e reconstrua-o.
Matt Nordhoff

Respostas:

7

Há duas coisas que podem estar acontecendo aqui:

  1. Um simples "./configure; make; make install" colocará por padrão as bibliotecas compartilhadas /usr/local/lib. As bibliotecas instaladas pelo sistema, no entanto, entrarão /usr/lib, o que ocorre mais cedo no caminho de pesquisa da biblioteca. A menos que você remova a versão instalada do sistema do OpenSSL, a versão vulnerável não será encontrada.

  2. Mesmo se você estiver sobrescrevendo as bibliotecas do sistema, a alteração não será detectada até que você reinicie o Apache. Os arquivos excluídos permanecem acessíveis (e ocupam espaço no disco) até que todos os programas que possuem identificadores de arquivos abertos fechem esses identificadores.

Marca
fonte
7

Qual software de servidor está sendo usado?

Apesar do binário OpenSSL ser vulnerável, é provável que um servidor da Web instalado de um pacote do SO esteja usando uma versão da biblioteca que não é vulnerável.

A maneira mais simples de executar um ouvinte vulnerável será openssl s_server: se você precisar de um servidor da Web completo, provavelmente precisará compilar com o OpenSSL vulnerável.

Shane Madden
fonte
1
Whoa, eu nunca soube que s_serverera uma coisa. Estou usando s_clientsempre, e faz todo o sentido que também deva haver uma opção de servidor.
EEAA
1
@EEAA Sim, é louco quantos subcomandos diferentes estão amontoados lá.
Shane Madden