Les logiciels malveillants iOS peuvent simuler l’arrêt de l’iPhone pour surveiller la caméra et le microphone

iPhone

Les chercheurs ont mis au point une nouvelle technique qui simule l’arrêt ou le redémarrage des iPhones, empêchant la suppression des logiciels malveillants et permettant aux pirates informatiques d’espionner secrètement les microphones et de recevoir des données sensibles via une connexion réseau en direct.

Historiquement, lorsqu’un logiciel malveillant infecte un appareil iOS, il peut être supprimé simplement en redémarrant l’appareil, ce qui efface le logiciel malveillant de la mémoire.

Cependant, cette technique accroche les routines d’arrêt et de redémarrage pour les empêcher de se produire, permettant aux logiciels malveillants d’atteindre la persistance car l’appareil n’est jamais réellement éteint.

Parce que cette attaque, que les chercheurs appellent « NoReboot », n’exploite aucune faille sur iOS et repose plutôt sur une tromperie humaine, elle ne peut pas être corrigée par Apple.

Simuler un redémarrage convaincant

Pour redémarrer l’iPhone, il faut appuyer et maintenir le bouton d’alimentation et l’un des boutons de volume jusqu’à ce que le curseur avec l’option de redémarrage apparaisse, puis attendre environ 30 secondes pour que l’action se termine.

Lorsqu’un iPhone est éteint, son écran s’assombrit naturellement, l’appareil photo est éteint, le retour tactile 3D ne répond pas aux appuis longs, les sons des appels et des notifications sont coupés et toutes les vibrations sont absentes.

Les chercheurs en sécurité de ZecOps ont développé un cheval de Troie PoC (preuve de concept) outil qui peut injecter du code spécialement conçu sur trois démons iOS pour simuler un arrêt en désactivant tous les indicateurs ci-dessus.

Piratage de trois démons iOS
Piratage de trois démons iOS
Source : ZecOps

Le cheval de Troie détourne l’événement d’arrêt en accrochant le signal envoyé au « SpringBoard » (démon d’interaction de l’interface utilisateur).

Au lieu du signal attendu, le cheval de Troie enverra un code qui forcera « SpingBoard » à sortir, rendant l’appareil insensible aux entrées de l’utilisateur. C’est le déguisement parfait dans ce cas, car les appareils qui entrent dans un état d’arrêt naturellement n’acceptent plus les entrées de l’utilisateur.

Code injecté sur le tremplin
Code injecté sur le tremplin
Source : ZecOps

Ensuite, le démon « BackBoardd » reçoit l’ordre d’afficher le rouet qui indique que le processus d’arrêt est en cours.

« BackBoardd » est un autre démon iOS qui enregistre les événements physiques de clic sur un bouton et d’écran tactile avec des horodatages, donc en abuser donne au cheval de Troie le pouvoir de savoir quand l’utilisateur tente d' »allumer » le téléphone.

En surveillant ces actions, l’utilisateur peut être trompé en relâchant le bouton plus tôt que prévu, évitant ainsi un véritable redémarrage forcé.

ZecOps décrit la prochaine étape de l’attaque « NoReboot » comme suit :

Le fichier déclenchera le SpringBoard et déclenchera un bloc de code spécial dans notre dylib injecté. Ce qu’il fait est de tirer parti de l’accès SSH local pour obtenir le privilège root, puis nous exécutons /bin/launchctl reboot userspace.

Cela quittera tous les processus et redémarrera le système sans toucher au noyau. Le noyau reste patché. Par conséquent, le code malveillant n’aura aucun problème à continuer à s’exécuter après ce type de redémarrage. L’utilisateur verra l’effet du logo Apple au redémarrage.

Ceci est également géré par backboardd. Lors du lancement du SpringBoard, le backboardd laisse SpringBoard prendre le contrôle de l’écran.

backboardd redonnant l'écran au tremplin
backboardd redonnant le contrôle de l’écran au tremplin
Source : ZecOps

L’utilisateur revient à une interface utilisateur normale avec tous les processus et services s’exécutant comme prévu, sans aucune indication qu’il vient de subir un redémarrage simulé.

Zecops a créé une vidéo montrant la technique NoReboot en action, illustrant comment elle peut facilement faire croire à quiconque que son appareil est éteint.

Ne jamais croire qu’un appareil est complètement éteint

Apple a introduit une nouvelle fonctionnalité dans iOS 15, permettant aux utilisateurs de localiser leurs iPhones via « Find My » même s’ils sont éteints.

Apple n’a pas pris la peine d’expliquer comment cela fonctionne exactement, mais les chercheurs ont trouvé il est obtenu en maintenant la puce Bluetooth LPM active et en fonctionnement autonome même lorsque l’iPhone est éteint.

Alors que toutes les interactions de l’utilisateur avec l’appareil sont désactivées, la puce Bluetooth continue d’annoncer sa présence aux appareils à proximité en fonctionnant en mode basse consommation, bien qu’à des intervalles supérieurs aux 15 minutes par défaut.

Cela montre que vous ne pouvez jamais faire confiance à un appareil pour qu’il soit entièrement éteint, même lorsque vous éteignez votre téléphone.

De même, la technique « NoReboot » rend impossible la détection physique si un iPhone est éteint ou non quant à toutes les apparences extérieures que votre appareil semble être éteint.

De plus, les développeurs de logiciels malveillants et les pirates peuvent désormais gagner en persistance sur les appareils iOS avec cette technique, où la recommandation habituelle de redémarrer un iPhone pour éliminer les infections ne fonctionne plus.