Los exploits son casi tan prolíficos como las actualizaciones del núcleo. Bueno, es cierto, quizás no tan comunes. Pero, las vulnerabilidades son abundantes para cualquier SO sin importar su plataforma, y Linux no es la excepción. El Proyecto de Enrutador Linux (y los enrutadores basados en Linux en general) tienen algunos tópicos de seguridad únicos que Cisco y otros enrutadores proppietarios no tiene, por la naturaleza del hardware de PC y el núcleo de Linux. Por ejemplo, el exceso de buffer es común en Linux, mientras que los enrutadores de hardware son casi inmunes a ellos. El administrador de LRP debe tener cuidado de reconocer y direccionar esas vulnerabilidades.
Entonces, por un lado tenemos diferentes enrutadores para todo: ISDN, Ethernet, control de frame T1, xDSL, PPP, ... , incluos un cablemódem/portmapping router/Ethernet hub con interface HTML, cada dispositivo con su aplicación de enrutamiento específica. Y el código fuente y hardware es confidencial y propietario.
Por el otro lado, tenemos un porcesador de propósito general x86 que puede hacer cualquier cosa con el programa adecuado, y el Proyecto de Enrutador Linux es la aplicación perfecta. Es crear una alternativa abierta a los enrutadores propietarios de la misma manera que los esfuerzos iniciales hicieron a Linux una alternativa a los Unix propietarios. El LRP es en relidad un núcleo Linux, delineado para facilitar el enrutamiento en todas sus formas, y adaptable a casi cualquier situación de red:
Tradicionalmente, los cortafuegos y enrutadores son entidades discretas con una caja como enrutador y otra como filtro cortafuegos, otra un servidor proxy o lo que tengas. Cada servicio tiene si hardware propio único, especialmente diseñado para la función que realiza. En tiempos recientes el hardware para éstos dispositivos comenzó a unificarse, de la misma manera que ATA IDE viene dentro de la placa madre y es ya parte de ella, aunque años atrás era una placa ISA adicional.
Eventualmente éstos enrutadores multipropósito introducirá una nueva disciplina de seguridad, y seguridad puede significar millones de cosas diferentes. Está la seguridad física, la seguridad del corazón (núcleo, interno), seguridad (enrutamiento) de la red. Si la industria evita el hardware propietario, puede repensar su seguridad. Esto es parte del plan:
Las vulnerabilidades entre el núcleo Linux y los enrutadores, difieren. CERT data reporta que los ataques más comunes son las denegaciones de servicios (DoS) y exploración. Los ataques de DoS son fáciles de hacer y dificultoso de derrotar. Los excesos de buffer (poco comunes) y ataques de DoS (comunes) son posibles en ambos mundos de igual manera. La exploración de puertos puede venir de afuera o adentro. La exploración, aunque no es un ataque per se, pudo fácilmente ser interpretado en la corte como actividad de inteligencia de redes o incluso un DoS, dependiendo de la intensidad. Según mi entender, aún tenemos que ver los precedentes.
Solucionamos ambos problemas en el núcleo con parches de seguridad y nmap. De las distribuciones LRP principales, Los núcleos Oxygen incluyen el parche Openwall, de hecho Oxygen se actualiza continuamente. Si ves una vulnerabilidad, casi seguro está en el último Oxygen. De acuerdo a David Douthitt, el cerebro detrás de Oxygen, el núcleo en sí, protege "contra IP spoofing, paquetes de dirección inusuales (marcianos), y [rebotes] ICMP redirigidos y requerimientos de eco ICMP." Incluso así, el filtrado tradicional (seguridad de redes, debajo) debería incluir éstas reglas también.
nmap: Yo lo llamo, el sucesor de SATAN. Es el hito de las herramientas de seguridad. nmap explora cualquier conjunto de puertos TCP o UDP en cualquier conjunto de direcciones IP para verificar y encontrar vulnerabilidades en tu red. nmap revela los servicios innecesarios corriendo en la máquina LRP. Existen servicios innecesarios corriendo en algunas distribuciones fuera de la máquina (p.ej., discard, daytime, time). Una visita rápida a SecurityFocus.com o Rootshell.com te dirá como hacerles exploit.
CERT no trata acerca de otras vulnerabilidades comunes desde los propios usuarios en tu red tales como seguridades de sistema de archivo o sniffing. Lo relacionado al sistema de archivos, como fdisk, mke2fs o fstab no entra en discusión aquí (aunque sugiero que los desarrolladores de LRP incluyan el comando chattr en futuras versiones, que permitan ingresos a no-root) y sniffing no nos importa si sólo nos conectamos por la consola. --Oh! está sin cabeza! Debemos preocuparnos por el sniffing!
El sniffing de Ethernet es peligroso. En muchos casos es posible husmear otras redes lógicas en segmentos Ethernet de cable módem compartido. Incluso la conexión PPP dinámica de tu vecino desde otra conexión. Los virus y exploradores y todos los 11000 "bichos UNICODE" están tan descontrolados que podemos esperar que el husmeado se convierta en algo más común y difundido, quizá una categoría para el CERT si ya no lo es. Es interesante como la falta de direcciones IP periféricas facilita los ataques...
Encriptación y autenticación (ssh, ssl, smime, PGP) eluden el husmeado. Pero cualquier encriptación puede ser descubierta, lo mejor que podemos esperar es que nuestros datos se vuelvan obsoletos antes que el método de encriptado. Protejamos los datos de la mejor manera posible, tal como sesiones de telnet. Qué importa si alguien lo decodifica de aquí a un año? Muchos enrutadores descansan en la autenticación de contraseñas, la que puede ser sujeto de brutales ataques forzados o peor, dependiendo de la interfase. Aquí gana LPR. Soporta ssh.
Esquema de un enrutador delimitador para una infraestructura de negocios típica:
La respuesta corta es: "Bloquear todo". Permite acceso sólo a los puertos donde corran servicios, como el 80 para el servidor Web, 22 para ssh. Hacer wrap y chroot siempre que sea posible (p.ej. BIND). Correr X en máquinas accesibles por Internet tiene un gran no-no.
De vuelta al enrutado. El enrutado no es una tarea fácil para el novato, aunque tengamos interfases HTML para enrutadores Circuit City y tal. También tenemos Windows(tm). Para los otros tenemos LRP. El menú basado en texto del LRP presenta familiares /etc/conf.files, simple para usuarios Linux (UNIX, Freenix) pero intimidante como una línea de comandos críptica para cualquier otro. Otros enrutadores de un sólo disco, se aproximan a tener las mismas desventajas de aprendizaje.Sin embargo, LRP otorga el Tao del enrutado misterioso mas cerca a los excéntricos que otros enrutadores: Los comandos son familiares. A diferencia de la línea de comandos Cisco 'conf term', las configuraciones y comandos LRP no envejecen y permanecen intactas después de un año. Para los no excéntricos, el cambio entre un enrutador de mil dólares y LRP es plata versus tiempo.
Así que puedes comprar un enrutador especializado, o puedes estrujar tu hardware de tubos al vacío y agregarle características excepcionales y compilar módulos dentro del núcleo del LRP y personalizarlo. El cambio es flexibilidad versus seguridad. El LRP reemplaza la RAM no volátil por un disco flexible y hardware embebido con un núcleo: Sólo conserva desafíos especiales de seguridad en mente.
Mark obtuvo un BA en Escriture Técnica y uno menor en Ciencias de la computación, Magna cum Laude en la Universidad de Maine. En 1994 llevó el Internet comercial al Estado de Maine fundando la antigua ISP Maine. Deletrea 'grey' con una 'e', nos usa reloj, odia los hongos, lee libros y colecciona minerales.
Mark Fevola
Copyright © 2001, Mark Fevola.
Licencia de Copias http://www.linuxgazette.com/copying.html
Publicado en Edición Número 67 de Gaceta de Linux, Junio de 2001