
La quasi-totalité des moutures de l’OS seraient affectées
Un chercheur en sécurité qui répond au pseudonyme Siguza sur les forums a adressé à Apple ses vœux pour le Nouvel An d’une façon assez particulière : en tweetant sur un bogue dans macOS. Le géant de la marque à la pomme enchaîne avec les vulnérabilités sur son système d’exploitation depuis quelques mois.
Premier arrêt, la fin du mois de septembre 2017. Un chercheur publie les détails d’une faille zero-day qui affecte macOS Sierra. L’exploitation de cette dernière permet à un attaquant de subtiliser les mots de passe sauvegardés sur le gestionnaire de mots de passe Keychain. Réaction du géant de la marque à la pomme en octobre avec le déploiement d’une mise à jour. Alors qu’on s’apprête à amorcer le dernier mois de l’année écoulée, un développeur turc amène une autre vulnérabilité qui affecte la 14e mouture de l’OS d’Apple à la lumière ; un attaquant peut se connecter en tant que root sans mot de passe. Apple réagit dans l’urgence le jour suivant avec un correctif.
Cette fois, il s’agit d’une faille qui offre à un pirate un contrôle total de l’OS. Fait souvent vécu dans la sphère de la cybersécurité, la brèche serait présente dans les méandres du kernel depuis belle lurette.
Il s’agit d’un cas d’escalade de privilèges locaux (LPE) qui débouche, comme constaté dans bien de situations similaires, à des possibilités d’accès au système en tant qu'utilisateur racine. En substance, la faille réside dans l’extension IOHIDFamily du noyau du système d’exploitation, laquelle est conçue pour gérer des interfaces de type clavier ou écran tactile. Référence faite au code source de la section du kernel concernée par la faille, un logiciel malveillant spécialement mis sur pied pour l’exploiter pourrait gagner l’accès à un très bas niveau du système.
Bonne nouvelle pour les potentielles victimes, il faut que l’attaquant ait un accès physique à l’ordinateur. À cette condition seulement pourra-t-il insérer du code malicieux capable de modifier le paramètre evGlobalsOffset de la structure EvOffsets, au sein du noyau du système d’exploitation, pour accéder à des zones mémoire particulières.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | int i; EvOffsets *eop; int oldFlags = 0; /* top of sharedMem is EvOffsets structure */ eop = (EvOffsets *) shmem_addr; if (!clean) { oldFlags = ((EvGlobals *)((char *)shmem_addr + sizeof(EvOffsets)))->eventFlags; } bzero( (void*)shmem_addr, shmem_size); /* fill in EvOffsets structure */ eop->evGlobalsOffset = sizeof(EvOffsets); eop->evShmemOffset = eop->evGlobalsOffset + sizeof(EvGlobals); /* find pointers to start of globals and private shmem region */ evg = (EvGlobals *)((char *)shmem_addr + eop->evGlobalsOffset); evs = (void *)((char *)shmem_addr + eop->evShmemOffset); |
Siguza a publié une preuve de concept qu’il a baptisée IOHIDeous. Elle consiste en des démonstrations de lecture et écriture arbitraire au sein du kernel et concerne toutes les versions du système d’exploitation. Inutile de rappeler que la faille attend toujours d’être corrigée par Apple. Seulement, au vu de son faible potentiel d’exploitation, il est peu probable que le géant de la marque à la pomme réagisse dans de brefs délais.
Source
IOHIDeous
Votre opinion

Voir aussi


Vous avez lu gratuitement 637 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.