jueves, 22 de enero de 2009

Seguridad de Red Inalambrica (I de III)

Proteger una red Wireless
Chema Alonso. Microsoft MVP Windows Security

Atacar redes Wireless se ha convertido desde hace tiempo en un deporte, una diversión o un hobby. En casi todos los medios de comunicación se han escrito artículos sobre como hackear redes Inalámbricas (yo mismo escribí un artículo sobre esto mismo hace casi 2 años) e incluso en los Microsoft Security Days del año 2005 y la gira de Seguridad Technet fuimos haciendo demostraciones de cómo se puede realizar de forma sencilla un ataque a una red Wireless.

Sin embargo, sigue siendo común que los ataques a redes Wireless tengan éxito. ¿Por qué sucede esto? Justificaciones como ¿Quién me va a atacar a mi? O Si yo no tengo nada importante, me da igual que usen mi red suelen ser reflejo de una falta de conocimiento del riesgo o un problema de conocimiento técnico de cómo se puede securizar una red inalámbrica. Vamos a hacer un rápido repaso a las tecnologías de seguridad en las redes Wireless y viendo los riesgos que tienen cada una de ellas para poder elegir una buena opción a la hora de proteger nuestra red.

La tecnología Wireless

Cualquier conexión que se realice sin cables se considera inalámbrica, pero nosotros nos vamos a centrar en las redes WLan, o redes de área local Wireless. Las redes inalámbricas pueden ser de dos tipos, Ad-hoc, que sería una red entre dos equipos iguales (red de pares) o de Infraestructura, que simularía una conexión de red basada en un Hub o concentrador de conexiones. Esto es importante porque mediatiza los tipos de ataques que se pueden realizar.

Los estándares que gobiernan estas tecnologías son los 802.11 y los primeros que llegaron al público fueron los 802.11b y 802.11g, estándares que permitían velocidades de transmisión desde 11 Mb/s hasta 108 Mb/s. Desde el año 2004 se trabaja en el estándar 802.11n que permitirá implementaciones de hasta 500 Mb/s y que se espera que esté publicado a finales de este año o principios del 2007. Sorprendentemente, al igual que sucedió con la espera del 802.11i (que hablaremos de él un poco más adelante) ya se ha adelantado el mercado y están disponibles a la venta dispositivos 802.11n que se han diseñado siguiendo la información en el borrador [1] del estándar que se aprobó. Para completar algunas de las “letras” que podemos encontrarnos en los estándares, existe la versión 802.11e, pensada para transmisión de video y audio en tiempo real mediante la utilización de protocolos de calidad de servicio.

Vale, hasta aquí información sobre “letras” que nos marcan algunas características de las conexiones, pero no de la seguridad. Sigamos adelante.

Definición de una WLan

Lo primero que debemos definir es el nombre de nuestra red WLan, y para ello unas breves definiciones para aclararnos:
  • BSS (Basic Service Set). Se refiere a un conjunto de máquinas que pertenecen a una misma red inalámbrica y que comparten un mismo Punto de Acceo a la red Wireless (AP)
  • BSSID (Basic Service Set Identifier): Es el identificador que se usa para referirse a un BSS. Tiene la estructura de dirección MAC y generalmente todos los fabricantes utilizan la dirección MAC del AP. Esto es importante, porque los atacantes descubren este valor para poder identificar los clientes de la red. Para ello, los atacantes buscan en las comunicaciones de red que máquinas se están conectando con ese AP.
  • ESS (Extended Service Set). Es un conjunto de BSS que forman una red, generalmente será una Wlan completa.
  • SSID (Service Set Identifier): Es el nombre de la Wlan, entendible para el usuario, el que nosotros configuramos: mi_wlan, escrufi o wlan1.
  • ESSID (Extender Set Service Identifier): Es el identificador del ESS, es transparente al usuario y lleva la información del SSID.
Al final, cuando configuramos una Wlan, lo que debemos hacer es seleccionar un nombre para nuestro SSID y un canal de radio para la frecuencia de comunicación.

Imagen: Configuración SSID, Canal y ESSID de una Wlan en el AP.

Protección MAC

Para evitar que se conecten clientes no deseados muchos AP ofrecen opciones para crear listas blancas de equipos que se pueden conectar en función de la dirección MAC de los clientes. Para ello en el AP se añaden las direcciones de las máquinas que queremos permitir y listo.

Esto no es una medida de seguridad robusta pues es bastante fácil de saltar para un atacante. Utilizando cualquier herramienta de análisis de redes wlan com Netstumbler nos descubren los SSID, el canal y frecuencia que está siendo utilizado y la MAC del AP.

Imagen: Netstumbler descubriendo SSIDs, canales, MACs AP, Cifrado, etc…

Una vez que se conocen las MACs de los AP conocer las Macs de los clientes autorizados es tan sencillo como abrir un Sniffer de red como AiroPeek y ver que direcciones se comunican con la MAC del AP. Esas serán las MACs autorizadas. Cuando ya se tiene la lista de las direcciones autorizadas, pues el atacante se configura una MAC válida con alguna de las muchas herramientas que hay para spoofear(suplantar) direcciones y ya se habrá saltado esa protección.

Imagen: Herramienta SMAC spoofeando la dirección MAC de nuestra Wlan con el valor 00-13-02-2E-8B-41 por el valor FA-BA-DA-FE-AF-EA

Conclusión: El filtrado de direcciones MAC no es una buena protección de seguridad, es muy sencillo para un atacante saltarse está protección.

Autenticación y Cifrado


Claves WEP 64 y 128 bits

El estándar 802.11 define un sistema para Autenticación y cifrado de las comunicaciones Wlan que se llama WEP (Wireless Equivalent Privacy).

WEP utiliza una palabra clave que va a ser utilizada para autenticarse en redes WEP cerradas y para cifrar los mensajes de la comunicación.

Para generar la clave, en muchos AP se pide una frase y luego a partir de ella se generan 5 claves distintas para garantizar el máximo azar en la elección de la misma, pero en otros simplemente se pide que se introduzca una con las restricciones de longitud que se configure y listo.

Para el cifrado de cada trama se añadirá una secuencia cambiante de bits, que se llama Vector de Inicialización (IV), para que no se utilice siempre la misma clave de cifrado y descifrado. Así, dos mensajes iguales no generarán el mismo resultado cifrado ya que la clave va cambiando.

Imagen: Configuración WEP con Frase de Paso y generación de claves

Como se puede ver en la imagen, en este caso tenemos un AP que permite generar 5 claves a partir de una Frase o directamente configurara una clave. Cuando tenemos 5 claves, hemos de marcar cual es la que vamos a utilizar porque WEP solo utiliza 1 clave para todo. Como se puede ver hemos seleccionado una opción de clave WEP de 64 bits, de los cuales 5 octetos (40 bits) son la clave y los 24 bits restantes serán el IV. Es decir, en una comunicación normal tendríamos 2 a la 24 claves distintas de cifrado.

Imagen: Configuración WEP de 128 bits

En el caso de WEP de 128 bits tendremos 13 octetos fijos (104 bytes) y 24 bits cambiantes (IV), es decir, tendremos el mismo número de claves pero de mayor longitud.

Proceso de Cifrado y Descifrado

Para entender el proceso de autenticación en redes Wlan con WEP es necesario explicar previamente el proceso de cifrado y descifrado ya que es utilizado durante el proceso de autenticación de un cliente.

El proceso de cifrado es el siguiente:

Paso 1: Se elige el IV (24 bits). El estándar no exige una formula concreta.
Paso 2: Se unen la clave Wep y el IV para generar una secuencia de 64 o 128 bits. Este valor se llama RC4 Keystream.
Paso 3: Se pasa esa secuencia por un algoritmo RC4 para generar un valor cifrado de esa clave en concreto.
Paso 4: Se genera un valor de integridad del mensaje a transmitir (ICV) para comprobar que el mensaje ha sido descifrado correctamente y se añade al final del mensaje.
Paso 5: Se hace un XOR entre el mensaje y el RC4 Keystream generando el mensaje cifrado.
Paso 6: Se añade al mensaje cifrado el IV utilizado para que el destinatario sea capaz de descifrar el mensaje.

El proceso de descifrado es el inverso:

Paso 1: Se lee el IV del mensaje recibido
Paso 2: Se pega el IV a la clave WEP
Paso 3: Se genera el RC4 Keystream
Paso 4: Se hace XOR entre el mensaje cifrado y el RC4 KeyStream y se obtiene el mensaje y el ICV.
Paso 5: Se comprueba el ICV para el mensaje obtenido.

Proceso de Autenticación

A la hora de que un cliente se conecte a una Wlan se debe autenticar. Esta autenticación puede ser abierta, es decir, que no hay ninguna medida de exigencia para que pueda asociarse a la red, o cerrada, por la que se va a producir un proceso de reconocimiento de un cliente válido.

Así, en una autenticación WEP se usa una idea muy sencilla. Si tienes la clave WEP serás capaz de devolverme cifrado lo que te envíe. Así, el cliente pide conectarse y el AP genera una secuencia de 128 octetos que le envía al cliente cifrado. El cilente descifra esa cadena de 128 octetos y se la devuelve en otra trama cifrada con otro IV. Para que la autenticación sea mutua se repite el proceso de forma inversa, es decir, enviando el AP la petición de conexión al cliente y repitiéndose el envío de la cadena de 128 octetos cifrados del cliente al AP.

Seguridad WEP

¿Es seguro utilizar WEP entonces? Pues la verdad es que no. Hace ya años que se demostró que se podía romper y hoy en día romper un WEP es bastante trivial y en cuestión de minutos se consigue averiguar la clave WEP. El atacante solo tiene que capturar suficientes tramas cifradas con el mismo IV; la clave WEP va en todos los mensajes, así qué, si se consiguen suficientes mensajes cifrados con el mismo IV se puede hacer una interpolación matemática y en pocos segundos se consigue averiguar la clave WEP. Para conseguir suficientes mensajes cifrados con el mismo IV el atacante puede simplemente esperar o generar muchos mensajes repetidos mediante una herramienta de inyección de tráfico. Hoy en día, para los atacantes es muy sencillo romper el WEP porque existen herramientas gratuitas suficientemente sencillas como para obviar el proceso que realizan para romper el WEP.

Imagen: Captura de Tramas de con airodump

Pero incluso aquí en España, donde hay un grupo de investigación sobre el tema de seguridad Wireless (http://hwagm.elhacker.net/) se han desarrollado herramientas con GUI para que sean más sencillitas.

Imagen: Winairodump. GUI hecho para generar capturas de tramas Wireless

Una vez que han generado un fichero de capturas suficiente se pasa por el crackeador que va a devolver la clave WEP que está siendo utilizada.

Imagen: Aircrack. Coge el fichero generado por Airdump y devuelve la clave WEP

WLanDecrypter


Una especificación concreta de las redes WEP se ha producido en España. Una compañía de televisión por Internet instala en sus clientes siempre redes Wireless a las que configura, como SSID un valor del tipo: WLAN_XX.

Estas redes utilizan un sistema de claves WEP sencillo que ha sido descubierto. La clave esta compuesta con la primera letra de la marca del router utilizado en mayúsculas (Comtrend, Zyxel, Xavi) y la MAC de la interfaz WAN del router. Además el nombre de la red es WLAN_XX donde XX son los dos últimos dígitos de la dirección MAC de la interfaz WAN. Como cada router tiene una asociación entre el fabricante de la interfaz wireless y de la interfaz WAN, puesto que se hacen en serie y con las mismas piezas, si sabemos la MAC de la interfaz wireless también sabremos los 3 primeros pares de dígitos hexadecimales de la MAC WAN (que corresponden al fabricante).

En definitiva, con una herramienta sencilla y una captura de 1 mensaje de red en pocos segundos se rompe la clave WEP de este tipo de redes. Hasta que las empresas cambien su política.

Imagen: WlanDecrypter, descargable de Rusoblanco

Direccionamiento de Red

Para un atacante, encontrar el direccionamiento de red que tiene que utilizar en una wlan en la que se ha colado es también un paso trivial:

- La red cuenta con servidor DHCP: el equipo del atacante será configurado automáticamente y no tendrá que hacer nada. En el caso de que haya suplantado una dirección MAC de un cliente, el atacante no podrá utilizar esta dirección IP porque ya está siendo utilizada por otro (ya que el servidor DHCP asigna direcciones en función de direcciones MAC), pero le servirá para ver el rango de direccionamiento que puede utilizar y la puerta de enlace.

- La red con cuenta con DHCP: El cliente se conecta con una dirección IP no valida y realiza capturas de la red con un sniffer (Wireshark, Ethereal, AiroPeek, …). En una captura con tráfico verá rápidamente cuales son las direcciones IP que se están utilizando. Para averiguar la puerta de enlace solo tendrá que buscar una comunicación entre un equipo interno con una IP externa. Ese mensaje, obligatoriamente ha sido enviado a la puerta de enlace, luego la MAC destino de ese mensaje será la MAC de la puerta de enlace. Basta utilizar los comandos ARP para averiguar la IP asociada a esa MAC.

802.11i, WPA y WPA2

Visto lo visto, todo el mundo sabía que había que hacer algo con la seguridad en las redes Wireless. La única solución que se planteaba con este panorama consistía en realizar conexiones VPNs desde el cliente que se quiere conectar a una Wlan hasta un servidor en la red para conseguir cifrar las conexiones, es decir, tratar la Wlan como una red insegura, como Internet, y realizar un cifrado y una autenticación por encima con los mecanismos que nos ofrecen los servidores de VPN.

El IEEE 802.11 anunció una nueva versión segura para Wlan que se llamaría 802.11i y cambiaría los protocolos de seguridad de las Wlans. Como el proceso de aprobación de un estándar era largo y el mercado necesitaba una solución rápida, un grupo de empresas, reunidas bajo la organización Wi-Fi Alliance crearon WPA (Wireless Protected Access) como una implementación práctica de lo que sería el próximo estándar 802.11i.

No hay comentarios: