Ce n’est pas tous les jours que nous avons l’occasion d’examiner attentivement une chaîne d’exploits de haut niveau développée par une APT anonyme du monde occidental. Mais grâce à des chercheurs particulièrement dévoués de Kaspersky, dont le siège se trouve justement à Moscou, c’est exactement ce que nous avons aujourd’hui. Le nom Operation Triangulation a été choisi, basé sur une partie du code d’empreinte digitale de l’appareil qui représentait un triangle jaune sur un canevas HTML.
L’intégralité du discours est disponible, donné cette semaine lors du 37e Chaos Communication Congress, 37c3. L’exploit commence par une pièce jointe iMessage, livrée silencieusement, qui exploite une instruction de police TrueType non documentée. L’examen du code source implique qu’il s’agissait d’une erreur de copier-coller où un programmeur n’avait pas tout à fait compris la logique pour un calcul de pointeur. Cette vulnérabilité donne une primitive d’écriture en mémoire qui pivote vers l’exécution de code. Ce qui est particulièrement intéressant, c’est qu’Apple a corrigé ce bug en silence en janvier 2023 et n’a fait aucune déclaration publique. Vraisemblablement, il y a eu une augmentation des journaux de crash qui ont signalé ce problème, mais n’ont pas montré de manière concluante une tentative d’exploitation.
Les exploits passent ensuite à l’utilisation de NSExpression comme étape suivante. NSExpression est une manière laide d’écrire du code, mais elle permet à la chaîne d’exploit de passer à l’étape suivante, en exécutant JavaScript en tant qu’application, sans compilation juste à temps. La charge utile JS est une véritable bête, pesant 11 000 lignes de code obscurci. Il parvient à appeler des API natives directement depuis JS, qui met alors en place un exploit noyau. Il s’agit de multiples failles de dépassement d’entier qui entraînent des lectures et des écritures essentiellement arbitraires dans la mémoire système.
Nous arrivons maintenant à la partie la plus intéressante. La lecture et l’écriture arbitraires seraient normalement terminées, mais le matériel iOS dispose de mesures d’atténuation intégrées pour protéger le noyau même de lui-même. Les chercheurs de Kaspersky l’appellent le « chef final » du piratage d’iOS. Tout d’abord, gardez à l’esprit qu’il n’y a pas que des emplacements de RAM dans cette carte de mémoire système. Il existe des registres, de la RAM vidéo, des périphériques et bien plus encore. Chacun d’eux a des sections de mémoire définies. Il finit par y avoir des emplacements de mémoire qui ne sont utilisés pour rien – du moins rien n’est documenté. L’exploit Triangulation écrit des valeurs apparemment magiques dans ces emplacements mémoire, et il est soudainement autorisé à écrire de la mémoire n’importe où, en contournant le « boss final ».
En écoutant les chercheurs de Kaspersky, on pourrait penser qu’il s’agit d’une sorte de porte dérobée, étant donné qu’elle est activée par une fonction de hachage secrète et qu’elle utilise des emplacements mémoire non documentés. Notre ami de la renommée Asahi Linux, [Marcan]ALIAS [Hector Martin], est en quelque sorte un expert en matière de rétro-ingénierie du matériel Apple et a des réflexions à ce sujet. À savoir, il s’agit d’interfaces de débogage qui n’étaient pas censées être accessibles. Le hachage secret est en fait ECC, Error Correction Codes. Le silicium Apple présente une particularité de conception : la section GPU de la puce ne dispose pas d’une unité de gestion de la mémoire dédiée, mais dépend plutôt du processeur principal pour gérer cette mémoire partagée. Ces emplacements mémoire n’ont jamais été destinés à être accessibles à partir du code CPU, et probablement mappés au cache GPU, ce qui explique beaucoup de choses sur le comportement de cet exploit.
Gardez un œil sur le blog de Kaspersky pour une analyse plus détaillée de l’opération Triangulation. C’est un regard fascinant sur le travail qui appartient probablement à une agence à trois lettres, soit des États-Unis, soit d’un autre pays occidental. Et pour toute personne intéressée, Kaspersky a publié l’outil triangle_check pour examiner une sauvegarde iOS à la recherche de signes de ce malware.
En tant qu’ancien membre de la NSA, regarder la communauté faire de l’ingénierie inverse sur cet exploit me fait penser à tous les gens qui l’ont développé assis et pleurant quelque part pendant que ses secrets sont dévoilés. https://t.co/HjwAbSPQ8V
-Charlie Miller (@0xcharlie) 28 décembre 2023
Ne faites pas confiance à ce nom d’hôte !
SSH a une fonctionnalité intéressante, l’hôte de saut. Vous pouvez spécifier une machine intermédiaire à travers laquelle passer, quelque chose comme ssh -J jump.host jbennett@final.host
. Votre machine locale peut contenir des règles pour des hôtes spécifiques, afin d’utiliser automatiquement un serveur de saut pour accéder à l’hôte distant. Et le problème est que cela se fait généralement via la configuration ProxyCommand, qui prend le nom d’hôte comme l’un des arguments lors de la création de la commande à exécuter.
Vous êtes peut-être bien en avance sur nous, que se passe-t-il si ce nom d’hôte provient d’une source non fiable et contient quelque chose de désagréable, comme une commande dans des backticks ? Eh bien, jusqu’à OpenSSH 9.6p1, cette commande était transmise à la ligne de commande et était exécutée.
La dernière question est la suivante : comment une commande SSH non fiable pourrait-elle être exécutée sur un système local ? La voie suggérée par [Vin01] dans cette divulgation, c’est lors du clonage d’un référentiel git qui possède un sous-module. Cela vaut peut-être la peine de prendre l’habitude de jeter un œil aux .gitmodules
fichier avant de faire un clone récursif.
Barracuda pousse les correctifs
Barracuda a déployé un correctif automatique sur toutes les passerelles de sécurité de messagerie possibles la semaine dernière. Il y a eu une campagne active Zero Day, attribuée à UNC4841 en provenance de Chine. Encore une fois, le problème réside dans une vulnérabilité dans une partie de la capacité d’analyse antivirus. Le module Perl Spreadsheet::ParseExcel est vulnérable à l’exécution de code lors de l’analyse des chaînes de format numérique.
Bits et octets
La domotique MajorDoMo, relativement populaire, a un RCE sévère dans le module de génération de vignettes. Une valeur codée en base64 est directement utilisée pour générer une commande, ce qui constitue un compromis absolument trivial. Après une première tentative de communication manquée, les développeurs du projet ont répondu et ont publié un correctif en quelques jours.
Vous avez peut-être vu une nouvelle couverture de l’adolescent qui a piraté une Rockstar avec rien d’autre qu’un Firestick et une télévision – oh, et un téléphone Android. Tout d’abord, reportez-vous à notre article précédent pour couper court au battage médiatique. Et puis nous sommes vraiment tristes de vous annoncer que le jeune hacker en question a été transféré dans un hôpital sécurisé pour y être institutionnalisé indéfiniment.
Et enfin, nous vous laissons avec la saga de [Tomaž Zaman] travailler grâce à l’une des libertés fondamentales : contrôler son propre matériel. L’Internet par fibre optique Gigabit Passive Network (GPON) est un peu difficile à utiliser. Vous ne pouvez pas simplement prendre le module SFP fourni et le brancher sur votre propre matériel. Pour trouver la réponse, [Tomaž] a rooté le routeur du FAI, trouvé les informations nécessaires, puis payé pour un adaptateur GPON SFP spécialisé configuré pour prendre en charge ce cas d’utilisation. Apprécier!