Usualmente se ha reconocido a la evaluación de aplicaciones de Apple como un proceso excelente para prevenir que el malware llegue a su tienda de aplicaciones, sin embargo hace un par de semanasse comprobó que incluso el mejor sistema de defensa puede ser derrotado por hackers suficientemente creativos.
Primero, el investigador de seguridad Mark Dowd, de Azimuth Security, reveló una brecha de seguridad en el servicio para compartir archivos AirDrop, la cual permitía instalar software malicioso en un iPhone. Además, se presentaron reportes de que aplicaciones chinas ofrecidas en la Tienda Oficial de Aplicaciones de Apple contenían código malicioso diseñado para robar información de los usuarios de iPhones.
De acuerdo a Palo Alto Networks, este último incidente involucraba a 39 aplicaciones conocidas y a cientos de millones de usuarios. Al parecer, este código malicioso recolectaba y transmitía datos del dispositivo y las aplicaciones a un servidor C2 con HTTP. Los nombres de dominio del servidor C2 estaban relacionados con el troyano de iOS KeyRaider, el cual se supo afectaba a dispositivos modificados (jailbroken). Un análisis más profundo reveló que el código también era capaz de recibir comandos del servidor atacante para desplegar mecanismos más complejos de captura de credenciales de usuario.
Cómo este serio ataque superó el estricto proceso de evaluación de Apple
En 1984, en el discurso de aceptación del ACM Turing Award, el premio nobel de las ciencias de la computación, titulado “Reflexiones sobre Confiar en la Confianza” (“Reflections on Trusting Trust”), Ken Thompson presentó El Hackeo Ken Thompson. En este corto documento, Ken Thompson habla sobre la facilidad para modificar un compilador y lograr que acepte nuevas secuencias de escape, o incluso un troyano. Thompson concluye con una reflexión sobre algo que todavía hoy, 30 años después, es de gran relevancia, la confianza.
El hackeo Ken Thompson puede ser la primera referencia documentada de malware en compilador, el mismo mecanismo que usaron los hackers para insertar código malicioso en la Tienda de Aplicaciones de Apple.
“En vista de que es un reto superar al equipo de seguridad de Apple, los hackers tomaron un camino diferente. Insertaron el código malicioso en una de las aplicaciones más ampliamente utilizadas por los desarrolladores, XCode, el entorno integrado de desarrollo de Apple (IDE) para crear aplicaciones de iOS y Mac OSX”, afirmó Javier Vargas Research Manager en Easy Solutions.
Cada aplicación se vincula a un conjunto de librerías que le permiten a las aplicaciones interactuar con el sistema operativo. Esto aplica para todas las plataformas, sin importar el lenguaje o el marco utilizado. Usualmente estas librerías se incluyen con los kits de desarrollo de software (SDKs o IDEs), y los desarrolladores confían en ellos para construir sus aplicaciones. Los desarrolladores conscientes de la seguridad solo descargan SDKs o IDEs desde los sitios web legítimos de los fabricantes, pero ciertas limitaciones para al acceso a Internet en China han obligado a los desarrolladores a recurrir a otros medios y descargar estos paquetes desde servicios para compartir archivos.
En este caso, los criminales tomaron versiones legítimas de XCode y reemplazaron partes de las librerías con su propio código, para luego compartirlas en foros chinos de desarrolladores.
El truco es reemplazar o añadir archivos objeto Mach-O usados por el enlazador LLVM al construir una aplicación de iOS. Un archivo objeto contiene código objeto maquina en formato reubicable, el cual no se ejecuta sino hasta que es enlazado a un archivo ejecutable. Estos archivos son utilizados por el enlazador sin mayor verificación, tan solo que se adhieran al formato correcto. Si un hacker logra reemplazar estos archivos, podrá añadir código malicioso sin alterar el comportamiento normal de la aplicación, permitiendo así que el malware no sea detectado en el proceso de evaluación.
Y aunque los entornos sandbox de iOS y Mac previenen que el código alterado cause mayores daños al teléfono, las aplicaciones infectadas están de todas formas en capacidad de leer información de contacto y datos de ubicación, acceder a la cámara del dispositivo y obtener cualquier tipo de permiso como lo haría una aplicación genuina. Si se tiene en cuenta la tendencia en que aplicaciones simples requieren cada vez más permisos, podrá hacerse a una idea del alcance del ataque. Por ejemplo, la popular aplicación WeChat de Tencent fue una de las aplicaciones infectadas.
“Es fácil culpar a la estupidez humana (como ya muchos lo han hecho), pero la seguridad sigue siendo acerca de nosotros, por lo cual las fallas humanas seguirán siendo un problema de seguridad. ¿Cuántos de nosotros hemos descargado add-ons de productividad para nuestros IDEs, navegadores, o incluso para Office, sin tener en cuenta las verificaciones recomendadas?”, añadió Javier Vargas.
Estos ataques presentan una amenaza más grande, ya que son capaces de evadir la protección basada en la firma del código. Si un atacante logra infiltrar el kit de desarrollo de un programador, el código será firmado legítimamente por dicho programador, a pesar de que en realidad contiene malware.
El tiempo dirá como los fabricantes reaccionarán ante este tipo de ataques. Algunos probablemente pedirán nuevas reglas de verificación para cada módulo objeto utilizado por los enlazadores, pero incluso si esto ocurre, solo será cuestión de tiempo antes de que estas también sean comprometidas. Al final de día todo se reduce a una cuestión de confianza.