Capítulo 3. Actualizaciones de seguridad

A medida que se descubren fallas de seguridad en el software, este se debe actualizar para sellar cualquier posible riesgo de seguridad. Si el paquete es parte de una distribución de Red Hat Enterprise Linux actualmente soportada, Red Hat, Inc. está obligado a producir los paquetes de actualización que reparen las vulnerabilidades, tan pronto como sea posible. A menudo, el anuncio de una falla de seguridad viene acompañado de un remiendo (o el código fuente que repara el problema). Este parche es aplicado al paquete de Red Hat Enterprise Linux, probado por el equipo de aseguramiento de la calidad de Red Hat y luego distribuido como una actualización de erratas. Sin embargo, si el anuncio no incluye un remiendo, un desarrollador de Red Hat trabajará con el mantenedor de ese software para reparar el problema. Después que se repara el problema, el paquete es probado y distribuido como una actualización de errata.

Si se ha distribuido una actualización de errata para algún software usado en su sistema, se le recomienda que actualice los paquetes afectados tan pronto como estos sean publicados para minimizar el tiempo en que su sistema está potencialmente vulnerable.

3.1. Actualización de paquetes

Cuando actualice software en un sistema, es importante descargar la actualización a partir de una fuente confiable. Un intruso puede fácilmente reconstruir una versión de un paquete con el mismo número de versión como el que se supone va a reparar el problema, pero con una agresión de seguridad diferente en el paquete y distribuirlo en Internet. Si esto ocurre, usando medidas de seguridad tales como la verificación de archivos contra el RPM original no detectará la agresión. Por esta razón, es muy importante que solamente descargue RPMs desde fuentes confiables, tales como Red Hat, Inc. y verifique la firma del paquete para asegurarse de su integridad.

Red Hat proporciona dos formas de encontrar información sobre las actualizaciones de erratas:

  1. Listadas y disponibles para su descarga en Red Hat Network

  2. Listadas y separadas del sitio web de Erratas de Red Hat

NotaNota
 

A partir de la línea de productos Red Hat Enterprise Linux, solamente se pueden descargar los paquetes de actualizaciones desde Red Hat Network. Aunque el sitio web de erratas de Red Hat contiene información sobre las actualizaciones, no contiene en realidad los paquetes para la descarga.

3.1.1. Uso de Red Hat Network

Red Hat Network le permite automatizar la mayoría de los procesos de actualización. Determina cuáles paquetes RPM son necesarios para el sistema, los descarga desde repositorios seguros, verifica la firma del RPM para asegurarse de que no han sido dañados y los actualiza. La instalación del paquete puede ocurrir de inmediato o puede ser planificada durante un cierto período de tiempo.

Red Hat Network requiere un Perfil del sistema para cada máquina que desea actualizar. El Perfil del Sistema contiene la información del hardware y software del sistema. Esta información se mantiene como confidencial y no se entrega a nadie más. Sólo se utiliza para determinar cuales actualizaciones de errata son aplicables a cada sistema. Sin esta información, Red Hat Network no puede determinar si su sistema necesita actualizaciones. Cuando una errata de seguridad (o cualquier tipo de errata) es publicada, Red Hat Network le enviará un correo electrónico con una descripción de la errata así como también cuáles de sus sistemas son afectados. Para aplicar la actualización, puede utilizar el Agente de actualización de Red Hat o planificar para que el paquete sea actualizado a través del sitio web http://rhn.redhat.com.

SugerenciaSugerencia
 

Red Hat Enterprise Linux incluye la Herramienta de notificación de Red Hat Network, un icono del panel muy conveniente que muestra alertas notorias cuando hay una actualización para un sistema Red Hat Enterprise Linux. Consulte el siguiente URL para más información sobre el aplique: http://rhn.redhat.com/help/basic/applet.html

Para aprender un poco más sobre los beneficios de Red Hat Network, refiérase al Red Hat Network Reference Guide disponible en http://www.redhat.com/docs/manuals/RHNetwork/ o visite el sitio http://rhn.redhat.com.

ImportanteImportante
 

Antes de instalar cualquier errata de seguridad, asegúrese de leer cualquier instrucción especial contenida en el informe de errores y ejecútelas de la forma adecuada. Consulte la Sección 3.1.5 para ver instrucciones generales sobre cómo aplicar los cambios de una actualización de errores.

3.1.2. Utilización del sitio web de Erratas de Red Hat

Cuando se lanzan los informes de errata, estos son publicados en el sitio web de Erratas de Red Hat en http://www.redhat.com/security/. Desde esta página, seleccione el producto y la versión de su sistema y luego seleccione security en la parte superior de la página para sólo desplegar los Security Advisories de Red Hat Enterprise Linux. Si la sinopsis de alguna de las recomendaciones describe un paquete usado en su sistema, pulse en la sinopsis para ver más detalles.

La página de detalles describe las violaciones de seguridad y cualquier instrucción especial que se deba llevar a cabo adicionalmente para actualizar el paquete y reparar el hueco de seguridad.

Para descargar el paquete actualizado, pulse en el enlace para iniciar una sesión a Red Hat Network, luego pulse el nombre del paquete y guárdelo al disco duro. Se recomienda que cree un nuevo directorio tal como /tmp/updates y guarde todos los paquetes descargados en el.

3.1.3. Verificar paquetes firmados

Todos los paquetes de Red Hat Enterprise Linux están firmados con la llave GPG de Red Hat, Inc.. GPG viene de GNU Privacy Guard, o GnuPG, un paquete de software libre utilizado para asegurarse de la autenticidad de los paquetes distribuidos. Por ejemplo, una llave privada (llave secreta) de Red Hat bloquea el paquete mientras que la llave pública desbloquea y verifica el paquete. Si la llave pública distribuida por Red Hat no coincide con la llave privada durante la verificación de RPM, puede que el paquete haya sido alterado y por lo tanto no se puede confiar en el.

La utilidad de RPM dentro de Red Hat Enterprise Linux trata automáticamente de verificar la firma GPG de un paquete RPM antes de instalarlo. Si no tiene la llave GPG de Red Hat instalada, instálela desde una ubicación segura y estática tal como un CD-ROM de Red Hat Enterprise Linux.

Asumiendo que el CD-ROM se encuentra montado en /mnt/cdrom, utilice el siguiente comando para importarla a su llavero (una base de datos de llaves confiables en el sistema):

rpm --import /mnt/cdrom/RPM-GPG-KEY

Para desplegar una lista de todas las llaves instaladas para ser verificadas por RPM, ejecute el comando:

rpm -qa gpg-pubkey*

Para la llave Red Hat, la salida incluirá lo siguiente:

gpg-pubkey-db42a60e-37ea5438

Para desplegar detalles sobre una llave específica, utilice el comando rpm -qi seguido de la salida del comando anterior, como se muestra en este ejemplo:

rpm -qi gpg-pubkey-db42a60e-37ea5438

Es extremadamente importante que verifique la firma de sus archivos RPM antes de instalarlos para asegurarse de que la llave no ha sido alterada desde la entrega de Red Hat, Inc. de los paquetes. Para verificar todos los paquetes descargados de una vez, escriba el comando siguiente:

rpm -K /tmp/updates/*.rpm

Para cada paquete, si se verifica exitósamente la llave GPG, el comando devuelve gpg OK. Si no es así, asegúrese de estar utilizando la llave pública correcta de Red Hat, así como también verificar la fuente del contenido. No se deberían instalar paquetes que no pasan las verificaciones de GPG pues pueden haber sido alterados por terceros.

Después de verificar la llave GPG y descargar todos los paquetes asociados con el informe de errores, instálelos como usuario root desde un shell.

3.1.4. Instalación de paquetes firmados

La instalación para la mayoría de los paquetes se puede hacer sin percances (excepto para los paquetes kernel), con el comando siguiente:

rpm -Uvh /tmp/updates/*.rpm

Para los paquetes del kernel utilice el comando que sigue:

rpm -ivh /tmp/updates/<kernel-package>

Reemplace <kernel-package> en el ejemplo anterior con el nombre del RPM del kernel.

Una vez que la máquina ha sido reiniciada sin problemas usando el nuevo kernel, se puede eliminar el viejo kernel utilizando el comando siguiente:

rpm -e <old-kernel-package>

Reemplace <old-kernel-package> en el ejemplo anterior con el nombre del RPM del kernel viejo.

NotaNota
 

No se requiere que elimine el viejo kernel. El gestor de arranque por defecto, GRUB, permite tener instalados múltiples kernels y seleccionarlos desde el menú durante el arranque.

ImportanteImportante
 

Antes de instalar cualquier errata de seguridad, asegúrese de leer cualquier instrucción especial contenida en el informe de errores y ejecútelas de la forma adecuada. Consulte la Sección 3.1.5 para ver instrucciones generales sobre cómo aplicar los cambios de una actualización de errores.

3.1.5. Aplicar los cambios

Después de descargar e instalar las erratas de seguridad a través de Red Hat Network o del sitio web de Erratas de Red Hat, es importante que detenga el uso del software viejo y comience a utilizar el nuevo software. Como se lleve esto a cabo va a depender del tipo de software que se haya actualizado. La lista siguiente muestra las diferentes categorías generales de software y proporciona instrucciones para utilizar las versiones actualizadas luego de una actualización de paquetes.

NotaNota
 

En general, la forma más segura de asegurarse que se está utilizando la versión más reciente de un paquete de software es reiniciando el sistema; sin embargo esta opción no siempre está disponible para el administrador del sistema.

Aplicaciones

Las aplicaciones del espacio del usuario son cualquier programa que puede ser iniciado por un usuario del sistema. Típicamente, tales aplicaciones son solamente utilizadas cuando un usuario, script o tarea automática las lanza y no persisten por largos períodos de tiempo.

Una vez que tal aplicación del espacio de usuario es actualizada, detenga cualquier instancia de la aplicación en el sistema y lance el programa nuevamente para así utilizar la versión actualizada.

Kernel

El kernel es el componente de software central para el sistema operativo de Red Hat Enterprise Linux. Se encarga de manejar el acceso a la memoria, el procesador y los periféricos así como también, planifica todas las tareas.

Debido a su rol central, el kernel no puede reiniciarse sin detener el computador. Por lo tanto, una versión actualizada del kernel no puede ser usada hasta que el sistema no se reinicie.

Bibliotecas compartidas

Las bibliotecas compartidas son unidades de código, tales como glibc, que son usadas por un número de aplicaciones y servicios. Las aplicaciones que utilizan una biblioteca compartida típicamente cargan el código compartido cuando la aplicación es inicializada, así cualquier aplicación que esté utilizando la biblioteca debe ser detenida y relanzada.

Para determinar cuáles aplicaciones en ejecución estan enlazadas a una biblioteca en particular, utilice el comando lsof, como se muestra en el ejemplo:

lsof /usr/lib/libwrap.so*

Este comando devuelve una lista de todos los programas en ejecución que están usando TCP wrappers para el control de acceso a máquinas. Por lo tanto, cualquier programa listado debe ser detenido y relanzado si el paquete tcp_wrappers es actualizado.

Servicios SysV

Los servicios SysV son programas del servidor persistentes, que son lanzados durante el proceso de arranque. Ejemplos de servicios SysV incluyen sshd, vsftpd y xinetd.

Debido a que estos programas usualmente persisten en memoria, siempre y cuando la máquina esté encendida, cada servicio SysV actualizado, debe ser detenido y relanzado después de una actualización de paquetes. Esto se puede hacer usando la Herramienta de configuración de servicios o conectándose como root en un indicador de comandos shell y ejecutando el comando /sbin/service como se muestra en el ejemplo siguiente:

/sbin/service <service-name> restart

En el ejemplo anterior, reemplace <service-name> con el nombre del servicio, tal como sshd.

Consulte el capítulo llamado Control de acceso a servicios en el Manual de administración del sistema de Red Hat Enterprise Linux para más información sobre la Herramienta de configuración de servicios.

Servicios xinetd

Los servicios controlados por el super servicio xinetd sólo funcionan cuando hay una conexión activa. Ejemplos de servicios controlados por xinetd incluyen Telnet, IMAP, y POP3.

Puesto que xinetd lanza nuevas instancias de estos servicios cada vez que se recibe una nueva petición, las conexiones que ocurren después de una actualización son manejadas por el software actualizado. Sin embargo, si hay conexiones activas en el momento en que el servicio controlado por xinetd es actualizado, estas son servidas por la versión vieja del software.

Para matar todas las instancias viejas de un servicio controlado por xinetd, actualice el paquete para el servicio y luego detenga todos los procesos que se esten ejecutando en ese momento. Para determinar si el proceso está en ejecución, utilice el comando ps y luego use kill o killall para detener todas las instancias actuales del servicio.

Por ejemplo, si hay erratas de seguridad para paquetes imap, actualice los paquetes, luego escriba el comando siguiente como root en un indicador de comandos:

ps -aux | grep imap

Este comando devuelve todas las sesiones activas de IMAP. Las sesiones individuales pueden ser terminadas luego usando el comando que sigue:

kill -9 <PID>

En el ejemplo anterior, reemplace <PID> con el número de identificación del proceso (encontrado en la segunda columna del comando ps) para una sesión IMAP.

Para matar todas las sesiones IMAP activas, utilice el comando que sigue:

killall imapd

Consulte el capítulo llamado TCP Wrappers y xinetd en el Manual de referencia de Red Hat Enterprise Linux para información general sobre xinetd.