domingo, 21 de noviembre de 2010

FireSheep: Yo..Soy Tú

¿Es fácil que yo sea tú? En el mundo online, es posible. Existen técnicas como por ejemplo el clásico robo de usuario y contraseña, o bien, la llamada “session hijacking”, entre otras. En la primera, robo tus credenciales de acceso como por ejemplo las de Facebook (tal vez usando un troyano) y entro tal cual fueras tú. En la segunda, espero que establezcas sesión con Facebook usando tus credenciales y posteriormente robo (secuestro) tu sesión ya establecida (siempre y cuando el servicio en cuestión no mantenga dicha sesión con SSL).

Para yo convertirme en ti en el mundo online, sí debo de picotear varios comandos aquí y allá, tal vez usar Linux y ponerme mis lentes de geek para “comandear”, es decir, teclear comandos en un shell. Todo esto puede sonar complicado para los usuarios “promedio”, pero eso se acabó.

La aparición de FireSheep lo cambió todo; es un complemento (addon) de FireFox. Todos los que hemos usado Firefox hemos utilizado algún addon (de hecho esa es una de las razones para usar este navegador: su amplia gama de addons) como por ejemplo: FastestFox, FireFTP, FireTorrent, YouTube Download o Webmail Notifier por mencionar sólo algunos.

¿Qué hace FireSheep? Pues bien, es un secuestrador de sesiones. Cuando uno entra a LiveMail, Twitter o FaceBook, enviamos nuestras credenciales y se verifica que sean las correctas; de ser así, el servidor manda a nuestro navegador una “cookie” la cual es usada en subsecuentes peticiones para identificar nuestra sesión previamente establecida. De esta manera el servidor de LiveMail sabe que mi navegador es quien al inicio se identificó como “Juanito Smith”.

Varios sitios sólo usan SSL (https) para que uno mande usuario/contraseña por un canal cifrado y posteriormente regresan a http (otros ni al inicio lo usan). Así pues veremos el enlace como por ejemplo: https://twitter.com/sessions. Pero no todos los servicios continúan con SSL habilitado (y ahí está el gran error). Eso hace posible el secuestro de sesión porque la manera subsecuente de identificarse con el servicio es usando la mentada “cookie”, la cual es robada por FireSheep.

Como mencioné, FireSheep es un addon para FireFox: luego de instalarlo, uno le pone “start” y automáticamente empieza a escanear una red abierta en busca de sesiones establecidas para que baste un click y poder entrar al FaceBook, LiveMail o Twitter de alguien más.

Te puede parecer que este FireSheep es “otra herramientita” más de esas que nos gusta a los geeks. Pero precisamente no es para geeks, no hay que comandear. Es poner el addon y apretar “start”. Y por cierto, esto del robo de sesiones no es nada nuevo ni mucho menos, ha existido por varios años ya; la diferencia es ahora la facilidad de uso. Ya “hasta un addon” de Firefox (de esos que son casi casi como “plug and play”) que puede ser usado por cualquiera roba sesiones de manera fácil y sin complicaciones.

FireSheep trae el secuestro de sesiones a las masas. Basta estar en una red inalámbrica abierta como algunas de Starbucks donde no se pide contraseña para unirse a la red. O estar conectado a una red alámbrica (yo hice pruebas en un hub y fueron exitosas). ¿Cómo protegernos? Ahí está la cosa rosa:

a).- Las redes deben de cambiar y usar el protocolo seguro WPA. Así se impide este tipo de ataques (y otros). Actualmente estas redes no usan cifrado (son abiertas al público para que se usen) o usan uno muy chafa llamado WEP; en ambos casos FireSheep es exitoso. Es posible cambiar a WPA y que la contraseña para unirse a dicha red sea pública (así sigue siendo abierta al público pero segura contra robo de sesiones).

b).- Los servicios que usamos deben de ya usar TLS (https) siempre, no sólo al inicio de la sesión. Antes se decía que no se usaba SSL porque requería enviar más datos por la red; ahora con las bandas anchas este argumento se desquebraja. No veo otra razón (válida y que proteja nuestra privacidad) por la cual no usar https todo el tiempo para ciertos servicios, como al usar FaceBook, por ejemplo (la propuesta no es usar https para toda la navegación online). Y sí, esto no depende de nosotros sino de quien ofrece el servicio (Twitter, LiveMail, etc.).

c).- Las dos anteriores son soluciones que no dependen de nosotros. ¿Entonces? Podemos elegir usar Force-TLS, o HTTPS Everywhere, por poner unos ejemplos. O una VPN. De hecho apareció BlackSheep (solución limitada), que es una especie de anti-FireSheep.

d).-No usar redes abiertas para entrar a los servicios que ofrece la web. Y como ven, esta propuesta no es viable ni razonable. Costo-beneficio, le dirían algunos.

Conclusión: no veo a FireSheep como otra herramientita, ojalá y sea un parte-aguas y produzca cambios en los que proveen el servicio y en nuestros hábitos de navegación. De hecho ya produjo un cambio: a raíz de FireSheep, Hotmail estará usando https en todo momento.

A continuación unos screenshots de unas pruebas que hice:

1.- Lo primero es bajar FireSheep de http://codebutler.com/firesheep

2.- El antivirus de Microsoft Essentials detecta el addon recién bajado como algo malicioso. Ok, lo apagamos.


3.- Al querer instalarlo, tal vez Windows proteste diciendo que no lo reconoce. No hay problema, seleccionamos a FireFox como el programa que debe encargarse de abrirlo y listo.

4.- Instalamos el addon, como cualquier otro addon.




5.- Si esta prueba se hace en un hub, podemos saltarnos al paso 6. Si vamos a estar en una red abierta inalámbrica, deberemos de instalar WinPCap si es que usamos Windows.



6.- En firefox, seleccionamos FireSheep del menú Ver->Panel lateral.



7.- Damos start y listo, ya encontró a una víctima.


domingo, 7 de noviembre de 2010

De la C, la E y la H


CEH. Certified Ethical Hacker. Tomé el curso recientemente. Los que ya lo han tomado, sabrán que se trata de que uno entienda en general las técnicas usadas por “los malos” para penetrar sistemas/redes y poder así lograr sus fines.

La idea es que si no sabes las técnicas de ataque, difícilmente sabrás cómo defenderte. En el curso te dan un “overview” de las fases del hackeo que básicamente son: Reconocimiento, Escaneo, Obtención de accesos (a nivel sistema y/o red), Mantenimiento del acceso y el Borrado de huellas.

Para cada una de las fases te dicen de qué se trata y qué herramientas (aplicaciones) usan “los malos” para completar esa fase. Recordemos que la diferencia entre un hacker y un profesional de seguridad es la intención y los objetivos perseguidos; las herramientas y técnicas son las mismas pero unos las usan para atacar y otros las prueban (sin daño) para entenderlas y poder defenderse.

El curso tiene una duración de 5 días donde se introduce al asistente en el mundo del hackeo, se muestran técnicas y herramientas usando no sólo PowerPoint sino también laboratorios en ambientes controlados para hacer prácticas.

Ahora bien, algunas opiniones respecto al curso:

+ Mil y un herramientas. Lo cierto es que la cantidad de herramientas que el curso pretende que “veas” es considerable y si sigues tal cual lo que indica el curso no acabas de dominar ni una sola. Tal vez esa es la intención, pero caramba, en unas cuantas semanas apenas y recordarás el nombre de los cientos de programas que se pretenden ejecutar y conocer.

+Leyes de EUA. El curso toca el tema de leyes, pero centrado en EUA. Afortunadamente fue breve, ya que en lo particular confieso que me aburren las leyes y en todo caso el material debería de “tropicalizarse” para incluir leyes de otros países.

+Herramientas desactualizadas. No todas las herramientas incluidas en el material del curso fueron “del 2010” o recientes. No puedo decir un porcentaje, pero por ejemplo el libro incluye Smurf que fue un ataque de finales de los noventa, el POD (Ping of Death) que explotaba una debilidad de la pila TCP/IP en varios sistemas existentes en 1996 (al menos esa es la fecha del aviso del CERT). También el material incluye el NetBus que algunos de mis compañeros en la Universidad llegaron a usar para gastarle bromas a otros estudiantes (estoy hablando de 1998-1999). Parecía un desfile retro de viejos ataques que llegué a ver o escuchar cuando estaba estudiando la ingeniería. Algunas otras herramientas son viejitas pero vigentes, como por ejemplo nmap. Conclusión: está bien ver algunos ejemplos pasados de viejos ataques como que para saber “lo que existió”, pero vaya, yo sí le daría una actualizada al material del curso para ponerlo más 2010 y menos noventero (verdad, “wardialing”?).

+Instructor. Qué tanto te guste el curso y qué tanto te hayan quedado ganas de que pudo haber sido un poco mejor depende (en mi opinión) en gran medida del instructor. En mi caso el curso me gustó, David (Twitter @codigoverde) le dio un giro interesante y supo mantener mi atención con técnicas vigentes y herramientas usadas por “los malos” en el 2010 y aún así manteniendo el balance con los puntos importantes del material del curso. Sí se despegó -lo suficiente- del PowerPoint y de lo que decía el “manual” que se tenía que ver en cuestión de herramientas, y gracias al Dios Todopoderoso que lo hizo. Asimismo vimos herramientas a una profundidad adecuada. Es decir, la dinámica impuesta por mi instructor fue determinante para que el curso en general valiera bastante la pena y he de confesar que superó mis expectativas.

+ ¿Ya soy pentester si curso el CEH? En mi opinión, no. Tampoco si te certificas. Si a mí me viene un fulanito a decir que puede hacer un pentest a mi empresa porque tomó el curso y posteriormente se certificó CEH sin más credenciales y/o justificaciones, le diría que no gracias y seguiría buscando. Sólo tomar el curso y/o certificarte no te hace pentester, o al menos uno que haga un buen trabajo. Recordemos que un buen pentester domina a profundidad las técnicas y herramientas de hackeo para que con tu aval, lleve a cabo pruebas de hackeo controladas que muestren tus debilidades para que mejores. En mi opinión, el curso CEH es introductorio y (si aún no las tienes) tendrás que adquirir los conocimientos y técnicas -a profundidad- por otros medios.

+ Certificación vs Utilidad. ¿Quieres tomar el curso para certificarte CEH o para aplicar lo aprendido en tu trabajo? ¿Yo? Para las dos cosas. Aunque sinceramente me interesa más lo aprendido en esos 5 días. Hay varias cosas que me latería incorporar en lo que hago porque aumentará el valor de mi trabajo. ¿Me faltará tiempo para hacerlo? Tal vez, pero habrá que buscarlo e incorporar técnicas de ahorro de tiempo, no?

¿Vale la pena el curso? Yo pienso que sí, opino que vas a aprender y de paso (estudiando) te certificas. Pero insisto de nueva cuenta en que el instructor hace La diferencia.

En fin, ahora empezaré a buscar tiempos para estudiar y hacer el examen de certificación. Ya que lo haga les estaré contando de cómo me fue y cómo es el examen.