jueves, marzo 24, 2016

No publiques tus certificados digitales en tus apps

Como ya os avancé en otro post, Tacyt está almacenando en el Big Data ahora mismo apps tanto del mundo iOS como del mundo Android, para que los analistas de seguridad puedan investigar en este mundo móvil. El número de cosas que se pueden encontrar es grande, y al tener indexado el contenido de las apps por todos sus campos, las técnicas de dorking permiten localizar muchos entornos vulnerables o débiles, no solo en la app, sino también en la infraestructura de backend.

Figura 1: No publiques tus certificados digitales en tus apps

En mi primer contacto con las apps de iOS busqué a ver si cosas básicas, como ficheros de contraseñas con passwords en texto claro que pudieran estar almacenados localmente con la app, se podían encontrar o no. El resultado, como ya sabéis por el artículo es que aparecen, por supuesto, al igual que aparecen en apps de Android.

Figura 2: Búsqueda de apps para iOS con ficheros .pfx en el contenido del paquete

He seguido realizando búsquedas mientras va creciendo el Big Data, y más o menos los errores que se pueden localizar no diferencian mucho entre lo que se hace en Android e iOS. En una de estas pruebas me dio por buscar si era posible hacerse con certificados digitales con la clave privada que pudieran estar almacenados localmente en alguna app de iOS, para lo que realicé una consulta tal y como podéis ver en la figura 2. La idea era localizar apps para iPhone o iPad que hubieran empaquetado un fichero con la clave pública y privada exportada en formato .pfx, algo que se suele hacer para salvaguardar un determinado certificado digital.

Figura 3: Fichero pfx dentro del contenido de una app

Como podéis ver, en la ruta local de la app, es decir, dentro del paquete aparece incluido el fichero PFX, por lo que cualquiera puede acceder a su contenido. En este caso, como es un fichero .ipa, basta con descargar el fichero, ponerle extensión .zip, descomprimir el contenido y, cuando aparezca la aplicación .app darle a la opción de "Mostar el contenido del paquete" desde un OS X. Ahí podremos acceder al fichero con la clave privada del certificado.

Figura 4: Acceso al fichero con el certificado digital

Como se puede ver, al tratar de acceder al certificado nos encontramos con la protección por contraseña que se puso durante el proceso de exportación, con lo que si queremos acceder a la posesión del archivo deberemos crackearla previamente.

Figura 5: Solicitud de contraseña para acceder al certificado digital

Por supuesto, a día de hoy existen multitud de herramientas para hacer este trabajo en local, en la nube, herramientas Open Source o suites profesionales como las de ElcomSoft que permiten hacer esta tarea. Es solo una cuestión de tiempo saber cuándo se podrá acceder al control del certificado. 

Figura 6: crackpkcs12. Una herramienta con el código fuente disponible para su análisis

Esto, habitualmente suele ser un problema a la hora de empaquetar una app para su distribución. Sucede en las aplicaciones webs en las que al sincronizar la carpeta local con la carpeta del servidor se suben ficheros sensibles no necesarios y, como veis, también sucede en el mundo de las apps móviles, por lo que hay que ser cuidadoso con lo que vas a poner tu paquete a distribuir, que alguno ha puesto hasta malware para Windows en una app de iPhone en el pasado. 

Saludos Malignos!

5 comentarios:

  1. Pero cumples o no cumples las politicas de google play? Y ya de paso las de apple? Porfavor responde. No es la primera vez que te pregunto y me evitas

    ResponderEliminar
  2. Gran post,muy interesante!

    ResponderEliminar
  3. Ni siquiera sabes si tus productos violan la politica? Que tipico de ti, no ser porque no me extraña

    ResponderEliminar
  4. @Careto, no, por supuesto. Lo hacemos como todas las empresas de seguridad del mundo, e incluso los investigadores http://www.elladodelmal.com/2014/06/playdrone-tokens-de-autenticacion-en.html. Cualquier duda, contacta con nosotros. https://www.elevenpaths.com/es/contacta-con-nosotros/index.html Saludos!

    ResponderEliminar
    Respuestas
    1. Hola, Señor Chema, ya veo que usted sabe sobre el tema, le preguntaré porque yo necesito saber y aprender algo.

      Puede decirme o explicar me ¿Como puedo crear un certificado para Android (CA o AC) y ya se cómo instalar le, pero necesito crear uno para practicar y yo mismo hacer una prueba de lo siguiente : de manera que al yo crearlo si pensamos como (" un malo") pues quiero hacer que mi certificado lleve algo así como un troyano escondido oculto, y pueda obtener yo información y control de aquel celular, o almenos información y que me envíe a mi correo de destino esa información en segundo plano.
      Eso es lo que necesito y le agradezco mucho su respuesta y gracias.

      Eliminar