Glossaire
Control Flow Guard (CFG)
Une mitigation Windows du forward-edge qui vérifie chaque appel indirect contre un bitmap de cibles valides, bloquant les sauts au milieu des fonctions ou dans des données.
Le Control Flow Guard (CFG) est une mitigation Windows d'intégrité du flot de contrôle pour le forward-edge. Compilé avec /guard:cf, le compilateur et le système d'exploitation maintiennent un bitmap des cibles d'appel indirect valides (les points d'entrée de fonctions), et chaque appel indirect est vérifié contre ce bitmap avant d'être exécuté. Une chaîne ROP — ou orientée appels — qui vise le milieu d'une fonction, ou des données de l'attaquant, n'est pas une cible valide et est bloquée.
Le CFG est à grain grossier : il autorise tout point d'entrée de fonction enregistré, si bien que des cibles valides mais dangereuses peuvent rester accessibles ; et il ne protège pas les retours, raison pour laquelle il est associé à la pile fantôme matérielle de CET pour le backward-edge. C'est l'équivalent Windows de la CFI. Voir Les mitigations d'intégrité de flot sous Windows.