Pegasus está de moda. En una misma semana hemos visto este malware asociado al supuesto espionaje de líderes independentistas catalanes, Pedro Sánchez y Margarita Robles, y a pesar de su larga historia de infecciones célebres, no hay un modo sencillo de detectar si tienes Pegasus en el móvil, ¿por qué?
Siendo una herramienta tan peligrosa, sería de esperar que existiera una forma de detectar si tienes Pegasus en el móvil y, de ser así, poder tomar medidas al respecto. Han pasado ya unos seis años desde la primera vez que oímos hablar de Pegasus y sigue sin existir tal herramienta sencilla de detección. El motivo para ello es en sí una de las principales virtudes de Pegasus: pasar desapercibido.
La infección es "silenciosa"
Uno de los documentos más completos que tenemos sobre cómo funciona Pegasus es este informe de Amnistía Internacional en el que se detalla que el modo preferido por el cual Pegasus entra en el móvil de sus víctimas es mediante un SMS con un enlace malicioso, generalmente camuflado para dar apariencia de ser un enlace inofensivo.
Por ejemplo, la víctima recibe un SMS con un enlace a Yahoo.com que, al pulsarlo, redirige a una dirección web con el código malicioso. Es un ataque más sofisticado que un simple mensaje con phising de toda la vida, pues pueden complementarse con torres de telefonía falsas o equipos externos en el operador móvil que interceptan y llevan a cabo la redirección de un enlace válido a una web distinta.
Este primer enlace comienza la cadena de eventos que, de ser satisfactoria, activará las herramientas de espía remota en el móvil. Lo más relevante de todo el asunto es que todo esto funciona en segundo plano y sin que haya ninguna pista visual para el usuario del móvil de que este ha sido infectado, que seguirá usando el dispositivo como si nada.
Se aprovecha de fallos de seguridad
El primer paso para que el software Pegasus empiece a espiar el móvil es la escalada de privilegios para obtener permisos de administrador y poder llevar a cabo sus labores de espionaje. Esto es algo que no es posible de forma "natural" en los móviles, por lo que el malware aprovecha fallos de seguridad en el dispositivo que todavía no han sido parcheados.
Tanto Google como Apple parchean periodicamente los errores críticos en sus sistemas operativos, pero estos fallos de seguridad que sirven como puerta de entrada para Pegasus no son siempre conocidos o el parche tarda en llegar al móvil de la víctima potencial. Con más de un lustro de vida, Pegasus se va adaptando a los errores críticos que siguen sin parchear y, por tanto, hacen más difícil su detección que si se basara en un único exploit. Por ejemplo, Amnestía Internacional detalla cómo Pegasus usó en años sucesivos exploits en Apple Photos, Apple Music y iMessage de Apple.
Pegasus no deja (casi) rastros
Uno de los mayores problemas de detección de Pegasus es que apenas deja rastros de que estuvo en un móvil y espiando su contenido. La única forma de saber si Pegasus estuvo en un móvil es mediante pequeños rastros que se quedan en el móvil, como es el caso de una base de datos en la cual iOS guarda los procesos del móvil que se han conectado a la red. Y, aún revisando esa lista, el proceso inicial de Pegasus aparece bajo el nombre bh
, que pasa desapercibido.
Los restos de Pegasus los obtenemos de segunda mano, en registros del sistema, pero no hay un archivo único o heurística que se pueda usar para identificar a Pegasus de un plumazo. En Android, además, se añade el problema de una fragmentación mayor de versiones y capas que complican enormemente encontrar estas pistas de que Pegasus pasó por el móvil, pues en muchos casos ni siquiera hay registros que consultar.
Por si esto fuera poco, las últimas versiones de Pegasus no mantienen sus binarios de forma persistente en el almacenamiento del móvil, por lo que para acceder a ellos es necesario hacer jailbreak sin reiniciar, para poder acceder a ellos mientras siguen en la memoria volátil.
Pegasus se camufla
Además de dejar pocos rastros en el móvil, el software de Pegasus intenta eliminar los pocos rastros que deja en el teléfono. Por ejemplo, intenta eliminar el nombre de sus procesos maliciosos de las bases de datos que inmortalizan el uso de datos en iOS. No obstante, esta eliminación de las pruebas no es a día de hoy perfecta y produce ciertas incongruencias entre varias tablas que sirven como indicios de que el móvil puede haber sido infectado.
Para dificultar todavía más la detección, Pegasus camufla sus procesos bajo nombres muy similares a los de procesos legítimos de móvil, haciendo difícil distinguirlos a no ser que se preste especial atención. Estos son algunos ejemplos:
Proceso de Pegasus |
Proceso de iOS |
ABSCarryLog |
ASPCarryLog |
aggregatenotd |
aggregated |
ckkeyrollfd |
ckkeyrolld |
com.apple.Mappit.SnapshotService |
com.apple.MapKit.SnapshotService |
com.apple.rapports.events |
com.apple.rapport.events |
CommsCenterRootHelper |
CommCenterRootHelper |
Diagnostic-2543 |
Diagnostic-2532 |
eventsfssd |
fseventsd |
fmld |
fmfd |
JarvisPluginMgr |
JarvisPlugin |
launchafd |
launchd |
MobileSMSd |
MobileSMS |
nehelprd |
nehelper |
pcsd |
com.apple.pcs |
PDPDialogs |
PPPDialogs |
ReminderIntentsUIExtension |
RemindersIntentsUIExtension |
rlaccountd |
xpcroleaccountd |
roleaccountd |
xpcroleaccountd |
No es un malware masivo, sino personalizado
Por último, no podemos olvidarnos de que Pegasus no es un virus, sino una herramienta de espionaje tremendamente avanzada. Detrás no hay un grupo de personas en capucha tecleando código, sino una empresa de tecnología israelí con más de 500 empleados. Los clientes de NSO Group han estado hasta ahora siempre asociados a un gobierno, con el objetivo de espiar a una persona o colectivo concreto.
Por un lado, esto significa que salvo que algún gobierno tenga cierto interés en tu persona, probablemente no tengas mucho que preocuparte por Pegasus. Por otro lado, esto también significa que hay menos muestras de Pegasus para analizar y aquellas que existen están en los móviles de personas importantes, de difícil acceso para los investigadores de seguridad.
Hay una herramienta para "detectarlo", pero...
Teniendo en cuenta todo lo anterior, es normal que no exista una herramienta o aplicación que detecte si tu móvil tiene Pegasus con pulsar un botón. Al fin y al cabo, en la mayoría de los casos el único rastro que queda de este software espía son pequeños indicios forenses que además no son nada fáciles de obtener: requerirían que la herramienta tuviera también acceso prigilegiado al teléfono.
La única herramienta que tenemos al respecto es el Mobile Verification Toolkit de Amnistía Internacional, de código abierto y disponible en GitHub, pero que nos avisa de que "es una herramienta forense destinada a investigadores y tecnólogos". La herramienta es compleja, complicada de usar y no te dirá sí o no con pulsar un botón, sino que te ayuda a extraer indicios forenses de que Pegasus está o estuvo en el móvil.
Para ello, en un iPhone puede analizar una copia de seguridad de iTunes o un volcado completo del sistema (con Jailbreak), mientras que en Android las comprobaciones son mucho más superficiales y se llevan a cabo por ADB y buscando rastros en los mensajes SMS del móvil. Después de extraer la información del sistema, se compara con la lista de indicadores de compromiso actualizada para encontrar posibles infecciones.