XcodeGhost (y la variante XcodeGhost S) son versiones modificadas del entorno de desarrollo Xcode de Apple que se consideran malware . [1] El software ganó atención generalizada por primera vez en septiembre de 2015, cuando varias aplicaciones originarias de China albergaron el código malicioso. [2] Se pensó que era el "primer ataque a gran escala en la App Store de Apple ", [3] según la BBC . Los problemas fueron identificados por primera vez por investigadores de Alibaba , una empresa líder de comercio electrónico en China. [3] Más de 4000 aplicaciones están infectadas, según FireEye, muchas más de las 25 inicialmente reconocidas por Apple, [4] incluidas aplicaciones de autores fuera de China.
La empresa de seguridad Palo Alto Networks supuso que, como la velocidad de las redes era menor en China, los desarrolladores del país buscaron copias locales del entorno de desarrollo Xcode de Apple y encontraron versiones alteradas que se habían publicado en sitios web nacionales. Esto abrió la puerta para que el malware se insertara en aplicaciones de alto perfil utilizadas en dispositivos iOS . [5] [6]
Incluso dos meses después de los informes iniciales, la empresa de seguridad FireEye informó que cientos de empresas seguían usando aplicaciones infectadas y que XcodeGhost seguía siendo "un riesgo de seguridad persistente". [7] [8] La empresa también identificó una nueva variante del malware y la denominó XcodeGhost S; entre las aplicaciones que se infectaron se encontraban la popular aplicación de mensajería WeChat y una aplicación de Netease , Music 163. [9]
El 16 de septiembre de 2015, un desarrollador chino de iOS mencionó [10] en la red social Sina Weibo que un malware en Xcode inyecta código de terceros en aplicaciones compiladas con él.
Luego, los investigadores de Alibaba publicaron [11] información detallada sobre el malware y lo llamaron XcodeGhost.
El 17 de septiembre de 2015, Palo Alto Networks publicó varios informes sobre el malware. [12] [13] [14] [15]
Debido a la baja velocidad de descarga de los servidores de Apple, los desarrolladores chinos de iOS descargaban Xcode de sitios web de terceros, como Baidu Yun (ahora llamado Baidu WangPan), un servicio de almacenamiento en la nube alojado por Baidu, o conseguían copias de compañeros de trabajo. Los atacantes se aprovecharon de esta situación distribuyendo versiones comprometidas en dichos sitios web de alojamiento de archivos. [16]
Palo Alto Networks sospecha que el malware estaba disponible en marzo de 2015. [15]
El atacante utilizó un ataque de puerta trasera del compilador . La novedad de este ataque es la modificación del compilador Xcode. Según documentos filtrados por Edward Snowden , los investigadores de seguridad de la CIA de Sandia National Laboratories afirmaron que "habían creado una versión modificada de la herramienta de desarrollo de software propietaria de Apple, Xcode, que podría introducir puertas traseras de vigilancia en cualquier aplicación o programa creado con la herramienta". [17]
Las versiones conocidas de XcodeGhost agregan archivos adicionales [12] a la aplicación Xcode original:
XcodeGhost también modificó el enlazador para vincular los archivos maliciosos [15] a la aplicación compilada. Este paso se informa en el registro de compilación, pero no en el IDE de Xcode .
Tanto las aplicaciones de iOS como de macOS son vulnerables a XcodeGhost.
XcodeGhost comprometió la capa CoreServices, que contiene características y marcos muy utilizados por la aplicación. [18] Cuando un desarrollador compila su aplicación con una versión comprometida de Xcode, los CoreServices maliciosos se integran automáticamente en la aplicación sin el conocimiento del desarrollador.
Luego, los archivos maliciosos agregarán código adicional en las clases UIWindow y UIDevice. La clase UIWindow es "un objeto que administra y coordina las vistas que una aplicación muestra en la pantalla de un dispositivo". [19]
La clase UIDevice proporciona una instancia singleton que representa el dispositivo actual. A partir de esta instancia, el atacante puede obtener información sobre el dispositivo, como el nombre asignado, el modelo del dispositivo y el nombre y la versión del sistema operativo. [20]
XcodeGhost puede ser controlado remotamente a través de comandos enviados por un atacante desde un servidor de comando y control a través de HTTP. Estos datos se cifran utilizando el algoritmo DES en modo ECB . No solo se sabe que este modo de cifrado es débil, sino que también se pueden encontrar las claves de cifrado mediante ingeniería inversa. Un atacante podría realizar un ataque de intermediario y transmitir tráfico HTTP falso al dispositivo (para abrir un cuadro de diálogo o una aplicación específica, por ejemplo).
Cuando se inicia la aplicación infectada, ya sea usando un iPhone o el simulador dentro de Xcode, XcodeGhost recopilará automáticamente información del dispositivo como:
Luego, el malware cifrará esos datos y los enviará a un servidor de comando y control . El servidor varía según la versión de XcodeGhost; Palo Alto Networks pudo encontrar tres URL de servidor:
El último dominio también se utilizó en el malware de iOS KeyRaider . [12]
XcodeGhost también es capaz de almacenar los datos escritos en el portapapeles de iOS cada vez que se inicia una aplicación infectada. El malware también es capaz de modificar estos datos, lo que puede resultar especialmente peligroso si el usuario utiliza una aplicación de gestión de contraseñas.
XcodeGhost también puede abrir URL específicas cuando se inicia la aplicación infectada. Dado que Apple iOS y macOS funcionan con el mecanismo de URL de comunicación entre aplicaciones [21] (por ejemplo, 'whatsapp://', 'Facebook://', 'iTunes://'), el atacante puede abrir cualquier aplicación instalada en el teléfono o la computadora comprometida, en el caso de una aplicación macOS infectada. Dicho mecanismo podría ser dañino con aplicaciones de administración de contraseñas o incluso en sitios web de phishing.
En su versión actual conocida, XcodeGhost no puede generar cuadros de diálogo de alerta en el dispositivo del usuario. [15] Sin embargo, solo requiere cambios menores.
Al utilizar una clase UIAlertView con la propiedad UIAlertViewStyleLoginAndPasswordInput, la aplicación infectada puede mostrar un cuadro de diálogo de alerta falso que parece una verificación de credenciales de usuario de Apple ID normal y enviar la entrada al servidor de comando y control.
Entre todas las aplicaciones chinas, se infectaron aplicaciones de mensajería instantánea, aplicaciones bancarias, aplicaciones de operadores móviles, mapas, aplicaciones de compraventa de acciones, aplicaciones de redes sociales y juegos. También se infectaron aplicaciones populares utilizadas en todo el mundo, como WeChat , una popular aplicación de mensajería instantánea, CamScanner , una aplicación para escanear documentos con la cámara del teléfono inteligente o WinZip .
El equipo Pangu afirmó que contó 3.418 aplicaciones infectadas. [22]
Fox-it, una empresa de seguridad con sede en los Países Bajos, informa que encontró miles de tráfico malicioso fuera de China. [23] [24]
Desde que se publicó el artículo de Alibaba y Palo Alto Networks , Amazon ha desmantelado todos los servidores que utilizaba XcodeGhost. Baidu también ha eliminado todos los instaladores maliciosos de Xcode de su servicio de almacenamiento en la nube.
El 18 de septiembre de 2015, Apple admitió la existencia del malware y comenzó a pedir a todos los desarrolladores con aplicaciones comprometidas que compilaran sus aplicaciones con una versión limpia de Xcode antes de enviarlas nuevamente para revisión.
El equipo Pangu lanzó una herramienta [25] para detectar aplicaciones infectadas en un dispositivo, pero al igual que otras aplicaciones antivirus, no se ejecutará en un dispositivo que no haya sido liberado . Apple no permite el acceso de aplicaciones antivirus a la App Store de iOS. [26]
Apple recomienda a los desarrolladores de Xcode que verifiquen [27] [28] su versión de Xcode y que siempre tengan Gatekeeper activado en su máquina.
XcodeGhost S: A New Breed Hits the US