FLOP, le Ghost in the Machine des A17, A18, M3 et probablement M4
Des chercheurs de Georgia Tech aux USA et de l'université de la Ruhr en Allemagne ont découvert une nouvelle faille touchant les CPU A17 des iPhone 15 Pro, A18 & A18 Pro des iPhone 16, les M3 et très probablement les M4 aussi sur nos Mac.
Cette faille est exploitable à distance sur nos navigateurs, par visite d'un site malveillant ou tout bêtement en recevant une publicité en-ligne malveillante, elle a été testée sous Safari et Chrome sur Mac, les autres navigateurs sont probablement aussi touchés.
Elle permet d'accéder aux données des autres pages ou onglets, incluant leur adresse et leur contenu, ceux des formulaires et les historiques de navigation. Voir ici.
Cette attaque rapportée en septembre 2024 est maintenant publique, je ne sais pas ce qu'il en est coté Chrome ou Safari pour limiter sa portée ou l'interdire (DIT Data Independent Timing bit).
Apple a introduit dans les M3 une nouvelle forme de prédiction: la prédiction des valeurs lues lorsqu'écrites avant, afin d'éviter de bloquer une instruction de lecture ultérieure.
C'est un cas de lecture-après-écriture (RAW), qui est courant et doit donc être optimisé.
Les M3 et probablement M4 aussi prédisent alors la valeur lues et exécutent les instructions avec ces données, puis "retirent" leurs résultats si la valeur prédite se révèle erronée, les éliminent.
Mais il en reste un fantôme!
Ce fantôme dans la machine ce sont les modifications effectuées dans le cache L1 pour l'exécution de ces instructions, et si ils ne changent en rien le résultat des instructions au niveau architectural, ce sont des changements micro-architecturaux.
Et les micro-architectures fuient toujours, comme tout abstraction.
Dans ce cas cette fuite se fait au travers du cache L1, chargé d'accélérer les lectures et écritures, et qui évidemment sera plus lent pour charger une données enlevée du cache pour y mettre celles des instructions fantômes: le cache L1 renverra bien toujours la même information correcte mais bien plus lentement. C'est amplifiable de différentes façon et mesurable...
Il existe la parade absolue contre ce type d'attaque au travers d'un navigateur, le bit DIT qui peut être activé ou désactivé à tout moment par celui-ci, (sans privilège) désactivant différentes optimisations dont les dispositifs de prédiction, pour que le temps d'exécution du code ne soit pas affecté par les données en cache (ou pas). C'est aussi une immense perte de performances.
Les correctifs seront probablement logiciels, sans utiliser le bit DIT pour conserver le niveau de performance.
En résumé
Les A17, A18, M3 et probablement M4 ont une immense faille matérielle qui nécessite des mises-à-jours des navigateurs, probablement tous, pour protéger nos données.
Les autres logiciels ne sont à-priori pas affectés mais cette attaque pourrait être étendue au Kernel XNU de macOS d'après les chercheurs.
La bug est due à la conception même des cœurs CPU des récents SoC Apple.
L'état des mises-à-jours des différents navigateurs n'est pas connu à ce point.
Je recommande d'utiliser un bloqueur de publicité, le FBI aussi, ne serait-ce que pour des raisons de sécurité, les publicités malveillantes ayant fleuries ces dernières années, même au travers de Google Ads! Par essence la publicité en veut à votre argent de toute façon...
Merci à @blueG3 pour m'avoir signalé ce sujet très chaud, ici le white paper en Anglais (PDF) !