jueves, 15 de mayo de 2008

TCP-IP y seguridad de redes

El TPC-IP se creó en una época y en una situación donde la seguridad no era algo que concerniera demasiado. Inicialmente, ‘Internet’ (entonces llamada Arpanet), consistía en unos pocos hosts, todo eran sitios académicos, grandes empresas o gobiernos. Todo el mundo se conocía, y acceder a Internet era un asunto serio. La suite de protocolos TCP-IP es bastante robusta (todavía no ha fallado estrepitosamente), pero desafortunadamente no está prevista para la seguridad (p. ej., autentificación, verificación, cifrado, etc.). Hacer spoofing de paquetes, interceptar paquetes, leer la carga de los datos, y demás, es algo bastante fácil en el Internet de hoy en día. Los ataques más comunes son los ataques de negación de servicio, ya que son los más fáciles de ejecutar y los más difíciles de impedir, seguidos del sniffing de paquetes, escaneo de puertos y otras actividades relacionadas.

Los nombres de hosts no apuntan siempre a la dirección IP correcta, y las direcciones IP’s no siempre se pueden resolver al nombre de host adecuado. Si es posible, no utilices autentificación basada en nombres de hosts. Puesto que el envenenamiento de cachés DNS es algo relativamente sencillo, confiar la autentificación en una dirección IP reduce el problema al spoofing, lo cual es algo más seguro, pero de ningún modo completamente seguro. No existen mecanismos extendidos para verificar quién envió los datos y quién los está recibiendo, excepto mediante el uso de sesiones o cifrado a nivel IP (sin embargo están empezando a cobrar auge el IPSec/IPv6 y otras tecnologías VPN).

Se puede empezar por denegar los datos entrantes que dicen originarse desde tu red(es), puesto que estos datos son evidentemente falsos. Y para evitar que tus usuarios, u otros que hayan irrumpido en tu red puedan lanzar ataques falsificados, se deberían bloquear todos los datos salientes que no provengan de tu dirección IP. Es algo relativamente fácil y sencillo de gestionar, pero la inmensa mayoría de redes no lo hacen (me pasé casi un año dando la coña a mi PSI antes de que empezaran a hacerlo). Si todo en Internet tuviera filtros salientes (es decir, restringir todo el tráfico saliente a aquel que se originase desde las direcciones IP internas), los ataques mediante spoofing serían imposibles, y a la vez sería mucho más fácil tracear el origen de los atacantes. También se deberían bloquear las redes reservadas (127.*, 10.*, etc.). Me he dado cuenta de que muchos ataques provenientes de Internet lo hacen con IPs etiquetadas con esos rangos de direcciones. Si se utiliza traducción de direcciones de red (como IPMASQ) y no se tiene correctamente instalado el cortafuegos, se puede ser atacado con facilidad, o ser utilizado para lanzar un ataque a terceros.

Si tienes que comunicarte de forma segura con otra gente, deberías considerar el uso de la tecnología VPN. La única tecnología disponible que goza de una amplia aceptación y está destinada a convertirse en standard (en IPv6) es IPSec, un standard abierto soportado por muchos vendedores y la mayoría de los vendedores tienen implementaciones funcionales nativas para sus SO (aunque algunas están limitadas para cumplir con las leyes de exportación de los EE.UU.). Por favor, lee el Apéndice B o la sección Cifrado de Servicios y Datos para más detalles.



IPSec

El IPSec tiene su propia sección∞. Creo que es el futuro de la tecnología VPN (es el standard más comúnmente aceptado en la actualidad, y una parte integral de IPv6).



IPv6

IPv6 no proporciona seguridad per se, pero tiene conectores integrados para futuras mejoras de seguridad, soporte para IPSec, etc. Si se utiliza en una red, por supuesto que haría más difícil la vida de los atacantes, puesto que el uso de IPv6 todavía no está muy extendido. Si quieres aprender más, visita http://www.bieringer.de/linux/IPv6/∞. Actualmente, Linux soporta IPv6 casi completamente (uno de los pocos SO’s que lo hacen).



Programas de ataque TCP-IP

Existen una variedad de programas para causar desorganización en TCP-IP (la mayoría son ataques de Negación de Servicio) sin embargo sólo unos pocos pueden ser útiles para administradores.

Proyecto HUNT

El Proyecto HUNT es un conjunto de herramientas para manipular conexiones TCP-IP (generalmente en una LAN Ethernet), como cerrar conexiones, espiarlas y otro tipo de cosas "desagradables". Incluye también una variedad de ataques basados en ARP y otro tipo de maléficas fuentes de diversión. Se puede conseguir en: http://www.cri.cz/kra/index.html∞

No hay comentarios: