domingo, 14 de diciembre de 2014

Y ahora a plantar un árbol..



Después de mucho tiempo recopilando historias, contándolas en clase (una y otra vez, lo siento!) y de recibir muchos ánimos por los más cercanos me he decidido a escribir y publicar mi primer libro, y la experiencia ha sido muy positiva.
Lo que he intentado con el libro es poner sobre la mesa los problemas de la sociedad digital. Todo el mundo cree que está seguro en Internet si no pone datos muy confidenciales, la tarjeta de crédito, fotos muy comprometidas, etc.. Nada más lejos de la realidad. 
Estamos expuestos de mil maneras y en el libro intento poner ejemplos de las más llamativas.
Espero que después de leerlo nadie deje la tecnología de lado y se vaya a vivir al monte, aunque a veces den ganas ;)
Podéis comprar el libro en papel aquí y usar el código JDPY4 para tener los gastos de envío gratis durante Diciembre
Espero que os guste!





domingo, 18 de mayo de 2014

Bits macho y bits hembra



Neil Degrasse, un crack


Antes de nada, os pediré que veáis un vídeo, el que me ha hecho reflexionar para escribir esta entrada, son unos pocos minutos pero merecerá la pena. Está en inglés si, pero este post está hecho para informáticos, así que asumiré que tenéis al menos interés por aprender el idioma, podéis verlo varias veces si tal :)




Resumen para gente que no me ha hecho caso: Neil Degrasse, uno de los más reconocidos astrofísicos y divulgadores es negro, y esa es su respuesta a "¿por qué hay tan pocas mujeres científicas?", a la gente parece hacerle gracia y tal, pero es la mejor reflexión que he escuchado sobre el tema en toda mi vida.

Yo ya había escrito algo sobre las mujeres y la informática con anterioridad aquí , pero después de escuchar esto creo que estaba equivocado, no es un problema de discriminación activa.. bueno, a lo mejor lo fue en su día, el ejemplo de tantas mujeres olvidadas por el camino es un ejemplo, pero ahora mismo el problema es la discriminación pasiva, la gracia el chiste y el rumor, algo además muy típical spanish lo que agrava el problema

No quiero dar nombres pero...


En mi posición de profesor, he tenido alumnos y alumnas, y he tenido que escuchar muchas veces el comentario de "pues fulanita es muy capaz eh, y es chica!", quizás yo también haya colaborado inconscientemente a eso, ¿por qué nos sorprende? y lo peor ¿por qué el comentario?

Hoy me pongo en el lugar de esas alumnas que habrán tenido que pasar por sus estudios siendo "la chica que además controla de informática!" y ejercen su trabajo como "la tía que sabe informática tanto como los demás". ¿Tanto como quien?, ¿como un chico?

Y ese es el problema del que habla Neil

Tiene toda la razón, una mujer que se salga de las profesiones tradicionales va a ser siempre etiquetada de diferente, como si partiera con un lastre y tuviera que demostrar el doble o el triple que los compañeros, a los que se le supone una afinidad por la informática por el simple hecho de tener un cromosoma diferente (siento decepcionar sobre esto, pero en mi puesto de trabajo veo cantidad de hombres con capacidad nula para la informática, y como decía, no quiero dar nombres... pero cantidad! :P )

Yo si fuera una tía a la que están juzgando constantemente por el hecho de serlo, seguramente mandaba todo a la mierda y me dedicaba a otra cosa, no me lo quiero ni imaginar, seguramente desde los primeros años de instituto
- "Quiero ser informática"
- Pero que dices, fida, eso es para tios frikis!

Los profesores no creo que colaboren tampoco demasiado, orientando conscientemente o no a las chicas a letras y a los chicos a ciencias, y ya ni quiero hablar de los defensores de la enseñanza segregada pero me gustaría saber los porcentajes de chicas que llegan a brillar usando métodos que desde el principio les dicen que son distintas, que aprenden distinto, que no se pueden mezclar con los hombres.. no puedo ni expresar con palabras la repulsa que me produce eso.

Y así, con comentarios, coñas, tópicos, etiquetas, hacemos desistir a las personas (hombres, mujeres) de que persigan aquello que realmente desean

Esto también pasa en el terreno sexual, pero bueno, mi blog no va de eso, pero creo que el caso del tío que se lía con varios y es un machote pero la chica a la que le gustan dos es una guarra está también demasiado incrustado en la sociedad.

Un mensaje, para celebrar el día de Internet

Y es que al final, yo iba a escribir un post para celebrar el día de Internet, porque yo siempre pensé que una red de comunicación global que une países, que mantiene el anonimato (relativamente, y si el gobierno no lo impide más aún) y que sólo se basa en el contenido y no en el continente haría que la sociedad avanzara en otro sentido quizás más racional, donde la gente fuera tratada como las personas que son, y no como lo que los demás quieren que sean.

Así que este año paso de celebrar el día de Internet, este año celebro el aprender a ver las cosas desde el punto de vista de la otra persona y entender por fín por qué no hay tantas mujeres como hombres en la informática, en la ciencia o en muchos otros campos. Es por nuestra culpa, y esto tiene que cambiar, ya.

Y por cierto, para mis alumnas, mi mujer, el resto de informáticas y cualquier otra persona que luche por lo que cree, mi más sincera enhorabuena, como decía antes yo no creo que hubiera sido tan persistente.

Nunca os dejéis llevar.







jueves, 15 de mayo de 2014

Polillas cibernéticas



Las polillas

Todos los animales se mueven por instintos y nosotros, claro, no nos salvamos.
Sin embargo cuando vemos comportamientos instintivos en el resto de animales nos parecen bastante básicos o directamente idiotas, y el ejemplo perfecto es la polilla.

La polilla se siente instintivamente atraída por la luz y cuando la vemos quemarse las alas cuando se acerca mucho a una vela o a una bombilla incandescente nos parece un comportamiento suicida propio de un ser sin ningún tipo de capacidad de elección.



Pero realmente el comportamiento de la polilla es muy razonable, es atraída por la luz porque cuando viaja necesita orientarse y saber hacia donde (o si puede) subir, al ir hacia arriba, todo lo que pueda, atraída por el brillo de las estrellas y la luna puede evitar obstáculos al volar más alto y muchos de sus depredadores terrestres no podrán alcanzarlas.

Y visto así, la polilla sigue siendo un ser poco inteligente, pero su comportamiento instintivo esta bastante perfeccionado y sólo podemos ponerle la "pequeña" pega de que ante estímulos artificiales o exageradamente atractivos, el instinto es tan fuerte que se quema.
Nada, detalles, se muere y ficha nueva, como decía un amigo mío (vivan las referencias frikis!)


Ciberinstintos


El caso es que igual que las bombillas y las velas no han existido mientras la polilla evolucionaba, en nuestro caso también tenemos instintos que han evolucionado para adaptarse a situaciones que no encajan en el mundo que nos toca vivir.

¿Qué instintos tenemos para poder sobrevivir en un mundo digital? ¿Cómo podemos por ejemplo interactuar con una persona que está a cientos, o miles de kilómetros? ¿y con un programa? ¿Cómo podemos valorar los riesgos que entraña una decisión en un entorno virtual?

Nos hicimos a nosotros mismos para vivir en sociedad, y ahora la sociedad es digital, nuestra capacidad para distinguir lo que es real de lo que no no es mucho más precisa que la vela y la luna en el caso de la polilla.

Y así tenemos todo tipo de nuevos peligros en los que nuestros instintos son antiadaptativos, en donde apelan directamente a lo más profundo de nosotros para que caigamos en terribles trampas:

- Al sexo, como en el e-whoring
- Al miedo, como en los rogue antivirus
- A la avaricia, como en los scams por correo electrónico
- A la empatía, como en los hoax que reclaman dinero para salvar a X niño con una enfermedad rara que en realidad no existe a los gatitos embotellados

Esto no quiere decir que en la vida real no existan versiones de estas situaciones, pero desde luego nuestras alarmas saltan antes, porque hay algo que todavía no controlamos en esta sociedad virtual, y eso nos despista un rato.


Vida real, vida digital


Y cuando hablo de todo esto, siempre pienso en lo mismo, ¿cuál será la diferencia entre la vida real y la virtual?

Hoy en día divulgamos prácticamente la misma información online que offline, o más, la gente que nos tiene añadida en las redes sociales saben desde que comemos, a que hora tomamos las cañas o como tenemos los pies cuando nos hacemos selfies en la playa, y sin embargo a pesar de todo eso, cuando preguntas sobre la importancia que le da la gente a esto, la respuesta es paradójicamente que "muy poca"

Surgen conversaciones de este tipo:

¿Por qué no pones una contraseña segura? : Total para lo que me pueden ver
Oye, sabes que tienes el pc lleno de virus?, pueden ver toda tu información: Total, nadie se va a aburrir tanto como para hacer eso
Ha salido un fallo de seguridad gravísimo, estamos todos afectados y nos espía el gobierno, pueden ver incluso tus chats: Total..

Y así...



Este corto trata sobre los datos que puede obtener un atacante que nos vigila por una webcam, da MUY mal rollo, ¿seguro que tus datos no son importantes?


Y sin embargo, cuando cuentas como en el curso de lockpicking que hicieron en la UDC (aun no se por qué dieron un curso de esto en unas jornadas de seguridad informática, pero bueno, ha molado :P) que prácticamente cualquier cerradura se puede abrir, sólo con pensar que alguien va a ver aunque sea las cartas que tienen en el buzón, se mueren.

¿Por qué? por qué esta separación de nuestros datos en reales y virtuales, es algo que me intriga

Incluso mis alumnos de seguridad, que son personas altamente cualificadas (o yo los considero así), cuando das determinados consejos de seguridad se echan las manos a la cabeza, o ponen cara de .. "yo en mi vida he hecho ni haré esto", aún sabiendo las consecuencias, nadie tiene contraseñas seguras, ni las cambia periódicamente, ni cifra sus datos, ni nada de nada

Hace poco en una entrevista que le hicimos a Chema Alonso, nos decía que es la tecnología la que tiene que implementar la seguridad, y los que nos dedicamos a esto tenemos que andar en esa dirección

No le puedo dar más la razón, no se pueden dejar estas cosas al azar, porque nos dejamos llevar, incluso los preparados, por vagancia, falta de cautela o por instinto, nos dejamos llevar, y seguro que sin unas medidas de prevención eficaces, a veces nos quemamos.

Somos las polillas de Internet




miércoles, 16 de abril de 2014

Apostando por la seguridad



La anécdota

Hace unos meses me puse en contacto con mi ISP para comentarles un pequeño fallo en su infraestructura que me afectaba personalmente, nada, poca cosa, sólo permitía que cualquier persona desde el exterior pudiera acceder remotamente a mi router a pesar de estar el acceso deshabilitado.

El problema con estas cosas es: cuando entiendes el fallo y ves hasta dónde llega el problema, ¿cómo lo comunicas?¿con quién te pones en contacto? no existe una cultura ni un mecanismo aquí que permita llegado este caso hacer lo que se llama un "responsible disclosure" (término muy de moda esta semana por otros motivos que volveré a tocar más adelante), es decir una forma de poder avisar del fallo sin causar un perjuicio a la gente involucrada, algo que realmente no suele interesar, al menos a mi.

Así que empecé el calvario de la comunicación por la vía menos recomendada: el teléfono.

Por algún motivo pensé que las empresas en general tendrían alguna opción en los infinitos números de opciones de sus centralitas que fuera "quiero hablar con vosotros, y no, no es para compraros ni para venderos nada", pero obviamente estaba equivocado y acabé en algún nivel de soporte técnico en donde la chica de helpdesk y yo hablábamos un idioma similar.

Y esta es la anécdota que quería encontrar, cuando le conté el problemón que me afectaba a mi y a otras 30mil personas aproximadamente (gracias Shodan!) la chica de soporte me dijo algo así como:

- Pues no es un problema tan grande, porque nuestros clientes tienen IP dinámica, por lo que si alguien quiere controlar tu router cuando vaya a hacerlo seguramente tu ya tendrás una IP nueva y se esté conectando a otro sitio.


Bienvenidos a la seguridad probabilística


Desde entonces acuñé un nuevo término que utilizo con colegas de profesión, la seguridad de casualidad o seguridad probabilística, que viene a ser cuando tu seguridad se basa en la esperanza de que cuando un posible atacante vaya a realizar un ataque sobre tus sistemas suceda algún hecho inesperado que con más o menos probabilidad frustre el intento del atacante, dejándolo en la estacada. 

Es un concepto genial, me gusta.

Y con esto llegamos a lo que de verdad quería contar en el post, que en realidad es sobre Heartbleed. Si si, el fallo ese del corazón sangrando del que se lleva hablando toda la semana, pero he hecho una maniobra de distracción para parecer más novedoso y que así la gente no me vote cansino, bueno, y porque es mi blog, que carai, y me gusta contar estas cosas así.




A estas alturas no voy a explicar lo que es Heartbleed, hay explicaciones estupendas que se pueden consultar, y yo no voy a hacer que entiendas el bug mejor que la tira de XKCD

Tampoco voy a entrar en el mundo de las conspiranoias de que si salió el mismo día del fin de soporte a Windows XP y hay un ex-empleado de Microsoft detrás del sitio web del disclosure, que por cierto no ha sido demasiado responsable.

El tema que quiero tratar es: ¿cuáles han sido las consecuencias de verdad de este bug?

Pues básicamente han sido las siguientes: 

  • Un número indeterminado de sitios web, algunos de ellos con un gran número de usuarios, han dejado ver datos importantes sobre sus clientes. 
  • Como consecuencia de esto, un número indeterminado de credenciales han sido filtradas 
  • Las claves privadas de un número indeterminado de servidores seguros pueden haber sido filtradas (la prueba realizada por cloudflare esta semana, demuestra que esto ha podido ser así en muy poco tiempo)
  • Como consecuencia de esto, las capturas de tráfico de estos sitios seguros, presentes y pasadas, han dejado de ser seguras y se han podido descifrar completamente
  • En el caso de los sitios que no han revocado y renovado el certificado (muchísimos aún a día de hoy), con su certificado robado puede haber gente haciendo el MitM perfecto, es decir, interceptando comunicaciones supuestamente seguras.
  • Existen otras aplicaciones (aún no se sabe cuáles exactamente) y clientes (más de lo mismo) que también están afectadas, con consecuencias impredecibles aunque normalmente algo menos graves.

Y básicamente "sólo" es eso.

¿Por qué hay tantas cosas en el aire? pues porque básicamente no se sabe nada con seguridad, porque aunque existen pruebas que aplicándolas sobre logs de IDS recogidos con anterioridad pueden detectar el fallo, aunque con algún falso positivo, lo que no se va a poder recuperar son los datos que el servidor le envió a los atacantes.

Los datos del número de servidores, que han sido objeto de polémica estos días, también son totalmente estimados, sea cual sea el método que se use para recabar la información.

Unos han usado netcraft, otros zmap, shodan, o una combinación de todo eso, pero los datos siguen siendo estimaciones basadas en los banners que usan los servidores, sin tener en cuenta que el banner puede mentir, o puede haber un proxy en medio que se ocupe de la negociación SSL (es decir, es perfectamente posible que un sitio web alojado en un IIS se vea afectado por usa nginx como proxy inverso), ni han tenido en cuenta el resto de software y appliances que usan la librería.

Pero mi reflexión va un poco más allá, porque realmente los temas de números no me importan demasiado

Voy a hacer una suposición, supongamos que solo tres servidores han sido afectados (que lo han sido): google, facebook y yahoo.

Supongamos también que el bug solo se ha podido usar unas horas (yo lo he podido usar más de un día antes de ver sitios enormes parcheados, pero bueno, supongamos), vamos a poner que se ha podido usar 8 horas, y que solo un grupo reducido de personas ha tenido acceso a el, que tampoco ha sido el caso.

Alguien me podría decir suponiendo todo eso, ¿cual es la probabilidad de que mis usuarios en esos tres servicios hayan sido afectados? ¿el certificado SSL ha sido comprometido? durante ese tiempo ¿he podido ser víctima de un MiTM con ese certificado robado?, si alguien tenía una captura de mi tráfico cifrado ¿ha podido descifrarlo con ese certificado robado?

¿Importa esta probabilidad?

En INTECO hoy, por ejemplo, nos invitan a reflexionar sobre la severidad del bug, con cosas como esta:


A partir del revuelo generado, la preocupación del usuario por el alcance de la vulnerabilidad y cómo podría afectar a su privacidad el riesgo de alguien haya podido capturar sus contraseñas en alguno de los sitios web afectados también requiere cierta reflexión.
Para ello, un aspecto importante a tener en cuenta sobre el grado de exposición de las contraseñas es la ventana temporal del fallo. Es decir (dejando al margen agencias de inteligencia con supuesta información privilegiada o similar), las contraseñas sólo han estado expuestas a posibles ciberdelicuentes desde el 7 de Abril.

Es decir,  supuestamente nadie ha tenido acceso al fallo (o si), y "sólo" han estado expuestas desde el 7 de abril, apenas unas horas (o no, o unos días)

Más, @gallir, el de menéame, subia a portada una noticia con la teoría de la conspiración microsoft y nos dejaba comentarios como este o este diciendo que no era tan automático pillar claves privadas, solo hay que conocer algo sobre gestión de memoria para saber eso
(y yo lo había dicho antes, twitter.com/gallir/statuses/453879009794080769, sin haberlo analizado, pero es conocimiento básico de cómo funciona la gestión de memoria en los sistemas operativos modernos).
Resumen, todo el mundo se apunta rápido al carro de los números y afirmaciones exageradas, pero muy pocos saben el fondo, o se documentan.
Horas después Cloudflare publicaba este reto con una página afectada por heartbleed y horas después dos personas la sacaban, demostrando lo difícil que era
A estas horas ese sitio ya no funciona porque han revocado el certificado del servidor (je je, tiene gracia, y que el certificado sea de COMODO, más)


Así que nada, exactamente no se a que viene esta tendencia de reducirlo todo a números y llamar a la calma-pasividad por la probabilidad supuestamente de que haya pasado algo, pero ¿y si ha pasado?, tampoco entiendo que se hable de "solo X servidores" cuando solo uno de ellos tiene las credenciales de 800 millones de usuarios, solo con que yahoo hubiera sido el único afectado, esto seguiría siendo gravísimo.

Total, que esto debe ser la nueva tendencia, es lo que se llama apostar por la seguridad, es decir, pasen señores y hagan sus apuestas a ver si sus datos están afectados o no en este nuevo bug basándonos en estas nuevas estadísticas que tenemos por aquí fresquitas, bienvenidos a la seguridad probabilística.



lunes, 20 de enero de 2014

Reanimación de datos en memoria para el análisis forense, literal.



La RAM, ¿es volátil?: Si pero.. 

Una de esas máximas que todo usuario un poco avanzado de ordenador da por hecho es que la memoria del ordenador es volátil, esto es, si apago el ordenador todo con lo que estaba trabajando se pierde, y esto es así.. pero no siempre.

Es cierto que por su diseño, los chips de memoria DRAM deben estar siendo constantemente "recargados" con pulsos eléctricos, y si estos pulsos dejan de llegar, el contenido de la memoria se borra, pero esto no es inmediato, sino que pasa después de un tiempo que puede variar entre unos pocos segundos y unos minutos.

En 2008 se publicó un paper de la Universidad de Princeton que habla sobre como recuperar claves de cifrado después de un "cold reboot", es decir, dejar al ordenador sin alimentación y volver a dársela para reiniciarlo. Se puede encontrar el paper aquí

Un ejemplo muy revelador sobre como la información en los módulos de memoria se va deteriorando a medida que pasa el tiempo es el ejemplo de este BMP:

Aquí se muestra una imagen recuperada de la memoria RAM tras 5 segundos, 30, 60 y 5 minutos.

En el resto del estudio se muestran distintas pruebas que, dependiendo de la memoria y otros parámetros arrojan resultados similares.

La conclusión es clara, un reinicio no borra inmediatamente los datos, sino que hay un periodo ventana en el que es posible la extracción de datos de la RAM previos al mismo.

Consecuencias 

En principio este tema técnico no parece de mucha importancia, pero si nos paramos a pensar en las medidas de seguridad física que adoptamos para proteger un dispositivo, la gran mayoría de ellas se basan en :

a) Si un usuario accede al sistema de forma física, el sistema operativo no le dejará realizar operaciones (control de usuarios) y/o se las dejará realizar pero de forma limitada
b) Si existen varios usuarios que comparten un ordenador, un usuario no puede acceder a los datos de otro (protección de memoria)
c) Las herramientas de cifrado pueden proteger de forma adicional los datos de un usuario, por ejemplo BitLocker, Truecrypt, o similares, para que en caso de acceso físico no autorizado, el atacante no pueda acceder a los datos cifrados.

Pues bien, el pequeño detalle de la persistencia de datos en RAM puede hacer que nos replanteemos la veracidad de esas premisas.

Voy a poner un ejemplo para que se entienda a donde quiero llegar.

Un profesor de instituto tiene un ordenador en su mesa, donde guarda los exámenes para los alumnos.
Como es un tipo desconfiado, guarda los exámenes cifrados en una unidad de Truecrypt cifrada con AES128, como contraseña usa una frase 20 caracteres mixtos y cuando se va de clase deja el pc bloqueado o cierra sesión con una contraseña desproporcionadamente compleja, el resto de usuarios del equipo están deshabilitados, el sistema está actualizado, etc.. ¡es un profesor precavido!

De entrada, aunque los alumnos pudieran llevarse el disco a casa, no podrían acceder a los datos que el profesor guarda en el disco, y todo intento de adivinar la contraseña por fuerza bruta fracasaría por cuestiones de tiempo.

Aquí aparece el problema.

Uno de los alumnos se ha leído el paper de Princeton y ha encontrado esta utilidad: msramdmp

En realidad la utilidad no es más que un pequeño kernel, y un sistema que únicamente tiene una utilidad que vuelca el contenido de la RAM en una partición de un disco USB. La utilidad + el kernel tienen un tamaño de apenas unos 5MB, por lo cual, salvando esa zona de memoria y lo que pueda degradarse por el tiempo que tarda en reiniciar el ordenador (ver otra vez el paper, con 1-2 segundos que puede tardar el reinicio, apenas se perderán datos si es que se pierden)

Así que en cuanto el profesor se va de clase el alumno mete el USB en el PC, reinicia, y se puede llevar a casa en su disco una bonita imagen de la RAM que luego puede analizar con calma en casa.

¿Y que puede encontrar ahí?
Pues estas son unas pequeñas pruebas que he hecho con una imagen de RAM obtenida aquí en el lab con un ordenador de pruebas tras un reinicio:

Contraseñas de Truecrypt y otras contraseñas AES, que obviamente, están en memoria cuando se usa rl programa


Búsquedas en google/bing, etc...


Y así, en mis pruebas he recuperado casi 30 MB de información útil, historial, búsquedas, archivos, etc.. que se puede extraer con programas de análisis como bulk_extractor, aesfind, o muchas de las herramientas de análisis de memoria disponibles públicamente


Sería más sencillo el análisis con herramientas como volatility framework, sin embargo en las pruebas realizadas no ha sido posible usarla, porque los plugins de vol.py esperan una estructura en memoria que no se corresponde a ninguno de los perfiles disponibles al estar sobreescrita un área de la memoria con la propia herramienta de volcado y tener algunas zonas con datos degradados debido al reinicio.

De todas formas el profesor puede dar los exámenes por perdidos y de paso su privacidad también,  igual si hubiera apagado el ordenador..

Soluciones.


La solución más simple creo que es bastante evidente: apagar el ordenador cuando no vamos a estar delante durante un tiempo, además tratar de no dejar aplicaciones que manejen datos sensibles abiertas, vamos, tratar el ordenador como si la siguiente persona con acceso físico a el pudiera acceder a todos nuestros datos sin más.

Por supuesto no estaría de más impedir el arranque desde dispositivos extraibles en la BIOS del PC, y después proteger el cambio de los valores de la BIOS con contraseña, aunque esto es fácilmente salvable (por ejemplo quitando la pila de la placa) en este caso en donde cada segundo que el pc esté apagado y cada reinicio juega en contra de la conservación de los datos, es una medida interesante.