Aller au contenu

Glossaire

RELRO

Relocation Read-Only : fonctionnalité de l'éditeur de liens et du chargeur qui rend la GOT et d'autres données de relocation en lecture seule après le démarrage, empêchant leur écrasement.

RELRO (Relocation Read-Only) protège les structures de données que l'éditeur de liens dynamique remplit au démarrage d'un programme, principalement la Global Offset Table (GOT) qui contient les adresses des fonctions de bibliothèque. Le RELRO partiel (-Wl,-z,relro) rend la plupart de ces données en lecture seule après relocation, mais laisse inscriptible la .got.plt à liaison paresseuse. Le RELRO complet ajoute -Wl,-z,now, résolvant chaque symbole au démarrage afin que toute la GOT puisse être verrouillée.

Le RELRO complet élimine un moyen classique de rediriger un appel de bibliothèque via un bug de corruption mémoire, au prix d'un démarrage légèrement plus lent pour les binaires comportant de nombreux imports. Vérifiez-le avec readelf -l (GNU_RELRO) et readelf -d (BIND_NOW). Voir indicateurs de durcissement des binaires.