jueves, septiembre 01, 2011

¿Es importante la validación del BSSID?

Tras publicar el post de que Mac OS X Lion no valida el BSSID de las redes WiFi a las que se conecta, al igual que los dispositivos iPhone, iPad e iPod Touch con iOS, y están guardadas como preferidas, tuvimos un interesante debate en el SOCtano sobre si esto es importante o no, que voy a tratar de resumir aquí.

A grandes rasgos, una red WiFi se identifica por su nombre SSID y por una dirección física tipo MAC que se llama BSSID. Cuando una red está formada por un único punto de acceso, en el BSSID va la dirección MAC del AP, mientras que si es una red formada por muchos AP, se usa un ESSID que los identifica a todos juntos, generándose una MAC virtual (que puede ser aleatoria, una derivación de una MAC o directamente la MAC del primer AP que crea la red WiFi) que se introduce en el BSSID.

Cuando un AP anuncia su existencia por medio de las beacom frames, publica su SSID y su BSSID. El cliente podrá verla y conectarse a ella. Si esta red está en la lista de redes preferidas, entonces se conectará automáticamente y ahí es donde difieren Windows 7 y Mac OS X Lion (e iOS). Mientras que Windows 7 comprueba el SSID y el BSSID, Mac OS X Lion (e iOS) solo comprueban el nombre.

¿Es importante esto?

La realidad es que un atacante podría clonar una red completamente y la comprobación del BSSID no valdría para nada. Es decir, supongamos que yo sé que mi víctima se ha conectado a la red Public_WiFi de una cafetería. Me voy a esa cafetería, copio el BSSID de esa red y el SSID y me hago una rogue WiFi clonadita. Esto haría que la comprobación del BSSID no fuera útil.

Para hacer ese ataque, es necesario hacer un ataque dirigido y preparado, haber estado físicamente cerca de la red WiFi a la que se ha conectado ese usuario y tener la trampa preparada para él, lo que sería un APT en toda regla.

Por el contrario, si no hay validación BSSID, un atacante cualquiera, en un tren, un aeropuerto, una cafetería, o cualquier sitio con gente y dispositivos móviles, podría generar redes WiFi con SSIDs comunes y configuraciones habituales, y todos los equipos que no validen BSSID las darían por buenas. Es más, si el equipo está en buscando las redes, estaría enviando la información de la red WiFi que busca, y el atacante se la podría servir en bandeja.

Así, si yo voy con mi equipo con Windows 7 de Madrid a Las Vegas, a participar en la Defcon, mi Windows 7 no se conectará automáticamente a ninguna WiFi de la que no reconozca el BSSID, evitando lo ataques de redes comunes ya que, salvo que el hacker haya visitado las mismas WiFis que yo y copiado todos los BSSID, no sabe que BSSIDs tengo reconocidos en mi computadora. Mientras que si es un iPhone, un iPad, un iPod Touch o un Mac OS X le basta con acertar con el SSID y la configuración de la red.

Es decir, no validar el BSSID hace que las posibilidades de que te cuelen una rogue WiFI multiplen exponencialmente. En Mac OS X Lion, por suerte, se puede ver la lista de redes conocidas, así que evita tener redes abiertas sin password en ellas... para iOS, como ya vimos, conocer la lista de redes preferidas de iPhone o iPad es más difícil.

Saludos Malignos!

7 comentarios:

SPECTRAdo dijo...

Pero eso solo funcionaría si ademas la WiFi fuese abierta o usase además una contraseña x defecto no?

Xq si no has estado cerca del AP no sabrás ni su BSSID ni habrás podido romper su cifrado y sacar la contraseña.

Mr.Q dijo...

Bueno ahi le has dado Spectrado, pero ya que te pones, las dos opciones son relativamente sencillas de implementar, poner la red en abierto para, asi los dispositivos por defecto se conectaran a ella de forma automatica y sin siquiera advertir al usuario, ZAS.
El segundo caso en que por ejemplo vayas al bar de al lado de la oficina donde trabaja la victima, enchufas cualquier programa de crackeo de WiFi con Web, por poner un ejemplo, recojes todos los passw, y ahora ya puedes clonar el atake para cualquier usuario habitual de esas wifis como los usuarios de las oficinas cercanas.

Pero para mi el problema del BSSID es serio, pues con el iphone por ejemplo, y Wifi2me he recojido algunas que otras wifis poco seguras, y advertido que los nombres WLAN_XX o WLAN_XXXX son relativamente limitados y por lo tanto se repiten, WLAN_00 se me ha repetido 2 veces ya, y iOS se lia a la hora de guardar el pass y la configuracion para ambas de forma distinta, quizá si se hiciera por BSSID no tendria ese problema, ni deberia eliminar la red cada vez...

kabracity dijo...

Ayer me acordé de este tema, al ver que mi Ubuntu intentaba conectarse a una red con el mismo SSID que otra que utilizo normalmente, así que me da que no es sólo cosa de Apple.

Anónimo dijo...

Una duda... No comprueba el BSSID, xo si la configuración es distinta, la original con pass y la fake sin pass, tampoco se da cuenta q no es "su" red???

Maligno dijo...

@anónimo, sí lo nota, si hay cambio de configuración en la red no se conecta... Tiene que ser clonada.

Saludos!

QaSaR dijo...

mmmh, no se me habia ocurrido, que si la original tiene pass, pero la "fake" no le pones... mmmh... crees que lo nota? Que te advierte antes de conectar? Probare en ksa, deshabilitare el cifrado por un rato, y reconectare la WiFi del iphone a ver si se reconecta directamente o pregunta antes... no se me habia ocurrido... =(

Lo que ya ha desaparecido es que por defecto se conecte a las wifis sin seguridad o la posibilidad de activar que se conecte a wifis sin pass de forma automatica?

Anónimo dijo...

La frase:¿Es importante la validación del BSSID?
¿la dijo un usuario de mac?, porque cada vez que comento algun fallo a algunos amigos maqueros siempre me sueltan el ¿tan importante es ....? o ¿tanto te molesta....?

Entradas populares