Tor y Firefox, ¿la mejor combinación para conseguir anonimato y seguridad?

lunes, 5 de diciembre de 2016


Todo comenzó con un correo de Sigaint, un servicio de correo público orientado a la privacidad. Una vulnerabilidad previamente desconocida en Firefox estaba siendo aprovechada en esos momentos contra usuarios de Tor (cuyo navegador se basa en Firefox) a través de JavaScript. Un 0-day de verdad (no son 0-day las vulnerabilidades recién descubiertas si no están siendo aprovechadas). Sin haber analizado aún el código, se intuía la gravedad del problema. Veamos qué ha ocurrido y cómo la red Tor combinado con TorBrowser pueden no ser la mejor combinación para conseguir lo que sus usuarios pretenden.

El código, sin necesidad de ser analista, resultaba bastante "autoexplicativo".


Parte del código del exploit, donde se cargaba una animación para ser interpretada por SVG


Algunas líneas permitían deducir que se trataba de un fallo a la hora de procesar animaciones SVG como después se confirmó. Y en otras se adivinaba la ejecución de cadenas ROP (típicamente necesarias para eludir DEP) para conseguir la ejecución de código.


Parte del código en el que reserva memoria para preparar la ejecución (luego llama a CreateThread)
En JavaScript también se ve cómo utiliza una expresión regular que casa solo con los Firefox utilizados para TorBrowser… ¿por qué limitarse a este navegador? Probablemente porque el objetivo eran solo los usuarios de esta red, y no los de Firefox, y por tanto, se intuye algún componente de control de internautas que buscan el anonimato.

Expresión regular para atacar solo a los TorBrowsers (basados en Firefox)

El exploit se tradujo a código máquina, donde se observa a qué IP se conecta. Aunque se podría hacer cualquier cosa en la máquina (el exploit permite la ejecución de código), este en concreto se limitaba a tomar la dirección MAC e IP del equipo y llevársela a una dirección IP en Francia (OVH). Algo muy parecido al exploit que se encontró en 2013 que luego se supo que provenía del FBI. Pero este exploit resulta tan “simple” en su forma como en su intención, que parece más bien una especie de prueba de concepto que se ha hecho pública antes de tiempo. 


En una sola imagen el exploit con IP, ruta y parte del JavaScript que explota la importante vulnerabilidad
en Firefox que se ha usado contra Tor.



Los fallos en la red y el navegador

Lo llamativo no es tanto que "alguien" vigile a los usuarios de la red Tor (otra vez) e intente sacar su información, como ha sido el caso. A estas alturas, es conocido que la red Tor es la herramienta de anonimato que debes evitar si quieres pasar realmente inadvertido. Inyectar este JavaScript o cualquier otro en un nodo de salida sería sencillo. Tor, es necesario admitirlo, es la red más vigilada (exploits, posibilidad de nodos de salida trampa, posibles colaboraciones con la policía...). No suele ser una opción para los que "de verdad" necesitan anonimato por actividades criminales. O al menos, no por sí solo (se puede combinar con tráfico cifrado punto a punto, navegadores muy limitados, etc). Es una buena opción para el ciudadano medio que quiere privacidad ante las operadoras, gobiernos y publicistas, etc… pero es un secreto a voces que los verdaderos delincuentes buscan alternativas. Tor no ofrece de por sí seguridad, sino en cierta manera anonimato (escondiendo el origen, más específicamente). Para añadir seguridad, es necesario la participación del navegador, en este caso. Y es aquí donde, analizando este incidente, se han desvelado algunas torpezas


El fallo en Firefox al procesar SVG parece que ya se conocía en cierta forma en 2013. SVG no es muy usado hoy por hoy. De hecho, la parte de código de Firefox afectada no se ha tocado en cinco años. Parece que existen desde junio reportes de "crashes" del sistema en esta misma zona de código explotada, lo que podría significar que alguien experimentaba con la vulnerabilidad desde entonces. El exploit no es complejo: no necesita eludir ninguna sandbox. Y aquí se evidencia lo atrás que queda Firefox con respecto a Chrome o IE… no usa procesos aislados por pestaña, no aprovecha una buena sandbox… están en ello, y lo reconocen. 

Todavía están probando lo efectivo que podría ser una sandbox y aprendiendo qué se necesita hacer

Siempre que se habla de seguridad en navegadores, parece que estalla alguna vena sensible más basada en lo visceral que en los hechos. Pero Firefox ha quedado técnica y objetivamente atrás a la hora de implementar medidas de seguridad reactivas y proactivas y no está a la altura del resto. Discutir esto es entrar en filosofía (en el terreno de la privacidad y libertad, donde Firefox sí que funciona mejor que las alternativas...) más que evaluar hechos técnicos.

Chrome con niveles de integridad en "no confianza" y procesos separados.
Igual Internet Explorer con su AppContainer, mientras Firefox no separa procesos y usa nivel medio.

Firefox ha arreglado en tiempo récord el problema, como siempre. Pero la solución es un parche de emergencia que no soluciona el problema de raíz. También ellos mismos lo reconocen. Recordemos que esto abre la puerta a que, como tantas otras veces, un parche rápido que no soluciona el problema permita que el fallo siga siendo explotable. Por poner un ejemplo, con este tipo de parches Tavis Ormandy ya ridiculizó a Red_Hat con shellshock. El parche hace que Firefox haga "crash", pero al menos no se ejecute código. 



En resumen, resulta llamativo que en 2016 se utilice un exploit tan "sencillo" (porque está basado en código que se encuentra en Firefox desde hace más de 5 años) y que el efecto sea tan devastador (porque el navegador no implementa medidas de contención adecuadas) con el fin de espiar a usuarios especialmente preocupadas por su privacidad y seguridad. Ni el navegador Firefox ni la red Tor en sí mismas, son los mejores garantes ni lo uno ni de lo otro. 


Sergio de los Santos
ssantos@11paths.com

Latch ARW: Capa extra de seguridad contra el ransomware

sábado, 3 de diciembre de 2016

Aunque la seguridad informática está en auge, muchas veces los ataques no llegan a salir la luz. Hace unos días estuve hablando con una persona que trabajaba en una gestoría que sufrió en primera persona un ataque de un ransomware.

El software malicioso “secuestró” los datos de sus clientes, supuestamente protegidos mediante las medidas estándar del sistema operativo, y tuvieron que ceder al chantaje pagando a los creadores para recuperar los datos y seguir la operación normal de la compañía. Por supuesto, todo el asunto se llevó en secreto y no se notificó a los clientes. Este caso me llamó la atención por la gravedad y la forma de resolverlo. No se sabe con seguridad cómo entró el software en el sistema, pero después de haber tratado alguno, no es muy complicado pensar en una descarga de una herramienta desconocida o un programa recibido de algún contacto de confianza, comprometido a su vez.


Los sistemas disponen de protección de forma nativa, gestión de permisos locales, etc. Pero la naturaleza del ataque implica que si un usuario tiene permisos para modificar o borrar algún documento también lo tendrá el ransomware. Esto hace que sea necesario un componente adicional al sistema operativo para aplicar alguna regla extra en la detección de estos ataques.

¿Cómo hacemos frente al ransomware?
Originado en el laboratorio de innovación, Latch Antiransomware nace como una capa de seguridad extra, adicional al sistema operativo, que permita aplicar alguna regla de usuario de forma preventiva para resolver casos como el anterior. Además, tiene que ser muy sencillo y usable de forma que lo puedan aplicar usuarios no avanzados, que son el objetivo habitual del ransomware. ¿Y qué regla de usuario aplicar para extender los sistemas de autorización podríamos usar en ElevenPaths? Latch, por supuesto.

De cara al usuario el uso es tan sencillo como parear el equipo con Latch, que se puede realizar directamente desde el instalador.


Una vez pareado el equipo, el usuario puede seleccionar qué carpetas desea proteger directamente desde el explorador de Windows.


A partir de ese momento, el software analiza cada petición de acceso a disco sobre esas carpetas y, solo en las que sean de escritura, modificación o borrado, consulta a los servidores de Latch confirmando el estado establecido por el usuario y permitir o no la operación. En definitiva se añade una capa de autorización de escritura al sistema operativo cuya regla de negocio es el estado de la carpeta en Latch.

La ventaja de este sistema es que, a parte de sencillo de utilizar, la capa de autorización descansa en un tercero y está gestionada directamente por el usuario. Es cierto que la simpleza del funcionamiento no permite reglas complejas, orientando su utilización a carpetas con un uso relativamente específico. Es decir, carpetas que no tengan una tasa de escritura alta por ejemplo, ya que sería necesario abrir y cerrar el Latch en cada operación. No obstante, las últimas versiones de Latch permiten reglas un poco más complejas, como el bloqueo por tiempo o el bloqueo programado, que se podrían utilizar para desbloquear una carpeta y hacer un backup programado sin interacción del usuario.

La magia
Aunque la herramienta es sencilla de utilizar y de instalar, la magia que hay por debajo es relativamente compleja. La solución descansa en un driver de disco que se ejecuta en modo kernel y se encarga de monitorizar las operaciones de entrada/salida en los volúmenes de disco que permitan operaciones de escritura (FAT, FAT32 y NTFS). El driver no realiza ninguna operación salvo en aquellas carpetas que están protegidas por Latch. En estas se lanza una consulta del estado contra el servidor y se permite o no en función del estado devuelto.

Este tipo de drivers son los mismos que usan los sistemas de antivirus, antimalware, etc. comerciales. De hecho, este sistema lo hace compatible con otros software de este tipo ya que la arquitectura del sistema operativo lo permite.

Por otro lado, el interfaz de usuario para el pareo, protección y desprotección de las carpetas está integrado en el sistema operativo de forma que su uso se integre dentro de la experiencia de usuario habitual. Todas las operaciones se realizan directamente desde el explorador de Windows, mediante el menú contextual del botón derecho del ratón.

Probando la herramienta
La herramienta se encuentra pasando la fase de calidad del departamento de ingeniería de ElevenPaths. No obstante, se han realizado pruebas funcionales con ransomware reales. La última prueba consistió en lanzar sobre una máquina con Windows 8.1 diez programas que contenían ransomware de los más habituales. Es más, estos programas se lanzaron con privilegios administrativos, para que su ejecución no presentara ninguna restricción de permisos en carpetas protegidas por los permisos estándar del sistema operativo (UAC, etc.).

Solo una de las carpetas del disco estaba protegida mediante Latch ARW y contenía imágenes de Chema, tratando de simular las carpetas tipo de un usuario normal (fotos, documentos, etc.).

Este es el resultado, al día siguiente, sobre las carpetas de documentos e imágenes. Se aprecia como todos los contenidos han sido “secuestrados”, cifrados a la espera del pago por parte del usuario:


De hecho, apreciamos que ciertos ransomware habían secuestrado, a su vez, el resultado de otros ransomware que entraron en acción anteriormente. Esto complicaría la recuperación de la información aun pagando a los malos.


El fondo de pantalla fue modificado por uno de los ransomware indicando los pasos que tenía que seguir el usuario para recuperar su información:


Sin embargo, la carpeta protegida por Latch ARW no sufrió ninguna modificación y las imágenes de Chema quedaron a salvo.


Adicionalmente a la protección, recibimos en el móvil las notificaciones de intento de modificación de las imágenes en el momento en el que el ransomware actuó sobre ellas. Esto nos permitió analizar en qué momento entró en funcionamiento. Para el usuario final es importante saber que alguien está tratando de acceder a su información con la intención de modificarla para poder tomar decisiones.

El resultado de la prueba fue satisfactorio, aunque todavía nos queda mucho trabajo por delante.

Latch ARW solo pretende ser una herramienta sencilla y entendible que ayude a los usuarios a luchar contra este tipo de malware. Sin grandes reglas de negocio, sin impactar en el rendimiento del sistema y sin pagar rescates en bitcoins.