Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

cr  01.04.2012      r+  01.06.2024      r-  15.07.2024      Pierre Pinard.         (Alertes et avis de sécurité au jour le jour)

En informatique, les « principes d'anticipation » sont des mécanismes accélérateurs, essentiellement mis en oeuvre avec des dispositifs appelés « caches ». Il s'agit de chercher une accélération de quelque chose, parfois par la prédiction, simultanément à une diminution de la consommation des ressources.

Plusieurs termes sont des synonymes : « mémoire cache », « antémémoire », « mémoire prédictive », « mémoire d'anticipation » et tout un panel d'anglicismes.

D'autres mécanismes, comme le « prefetch » ou les « mémoires tampon (buffers) », dont les « caches disques », participent des « principes d'anticipation ».

Les « listes hosts », consultées très tôt lors de la « résolution de noms de domaines » pour vérifier s'il y a intention de blocage d'accès à un « domaine » ou intention de diriger vers une « adresse IP » précise, prédéfinie, participent, sans que ce soit leur finalité, des « principes d'anticipation ».

Voir l'article et le dossier « Cache ».

  • Il y a des « Caches » matériel dans les processeurs, les cartes graphiques, les disques durs (ce sont plutôt des « buffers »), les interfaces, etc.

  • Il y a un « Cache DNS » dont les données (la résolution d'un nom de domaine en son adresse IP) ont une persistance (une durée de vie appelée TTL [Time To Live]) de 24 heures (résolutions réussies conservées durant les dernières 24 heures [86.400 secondes] ou échouées durant les 5 dernières minutes [300 dernières secondes]).

  • Il y a un « Cache DNS » dans chaque navigateur Web, dont les données ont une persistance de quelques secondes à quelques minutes.

  • Il y a un « Cache » dans chaque logiciel qui utilise un flux continu (les lecteurs de médias). VLC, par exemple, comporte un « Cache » dont la taille est paramétrable (intéressant pour le streaming, par exemple).

Note : un « cache » n'a rien à voir avec quelque chose de « caché ».




Parmi les failles de sécurité des processeurs Intel et AMD (alertes au jour le jour sur nos forums), certaines sont liées à des anticipations mal ou pas maitrisées (1ère alerte de ce type le 04.01.2018).

Les processeurs modernes intègrent plusieurs fonctionnalités visant à améliorer leurs performances. Parmi celles-ci, l'exécution dite out-of-order permet d'exécuter les instructions d'un programme en fonction de la disponibilité des ressources de calculs et plus nécessairement de façon séquentielle. Une faiblesse de ce mécanisme peut cependant conduire à l'exécution d'une instruction sans que le niveau de privilèges requis par celle-ci ne soit correctement vérifié (niveau de privilège de l'utilisateur). Bien que le résultat de l'exécution d'une telle instruction ne soit pas validé par la suite, il peut être possible de récupérer l'information en utilisant une attaque par canaux cachés.




L'exécution spéculative est une seconde technique d'optimisation utilisée par les processeurs modernes. Les dépendances entre les instructions limitent les possibilités d'exécution out-of-order (hors du cycle). Pour remédier à cette limitation, le processeur émet des hypothèses concernant les résultats non encore disponibles. Ceci lui permet de poursuivre l'exécution out-of-order en utilisant ces hypothèses en remplacement des résultats attendus. On parle alors d'exécution spéculative. Ces hypothèses sont vérifiées par le processeur dès que les résultats auxquels elles se rapportent deviennent disponibles. Si elles se révèlent correctes, le processeur valide l'exécution spéculative. Mais inversement, si elles se révèlent erronées, les effets de l'exécution spéculative doivent être annulés et l'exécution doit reprendre au point on les hypothèses erronées avaient été émises, c'est-à-dire là où l'exécution spéculative avait débutée.

Cependant les effets d'une exécution spéculative erronée sur le cache perdurent. Or, en mesurant des temps d'accès à des zones mémoires, il est possible de connaître l'état du cache. Par conséquent, un attaquant sera capable de déterminer les résultats intermédiaires d'une exécution spéculative erronée si ceux-ci influent sur l'état du cache. Cette utilisation du cache pour mener à bien l'exploitation est commune aux trois variantes du Cryptoransomware Spectre.