Exemple
Mauvaise configuration :
Web application
│
▼
Administrator privileges
Même si l'application doit seulement lire certaines données.
Meilleure configuration :
Web application
│
▼
Read-only database role
Pourquoi c'est important
Si un compte est compromis, l'impact dépend notamment de ses privilèges.
Compromised account
│
▼
Low privileges
│
▼
Limited impact
Comparé à :
Compromised account
│
▼
Administrator
│
▼
Potentially major impact
Least Privilege pour les utilisateurs
Un utilisateur normal ne devrait pas nécessairement avoir :
Administrator
Root
Domain Admin
Il devrait posséder uniquement les permissions nécessaires à son travail.
Least Privilege pour les applications
Les applications doivent également respecter ce principe.
Exemple :
Application
│
├── Read database
└── Write specific table
Mais pas nécessairement :
DROP DATABASE
Manage users
Modify system configuration
Just Enough Access
Un concept proche est :
Just Enough Access
L'accès doit être :
- limité ;
- adapté ;
- justifié.
Just-in-Time Access
Les privilèges peuvent également être temporaires.
Normal user
│
▼
Requests temporary privilege
│
▼
Privilege granted for limited time
│
▼
Privilege automatically removed
Cela réduit l'exposition permanente.
Least Privilege et Privilege Escalation
Une mauvaise gestion des permissions peut faciliter une escalation de privilèges.
Une bonne séparation des privilèges limite le nombre de chemins permettant d'obtenir des droits importants.
Points importants
- Ne donner que les permissions nécessaires.
- Éviter les privilèges permanents inutiles.
- Limiter l'impact d'une compromission.
- Appliquer le principe aux utilisateurs, applications et services.
- Réévaluer régulièrement les permissions.
Concepts associés
- RBAC
- ABAC
- IAM
- Privilege Escalation
- Zero Trust
- Defense in Depth
- Access Control