Determine a versão de segurança eficaz quando confrontado com o backpatching?

0

O bug do Heartbleed tem muitas pessoas perguntando como verificar a versão de um pacote instalado. Estou incluído desde que não descobri um caminho.

Infelizmente, o backpatching tornou a verificação de versão quase inútil, porque a informação permanece no nível inferior. Por exemplo (do Fedora):

$ openssl version -a
OpenSSL 1.0.1e-fips 11 Feb 2013
built on: Tue Apr  8 00:29:11 UTC 2014
platform: linux-x86_64
options:  bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) ...
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT ...
OPENSSLDIR: "/etc/pki/tls"
engines:  dynamic 

E o Yum e o Apt-Get não são melhores porque não fornecem uma versão de segurança efetiva (do Fedora com o Yum):

$ yum info openssl
Loaded plugins: langpacks, refresh-packagekit
Installed Packages
Name        : openssl
Arch        : x86_64
Epoch       : 1
Version     : 1.0.1e
Release     : 37.fc19.1
Size        : 1.5 M
Repo        : installed
From repo   : updates
Summary     : Utilities from the general purpose cryptography library with TLS
            : implementation
URL         : http://www.openssl.org/
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
            : between machines. OpenSSL includes a certificate management tool
            : and shared libraries which provide various cryptographic
            : algorithms and protocols.

E (do Ubuntu e do Apt-Cache):

$ apt-cache showpkg openssl
Package: openssl
Versions: 
1.0.1e-3ubuntu1.2 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_saucy-updates_main_binary-amd64_Packages) (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_saucy-security_main_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_saucy_main_binary-amd64_Packages
                  MD5: 977022bc5545601176b69704acc5df9b
 Description Language: en
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_saucy_main_i18n_Translation-en
                  MD5: 977022bc5545601176b69704acc5df9b

1.0.1e-3ubuntu1 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_saucy_main_binary-amd64_Packages)
 ...
Provides: 
1.0.1e-3ubuntu1.2 - 
1.0.1e-3ubuntu1 - 

Como pode ser visto acima, não há informações disponíveis sobre a versão de segurança efetiva ("1.0.1g"). A única informação fornecida é que o OpenSSL é de nível inferior ("1.0.1e") e possivelmente vulnerável ao último bug.

Os números de versões de backpatching e downlevel têm que ser uma das decisões de segurança mais idiotas do histórico. Seu direito lá em cima com o
(1) criptografia oportunista é ruim, texto simples é bom (navegadores) e
(2) usando informações públicas como uma questão secreta / desafiadora .

Como se determina a versão de segurança efetiva de um pacote que foi backpatched ao usar o Yum e o Apt-Get? (Esta é uma pergunta generalizada e não particular ao OpenSSL).

    
por jww 11.04.2014 / 06:44

2 respostas

2

Eu uso rpm -q openssl --changelog | head

A partir disso, você pode verificar os patches de segurança e, dependendo do seu repositório, ele pode fornecer uma versão precisa (dependendo de como foi bem comentado).

Eu prefiro isso em vez de simplesmente ir para a data de construção e supondo que ele contenha o patch de segurança mais recente

Desde que você perguntou especificamente sobre como fazer isso do yum, primeiro você precisa instalar o changelog yum install yum-changelog

Em seguida, execute yum changelog openssl ou visualize enquanto / antes da atualização, yum update openssl --changelog

Por interesse, fiz uma pesquisa rápida para ver se havia alguma outra maneira de fazê-lo, mas tudo que encontrei foi alguém como você que queria uma maneira fácil de verificar a versão de segurança, e ele escreveu um shell script para fazer para qualquer pacote (link abaixo)

Entrada no blog

Script de shell

apt-get also (aparently) possui um recurso de changelog executando apt-get changelog openssl
(Eu digo aparentemente, porque eu não testei isso sozinho - algumas fontes citam usando aptitude changelog <package> )

dpkg tem uma ferramenta incluída com o pacote dpkg-dev chamado dpkg-parsechangelog
(Novamente, eu não usei isso sozinho, então eu não sei quais resultados ele forneceria, mas eu suporia informações semelhantes)

Adendo: A única maneira fácil que encontrei de resolver o problema de um changelog fornecendo o CVE e não uma versão específica é com o uso de uma ferramenta como vFeed .
Na verdade, eu não usei essa ferramenta em particular (pode haver outras), mas ela fornece acesso por linha de comando a funções como get_cve : basic CVE attributes (summary, published and modified dates)

Se alguém tiver tempo ou inclinação, tenho certeza de que um script de shell simples pode ser escrito, combinando a extração de informações CVE do changelog e alimentando-as em uma ferramenta como o vFeed, fornecendo uma resposta de uma linha à pergunta "O pacote-x contém os últimos patches de segurança?". Na verdade, a maior parte do trabalho provavelmente já foi feita no script de shell ao qual eu estava vinculado anteriormente.

    
por 02.05.2014 / 08:33
1

A maneira mais confiável que encontrei para verificar o status efetivo de openssl é executar openssl version -a e examinar o campo built on . Esta data, combinada com boletins de segurança oficiais do Ubuntu / Fedora , fornecerá as informações que você está procurando.

E eu de alguma forma concordo com você no backpatching, devo dizer que pode ser confuso.

    
por 01.05.2014 / 14:06