Una publicación de Ian Beer de Google Project Zero publicada ayer por la noche envió a la comunidad de seguridad tambaleándose. Según Beer, un pequeño conjunto de sitios web había sido pirateado en febrero y se estaban utilizando para atacar iPhones e infectarlos con malware. Estos sitios, que reciben miles de visitantes por semana, se usaron para distribuir malware iOS durante un período de dos años.

Historial de infecciones de iOS

Históricamente, iOS nunca ha estado completamente libre de malware, pero en su mayoría se ha limitado a uno de dos escenarios: ya sea que rompas tu dispositivo, lo hackees para eliminar las restricciones de seguridad e instales algo malicioso como resultado, o fuiste el objetivo de un adversario de estado nación. Un ejemplo clásico de esto último fue el caso de Ahmed Mansoor , en el que fue atacado con un mensaje de texto en un intento de infectar su teléfono con el malware de la NSO, ahora conocido como Trident .

La dificultad de infectar un iPhone es que requiere algún tipo de vulnerabilidad de día cero (es decir, desconocida para la comunidad de seguridad en el momento de su lanzamiento), y estas vulnerabilidades pueden valer $ 1 millón o más en el mercado abierto. Las compañías como Zerodium los comprarán, pero el uso generalizado de tales vulnerabilidades los «quema», lo que hace más probable que Apple se entere de su existencia y aplique soluciones.

Esto es exactamente lo que sucedió en el caso de Trident: un mensaje de texto torpe a un periodista que ya era cauteloso resultó en tres vulnerabilidades separadas de un millón de dólares que se descubrieron y repararon.

Por lo tanto, las infecciones de malware de iPhone siempre se vieron como problemas que no afectaron a la gente promedio. Después de todo, ¿quién gastaría $ 1 millón o más para infectar a las personas, a menos que la ganancia fuera mayor que el costo potencial? Nunca hubo ninguna garantía, por supuesto, y los hallazgos de Beer han alterado esa sabiduría convencional.

Mecanismo de infección

Según Beer, los sitios web en cuestión «se estaban utilizando en ataques indiscriminados de pozos de agua contra sus visitantes», utilizando 14 vulnerabilidades diferentes en iOS que se combinaron en cinco cadenas de ataque diferentes.

Una cadena de ataque es una serie de dos o más vulnerabilidades que se pueden usar juntas para lograr un objetivo en particular, generalmente la infección del sistema de destino. En tales casos, una de las vulnerabilidades por sí sola no es suficiente para lograr el objetivo, pero la combinación de dos o más lo hace posible.

Entre las vulnerabilidades utilizadas, solo se mencionó que dos todavía eran de día cero en el momento del descubrimiento (CVE-2019-7286 y CVE-2019-7287). Apple corrigió esto en el lanzamiento de iOS 12.1.4 el 7 de febrero. Los 12 restantes no eran días cero en ese momento, lo que significa que ya eran conocidos y Apple ya los había parchado. Las diversas cadenas de ataque fueron capaces de infectar dispositivos que ejecutan iOS 10 hasta iOS 12.1.3.

Sobre el contenido de seguridad de iOS 12.1.4

Para los de mentalidad técnica, Beer ha incluido descripciones excelentes y muy detalladas de cada cadena de ataque. Sin embargo, lo importante es que cada una de estas cadenas de ataque fue diseñada para colocar el mismo implante en el dispositivo, y es ese implante (el malware del iPhone) en el que nos centraremos aquí.

iPhone malware / comportamiento del implante

El implante de malware de iPhone, al que no se le ha dado un nombre, puede escapar del entorno limitado de iOS y ejecutarse como root, lo que básicamente significa que ha pasado por alto los mecanismos de seguridad de iOS y tiene el más alto nivel de privilegios.

El implante se comunica con un servidor de comando y control (C&C) en una dirección IP codificada sobre HTTP sin cifrar. Además de cargar datos en el servidor, también puede recibir varios comandos del servidor.

systemmail  : upload email from the default Mail.app
device      : upload device identifiers
               (IMEI, phone number, serial number etc)
locate      : upload location from CoreLocation
contact     : upload contacts database
callhistory : upload phone call history 
message     : upload iMessage/SMSes
notes       : upload notes made in Notes.app
applist     : upload a list of installed non-Apple apps
keychain    : upload passwords and certificates stored in the keychain
recordings  : upload voice memos made using the built-in voice memos app
msgattach   : upload SMS and iMessage attachments
priorapps   : upload app-container directories from hardcoded list of
                third-party apps if installed (appPriorLists)
photo       : upload photos from the camera roll
allapp      : upload container directories of all apps
app         : upload container directories of particular apps by bundle ID
dl          : unimplemented
shot        : unimplemented
live        : unimplemented

Esta lista de comandos revela una lista aterradora de capacidades. Entre otras cosas, el malware de iPhone es capaz de robar todos los llaveros, fotos, mensajes SMS, mensajes de correo electrónico, contactos, notas y grabaciones. También puede recuperar el historial completo de llamadas, y es capaz de hacer un monitoreo en tiempo real de la ubicación del dispositivo.

También incluye la capacidad de obtener las transcripciones de chat no cifradas de varios de los principales clientes de mensajería cifrada de extremo a extremo , incluidos Mensajes, Whatsapp y Telegram. Deja que eso se hunda por un minuto. Si está infectado, todos los mensajes cifrados no solo son recopilados por el atacante, sino que se transfieren en texto claro a través de Internet.

¿Qué hago ahora? 😱

La mala noticia es que aún no sabemos qué sitios web se vieron afectados, por lo que es imposible saber quién pudo haber sido infectado con este misterioso malware de iPhone. Eso está causando una gran cantidad de miedo entre los conscientes del problema.

Afortunadamente, no hay necesidad de entrar en pánico en este momento. Estas vulnerabilidades han sido parcheadas desde hace bastante tiempo. Además, el implante es realmente incapaz de permanecer persistente después de un reinicio. Esto significa que cada vez que se reinicia un iPhone infectado, como cuando se instala una actualización de iOS, por ejemplo, se retira el implante. (Por supuesto, un dispositivo vulnerable siempre se puede volver a infectar visitando un sitio afectado).

Debido a esto, cualquier dispositivo que ejecute iOS 12.1.4 no solo es inmune a estos ataques particulares, sino que tampoco puede infectarse más, debido al reinicio al instalar 12.1.4 (o posterior). Es poco probable que alguien siga infectado en este momento, a menos que nunca actualice o reinicie su teléfono. Si le preocupa que pueda estar infectado, simplemente instale la última actualización de iOS, que también reiniciará el teléfono y eliminará el malware, si está presente.

Si tiene un teléfono que sospecha que podría estar infectado, parece que hay una prueba fácil para ver si es así, pero tendría que hacerlo antes de reiniciar, ya que el malware debe estar activo. (Descargo de responsabilidad: sin tener una copia del implante, no he podido verificar esto personalmente ni encontrar a nadie más que haya podido hacerlo).

Primero, conecte el dispositivo afectado a una Mac a través de un cable Lightning (o, en el caso de un iPad Pro, USB-C).

A continuación, abra la aplicación Consola en la Mac, que se encuentra en la carpeta Utilidades en la carpeta Aplicaciones.

En la consola, ubique el teléfono en la lista Dispositivos y selecciónelo.

En este punto, verá que los mensajes de registro del dispositivo iOS comienzan a desplazarse en el panel de la derecha. Aunque la consola no le mostrará mensajes pasados, si monitorea, dentro de los 60 segundos o menos, un dispositivo iOS infectado debe generar mensajes que contengan ciertas frases, como «uploadDevice», «postFile success» y «timer trig.» se puede encontrar una lista de posibles cadenas para buscar en el desmontaje del implante de Beer ; en cualquier lugar, el código muestra un comando NSLog, que representa un mensaje que se repetirá en el registro.

¿Quién fue afectado?

En este punto, es imposible saber quién es responsable o quién fue infectado, sin más información, como los nombres de los sitios comprometidos.

El artículo de Beer comienza diciendo que el malware no se dirigió a personas específicas:

Los sitios pirateados se estaban utilizando en ataques indiscriminados de pozos de agua contra sus visitantes, usando iPhone 0-day.  

No hubo discriminación objetivo; simplemente visitar el sitio pirateado fue suficiente para que el servidor exploit ataque su dispositivo, y si tuvo éxito, instale un implante de monitoreo.

Ian Beer, https://googleprojectzero.blogspot.com/2019/08/a-very-deep-dive-into-ios-exploit.html

Esto deja las cosas un poco abiertas a la interpretación. Ciertamente parece que el malware no estaba dirigido a individuos. Sin embargo, eso no significa necesariamente que no fue dirigido.

Como ejemplo, en los ataques a los pozos de agua utilizados en los recientes ataques contra Coinbase y otras compañías de criptomonedas, usando un día cero de Firefox, muchas personas visitaron la página que contiene el exploit. Sin embargo, solo un puñado fue seleccionado por los scripts maliciosos para ser infectados.

Claramente, ese tipo de focalización no ocurrió en este caso. Sin embargo, eso no significa necesariamente que el ataque no haya sido dirigido a un grupo particular de personas que probablemente visiten los sitios pirateados. De hecho, ese es el modus operandi típico para un ataque a un pozo de agua: un sitio que probablemente sea visitado por el grupo objetivo se ve comprometido y se utiliza para propagar malware. Tal cosa sucedió en 2013, cuando los atacantes comprometieron un sitio web de desarrolladores con un exploit basado en Java, infectando a los desarrolladores de muchas compañías importantes, incluida Apple, con el malware OSX .

Cerca del final del artículo, dice:

La realidad sigue siendo que las protecciones de seguridad nunca eliminarán el riesgo de ataque si estás siendo atacado. Ser objetivo podría significar simplemente haber nacido en una determinada región geográfica o ser parte de un determinado grupo étnico. 

Ian Beer, https://googleprojectzero.blogspot.com/2019/08/a-very-deep-dive-into-ios-exploit.html

Algunos han interpretado esto como una pista de que las personas dentro de una determinada región o grupo étnico fueron blanco de este ataque, pero mi lectura es que esto es simplemente un consejo general sobre lo que significa que alguien sea «objetivo», en el contexto más amplio de discusión sobre el malware dirigido contra el no dirigido.

Mi opinión personal, que bien podría estar equivocada, es que es probable que se trate de un ataque dirigido contra un grupo particular de personas, y que probablemente fue el trabajo de un estado-nación. China ha utilizado con frecuencia técnicas como ataques de pozos de agua, cargas selectivas en documentos de Microsoft Word y campañas de correo electrónico dirigidas con archivos adjuntos maliciosos contra el pueblo uigur.

No pretendo dar a entender que China sea el culpable, ya que eso no puede conocerse con la información actualmente disponible. Este es simplemente un ejemplo para señalar que este podría ser un incidente similar, perpetrado por un país que está utilizando técnicas similares. Por otra parte, también puede no ser. El tiempo con suerte lo dirá.

Trascendencia

Aunque la amenaza de este incidente en particular ha pasado, esta fue una revelación reveladora. Finalmente, nada ha cambiado realmente. Este tipo de ataque siempre fue una posibilidad; simplemente no había sucedido todavía. Ahora que lo ha hecho, la gente no verá el iPhone de la misma manera.

Sigo pensando que el iPhone es el teléfono más seguro del planeta (sin contar los dispositivos oscuros o clasificados que solo son seguros porque pocas personas los tienen). Sin embargo, siempre hay vulnerabilidades, y es muy posible que este tipo de ataque pueda estar ocurriendo en este momento, en otro lugar, contra la versión actual de iOS.

También vale la pena señalar que la mayoría de estas vulnerabilidades no eran realmente días cero en el momento de su descubrimiento. Muchas personas nunca actualizan sus dispositivos y, como resultado, los días cero no siempre son necesarios. Siempre se recomienda actualizar a la última versión de iOS, y habría protegido contra todas las cadenas de ataque menos una hasta el 7 de febrero, y todas ellas después.

La naturaleza extremadamente cerrada de iOS significa que cuando aparece un malware como este, no hay forma de que las personas sepan si sus dispositivos están infectados o no. Si este malware fuera capaz de permanecer persistente, y si no filtrara cadenas en los registros, sería más difícil identificar si un iPhone estaba infectado, y esto conduciría a situaciones peligrosas.

Aunque Apple no permite el software antivirus en iOS, es necesario que haya algún medio para que los usuarios verifiquen sus dispositivos en busca de amenazas conocidas. ¿Quizás algo relacionado con dispositivos desbloqueados conectados por cable a máquinas confiables? Si tal cosa fuera posible, este ataque probablemente no hubiera pasado desapercibido durante dos años.