Sécurité matérielle : évolutions récentes

Quelle affirmation décrit correctement les capacités (capabilities) utilisées dans l'extension du jeu d'instructions appelée CHERI ?

  1. ALes valeurs des pointeurs sont chiffrées avec une clé interne au CPU avant d'être placées en mémoire et déchiffrées à chaque utilisation, de sorte que les autres programmes et l'OS ne peuvent pas les lire
  2. BLe CPU vérifie la signature numérique jointe au fichier exécutable du programme à chaque instruction exécutée et refuse d'exécuter les instructions non signées
  3. CUn pointeur porte la plage à laquelle il peut accéder et ses droits, et une étiquette de 1 bit que le logiciel ne peut pas écrire distingue en mémoire s'il a été créé de façon légitime
Afficher la réponse et l'explication

Réponse : C. Un pointeur porte la plage à laquelle il peut accéder et ses droits, et une étiquette de 1 bit que le logiciel ne peut pas écrire distingue en mémoire s'il a été créé de façon légitime

CHERI remplace les pointeurs réduits à une adresse par des capacités qui regroupent l'adresse, les bornes inférieure et supérieure de la plage vers laquelle elles peuvent pointer et des droits comme la lecture, l'écriture et l'exécution (pour des adresses de 64 bits, elles sont compressées sur 128 bits, avec une étiquette de 1 bit à part). Le CPU vérifie la plage et les droits à chaque accès, si bien que les erreurs de sûreté mémoire, comme une lecture ou une écriture hors d'un tableau, peuvent être arrêtées par le matériel. L'étiquette n'est posée que lorsqu'une capacité est créée par les instructions prévues, et elle est effacée si la capacité est réécrite comme une donnée ordinaire ; les pointeurs ne peuvent donc pas être forgés. L'université de Cambridge et d'autres mènent ces recherches, et Arm a mis à la disposition des chercheurs, au début des années 2020, Morello, un processeur prototype et une carte d'évaluation qui s'en inspirent.

S'entraîner sur ce thème Retour au thème

Autres questions sur Sécurité matérielle : évolutions récentes

  1. Avec MTE (Memory Tagging Extension) d'Arm, une étiquette de 4 bits est attachée à chaque bloc de 16 octets de mémoire, une étiquette de 4 bits est aussi placée dans les bits de poids fort du pointeur, et le CPU vérifie à chaque accès si les deux concordent. On considère l'erreur qui consiste à accéder à une zone libérée par un ancien pointeur vers elle. Si la nouvelle étiquette attribuée lors de la réallocation de la zone est choisie uniformément au hasard parmi les 16 possibilités, quelle est la probabilité que les étiquettes concordent par hasard et que l'erreur passe inaperçue ?
  2. Quelle affirmation décrit correctement le mécanisme d'authentification de pointeurs (PAC) d'Arm ?
  3. Quelle affirmation décrit correctement la pile fantôme (shadow stack) matérielle adoptée notamment par Intel CET (Control-flow Enforcement Technology) ?
  4. À propos des fonctions matérielles qui soutiennent l'intégrité du flot de contrôle, quelle association est correcte entre ce qui protège les retours de fonction et ce qui protège les appels et sauts indirects, comme ceux qui passent par des pointeurs de fonction ?
  5. Pourquoi dit-on que le Rowhammer devient plus probable à mesure que la DRAM est miniaturisée ?