sábado, 13 de mayo de 2017

¿Qué pasó ayer? Crónicas de un ataque anunciado.

La NSA contaba con una serie de herramientas, entre ellos un exploit conocido como EternalBlue, el cual explota una vulnerabilidad de Windows vinculada al protocolo SMB (Server Message Block) de capa de aplicación, el cual permite tener acceso compartido a archivos, impresoras, etc. y que corre sobre el puerto 445 o por Netbios sobre los puertos 137,138 y 139. Esto significa que si una máquina que está dentro de una red es infectada, esa infección se puede propagar a todas las máquinas que estén en esa red siempre y cuando esas máquinas no estén parchadas. También contaban con un backdoor llamado DoublePulsar que generalmente se instala luego de explotar la vulnerabilidad con EternalBlue.

Un grupo llamado Shadow Brokers consiguió esas herramientas de la NSA y las compartieron en internet en protesta supuestamente por los ataques de Trump a Siria en Abril. Como afectaba a Microsoft hizo un parche para esta vulnerabilidad (parche: MS17-010).



Lo que paso ayer, fue que hubo una campaña presunta de emails que propagaban un malware, el cual estaba programado para escanear el puerto 445 en busca de DoublePulsar y si no estaba, usaba el exploit de EternalBlue y quedaba corriendo en el sistema como un servicio con permisos elevados a la espera de que otras máquinas se conecten a la red y así poder infectarlas. Una vez hecho esto, trataba de conectarse a un dominio especifico mediante un request de HTTP y si se podía comunicar, no hacía nada, pero si no se podía comunicar, infectaba la maquina con un ransomware conocido como WCry o WannaCry, el cual cifra la información de la máquina y pide un rescate a cambio de recuperar los archivos.  

El problema fue que muchos sistemas no estaban parchados y fueron afectados por esta vulnerabilidad. Es altamente recomendable que tengan actualizados los sistemas para evitar esta y cualquier otro tipo de vulnerabilidad.

¿Qué se puede hacer ante este tipo de situaciones, donde el problema ya está instaurado? Aplicar técnicas de Incident Response y Threat Intelligence. A continuación vamos a describir algunos pasos que a tener en cuenta para actuar ante este tipo de situaciones. Es importante destacar que la idea no es buscar a los culpables, sino mitigar el problema, erradicarlo, y lograr que los sistemas función como deberían nuevamente.

En un primer momento, se tiene bastante desconocimiento sobre qué está pasando; solamente se tiene un indicio de que algo anda mal ya que los sistemas no funcionan de la forma en la cual deberían hacerlo.

A partir de ese momento, se inicia una investigación. En el caso del ransomware, es fácilmente detectable ya que el acceso a los archivos queda restringido. En este caso, el ransomware es de tipo “Crypto”, lo que significa que los archivos de las maquinas infectadas quedan cifrados y a menos que se disponga de la llave correcta (o que haya una vulnerabilidad en el algoritmo utilizado para cifrar los datos) los archivos no se pueden recuperar fácilmente y se debe pagar una suma de dinero a cambio de recuperar el acceso a ellos.

El primer paso luego de detectar que el sistema fue infectado con este tipo de amenaza, es tratar de determinar a qué familia pertenece. Puede suceder que no sea tan fácil encontrar el archivo que se usó para infectar las maquinas porque puede suceder que luego de infectar las maquinas el archivo se borre, o puede pasar que la amenaza corra directamente en memoria por lo cual es más difícil encontrar artefactos que permitan analizarlo. Por estas razones, que recurrir a otros métodos. Los ransomware generalmente dejan una nota, en formato .txt, .png o .html que dan más información a la víctima sobre qué pasó y como puede recuperar los archivos. Una vez localizado estos archivos se trata de vincular a una familia existente o se trata de determinar si es una amenaza nueva. En este caso, los archivos cifrados quedaron con extensión “.wncry” y se observaron las siguientes imagenes:



Haciendo un breve análisis buscando en fuentes públicas, se puede concluir rápidamente que la amenaza se trató en este caso de WCry o WannaCry. Esta amenaza se reportó por primera vez en Marzo de 2017 y cifraba los archivos dejándole como extensión “.wcry”. Este dato en conjunto con otros nos pueden dar un indicio de que la amenaza que se detectó ayer es una variante de WCry, ya que se detectan cambios respecto a la versión original, pero pertenece a la misma familia ya que su comportamiento es similar.

Una vez identificada la familia, se puede tratar de buscar si existe ya algún tipo de programa que permita descifrar los archivos fácilmente. En este caso, no se encontró aun un programa que ayude a descifrar los archivos. También se trata de determinar si la amenaza se trata de un ataque dirigido a una víctima particular o si es un ataque masivo. En este caso, se pudo determinar que era un ataque masivo. El siguiente paso es encontrar indicadores que nos puedan ayudar a entender mejor cómo es que la amenaza logró entrar a los sistemas y cómo fue que las soluciones de seguridad no lo pudieron detectar o frenar a tiempo. En este caso, se lograron encontrar indicadores (hashes, bitcoin wallet, etc.) que nos permitieron crear reglas de YARA para poder alertarnos sobre cualquier muestra subida a internet que esté vinculada con este ataque. Así, se pudieron estudiar las muestras y entender mejor cómo funcionaba. Algo importante a tener en cuenta también, es tomar una computadora infectada y fijarse el log de eventos para detectar cualquier actividad sospechosa. En este caso, se pudo determinar en qué momento se dieron las actividades sospechosas y como estaba corriendo la amenaza (corría como un servicio con accesos privilegiados).

Teniendo las muestras, se realizaron análisis para determinar cómo funciona la amenaza y se pudo observar que había muestras que solamente cifraban la información, y otras muestras que trataban de conectarse a un dominio particular y luego cifraban la información.


Esto nos dio la pauta de que se trataba de un malware que tenía dos componentes; que no era puramente un ransomware sino que había otro módulo que realizaba otras acciones, y este módulo tenia embebido el ransomware que luego era “droppeado” en el sistema.

Realizando análisis sobre este dropper se pudo determinar que lo que estaba haciendo es explotar la vulnerabilidad antes mencionada; el servicio corría en los sistemas en busca de nuevos máquinas para explotar y droppear el ransomware. El dominio era utilizado para decidir si iba a infectar o no los sistemas con el ransomware. Primero realizaba un GET al dominio y si no se podía conectar, comenzaba la infección. Si no, no infectaba los sistemas con el ransomware. Lo que sucedió, es que este dominio estaba sinkholeado (caído) entonces al tratar de realizar la comunicación y no encontrar respuesta, infectaba los sistemas.  Afortunadamente, un investigador de seguridad registró el dominio, evitando que muchos otros sistemas que eran vulnerables fueran víctimas de esta infección. A esta medida se la menciona “Kill Switch”.


Esta medida es conocida ya que también la implemento un malware conocido como Necurs y se cree que se la utiliza como medida anti-sandbox. Al analizar una amenaza que se conecta a una URL en un sandbox, lo que sucede es que si la URL está registrada o no, el sandbox responde igual, por lo cual la amenaza se podría dar cuenta fácilmente si está siendo sandboxeada. Al registrar este dominio, lo que sucedió es que se generó este efecto: La amenaza al recibir una respuesta de ese dominio, pudo interpretar que estaba siendo sandboxeada con lo cual se finalizaba en vez de infectar el sistema.

Desafortunadamente, si los sistemas usan un proxy, no van a poder encontrar el dominio con lo cual se infectarían. A su vez, hay investigadores que encontraron variantes de esta amenaza que no cuenta con el “Kill Switch” por lo cual si no están protegidos, se infectarían de todas formas.

Entendiendo ya como funciona la amenaza, habiendo hecho todo este trabajo de Threat Intelligence, se pueden entonces decidir qué medidas tomar al respecto. Las medidas a tomar dependen de cada organización, la cual evaluará que decide perder o ganar a corto plazo para poder erradicar la amenaza. Algunas de las medidas que se podrían haber tomado incluyen aplicar el parche pero sin conectar la computadora a la red infectada, ya que el exploit infectaría la computadora antes que el parche sea implementado, con lo cual esto se debería hacer en una red limpia o mediante un dispositivo como un pendrive de manera offline. Esta medida evita que los sistemas que no fueron vulnerados se infecten, pero para aquellos que ya fueron vulnerados no sirve. Otras medidas incluyen bloquear puertos (con la consecuencia de perder funcionalidad en los sistemas), crear reglas con los indicadores para que una vez detectados puedan bloquearse, etc.

Para finalizar, es importante reflexionar sobre el ataque, el cual tuvo lugar gracias a que una herramienta desarrollada por la NSA, que mientras estuvo en sus manos no tuvo trascendencia y que luego de que fuera propagada masivamente cause semejantes estragos.

Esperemos que este suceso haya servido para concientizar a la gente respecto a la importancia de aplicar medidas de seguridad en sus sistemas, y que no hay una sola forma de resolver las cosas.

Autor: Gabriela Nicolao.
https://twitter.com/rove4ever

No hay comentarios.:

Publicar un comentario