Microsoft vient de publier un article sur une faille découverte dans différentes versions de macOS, nommée Achille. Elle a été corrigée récemment avec les dernières mises à jour de macOS Ventura, Monterey (12.6.2) et Big Sur (11.7.2).
Une faille liée à A/UX, le premier Unix Apple
La faille CVE-2022-48281 (Achille, donc) a été découverte fin juillet 2022 et permet de passer outre certaines des protections liées à Gatekeeper. Elle se base sur des technologies Apple assez anciennes, qui datent d'A/UX, le premier UNIX d'Apple.
Shoebill : un émulateur pour faire fonctionner A/UX
Dans les systèmes de fichiers Apple (HFS, HFS+ et maintenant APFS), il existe des métadonnées (pour résumer simplement, des données au sujet des données) utilisées par le système d'exploitation pour gérer certaines fonctions (position dans le Finder, icône, etc.). À la sortie d'A/UX, un UNIX pour les Macintosh 68K, Apple a défini deux méthodes (AppleSingle et AppleDouble) pour prendre en charge les métadonnées avec les systèmes de fichiers qui ne gèrent pas les métadonnées. Cette solution existe toujours en 2022, ce sont les fichiers qui commencent par un ._
que vous pouvez voir sur les clés USB formatées en FAT ou sur les partages réseau. macOS cache normalement les fichiers en question, mais certains OS les affichent tout de même.
Maintenant, parlons de Gatekeeper. Si vous téléchargez un programme sur Internet, macOS va placer un fichier com.apple.quarantine
pour indiquer son origine et afficher un message de prévention. L'idée de la faille Achille est d'empêcher la création de ce fichier, ce qui permet d'éviter le message d'erreur. Les premiers essais n'ont pas été fructueux, mais en regardant en détail comment fonctionne la technologie AppleDouble, les chercheurs de chez Microsoft ont trouvé une solution.
Les détails sont dans l'article, mais l'idée est simple : définir des autorisations qui empêchent Safari de créer le fichier. Dans les systèmes UNIX (comme macOS), chaque fichier est lié à des autorisations, qui indiquent ce que l'utilisateur (au sens UNIX du terme, pas la personne derrière l'écran) peut faire. En modifiant manuellement les informations liées à AppleDouble, il devenait donc possible — avant la correction — de créer un fichier qui (une fois décompressé) empêchait de créer le fichier com.apple.quarantine
. Microsoft a publié une vidéo pour bien montrer le problème.
La faille ne passait par contre pas toutes les mesures liées à Gatekeeper : le programme modifié devait tout de même être signé et notarié pour être lancé sans message de prévention.