La société de cybersécurité Kaspersky a publié un rapport public en juin de cette année indiquant que les iPhones utilisés par certains employés de l'entreprise avaient été compromis. Les attaquants ont utilisé plusieurs vulnérabilités zéro clic hautement sophistiquées pour infecter les iPhones et assurer une surveillance continue sans nécessiter aucune interaction de la part de la victime. Cet incident a été nommé IOSTTriangulation par Kaspersky. Après que les vulnérabilités concernées ont été signalées à Apple, Apple a publié plusieurs mises à jour pour corriger les vulnérabilités fin juin.
Cependant, les détails des vulnérabilités concernées n’ont pas été annoncés à ce moment-là. Après tout, les mises à niveau de l'iPhone prennent du temps. En règle générale, les chercheurs retardent la publication des détails des vulnérabilités pour empêcher les attaquants de saisir l'opportunité d'exploiter les vulnérabilités alors que certains utilisateurs n'ont pas encore effectué la mise à niveau.
Cela fait six mois que la vulnérabilité a été publiée. Lors du dernier Chaos Communication Congress, les chercheurs de l'équipe Kaspersky ont publié un rapport détaillé et des détails techniques à partager avec d'autres chercheurs en sécurité.
La vulnérabilité zéro clic d'iMessage exploitée par Pegasus, développeur israélien de logiciels espions commerciaux NSO Group, a été qualifiée de l'une des plus sophistiquées techniquement, et l'attaque par triangulation semble être du même niveau effrayant, a déclaré Kaspersky.
Voici la chaîne d'attaque complète annoncée par Kaspersky, comprenant quatre vulnérabilités 0day utilisées pour obtenir un accès root à l'appareil de la victime :
1. L'attaquant envoie une pièce jointe iMessage malveillante à l'utilisateur cible. Lorsque l'iPhone de la victime reçoit le message, iMessage ne donnera aucun rappel et traitera automatiquement la pièce jointe ;
2. Cette pièce jointe malveillante exploite la vulnérabilité non documentée d’exécution de code à distance CVE-2023-41990 dans la directive de police unique ADJUSTTrueType d’Apple ;
3. Le code malveillant utilise une programmation orientée retour/saut et plusieurs étapes écrites dans le langage de requête NSExpression/NSPredicate, puis utilise l'environnement de bibliothèque JavaScriptCore pour effectuer une élévation de privilèges ;
4. La vulnérabilité JavaScript exploitée par l'attaquant a été obscurcie, ce qui a rendu le code illisible. Cependant, les chercheurs ont découvert que l'attaquant avait utilisé environ 11 000 lignes de code, principalement pour les opérations JavaScriptCore et d'analyse de la mémoire ;
5. L'attaquant utilise la fonction de débogage JavaScriptCore DollarVM ($vm) pour pouvoir manipuler la mémoire JavaScriptCore à partir de scripts et exécuter des API natives ;
6. Afin de prendre en charge à la fois les anciens et les nouveaux iPhones, l'attaquant a également créé une fonction de contournement qui inclut un code d'authentification de pointeur, qui peut être utilisé sur les derniers iPhones ;
7. Les attaquants exploitent la vulnérabilité de dépassement d'entier CVE-2023-32434 dans le système de mappage de mémoire XNU pour obtenir un accès en lecture/écriture au niveau utilisateur à l'intégralité de la mémoire physique de l'appareil ;
8. Les attaquants utilisent des registres d'E/S mappés en mémoire matérielle pour contourner la couche de protection des pages. Ce problème a été atténué via CVE-2023-38606 ;
9. Lorsque toutes les vulnérabilités sont exploitées, la vulnérabilité JavaScript peut tout faire contre l'appareil, y compris exécuter des logiciels espions, mais l'attaquant choisit de :
un. Démarrez le processus IMAgent et injectez une charge utile pour effacer les traces d'exploits dans l'appareil ;
b. Exécutez le processus Safari en mode invisible et transférez-le vers la page Web utilisée lors de la prochaine étape d'attaque ;
10. La page Web contient un script pour vérifier la victime. Si la détection réussit, on passe à l'étape suivante : exploit Safari ;
11. Safari exploite CVE-2023-32435 pour exécuter du shellcode ;
12. Le shellcode exécute un autre exploit de vulnérabilité du noyau sous la forme d'un fichier cible Mach. Il utilise les mêmes vulnérabilités : CVE-2023-32434 et CVE-2023-38606. Ceci est complètement différent de la vulnérabilité du noyau écrite en JavaScript. Cependant, la cible est également utilisée pour les opérations d'analyse de la mémoire, mais la plupart des fonctions ne sont pas utilisées par l'attaquant à un stade ultérieur ;
13. L'exploit obtient les privilèges root et passe à d'autres étapes, notamment le chargement de logiciels espions, etc.
Kaspersky a déclaré que les attaquants ont procédé à une ingénierie inverse sur presque tous les aspects de la chaîne d'attaque, ce qui montre que les objectifs des attaquants ne sont pas des objectifs généraux, c'est-à-dire que l'objectif principal peut en réalité être l'espionnage et des objectifs politiques.
L'équipe Kaspersky prévoit de publier davantage d'articles sur les attaques par triangulation en 2024. Les utilisateurs intéressés par cet article doivent lire le rapport original de Kaspersky, qui comprend une analyse de chaque vulnérabilité : https://securelist.com/operation-triangulation-the-last-hardware-mystery/111669/