pledge
permet de limiter les accès d'un programme aux appels systèmes très facilement. C'est une amélioration importante dans la sécurité : pourquoi cut(1) devrait avoir besoin d'ouvrir un socket ? C'est juste lui refuser la capacité de le faire. Même si un binaire est compromis, les chances de mauvais comportement sont grandement limitées.
int main(int argc, char *argv[]) { [...] if (pledge("stdio rpath", NULL) == -1) err(1, "pledge"); [...] }
En seulement deux versions, les développeurs OpenBSD ont réussi à introduire pledge
pour la plupart des binaires dans le système de base.
Des détails :
Contribut(rice|eur)s :