Tous les termes

Glossaire

Access Control

Restriction des adresses ou rôles autorisés à appeler des fonctions privilégiées d'un smart contract.

L'access control est la discipline qui garantit que seules les adresses autorisées peuvent invoquer les fonctions privilégiées d'un smart contract, retirer des fonds, minter des tokens, mettre le protocole en pause, faire un upgrade.

L'access control cassé est l'une des classes de vulnérabilité à plus fort impact et la plus évitable. Les patterns classiques :

  • Modificateur manquant : la fonction devrait avoir onlyOwner et ne l'a pas.
  • Mauvais modificateur : onlyAdmin existe mais est vérifié contre le mauvais rôle.
  • Initializable non initialisé : l'initializer d'un proxy peut être appelé par n'importe qui si le deployer oublie.
  • tx.origin au lieu de msg.sender : permet à un contrat de phisher à travers un utilisateur victime.
  • Public au lieu d'internal : des fonctions utilitaires exposées par accident.

L'access control doit être exhaustif : chaque fonction qui change l'état a une décision d'autorisation explicite documentée dans l'audit, et chaque rôle privilégié a un porteur documenté (qui devrait en général être un multi-sig, pas une EOA).

Voir aussi

Termes liés.

Services

Comment nous travaillons sur ce sujet.

Par secteur

Là où ça apparaît.

À lire

Sur le blog.

Besoin de régler ça concrètement ? Parlons-en.