¿Buscar actualizaciones de seguridad automáticamente en CentOS o Scientific Linux?

20

Tenemos máquinas que ejecutan distribuciones basadas en RedHat como CentOS o Scientific Linux. Queremos que los sistemas nos notifiquen automáticamente si hay vulnerabilidades conocidas en los paquetes instalados. FreeBSD hace esto con el puerto ports-mgmt / portaudit .

RedHat proporciona yum-plugin-security , que puede verificar vulnerabilidades mediante su ID de Bugzilla, ID de CVE o ID de aviso. Además, Fedora recientemente comenzó a admitir yum-plugin-security . Creo que esto se agregó en Fedora 16.

Scientific Linux 6 no era compatible con yum-plugin-security a finales de 2011 . Se envía con /etc/cron.daily/yum-autoupdate, que actualiza RPM diariamente. Sin embargo, no creo que esto maneje solo las actualizaciones de seguridad.

CentOS no es compatibleyum-plugin-security .

Superviso las listas de correo de CentOS y Scientific Linux en busca de actualizaciones, pero esto es tedioso y quiero algo que pueda automatizarse.

Para aquellos de nosotros que mantenemos los sistemas CentOS y SL, ¿hay alguna herramienta que pueda:

  1. Automáticamente (de forma progamática, a través de cron) nos informa si hay vulnerabilidades conocidas con mis RPM actuales.
  2. Opcionalmente, instale automáticamente la actualización mínima requerida para abordar una vulnerabilidad de seguridad, que probablemente estaría yum update-minimal --securityen la línea de comandos.

He considerado usar yum-plugin-changelogpara imprimir el registro de cambios para cada paquete, y luego analizar el resultado de ciertas cadenas. ¿Hay alguna herramienta que ya haga esto?

Stefan Lasiewski
fuente
¿Tiene algún sistema de gestión de configuración? ¿Marioneta? CFEngine?
ewwhite
Sí, tengo Cfengine. Estoy pensando en Puppet.
Stefan Lasiewski
2
yum-updatesd solía hacer algo similar (notificar sobre nuevas actualizaciones y mencionar si hubo actualizaciones de seguridad), pero no creo que esté en los repositorios de CentOS 6 (o EPEL). Sin embargo, es posible que pueda adaptar los scripts en CentOS Wiki con bastante facilidad.
cyberx86

Respuestas:

8

Si absolutamente quieres usar yum security plugin, hay una manera de hacerlo, aunque un poco elaborada. Pero una vez que lo tiene configurado, todo está automatizado.

El único requisito es que deberá tener al menos una suscripción a RHN. Lo cual es una buena inversión de la OMI, pero vamos al grano.

  1. Una vez que tenga la suscripción, puede usar mrepo , o reposync , para configurar un repositorio interno de Yum, que refleje los repositorios de CentOS. (o simplemente puedes usar rsync).
  2. Luego, use el script adjunto a esta publicación de la lista de correo para conectarse periódicamente a su suscripción a RHN y descargar información de paquetes de seguridad. Ahora, tú tienes dos opciones.
    1. Extraiga solo los nombres de paquete del archivo generado "updateinfo.xml". Y use esa información para "buscar" en sus servidores Rpms que necesiten seguridad u otras actualizaciones, usando puppet o cfengine, o ssh-in-a-for-loop. Esto es más simple, te da todo lo que quieres, pero no puedes usar yum security.
    2. La otra opción es utilizar el modifyrepocomando como se muestra aquí , para inyectar updateinfo.xmlen repomd.xml. Antes de hacer esto, tendrá que modificar el script perl para cambiar las sumas de Rpm MD5 dentro del xml, de las sumas de RHN a Centos. Y tendrá que asegurarse de que los repositorios CentOS realmente tengan todos los Rpms mencionados updateinfo.xml, ya que a veces están detrás de RHN. Pero está bien, puede ignorar las actualizaciones que CentOS no ha alcanzado, ya que hay poco que pueda hacer al respecto, salvo construirlas a partir de los SRPM.

Con la opción 2, puede instalar el yum securitycomplemento en todos los clientes y funcionará.

Editar: Esto también funciona para las máquinas Redhat RHEL 5 y 6. Y es más simple que usar una solución pesada como Spacewalk o Pulp.

Ahora no
fuente
6

Scientific Linux ahora puede enumerar actualizaciones de seguridad desde la línea de comandos. Además, puedo actualizar un sistema para aplicar solo actualizaciones de seguridad, lo cual es mejor que el predeterminado ("¡Solo actualice todo! Incluyendo correcciones de errores que no le interesan y que introducen regresiones".

He probado esto tanto en Scientific Linux 6.1 como en 6.4. No estoy seguro de cuándo se anunció oficialmente, pero publicaré más cuando me entere.

Aquí hay unos ejemplos.

Enumere un resumen de las actualizaciones de seguridad:

[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

Y luego puedo aplicar el conjunto mínimo de cambios necesarios para

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

O simplemente parchear todo:

[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 ~]#

Si intento este mismo comando en un cuadro CentOS6, no obtengo ningún resultado. Sé con certeza que algunos de los '137 paquetes disponibles' contienen correcciones de seguridad, porque ayer recibí los avisos de erratas a través de las listas de correo de 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
fuente
5

Yo tuve el mismo problema. Intenté crear un código de Python para reunir las actualizaciones de Yum y los avisos del sitio de erratas steve-meier mencionado anteriormente (lo filtro en función de los paquetes instalados).

En caso de que ayude, aquí está la fuente: https://github.com/wied03/centos-package-cron

Brady Wied
fuente
2

Como tiene CFEngine, puede aplicar cambios a grupos de sistemas a la vez en función de las actualizaciones de seguridad publicadas en: http://twitter.com/#!/CentOS_Announce

No soy el mayor ingeniero de seguridad de servidores que existe ... pero tiendo a descubrir que solo me interesan algunos paquetes cuando se trata de seguridad. Cualquier cosa que sea pública (ssl, ssh, apache) o que tenga un exploit importante tiene prioridad. Todo lo demás se evalúa trimestralmente. No quiero que estas cosas se actualicen automáticamente porque los paquetes actualizados pueden potencialmente romper otros elementos en un sistema de producción.

ewwhite
fuente
El feed de Twitter mencionado anteriormente es un mal consejo de la OMI en 2017+. No ha recibido ninguna actualización desde el 10 de octubre de 2012.
slm
2

Scientific Linux (al menos 6.2 y 6.3; yo no tiene ningún 6.1 Sistemas de la izquierda) no sólo es compatible yum-plugin-security, pero el archivo de configuración para yum-autoupdate, /etc/sysconfig/yum-autoupdate, le permite habilitar sólo la instalación de actualizaciones de seguridad.

# 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
fuente
2

En CentOS puedes usar

yum list updates

en lugar de yum-plugin-security, o tal vez quieras probar este escaneo de script basado en las noticias de seguridad de CentOS: LVPS .

Lars Windolf
fuente
yum list updatesenumerará todas las actualizaciones, cuando quiera enumerar solo las actualizaciones de seguridad .
Stefan Lasiewski el
actualizaciones de la lista yum --security
Sirex
2
yum list updates --securityno funciona (tal vez necesita un complemento)
Taha Jahangir
1

También puedes probar el proyecto generate_updateinfo . Es un script de Python que procesa errata.latest.xmlarchivos compilados por el proyecto CEFS y genera updateinfo.xmlarchivos con metadatos de actualizaciones de seguridad. Luego puede inyectarlo en su repositorio local de actualizaciones CentOS 6 (7). Es bastante sencillo integrarlo con repositorios personalizados / locales creados por createrepocomando:

  • repositorio espejo con reposynccomando
  • crear repositorio local con createrepocomando
  • descargar y generar updateinfo.xmlarchivos con generate_updateinfo.pyscript
  • inyecte metadatos de actualizaciones de seguridad generados en su repositorio local con el modifyrepocomando
dsmsk80
fuente
-1

En CentOS6, puede usar el complemento yum-security:

yum install yum-security

Comprobar con:

yum --security check-update

Este comando devuelve el código 0 si no hay actualizaciones de seguridad disponibles.

En combinación con yum-cron, puede recibir un correo electrónico solo con las actualizaciones de seguridad disponibles modificando el archivo / etc / sysconfig / yum-cron:

YUM_PARAMETER="--security"
Bertl
fuente
1
El complemento de seguridad de Yum no funciona para mí en CentOS6. Sin embargo, funciona en RHEL y Scientific Linux.
Stefan Lasiewski
¿Qué significa "no funciona"? Es parte de CentOS6-Base y está instalado en muchas instalaciones aquí. yum-plugin-security.noarch 1.1.30-17.el6_5 @updates
Bertl
1
Lo que quiero decir es que cuando ejecuto yum --security check-update, el comando regresa con No packages needed for security; 137 packages available. Sé con certeza que algunas de las actualizaciones disponibles contienen correcciones de seguridad. Las actualizaciones están disponibles en el repositorio 'base' de CentOS, pero no están marcadas como soluciones de seguridad. CentOS no proporciona actualmente un repositorio yum para los parches de seguridad, a diferencia de Red Hat, Scientific Linux y EPEL.
Stefan Lasiewski
1
Si funciona para usted, ¿puede mostrar cómo funciona?
Stefan Lasiewski