La empresa de ciberseguridad Kaspersky publicó un informe público en junio de este año en el que afirmaba que los iPhone utilizados por algunos de los empleados de la empresa habían sido comprometidos. Los atacantes utilizaron múltiples vulnerabilidades altamente sofisticadas de cero clic para infectar iPhones y lograr un monitoreo continuo sin requerir ninguna interacción por parte de la víctima. Kaspersky denominó este incidente IOSTriangulación. Después de que se informaran a Apple las vulnerabilidades relevantes, Apple lanzó varias actualizaciones para solucionarlas a finales de junio.

Sin embargo, los detalles de las vulnerabilidades relevantes no se anunciaron en ese momento. Después de todo, las actualizaciones de iPhone llevan tiempo. Generalmente, los investigadores retrasarán la publicación de los detalles de las vulnerabilidades para evitar que los atacantes aprovechen la oportunidad de explotar las vulnerabilidades mientras algunos usuarios aún no hayan actualizado.

Ha pasado medio año desde que se publicó la vulnerabilidad. En el último Congreso de Comunicación del Caos, los investigadores del equipo de Kaspersky publicaron un informe detallado y detalles técnicos para compartir con otros investigadores de seguridad.

La vulnerabilidad de clic cero de iMessage explotada por Pegasus, del desarrollador de software espía comercial israelí NSO Group, ha sido considerada una de las más sofisticadas técnicamente, y el ataque de triangulación parece estar en el mismo nivel aterrador, dijo Kaspersky.

La siguiente es la cadena de ataque completa anunciada por Kaspersky, incluidas cuatro vulnerabilidades de día 0 utilizadas para obtener acceso root al dispositivo de la víctima:

1. El atacante envía un archivo adjunto de iMessage malicioso al usuario objetivo. Cuando el iPhone de la víctima recibe el mensaje, iMessage no enviará ningún recordatorio y procesará automáticamente el archivo adjunto;

2. Este archivo adjunto malicioso explota la vulnerabilidad de ejecución remota de código no documentado CVE-2023-41990 en la directiva de fuente ADJUSTTrueType exclusiva de Apple;

3. El código malicioso utiliza programación orientada a retorno/salto y múltiples etapas escritas en el lenguaje de consulta NSExpression/NSPredicate, y luego utiliza el entorno de biblioteca JavaScriptCore para realizar una escalada de privilegios;

4. La vulnerabilidad de JavaScript explotada por el atacante fue ofuscada, lo que provocó que el código fuera ilegible. Sin embargo, los investigadores descubrieron que el atacante utilizó aproximadamente 11.000 líneas de código, principalmente para JavaScriptCore y operaciones de análisis de memoria;

5. El atacante utiliza la función de depuración de JavaScriptCore DollarVM ($vm) para obtener la capacidad de manipular la memoria de JavaScriptCore desde scripts y ejecutar API nativas;

6. Para admitir iPhones nuevos y antiguos, el atacante también creó una función de omisión que incluye un código de autenticación de puntero, que se puede usar en los iPhones más recientes;

7. Los atacantes aprovechan la vulnerabilidad de desbordamiento de enteros CVE-2023-32434 en el sistema de mapeo de memoria XNU para obtener acceso de lectura/escritura a nivel de usuario a toda la memoria física del dispositivo;

8. Los atacantes utilizan registros de E/S asignados en memoria del hardware para eludir la capa de protección de la página. Este problema se ha mitigado mediante CVE-2023-38606;

9. Cuando se explotan todas las vulnerabilidades, la vulnerabilidad de JavaScript puede hacer cualquier cosa contra el dispositivo, incluida la ejecución de software espía, pero el atacante elige:

a. Inicie el proceso IMAgent e inyecte una carga útil para borrar rastros de exploits en el dispositivo;

b. Ejecute el proceso de Safari en modo invisible y reenvíelo a la página web utilizada en la siguiente etapa del ataque;

10. La página web tiene un script para verificar a la víctima. Si la detección pasa, pasa a la siguiente etapa: exploit de Safari;

11. Safari explota CVE-2023-32435 para ejecutar shellcode;

12. El código shell ejecuta otro exploit de vulnerabilidad del kernel en forma de un archivo de destino Mach. Utiliza las mismas vulnerabilidades: CVE-2023-32434 y CVE-2023-38606. Esto es completamente diferente de la vulnerabilidad del kernel escrita en JavaScript. Sin embargo, el objetivo también se utiliza para operaciones de análisis de memoria, pero el atacante no utiliza la mayoría de las funciones en la etapa posterior;

13. El exploit obtiene privilegios de root y pasa a otras etapas, incluida la carga de software espía, etc.

Kaspersky dijo que los atacantes realizaron ingeniería inversa en casi todos los aspectos de la cadena de ataque, lo que muestra que los objetivos de los atacantes no son propósitos generales, es decir, el propósito principal puede ser en realidad el espionaje y los propósitos políticos.

El equipo de Kaspersky planea publicar más artículos sobre ataques de triangulación en 2024. Los usuarios que estén interesados ​​en este artículo deben leer el informe original de Kaspersky, que incluye un análisis de cada vulnerabilidad: https://securelist.com/operation-triangulation-the-last-hardware-mystery/111669/