veilletech.fr
20 août Feed du jour
#02 SÉCURITÉ Faille

Rosetta 2 peut héberger du malware

Votre EDR regarde-t-il là ?

Présentée à SummerCon, cette recherche montre comment le cache de traduction de Rosetta 2 peut servir à dissimuler du code malveillant. Rosetta compile statiquement le x86_64 vers Apple Silicon et met le résultat en cache via oahd_helper, en basculant sur du JIT pour les appels indirects — un mélange qui rend certains malwares plus discrets qu'attendu.

2 min de lecturevidéo 1:13
Partager
Sommaire6 sections
  1. Ce qui se passe
  2. Comment fonctionne Rosetta 2
  3. Le problème
  4. L'échéance qui change tout
  5. Ce qu'il faut en retenir
  6. À retenir

Ce qui se passe

Une recherche présentée à SummerCon montre comment le cache de traduction de Rosetta 2 peut servir à dissimuler du code malveillant sur macOS.

Comment fonctionne Rosetta 2

Rosetta 2 est la couche qui permet d'exécuter des binaires Mach-O x86_64 sur Apple Silicon. Elle procède en deux temps :

C'est cette combinaison qui rend la traduction fluide — et c'est elle qui ouvre la porte.

Le problème

Le code réellement exécuté n'est plus celui du binaire d'origine mais sa traduction mise en cache. Une analyse qui n'inspecte que le binaire x86 passe à côté de ce qui tourne vraiment, et la part confiée au JIT échappe à l'examen statique.

L'auteur le résume sans détour : le mélange est propice à des malwares plus difficiles à détecter qu'on ne l'imagine.

L'échéance qui change tout

Apple retire Rosetta 2 au prochain macOS majeur. Elle sera remplacée par d'autres outils, dont le Game Porting Toolkit pour le portage de jeux Windows, et des dispositifs de virtualisation Linux.

La fenêtre est donc double : le risque existe aujourd'hui sur les machines qui l'utilisent encore, et il disparaîtra avec la couche elle-même — en laissant derrière lui la question des caches déjà écrits.

Ce qu'il faut en retenir

Si vous exploitez un parc Apple Silicon, la question à poser à votre outillage de sécurité est simple : inspecte-t-il le cache de traduction, ou seulement les binaires ?