Gentoo Logo

[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


9. Seguridad del Kernel

Contenido:

9.a. Eliminar funcionalidad

La regla básica cuando se configura el núcleo es eliminar todo lo que no se necesite. Esto no creará solo un núcleo pequeño sino también eliminará las vulnerabilidades que puedan encontrarse en controladores y otras características.

Considere también desactivar el soporte para módulos cargables. Aunque incluso es posible añadir "root kits" sin esta característica activada, se hace más difícil para los atacantes normales instalar "root kits" sin poder hacerlo a través de módulos del núcleo.

9.b. El sistema de ficheros proc

Muchos de los parámetros del núcleo pueden cambiarse a través del sistema de ficheros /proc o usando sysctl.

Para cambiar dinámicamente parámetros y variables del núcleo al vuelo necesita tener definido CONFIG_SYSCTL en el núcleo. Lo que está activado por defecto en un núcleo 2.4 estándar.

Listado de Código 2.1: Desactivar IP forwarding

# /bin/echo "0" > /proc/sys/net/ipv4/ip_forward

Asegúrese que IP forwarding está desactivado. Solo lo queremos en un equipo que tenga más de una conexión de red ("multi-homed host"). Le advertimos que active o desactive este parámetro antes que cualquier otro, puesto que también activa/desactiva otros parámetros.

Listado de Código 2.2: Descartar los paquetes de ping

# /bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

Esto hará que el núcleo simplemente ignore todos los mensajes de ping (también conocidos como mensajes ICMP tipo 0). La razón para hacer esto está en que el paquete IP que lleva el mensaje ICMP puede contener información distinta de la que debería. Los administradores usan ping como una herramienta de diagnóstico y frecuentemente se quejan si se deshabilita, pero no hay ninguna razón para que alguien desde fuera pueda mandar un ping. Sin embargo, a veces puede ser práctico que desde dentro sí se puedan hacer pings, entonces lo que puede hacer es deshabilitar el ICMP tipo 0 en el cortafuegos (permitiendo continuar utilizando esta herramienta a los administradores locales).

Listado de Código 2.3: Ignorar pings de broadcast

# /bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

Esto deshabilita la respuesta a "broadcasts" ICMP y prevendrá de ataques "Smurf". El ataque Smurf consiste en enviar un ICMP tipo 0 (ping) a la dirección de broadcast de una red. Por regla general el atacante usará una dirección de origen falseada ("spoofed"). Todos los ordenadores de la red responderán al mensaje de ping y de ese modo inundarán al host cuya dirección se ha falsificado.

Listado de Código 2.4: Deshabilitar paquetes enrutados desde el origen

# /bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route

No acepte paquetes enrutados desde el origen. Los atacantes pueden usar enrutamiento desde el origen para generar tráfico que pretende ser originado dentro de su red, pero que es actualmente enrutando hacia el origen por el camino por el que ha venido, de esta forma los atacantes pueden comprometer su red. El enrutamiento desde el origen es raramente utilizado para fines legítimos, por ello es seguro desactivarlo.

Listado de Código 2.5: Deshabilitar la aceptación de redirección

# /bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects

No acepte paquetes de redirección ICMP. La redirección ICMP puede ser usada para alterar sus tablas de enrutamiento, posiblemente con una una mala finalidad.

Listado de Código 2.6: Protección contra mensajes de error falsos

# /bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

Habilite la protección contra respuestas de mensajes de error falsos.

Listado de Código 2.7: Activar el filtrado inverso de paths

# for i in /proc/sys/net/ipv4/conf/*; do
         /bin/echo "1" > $i/rp_filter
done

Active el filtrado inverso para trayectorias. Esto ayuda a estar seguros que los paquetes usan una dirección de origen legítima rechazando automáticamente los paquetes entrantes si la entrada correspondiente a la dirección origen en la tabla de enrutamiento no coincide con la interfaz de red por la que llegan. Lo cual tiene ventajas de seguridad porque previene el falseamiento de IP ("IP spoofing"). Necesitamos activarlo en cada net/ipv4/conf/*, puesto que en caso contrario la validación del origen no es totalmente funcional.

Aviso: No obstante, activar el filtrado inverso de rutas puede ser un problema si se utiliza el enrutamiento asimétrico (los paquetes que se envía a un host toman un camino diferente que los paquetes que se envían a ese host) o si opera en un host que no enruta y que tiene varias direcciones IP en distintas interfaces.

Listado de Código 2.8: Registre todos los paquetes falsificados (spoofed), enrutados en el origen y paquetes de redirección

# /bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

Registre todos los paquetes falsificados (spoofed), enrutados en el origen y paquetes de redirección.

Todos estos ajustes se perderán cuando la máquina se reinicie. Le sugiero que los añada a /etc/sysctl.conf el cual es automáticamente inicializado por el guión de inicio /etc/init.d/bootmisc.

La sintaxis para /etc/sysctl.conf es bastante simple. Elimine el /proc/sys/ de los paths anteriormente mencionados y sustituya / por .:

Listado de Código 2.9: Trasladar sysctl.conf

  (Uso manual de echo):
/bin/echo "0" > /proc/sys/net/ipv4/ip_forward

(Automático en sysctl.conf:)
net.ipv4.ip_forward = 0

9.c. Grsecurity

El parche de Grsecurity es un estándar en las fuentes del núcleo sys-kernel/hardened-sources pero está deshabilitado por defecto. Configure su núcleo como lo hace normalmente y luego configure las opciones de Grsecurity. Una explicación en profundidad de las opciones disponibles en Grsecurity (versión 1.9) está disponible en la página del proyecto Gentoo Hardened.

Las recientes hardened-sources proporcionan la versión 2.* de Grsecurity. Para más información de este parche de Grsecurity mejorado, por favor consulte la documentación disponible en Grsecurity home page.

9.d. Otros parches para el núcleo

Y probablemente haya bastantes más.


[ << ] [ < ] [ Inicio ] [ > ] [ >> ]


Imprimir

Ver completo

Página actualizada 17 de diciembre, 2013

Sumario: Asegure el núcleo.

Kim Nielsen
Autor

John P. Davis
Editor

Eric R. Stockbridge
Editor

Carl Anderson
Editor

Jorge Paulo
Editor

Sven Vermeulen
Editor

Benny Chuang
Editor

Sune Jeppesen
Editor

Tiemo Kieft
Editor

Zack Gilburd
Editor

Dan Margolis
Editor

Joshua Saddler
Editor

John Christian Stoddart
Traductor

José Luis Rivero
Traductor

Postel
Traductor

Carles Ferrer Peris
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.