Por que atualizações autônomas não corrigem erros de coração?

20

Eu segui as instruções para instalar atualizações autônomas para instalar atualizações de segurança automáticas no meu servidor (ubuntu server 13.10).

https://help.ubuntu.com/community/AutomaticSecurityUpdates

Você pode me ajudar a entender por que essa manhã ainda tenho o bug do meu servidor?

$ openssl version -a
OpenSSL 1.0.1e 11 Feb 2013
built on: Wed Jan  8 20:58:47 UTC 2014
platform: debian-amd64

outra informação:

$ cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

$ cat /var/log/apt/history.log
....
Start-Date: 2014-04-03  15:33:59
Commandline: apt-get install nginx
Install: libxau6:amd64 (1.0.8-1, automatic), libx11-data:amd64 (1.6.1-1ubuntu1, automatic), libxcb1:amd64 (1.9.1-3ubuntu1, automatic), libvpx1:amd64 (1.2.0-2, automatic), libgd3:amd64 (2.1.0-2, automatic), libxdmcp6:amd64 (1.1.1-1, automatic), libxslt1.1:amd64 (1.1.28-2, automatic), nginx-common:amd64 (1.4.1-3ubuntu1.3, automatic), nginx:amd64 (1.4.1-3ubuntu1.3), nginx-full:amd64 (1.4.1-3ubuntu1.3, automatic), libx11-6:amd64 (1.6.1-1ubuntu1, automatic), libxpm4:amd64 (3.5.10-1, automatic)
End-Date: 2014-04-03  15:34:02

Start-Date: 2014-04-04  10:26:38
Commandline: apt-get install unattended-upgrades
Install: unattended-upgrades:amd64 (0.79.3ubuntu8)
End-Date: 2014-04-04  10:26:40

Obrigado

Guillaume Vincent
fonte
2
Não estou
Ring Ø
Concordo que você deve ter uma versão atualizada. Meu servidor 12.04 está em atualizações automáticas e foi atualizado ontem. Você checou /var/log/apt/history.log?
Jos
@jos tive o conteúdo do meu /var/log/apt/history.log, há mais informações aqui
Guillaume Vincent

Respostas:

28

Você não possui a vulnerabilidade Heartbleed no seu servidor, o OpenSSL foi corrigido para corrigir esse problema (sem a atualização).

Você deixou várias linhas importantes na saída da versão do OpenSSL, é assim que você sabe que foi corrigido, não com o número da versão:

openssl version -a                                                                ✭
OpenSSL 1.0.1e 11 Feb 2013
built on: Mon Apr  7 20:33:19 UTC 2014
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) 
compiler: cc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_NO_TLS1_2_CLIENT -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 -DMD32_REG_T=int -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: "/usr/lib/ssl"

A linha 'construir em' é o que importa aqui, 7 de abril ou depois: você é bom. Caso contrário: você está com problemas.

Atualização, pois a data da compilação não parece boa:

Talvez a atualização autônoma ainda não tenha sido executada, no meu servidor os scripts em cron.daily estão configurados para serem executados às 6:25

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

Além disso, verifique o conteúdo de /etc/apt/apt.conf.d/10periodic e verifique se as atualizações de segurança estão instaladas:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Fonte: https://help.ubuntu.com/lts/serverguide/automatic-updates.html

Mathieu Comandon
fonte
11
Estou com problemas :(built on: Wed Jan 8 20:58:47 UTC 2014 platform: debian-amd64
Guillaume Vincent
basta executar sudo apt-get update && sudo apt-get dist-upgradee você deve estar atualizado.
Edd Turtle #
Obrigado @EddTurtle, esta não é a minha pergunta! Minha pergunta é por que a atualização automática não funciona!
Guillaume Vincent
meu /etc/apt/apt.conf.d/10periodic não foi bom ou talvez o cron não tenha encontrado nenhuma atualização às 5h. Obrigado @ mathieu-comandon
Guillaume Vincent
@guillaumevincent Acabei de notar que as atualizações autônomas eram o último pacote que você instalou - por isso tinha que ser um problema de configuração.
Jos
12

Primeiro, você precisa executar a atualização. As atualizações autônomas são executadas apenas uma vez por dia e faz menos de um dia desde que a correção foi lançada (07-04-2014, por volta das 20:00 GMT). Para garantir, verifique se você atualizou para a libssl1.0.0versão 1.0.1e-3ubuntu1.2 ou superior. (Em detalhes, a correção veio na versão 1.0.1-4ubuntu5.12.)

Em seguida, observe que esta é uma vulnerabilidade muito ruim: pode ter permitido que os invasores obtenham dados confidenciais conectando-se ao seu servidor vulnerável. Se você estiver executando um servidor SSL, quaisquer dados que estavam na memória do servidor desde um pouco antes do anúncio da vulnerabilidade podem ter vazado. Isso inclui, em particular, a chave privada SSL do servidor, portanto você deve gerar uma nova e revogar a antiga.

Para obter mais informações, consulte Como corrigir o bug do Heartbleed (CVE-2014-0160) no OpenSSL?

Gilles 'SO- parar de ser mau'
fonte
Qualquer coisa na memória do servidor por cerca de dois anos pode ter vazado, não apenas a partir do momento do anúncio.
pieroxy
@pieroxy Qualquer coisa que esteja na memória do servidor por muito tempo provavelmente será sobrescrita, a tal ponto que você também deve se preocupar com muitos outros vetores de ataque. A exceção é que se você está preocupado com um adversário que possa ter conhecido o bug anteriormente e o explorou em silêncio - os adversários em nível de governo podem ter sabido, é improvável que bandidos comuns o tenham conhecido.
Gilles 'SO- stop being evil'
7

Você não pode confiar em cadeias de versão internas. A versão diz 1.0.1ee o bug afeta de 1.0.0 a 1.0.0f. Isso é suficiente para determinar se você ainda tem uma versão vulnerável do openssl? Não. A versão interna do OpenSSL não muda, mesmo que algumas atualizações sejam aplicadas. A única maneira de identificar sua versão de forma confiável é procurar a versão do gerenciador de pacotes usando apt-cache policyou outra ferramenta:

➜  ~  apt-cache policy openssl
openssl:
  Installed: 1.0.1f-1
  Candidate: 1.0.1f-1
  Version table:
 *** 1.0.1f-1 0
        500 http://http.debian.net/debian/ testing/main i386 Packages
        100 /var/lib/dpkg/status
➜  ~  dpkg -l openssl
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  openssl        1.0.1f-1     i386         Secure Sockets Layer toolkit - cr
➜  ~  

Como você pode ver, minha versão do openssl é superior, e parece ser afetada, já que é 1.0.1f, agora se eu verificar os changelogs:

➜  ~ apt-get changelog openssl
openssl (1.0.1f-1) unstable; urgency=high

  * New upstream version
    - Fix for TLS record tampering bug CVE-2013-4353
    - Drop the snapshot patch
  * update watch file to check for upstream signature and add upstream pgp key.
  * Drop conflicts against openssh since we now on a released version again.

 -- Kurt Roeckx <[email protected]>  Mon, 06 Jan 2014 18:50:54 +0100

Sim, eu ainda estou afetado. Não há nenhuma referência ao CVE-2014-0160 no changelog de qualquer natureza. Mas, não estou executando nenhum serviço SSL / TSL, então posso esperar. Eu simplesmente não preciso gerar certificados SSL usando esta versão do OpenSSL. Se sim, só preciso seguir o conselho de Gilles: derrubar os serviços, revogar o certificado, gerar novos.

Braiam
fonte
Nota: "apt-cache changelog" não é um comando válido para mim, mas "aptitude changelog" é.
ColinM
11
@ ColinM desculpe, foi o apt-get, não o apt-cache, o problema da área de transferência.
Braiam