Verificar automaticamente atualizações de segurança no CentOS ou Scientific Linux?

20

Temos máquinas executando distros baseadas em RedHat, como CentOS ou Scientific Linux. Queremos que os sistemas nos notifiquem automaticamente se houver alguma vulnerabilidade conhecida nos pacotes instalados. O FreeBSD faz isso com a porta ports-mgmt / portaudit .

O RedHat fornece o yum-plugin-security , que pode verificar vulnerabilidades através do seu ID do Bugzilla, CVE ou ID consultivo. Além disso, o Fedora começou recentemente a apoiar o yum-plugin-security . Eu acredito que isso foi adicionado no Fedora 16.

O Scientific Linux 6 não suportava yum-plugin-security no final de 2011 . Ele é fornecido com /etc/cron.daily/yum-autoupdate, que atualiza os RPMs diariamente. Eu não acho que isso lide apenas com atualizações de segurança.

O CentOS não suportayum-plugin-security .

Monitoro as listas de discussão do CentOS e Scientific Linux em busca de atualizações, mas isso é tedioso e quero algo que possa ser automatizado.

Para aqueles de nós que mantêm os sistemas CentOS e SL, existem ferramentas que podem:

  1. Automaticamente (progamaticamente, via cron) nos informe se existem vulnerabilidades conhecidas nos meus RPMs atuais.
  2. Opcionalmente, instale automaticamente a atualização mínima necessária para solucionar uma vulnerabilidade de segurança, que provavelmente estaria yum update-minimal --securityna linha de comando?

Eu considerei usar yum-plugin-changelogpara imprimir o changelog de cada pacote e depois analisar a saída para determinadas seqüências de caracteres. Existem ferramentas que já fazem isso?

Stefan Lasiewski
fonte
Você possui algum sistema de gerenciamento de configuração? Fantoche? CFEngine?
ewwhite
Sim, eu tenho Cfengine. Estou pensando em Puppet.
Stefan Lasiewski
2
O yum-updatesd costumava fazer algo semelhante (notificar sobre novas atualizações e mencionar se houve alguma atualização de segurança) - mas não acredito que seja nos repositórios do CentOS 6 (ou EPEL). Você pode adaptar os scripts no Wiki do CentOS com bastante facilidade.
cyberx86

Respostas:

8

Se você absolutamente deseja usar yum security plugin, existe uma maneira de fazer isso, embora um pouco elaborado. Mas uma vez configurada, é tudo automatizado.

O único requisito é que você precisará ter pelo menos uma assinatura do RHN. O que é um bom investimento IMO, mas vamos nos concentrar no assunto.

  1. Depois de ter a assinatura, você pode usar o mrepo , ou reposync , para configurar um repositório interno Yum, que reflete os repositórios do CentOS. (ou você pode simplesmente usar o rsync).
  2. Em seguida, use o script anexado a esta postagem na lista de discussão , para conectar-se periodicamente à sua assinatura do RHN, para baixar as informações dos pacotes de segurança. Agora você tem duas opções.
    1. Extraia apenas os nomes dos pacotes do arquivo "updateinfo.xml" gerado. E use essas informações para "procurar" nos servidores por Rpms que precisem de segurança ou outras atualizações, usando fantoche ou cfengine ou ssh-in-a-for-loop. Isso é mais simples, oferece tudo o que você deseja, mas não pode usar yum security.
    2. A outra opção é usar o modifyrepocomando como mostrado aqui , para injetar updateinfo.xmlno repomd.xml. Antes de fazer isso, você precisará modificar o script perl para alterar as somas Rpm MD5 dentro do xml, das somas RHN para Centos. E você terá que garantir que os repositórios do CentOS realmente tenham todos os Rpms mencionados updateinfo.xml, pois eles estão atrás do RHN às vezes. Mas tudo bem, você pode ignorar as atualizações que o CentOS não atualizou, pois há pouco que você pode fazer sobre isso, além de construí-las a partir de SRPMs.

Com a opção 2, você pode instalar o yum securityplug-in em todos os clientes e ele funcionará.

Edit: Isso também funciona para máquinas Redhat RHEL 5 e 6. E é mais simples do que usar uma solução pesada, como Spacewalk ou Pulp.

Agora não
fonte
6

Agora, o Scientific Linux pode listar atualizações de segurança na linha de comando. Além disso, eu posso atualizar um sistema para aplicar apenas atualizações de segurança, o que é melhor que o padrão ("Apenas atualize tudo! Incluindo correções de bugs que você não se importa e que introduzam regressões".

Eu testei isso no Scientific Linux 6.1 e no 6.4. Não tenho certeza de quando isso foi anunciado oficialmente, mas postarei mais quando descobrir.

Aqui estão alguns exemplos.

Liste um resumo das atualizações de segurança:

[root@node1 ~]# yum updateinfo
Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
Updates Information Summary: available
    4 Security notice(s)
        1 important Security notice(s)
        3 moderate Security notice(s)
    2 Bugfix notice(s)
updateinfo summary done

root@node1 ~]# yum list-sec
Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
SLSA-2013:1459-1 moderate/Sec.  gnupg2-2.0.14-6.el6_4.x86_64
SLSA-2013:1436-1 moderate/Sec.  kernel-2.6.32-358.23.2.el6.x86_64
SLSA-2013:1436-1 moderate/Sec.  kernel-devel-2.6.32-358.23.2.el6.x86_64
SLSA-2013:1436-1 moderate/Sec.  kernel-firmware-2.6.32-358.23.2.el6.noarch
SLSA-2013:1436-1 moderate/Sec.  kernel-headers-2.6.32-358.23.2.el6.x86_64
SLSA-2013:1457-1 moderate/Sec.  libgcrypt-1.4.5-11.el6_4.x86_64
SLSA-2013:1270-1 important/Sec. polkit-0.96-5.el6_4.x86_64
SLBA-2013:1486-1 bugfix         selinux-policy-3.7.19-195.el6_4.13.noarch
SLBA-2013:1491-1 bugfix         selinux-policy-3.7.19-195.el6_4.18.noarch
SLBA-2013:1486-1 bugfix         selinux-policy-targeted-3.7.19-195.el6_4.13.noarch
SLBA-2013:1491-1 bugfix         selinux-policy-targeted-3.7.19-195.el6_4.18.noarch
updateinfo list done

Lista por CVE:

[root@node2 ~]# yum list-sec cves
Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
 * epel: mirrors.kernel.org
 * sl6x: ftp.scientificlinux.org
 * sl6x-security: ftp.scientificlinux.org
7404 packages excluded due to repository priority protections
 CVE-2012-6085 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64
 CVE-2013-4351 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64
 CVE-2013-4402 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64
 CVE-2013-4162 moderate/Sec. kernel-2.6.32-358.23.2.el6.x86_64
 CVE-2013-4299 moderate/Sec. kernel-2.6.32-358.23.2.el6.x86_64
 CVE-2013-4162 moderate/Sec. kernel-firmware-2.6.32-358.23.2.el6.noarch
 CVE-2013-4299 moderate/Sec. kernel-firmware-2.6.32-358.23.2.el6.noarch
 CVE-2013-4242 moderate/Sec. libgcrypt-1.4.5-11.el6_4.x86_64
updateinfo list done

E então posso aplicar o conjunto mínimo de alterações necessárias para

[root@node1 ~]# yum update-minimal --security

Ou apenas remende tudo:

[root@node1 ~]# yum --quiet --security check-update

gnutls.x86_64                                      2.8.5-14.el6_5                                     sl-security
libtasn1.x86_64                                    2.3-6.el6_5                                        sl-security
[root@node1 ~]# yum --quiet --security update

=================================================================================================================
 Package                 Arch                  Version                          Repository                  Size
=================================================================================================================
Updating:
 gnutls                  x86_64                2.8.5-14.el6_5                   sl-security                345 k
 libtasn1                x86_64                2.3-6.el6_5                      sl-security                237 k

Transaction Summary
=================================================================================================================
Upgrade       2 Package(s)

Is this ok [y/N]: Y
[root@node1 ~]#

Se eu tentar esse mesmo comando em uma caixa do CentOS6, não obtive nenhum resultado. Sei que alguns dos '137 pacotes disponíveis' contêm correções de segurança, porque recebi os avisos de errata ontem através das listas de correio do CentOS.

[root@node1 ~]# yum --security check-update 
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: mirrors.usc.edu
 * epel: mirrors.kernel.org
 * extras: mirror.web-ster.com
 * updates: mirrors.kernel.org
Limiting package lists to security relevant ones
No packages needed for security; 137 packages available
[root@node1 ~]#
Stefan Lasiewski
fonte
5

Eu tive o mesmo problema. Fiz uma tentativa de criar um código Python para reunir Yum Updates e avisos do site steve-meier Errata mencionado acima (eu o filtro com base nos pacotes instalados).

Caso isso ajude, aqui está a fonte: https://github.com/wied03/centos-package-cron

Brady Wied
fonte
2

Como você possui o CFEngine, você pode aplicar alterações em grupos de sistemas no momento, com base nas atualizações de segurança publicadas em: http://twitter.com/#!/CentOS_Announce

Não sou o maior engenheiro de segurança de servidores do mercado ... mas costumo descobrir que só me importo com alguns pacotes quando se trata de segurança. Qualquer coisa voltada para o público (ssl, ssh, apache) ou com uma grande exploração tem prioridade. Todo o resto é avaliado trimestralmente. Não quero que essas coisas sejam atualizadas automaticamente porque pacotes atualizados podem potencialmente quebrar outros itens em um sistema de produção.

ewwhite
fonte
O feed do twitter mencionado acima é um mau conselho da IMO em 2017+. Não recebeu nenhuma atualização desde 10 de outubro de 2012.
slm 23/01
2

Scientific Linux (pelo menos 6.2 e 6.3; eu não tenho nenhum 6.1 sistemas esquerda) não só apoia yum-plugin-security, mas o arquivo de configuração para para yum-autoupdate, /etc/sysconfig/yum-autoupdate, permite-lhe permitem apenas a instalação de atualizações de segurança.

# USE_YUMSEC
#   This switches from using yum update to using yum-plugin-security
#     true  - run 'yum --security' update rather than 'yum update'
#     false - defaults to traditional behavior running 'yum update' (default)
#   + anything other than true defaults to false
#USE_YUMSEC="false"
USE_YUMSEC="true"
Joshua Hoblitt
fonte
2

No CentOS você pode usar

yum list updates

em vez de yum-plugin-security, ou talvez você queira tentar esta verificação de script com base nos feeds de notícias de segurança do CentOS: LVPS .

Lars Windolf
fonte
yum list updateslistará todas as atualizações, quando desejar listar apenas atualizações de segurança .
Stefan Lasiewski
atualizações da lista yum --security
Sirex
2
yum list updates --securitynão funciona (talvez precisa de um plugin)
Taha Jahangir
1

Você também pode tentar o projeto generate_updateinfo . É um script python que processa errata.latest.xmlarquivos compilados pelo projeto CEFS e gera updateinfo.xmlarquivos com metadados de atualizações de segurança. Você pode injetá-lo no seu repositório de atualização local do CentOS 6 (7). É bastante simples integrá-lo aos repositórios personalizados / locais criados pelo createrepocomando:

  • repositório espelho com reposynccomando
  • criar repositório local com o createrepocomando
  • baixar e gerar updateinfo.xmlarquivo com generate_updateinfo.pyscript
  • injete metadados de atualizações de segurança gerados no seu repositório local com o modifyrepocomando
dsmsk80
fonte
-1

No CentOS6, você pode usar o plugin yum-security:

yum install yum-security

Verificar com:

yum --security check-update

Este comando retorna o código 0 se nenhuma atualização de segurança estiver disponível.

Em combinação com o yum-cron, você pode receber um email apenas nas atualizações de segurança disponíveis, modificando o arquivo / etc / sysconfig / yum-cron:

YUM_PARAMETER="--security"
Bertl
fonte
11
O plugin de segurança Yum não funciona para mim no CentOS6. Porém, ele funciona no RHEL e no Scientific Linux.
Stefan Lasiewski
O que significa "não funciona". Faz parte do CentOS6-Base e é instalado em muitas instalações aqui. -yum-plugin security.noarch 1.1.30-17.el6_5 @updates
Bertl
11
O que quero dizer é que, quando corro yum --security check-update, o comando retorna com No packages needed for security; 137 packages available. Sei que algumas das atualizações disponíveis contêm correções de segurança. As atualizações estão disponíveis no repositório 'base' do CentOS, mas não são marcadas como correções de segurança. Atualmente, o CentOS não fornece um repositório yum para os patches de segurança, ao contrário do Red Hat, Scientific Linux e EPEL.
Stefan Lasiewski
11
Se funcionar para você, você pode mostrar como funciona?
Stefan Lasiewski
11
Veja este tópico sobre o assunto: lists.centos.org/pipermail/centos-devel/2012-August/008675.html
Bertl