Para esta colaboración, pensaba escribir una guía para crear islas seguras mediante cifrado de tráfico dentro de las redes empresariales, pero en el periodo en que redactaba este documento mi equipo de respuesta a incidentes respondió a un caso de propagación de un virus que no era detectado por ninguno de los antivirus utilizados al tratar de identificarlo.
Sin saber nada sobre este nuevo virus al momento de responder al incidente, debíamos pensar primero en cómo prevenir su propagación vía red, sobre todo para evitar la contaminación de los servidores de la compañía. La primer sugerencia fue la de colocarlos en una zona donde sólo se permitiera el paso de tráfico cifrado bajo peticiones legítimas sobre el servicio solicitado.
Los beneficios que se pueden obtener al implementar IPSec en una red corporativa son diversos, y cada uno puede cubrir varios puntos en la estrategia de seguridad de la organización, como las políticas de control de acceso, las cuales no se refieren únicamente a la forma en que un usuario se autentifica en un recurso, puesto que si la organización debe cumplir altos estándares de confidencialidad entonces también puede usarse para cumplir con los requisitos impuestos por el estándar de procesamiento de información federal (FIPS, por sus siglas en inglés), que aun tratándose de un estándar norteamericano, es empleado por muchas empresas como una guía para identificar los puntos clave a cubrir en su estrategia de seguridad.
EL QUE AUTENTIFICA. Los paquetes que viajan bajo el protocolo IP no tienen seguridad alguna implícita. Es relativamente sencillo crearlos arbitrariamente para engañar a un dispositivo o servicio, modificar el contenido del paquete IP, reenviar paquetes viejos de una sesión de comunicación anterior e inspeccionar el contenido del paquete de una sesión activa (Man in the Middle). Por eso no existe garantía alguna de que los paquetes o secuencia de paquetes que recibe un equipo o servicio hayan sido enviados por quien dicen haberlo sido, que contengan la información original supuesta o que nadie más haya estado monitoreando dicha comunicación mientras el paquete viajaba desde su punto original hasta el destino esperado.
IPSec funciona como un método confiable para proteger los paquetes IP proveyendo los elementos para autentificar el origen de la transmisión, verificación de la integridad de la información enviada y confidencialidad del contenido de dicha comunicación.
IPSec ofrece un método para especificar qué tipo de tráfico va a proteger, cómo será su protección y a quién se le va a enviar dicho tráfico. Puede también proteger los paquetes enviados entre workstations, entre dispositivos de red (como pueden ser routers o firewalls) o entre éstos y aquéllas.
Gracias al diseño de IPSec, y como al final estos paquetes son también simples paquetes IP pero con su contenido cifrado, es posible crear un conjunto de servicios con mejoras de seguridad para el intercambio de información proporcionando autentificación punto a punto (mediante IPSec) entre los equipos involucrados. Dicha comunicación pude viajar también dentro de otro túnel que a su vez esté utilizando IPSec, tal vez proporcionado por dos firewalls colocados en puntos distintos; es decir, un túnel seguro dentro de otro túnel.
IPSec puede crear un túnel seguro entre dos redes diferentes, puede ser empleado como medio de comunicación y verificación de integridad para la transferencia segura de datos y puede ser usado también en cualquier sistema operativo moderno. Asimismo, gracias a su diseño es posible extender sus beneficios a proteger un segmento de la red, a evitar la propagación de gusanos e incluso a asegurar el tráfico hacia y desde los servicios proporcionados por los servidores de la empresa.
El uso de IPSec para evitar la propagación de un gusano vía red aplica a entornos Windows, tanto servidores como estaciones de trabajo, dado que es el medio perfecto para este tipo de código malicioso. En el futuro explicaré otros esquemas para su uso y, de ser posible, daré a conocer la cronología sobre cómo se llevó a cabo la detección, contención, identificación y eliminación del virus que disparó el incidente que me llevó a escribir este artículo.
SIEMPRE SE PUEDE. La esperanza de que la solución de antivirus de la empresa responda ante un usuario lo suficientemente necio como para dar doble clic una y otra vez a un archivo llamado “Britney_Spears_nude_in_her_bedroom.exe” es lo único que nos mantiene un poco tranquilos cuando somos responsables de la operación de una red, pero no hay que olvidar que un código malicioso (sea éste un exploit, gusano, virus o rootkit) se puede detener desde el principio (esto es, evitar su instalación y ejecución, así como el hecho de que un sistema comprometido tenga el medio de comunicarse con otros no infectados).
Ahora bien, ¿qué hacer en caso de que el usuario logre su cometido y el antivirus no encuentre a la amenaza latente? Cuando esto sucede, sólo queda evitar la comunicación del código malicioso y detener así su propagación. IPSec es útil, entonces, para delimitar qué tipo de tráfico puede aceptar un equipo, y qué tipos de tráfico puede generar un equipo para transmitir datos. Es posible especificar reglas que filtren mediante la acción de permitir o bloquear cierto tipo de tráfico; para ello es necesario un servidor y estaciones de trabajo con sistema operativo Windows 2000 en adelante –se puede realizar sin contar con infraestructura de Active Directory, pero es más rápido y eficiente si se tiene–.
Cabe mencionar que Windows 2000 no cuenta con un firewall a nivel nodo integrado, como lo hace Windows XP, 2003 o Vista, así que hay que considerar reglas que permitan y bloqueen el tráfico en forma bidireccional, tanto entrante como saliente. En el caso de las versiones con firewall, el bloqueo de tráfico entrante se realiza de forma predeterminada y sólo hay que especificar las reglas del tráfico que sale del equipo hacia la red.
El gusano más común para ejemplificar lo anterior es “SQL Slammer”, el cual busca servidores Microsoft SQL o Microsoft SQL Desktop Edition (Express Edition). Si se cuenta con Active Directory, lo primero que hay que hacer es distribuir una política IPSec a todos los equipos registrados en el dominio especificando que bloqueen todo tráfico que busque establecer una conexión UDP por el puerto 1434.
Con o sin Active Directory, es necesario especificar varios puntos en la consola de Group Policy: el filtro, desde cualquier dirección y cualquier puerto hacia la dirección de la máquina local al puerto 1434 protocolo UDP; la acción, que según nuestro ejemplo es “no permitir” o “block”, y la regla, que se visualiza de la siguiente manera: “all interfaces; no tunnel; any authentication method” (ver recuadro “Especificación de Reglas”).
Hasta el momento sólo representé con un ejemplo sencillo y común, como detener la propagación de un gusano o cualquier otro tipo de código malicioso. Si es necesaria mayor seguridad o si la compañía se estuviera enfrentando a una amenaza desconocida de comportamiento incierto, entonces se puede ser creativo y crear reglas que bloqueen absolutamente todo para luego añadir otras que permitan tráfico totalmente libre de sospecha. Esto mismo se puede hacer de forma más granular, desde y hacia puntos específicos en la red.
Ahora bien, para implementar este tipo de solución como medida preventiva dentro del día a día de la organización, es necesario evaluar el tráfico cotidiano e identificarlo, así como diseñar, planear y evaluar el impacto que tendrán las políticas dentro de la red, ya que existe tráfico de infraestructura del que nunca se está consciente; por ejemplo, ARP e ICMP, que si se bloquea en ciertos segmentos, puede hacer que los distintos equipos pierdan comunicación, e incluso podria ocasionar que la operación adecuada de la red se detenga.
A futuro cubriré los enfoques restantes sobre el uso de IPSec para asegurar una red, para proteger servicios proporcionados por servidores y para crear una isla segura de servidores dentro de una red organizacional para aislarlos de las amenazas con las que hay que lidiar a diario, incluso si se cuenta con todos los niveles de protección perimetral y los mejores antivirus del mercado.
Para contactar al autor: igarcia @ 2hmexico.com.mx
| ESPECIFICACIÓN DE REGLAS |
Si se visualiza la consola de Group Policy Editor desde Administrative Tools y navegamos por el árbol desde Local Computer Policy, después hacia Computer Configuration, posteriormente a Windows Settings, Security Settings, veremos al final de la lista las políticas de seguridad IP (IP Security Policies), y al lado derecho lo que interesa para el caso de bloquear las conexiones entrantes hacia el equipo la sección Client (Respond Only). No es difícil crear reglas gracias al Wizard que viene integrado, pero es necesario comprender lo que se necesita hacer, y para ello hay que saber qué se espera obtener.
Intentaré publicar en mi sitio Web tan rápido como me sea posible una guía gráfica para realizar estos pasos. Por fortuna, también se puede llevar a cabo este tipo de configuración mediante comandos, que en lo personal es mi medio favorito. Para ello son necesarias algunas herramientas que pueden descargarse desde el sitio de Microsoft, si no es que tal vez ya estén instaladas en algunos equipos. Estas herramientas son ipsecpol.exe (para Windows 2000), ipseccmd.exe (para Windows XP) y netsh ipsec (para Windows 2003); en el último caso, el comando en realidad es netsh y el subgrupo de instrucciones es ipsec.
Se podría escribir todo un artículo sobre las funciones de netsh. Para llevar a cabo el mismo ejemplo mencionado en el artículo (SQL Slammer) en su forma más genérica, es decir, para Windows 2000, se podría realizar con tan solo ejecutar el comando ipsecpol -w REG -p "Filtro Bloquear UDP 1434" -r "Regla Bloquear Trafico Entrante UDP 1434" -f *=0:1434:UDP -n BLOCK –x
Para Windows XP sólo hay que reemplazar “ipsecpol” por “ipseccmd”. La sintaxis es la misma, la política se llama “Filtro Bloquear UDP 1434” y contiene una única regla llamada “Regla Bloquear Trafico Entrante UDP 1434”. Esta política es estática, es decir que permanecerá activa aún cuando el equipo sea apagado o reiniciado una y otra vez, sólo que hay que reiniciar el servicio IPSec Policy Agent desde Services en Administrative Tools para que la política comience a funcionar.
Para el caso de Windows 2000 las políticas deben ser bidireccionales. De cualquier forma, si se está respondiendo a un posible “outbreak” de SQL Slammer en la red, es necesario impedir también que las PC y servidores intenten iniciar sesiones de tráfico desde ellos hacia la red buscando infectar otros equipos. En este caso, el comando para generar la regla para detener todo tráfico saliente desde un nodo hacia la red es el siguiente: ipsecpol -w REG -p "Filtro de Trafico Saliente SQL" -r "Regla de Trafico Saliente SQL" -f 0=*:1434:UDP -n BLOCK. De nuevo, para Windows XP será necesario reemplazar “ipsecpol” por “ipseccmd”.
Todo lo anterior, es para una política pensada como permanente (esto es, estática), pero también es posible crear políticas dinámicas, las cuales funcionan de la misma forma pero con la diferencia de que si se reinicia el servicio IP Security Policy o el sistema, éstas desaparecen. La política estática anterior puede ser representada como dinámica con los siguientes comandos, en los cuales los corchetes indican que este tipo de tráfico debe ser bloqueado:
ipsecpol –f[*=0:1434:UDP]
ipsecpol –f[0=*:1434:UDP] |
| DETALLES SOBRE IPSEC |
- Los servicios de seguridad que provee IPSec requieren de llaves compartidas para realizar la autenticación y/o encripción de los datos. Para intercambiar y administrar estas llaves se usa el protocolo Internet Key Exchange (IKE) y los algoritmos utilizados en las operaciones de intercambio son el SHA1, TripleDES y AES.
- Hoy en día, el uso más común que se le da a IPSec está dentro de los túneles de VPN que se manejan para conectar una red a otra, o bien una estación de trabajo a una red empresarial a través de Internet.
- IPSec puede proteger las capas 3, 4 y 5 del modelo TCP/IP (distinto del modelo OSI):
- 3 Internet Layer
IP (IPv4, IPv6), OSPF, ARP, RIP, ICMP, IPSec
- 4 Transport Layer
TCP, UDP, RTP
- 5 Application Layer
DNS, DHCP, HTTP, SMTP, POP3, IMAP
|
|