Glossaire
Intégrité du flux de contrôle (CFI)
Une famille de mitigations qui vérifient à l'exécution que les appels, sauts et retours indirects ne visent que des cibles que le programme pourrait légitimement atteindre.
L'intégrité du flux de contrôle (CFI) restreint les destinations possibles des transferts de contrôle indirects d'un programme. La CFI de forward edge vérifie les appels et sauts indirects, par exemple avec le -fsanitize=cfi de Clang basé sur les types, Microsoft Control Flow Guard, Intel IBT ou Arm BTI. La CFI de backward edge vérifie les retours, par exemple avec une shadow stack matérielle ou l'authentification de pointeurs Arm.
La CFI cible les techniques de réutilisation de code qui survivent à la mémoire non exécutable. Elle réduit les options de l'attaquant plutôt que de les éliminer : les schémas à granularité grossière autorisent n'importe quelle cible valide, et les attaques uniquement sur les données sont hors de portée. Voir intégrité du flux de contrôle.