jueves, febrero 13, 2014

¿De qué lugar del mundo es el creador de este malware?

Las apps de Android en formato apk y los Applets Java en formato Jar son ficheros comprimidos en ZIP que llevan la lista de ficheros con la fecha en la que se crearon los archivos. Y esa fecha está puesta con la hora del sistema (y por tanto su configuración horaria). Además, en esos ficheros empaquetados están también la firma con el certificado que se ha utilizado para la firma, y en la fecha del certificado se utiliza la hora UTC.

Figura 1: Fechas de modificación en un fichero APK malicioso de Android

Así que, juntando esas dos fechas, y asumiendo que los creadores de malware y amigos del fraude online utilizan sus certificados autofirmados por eso de no gastar dinero en un certificado firmado por una CA que te van a bloquear en cuanto se descubra que es una app maliciosa y que firman los applets malicioso y los apk en el momento en que compilan la versión final, se podría saber en que franja horario está configurada la maquina de nuestro amigo el creador de este crapware.

Figura 2: Información en formato ASCII de la firma de un apk malicioso

Y así nació en el laboratorio de Eleven Paths la herramienta GmtCheck que realiza el cálculo. Lee un fichero JAR o APK y, si está firmado:
- Intentará extraer la hora de creación (UTC) de un certificado.
- Intentará leer la hora de modificación del último fichero creado en la compilación (normalmente el fichero .sf en el directorio meta-inf).
- Hará las cuentas y dirá en qué zona horaria vive el desarrollador, asumiendo que la creación del certificado y la compilación han ocurrido en el mismo momento (minuto arriba, minuto abajo) y que el desarrollador no ha modificado su hora de sistema.
Figura 3: Esuqema de fechas localizadas en ficheros y certificados

Por supuesto hay muchas cosas que pueden ser cambiadas, como que el desarrollador tenga la máquina en otra franja horaria distinta a la que vive o que firme a de forma separada en el tiempo, pero las pruebas que se han hecho con muchas apps muestran que suele funcionar así.

Figura 4: Uso de GmtCheck son una apk maliciosa

Esta herramienta está disponible junto con el resto de las que se van publicando en la web del laboratorio de Eleven Paths, y en el blog de Eleven Paths y el canal Twitter de Eleven Paths se van publicado las pruebas que se hacen con todas ellas entre otros muchos temas.

Actualización: ¿La utilidad de esta aplicación en modo comandos? Pues os recomiendo la lectura de PowerShell, la navaja suiza de los administradores y conectéis los puntos buscando el poder del scripting para ganar inteligencia en la lucha contra el malware.... ¿llegó alguna idea?

Saludos Malignos!

7 comentarios:

  1. Me parece algo initil este .exe, para nada interesante o util, me extraña que desde 11Paths se elaboren cosas como estas para hacer "monton", con todo respeto al blog y a la empresa me parecio algo totalmente inutil.

    ResponderEliminar
  2. Hay un error en el texto. El formato es ZIP, y el programa es PKZIP, pero PKZIP no es el único programa que puede crear ficheros en formato ZIP.

    Deberías cambiar PKZIP por ZIP.

    Saludos.

    ResponderEliminar
  3. @Gonza, eso es que no has entendido el poder del scripting. Te recomiendo el libro de PowerShell y que unas algún punto con GmtCheck en mente }:)

    Libro PowerShell


    Saludos!

    ResponderEliminar
  4. y aora podrias explicarnos porque la version c# esta obfuscada y la de python no?

    ResponderEliminar
  5. @Victor. GmtCheck ha pasado por el equipo de Q&A de Eleven Paths que usa un procedimiento estándar para el firmado de la apps .Net que lleva ofuscación y que no nos ha parecido necesario. Si quieres entretenerte en desofuscarlo, podrás ver que hace lo que explica el post y se ve en el código de Python.

    Saludos!

    ResponderEliminar
  6. Chema, has pensado en poner la herramienta online? de esa forma los que usamos *nix no tenemos que montar una máquina virtual con windows.

    Cordial saludo

    ResponderEliminar
  7. Al descargarla encontrarás que además del exe, también hay un script en python que funciona en cualquier plataforma.

    ResponderEliminar