Exploit « exceptionnellement avancé » a exposé les iPhones au spyware pendant des années

spyware

La société russe de cybersécurité Kaspersky révèle au grand jour un exploit pour les iPhones qu’elle a personnellement subi. Les chercheurs affirment qu’il s’agit de l’une des attaques les plus sophistiquées jamais réalisées.

En juin, Kasperksy a signalé qu’un spyware (logiciel espion) avait été découvert sur les iPhones de ses propres employés. Au même moment, un spyware similaire apparaissait sur les appareils des diplomates russes, laissant croire qu’il s’agissait d’une campagne orchestrée à grande échelle. Ces derniers mois, Kaspersky a partagé plus d’informations sur le logiciel espion et l’enquête est désormais terminée. Les chercheurs parlent de la méthode d’attaque la plus sophistiquée jamais vue à ce jour.

Une longue chaîne

Pour faire installer le spyware sur l’iPhone, les attaquants ont exploité même des « zero days » dans iOS. Les vulnérabilités touchent principalement les anciennes versions d’iOS jusqu’à la version 16.2 incluse et, selon les chercheurs, on trouve les premières traces des années en 2019. L’opération commence par l’envoi d’un fichier malveillant par iMessage, et la victime n’a même pas besoin de l’ouvrir pour que le processus d’installation se déclenche.

Tout d’abord, les attaquants exploitent une vulnérabilité créée par une erreur dans la programmation d’une police de caractères dans iOS. Cette vulnérabilité ouvre la voie à l’exécution de code par les attaquants, mais avec des droits d’accès limités sur le système. Le virus cible ensuite le noyau d’iOS et exploite deux vulnérabilités, l’une dans le système XNU pour sécuriser la mémoire et l’autre dans les registres MMIO. Il contourne ainsi également les mécanismes de sécurité intégrés au noyau.

Kaspersky
Représentation visuelle de l’exploit. Source : Kaspersky

Depuis ce moment, le virus peut en fait agir pratiquement à sa guise. Mais, pour éliminer toute hésitation, une vulnérabilité de Safari est exploitée pour exécuter un code source (« shellcode »). Lisez la description détaillée de cette méthodologie dans ce blog.  

Registres secrets

Mais ce n’est pas spécialement la longueur de la chaîne d’attaque qui déroute Kaspersky. Selon les chercheurs, le grand secret provient d’une vulnérabilité spécifique, la CVE-2023-38606. Elle exploite les registres MMIO pour contourner la sécurité du noyau, comme nous l’avons décrit dans plus haut. Pour y parvenir, ils ont toutefois utilisé une fonctionnalité matérielle qui n’est pas utilisée par le micrologiciel d’iOS.

En bref, le processus était le suivant : l’adresse de destination et le hachage des données étaient écrits dans des registres matériels inconnus sur la puce. Ces registres n’étant pas activement utilisés, Kaspersky ne comprend toujours pas comment les attaquants ont découvert cette vulnérabilité. Les chercheurs soupçonnent que les registres sont utilisés en interne par Apple pour déboguer ou tester, ou qu’ils ont même été ajoutés par accident. Normalement, seuls Apple et les fournisseurs de puces tels qu’ARM sont au courant de l’existence de ces registres.

Kaspersky ignore pour l’instant comment les attaquants ont découvert cette faille. Apple a réussi à remédier à toutes les vulnérabilités exploitées.

Qui se cache derrière l’attaque ?

Même après l’analyse de Kaspersky, cette question n’est pas encore résolue. L’incident a rapidement pris une tournure géopolitique après que le service de sécurité russe a accusé son homologue américain d’espionnage. On a également accusé Apple d’avoir aidé à la campagne, mais elle a toujours nié catégoriquement toute implication.

« Pour l’instant, nous ne pouvons pas identifier définitivement cette cyberattaque à un pirate connu. Les caractéristiques uniques observées dans l’opération Triangulation ne correspondent pas aux modèles des campagnes connues », a déclaré Boris Larin, chercheur chez Kaspersky, dans un commentaire à Ars Technica.

newsletter

Abonnez-vous gratuitement à ITdaily !

Category(Required)
This field is for validation purposes and should be left unchanged.