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

19

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 yum-plugin-security , que pode verificar vulnerabilidades pelo ID do Bugzilla, CVE ID ou ID de consultoria. Além disso, o Fedora recentemente começou a oferecer suporte a yum-plugin-security . Eu acredito que isso foi adicionado no Fedora 16.

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

O CentOS não suporta não suporta yum-plugin-security .

Eu monitora as listas de discussão CentOS e Scientific Linux para atualizações, mas isso é entediante e eu quero algo que possa ser automatizado.

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

  1. Automaticamente (de forma programática, via cron) informe-nos se houver vulnerabilidades conhecidas com meus RPMs atuais.
  2. Opcionalmente, instale automaticamente a atualização mínima necessária para resolver uma vulnerabilidade de segurança, o que provavelmente seria yum update-minimal --security na linha de comando?

Eu considerei usar yum-plugin-changelog para imprimir o changelog de cada pacote e, em seguida, analisar a saída para determinadas cadeias de caracteres. Existem ferramentas que já fazem isso?

    
por Stefan Lasiewski 14.03.2012 / 23:19

8 respostas

5

O Scientific Linux agora pode listar as atualizações de segurança a partir da linha de comando. Além disso eu posso atualizar um sistema para aplicar apenas atualizações de segurança, o que é melhor do que o padrão ("Basta atualizar tudo! Incluindo correções que você não se importa e que introduzir 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 vou postar mais quando descobrir.

Aqui estão alguns exemplos.

Relacione 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

Listar 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 corrija 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 este mesmo comando em uma caixa do CentOS6, não obtenho nenhum resultado. Eu sei que alguns dos '137 pacotes disponíveis' contêm correções de segurança, porque eu recebi os avisos de erratas ontem através das listas de discussão 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 ~]#
    
por 13.11.2013 / 01:18
7

Se você quiser usar o yum security plugin , existe uma maneira de fazer isso, embora um pouco elaborado. Mas depois de configurá-lo, tudo é automatizado.

O único requisito é que você precisará ter pelo menos uma assinatura para o RHN. Qual é um bom investimento IMO, mas vamos manter o ponto.

  1. Depois de ter a assinatura, você pode usar mrepo ou reposync , para configurar um casa repo Yum, que espelha repos CentOS. (ou você poderia simplesmente usar rsync).
  2. Em seguida, use o script anexado a esta postagem da lista de e-mails para se conectar periodicamente sua assinatura do RHN, para baixar informações sobre pacotes de segurança. Agora você tem duas opções.
    1. Extraia apenas os nomes dos pacotes do arquivo "updateinfo.xml" gerado. E use essa informação para "procurar" seus servidores por Rpms que precisam de segurança ou outras atualizações, usando puppet ou cfengine, ou ssh-in-a-loop. Isso é mais simples, dá a você tudo que você quer, mas você não pode usar yum security .
    2. A outra opção é usar o comando modifyrepo como mostrado aqui , para injetar updateinfo.xml em repomd.xml . Antes de fazer isso, você terá que modificar o script perl para alterar as somas do RPM MD5 dentro do xml, das somas RHN para Centos. E você terá que ter certeza se o repositório do CentOS realmente tem todos os RPMs mencionados em updateinfo.xml , já que eles estão por trás da RHN às vezes. Mas tudo bem, você pode ignorar as atualizações que o CentOS não alcançou, já que há pouco que você possa fazer a respeito, a não ser construí-las a partir dos SRPMs.

Com a opção 2, você pode instalar o yum security plugin em todos os clientes e funcionará.

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

    
por 15.03.2012 / 19:47
5

Eu tive o mesmo problema. Eu tentei criar um código Python para reunir as atualizações e recomendações do Yum do site de erratas steve-meier mencionado acima (eu o filtro baseado em pacotes instalados).

Caso isso aconteça, aqui está a fonte: link

    
por 28.09.2014 / 23:14
2

Como você tem o CFEngine, é possível aplicar alterações a grupos de sistemas com base nas atualizações de segurança postadas em: link

Não sou o maior engenheiro de segurança de servidores ... mas tenho a tendência de descobrir que só me preocupo com alguns pacotes quando se trata de segurança. Tudo o que é voltado para o público (ssl, ssh, apache) ou tem 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.

    
por 15.03.2012 / 00:31
2

O Scientific Linux (pelo menos 6.2 e 6.3; não tenho nenhum sistema 6.1) suporta não apenas yum-plugin-security , mas o arquivo de configuração para yum-autoupdate , /etc/sysconfig/yum-autoupdate , permite ativar apenas a instalação de segurança atualizações.

# 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"
    
por 13.10.2012 / 02:32
2

No CentOS você pode usar

yum list updates

em vez de yum-plugin-security, ou talvez você queira experimentar esta varredura de scripts baseada nos feeds de notícias de segurança do CentOS: LVPS .

    
por 24.10.2012 / 20:56
1

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

  • repositório de espelho com o comando reposync
  • crie um repositório local com createrepo command
  • faça o download e gere o arquivo updateinfo.xml com generate_updateinfo.py script
  • injetar metadados de atualizações de segurança gerados em seu repositório local com modifyrepo command
por 10.03.2017 / 11:43
-1

No CentOS6, você pode usar o plugin de segurança do yum:

yum install yum-security

Verifique 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 obter um e-mail apenas sobre as atualizações de segurança disponíveis, modificando o arquivo / etc / sysconfig / yum-cron:

YUM_PARAMETER="--security"
    
por 01.06.2014 / 12:06