Excelente explicación a nivel técnico de Sergio López en Twitter, de una de las últimas vulnerabilidades aprovechadas por Pegasus para infectar teléfonos iPhone con un "simple" (veremos que no tan simple) mensaje recibido en el sistema de mensajería de iMessage. La vulnerabilidad (ya solucionada) permitía hace apenas unos meses, infectar cualquier teléfono iPhone de última generación con todos los parches (y sin jailbreak) con sólo saber su número de teléfono o ID de Apple. Después de recibir el mensaje el teléfono quedaba automáticamente infectado.
¿Qué es Pegasus?
Pegasus es un software desarrollado por la compañía israelí NSO Group que permite hacerse con el control remoto de un dispositivo móvil sin que el usuario sea consciente de ello.
¿Cómo funciona Pegasus?
Las formas de que Pegasus acceda a un dispositivo móvil son varias. Por un lado, algunas que requieren la acción del usuario accediendo a un enlace que le ha podido llegar por SMS, WhatsApp, email, un mensaje.
Sin embargo, la forma de hackeo más empleada no requiere siquiera la acción del usuario. Según las declaraciones de Claudio Guarnieri, jefe del Laboratorio de seguridad de Amnistía Internacional, recogidas por OCCRP, la mayoría de los casos se dieron a través de “ataques cero-click” (Zero-click exploits en inglés) que se aprovechan de fallos en la seguridad de aplicaciones como iMessage, WhatsApp y FaceTime e instalan el spyware sin que el usuario intervenga. Simplemente con la recepción del mensaje o de la llamada, el dispositivo ya estaría infectado.
Una vez que Pegasus ha accedido al teléfono, lo que puede hacer en él sin que el usuario sea consciente es prácticamente ilimitado. Se puede controlar de forma remota activando la cámara y el micrófono del dispositivo sin necesidad de que estén en uso, así como la localización de su GPS. También permite hacerse con el contenido del smartphone accediendo a las contraseñas guardadas y entrando a las aplicaciones como WhatsApp, mensajes, emails o fotografías. Además, es capaz de grabar conversaciones telefónicas, pulsaciones en el teclado y la pantalla del dispositivo.
Más de 50.000 teléfonos infectados por Pegasus en cinco años
En total, más de 50.000 números de teléfono de 50 países diferentes pudieron ser infectados entre 2016 y 2021 por la compañía israelí NSO Group, supuestamente contratada por Estados a través de agencias de inteligencia, agencias de seguridad y cuerpos militares, según la propia empresa.
Según las informaciones publicadas por el consorcio de medios de comunicación coordinado por Forbidden Stories y Amnistía Internacional, entre las personas a las que se intentó infectar con el software Pegasus estaban, entre otros, periodistas, políticos, militares, activistas y ejecutivos. Además, el país al que pertenecían la mayor parte de objetivos es México, donde se contabilizaron más de 15.000 números de teléfono.
¿Cómo infecta Pegasus un iPhone usando iMessage?
A nivel técnico, la variante para iOS de Pegasus es una obra de arte de la ingeniería informática al alcance de muy, muy poquitos. Veamos algunos detalles del análisis que hizo Project Zero.
A deep dive into an NSO zero-click iMessage exploit: Remote Code Execution
El punto de entrada de Pegasus en iOS es iMessage. El atacante envía un GIF a la víctima y, sin que ésta tenga que hacer nada ("zero-click"), el smartphone empieza a procesar la supuesta imagen animada.
Pero ese GIF no es un GIF, sino un PDF. La biblioteca ImageIO es capaz de identificar correctamente el tipo de documento, indistintamente de su extensión, y de comenzar su renderizado.
El PDF está construido para explotar una vulnerabilidad (integer overflow) en el formato JBIG2 para preparar la memoria y tomar el control de la ejecución, en preparación de la siguiente parte del exploit.
Hasta ahora, el exploit es bastante convencional. Pero ahora viene el toque genial. La implementación del render de PDF de CoreGraphics no permite ejecutar JavaScript. Pero, el formato JBIG2 permite aplicar los operadores AND, OR, XOR y XNOR sobre regiones de memoria.
Algunos ya estaréis viendo por dónde van a ir los tiros. Pudiendo construir un circuitos lógicos con esos operadores, ¡es posible crear una máquina virtual! Y eso es exactamente lo que hace Pegasus.
Conviene aclarar que no estamos hablando de una máquina virtual en el sentido de hacer uso de virtualización por HW, tipo KVM, sino en el de construir una máquina con una arquitectura distinta a la nativa, emulada por software.
- Weird machine - Wikipedia
- https://en.wikipedia.org/wiki/Weird_machine
Pegasus utilizar dicha máquina virtual para ejecutar código (escrito específicamente para dicha máquina) que prepara el contexto para la ejecución del siguiente payload.
Este payload es que el orquesta el escape del sandbox, para luego descargar y ejecutar un binario obtenido del servidor de C&C (Command & Control).
- FORCEDENTRY: Sandbox Escape
- https://googleprojectzero.blogspot.com/2022/03/forcedentry-sandbox-escape.html
Como podéis ver, Pegasus es orfebrería pura. Una pieza de software muy sofisticada, que demuestra que los incentivos económicos para construir este tipo de malware son muy elevados, lo que permite hacer grandes inversiones en su investigación y desarrollo.
¿Se sabe si estas vulnerabilidades han sido corregidas en alguna versión de iOS?
Sí, en el artículo de Google Project dicen que en 14.8.1 se limitó el número de formatos que soporta IMTranscoderAgent y en 15.0 todo el procesado de adjuntos se movió a BlastDoor. Asimismo, en 15.1 se limitó la funcionalidad de NSExpressions para mitigar algunas estrategias de escape del sandbox.
Apple demandó a NSO Group, por el espionaje con Pegasus en 2021
Facebook intentó comprar el spyware Pegasus para espiar a ciertos usuarios
- https://www.documentcloud.org/documents/6824735-Declaration-of-Shalev-Hulio-in-Support-of.html
Fuentes:
https://www.newtral.es/software-pegasus-que-es-como-funciona/20220503/



No hay comentarios:
Publicar un comentario