Sécurité API : Patterns pour l'Authentification, l'Autorisation et la Defense en Profondeur
#security#api#architecture#authentication
Les APIs sont la surface d'attaque de l'organisation moderne. Chaque endpoint expose est un point d'entrée potentiel pour l'accès non autorise, l'exfiltration de données ou la perturbation de service. Pourtant la sécurité API est souvent une réflexion après coup -- ajoutee après le fait plutot que concue des le depart.
Architecture des Couches de Sécurité
┌─────────────────────────────────────────────────────────┐
│ REQUETE CLIENT │
└────────────────────────┬────────────────────────────────┘
▼
│ COUCHE 1 : RESEAU / EDGE │
│ WAF │ Protection DDoS │ Terminaison TLS │ Liste IP │
▼
│ COUCHE 2 : PASSERELLE API │
│ Rate Limiting │ Auth (JWT/OAuth) │ Validation │ Cles API│
▼
│ COUCHE 3 : APPLICATION │
│ Validation entrees │ AuthZ (RBAC/ABAC) │ Logique métier│
▼
│ COUCHE 4 : DONNEES │
│ Chiffrement au repos │ Masquage │ Audit │ Classification│
└─────────────────────────────────────────────────────────┘
Comparaison des Méthodes d'Authentification
| Méthode | Niveau Sécurité | Complexité | Cas d'Usage | Revocabilite | Scalabilite |
|---|---|---|---|---|---|
| Cle API | Faible | Faible | Serveur-a-serveur, interne | Par cle | Elevee |
| OAuth 2.0 + OIDC | Eleve | Elevee | Apps utilisateur, accès delegue | Expiration + revocation token | Elevee |
| JWT (autonome) | Moyen-Eleve | Moyenne | Microservices, auth stateless | Difficile (jusqu'a expiration) | Tres élevée |
| mTLS | Tres Eleve | Tres Elevee | Service mesh, zéro-trust | Revocation certificat | Moyenne |
| Signatures HMAC | Eleve | Moyenne | Webhooks, intégrité requête | Par cle | Elevee |
Arbre de Decision : Quelle Méthode ?
Arbre de Decision
│
├── Machine-a-machine, interne ?
│ ├── Environnement zero-trust ? → mTLS
│ ├── Besoin d'intégrité requete ? → Signatures HMAC
│ └── Appel interne simple ? → Cle API + restriction reseau
│
├── Application utilisateur ?
│ ├── Delegation d'acces tiers ? → OAuth 2.0
│ ├── SPA / mobile ? → OAuth 2.0 + PKCE
│ └── Serveur traditionnel ? → Cookies de session
│
└── Microservice-a-microservice ?
├── Service mesh en place ? → mTLS (Istio/Linkerd)
└── Pas de mesh ? → JWT courte duree + rotation
OWASP API Security Top 10 (2023)
| Rang | Risque | Description | Mitigation |
|---|---|---|---|
| API1 | Broken Object Level Authorization | Accès aux données d'autres utilisateurs via manipulation d'ID | Verification d'autorisation par objet |
| API2 | Broken Authentication | Mécanismes d'auth faibles | Librairies d'auth eprouvees, MFA, rate-limit login |
| API3 | Broken Object Property Level Auth | Mass assignment, exposition de champs internes | Listes blanches explicites entrée/sortie |
| API4 | Unrestricted Resource Consumption | Pas de limites sur taillé requête, débit, pagination | Rate limiting, caps pagination, limités taillé |
| API5 | Broken Function Level Auth | Accès aux endpoints admin sans rôle admin | Application RBAC au niveau fonction/endpoint |
| API6 | Unrestricted Access to Sensitive Flows | Abus automatise de logique métier | Détection bot, CAPTCHA, rate limits métier |
| API7 | SSRF | L'API fetch des URLs contrôlees par l'attaquant | Allowlist URLs, desactiver redirections |
| API8 | Security Misconfiguration | Configs par défaut, erreurs verbeuses | Checklists durcissement, scan automatise |
| API9 | Improper Inventory Management | APIs fantomes, endpoints non documentes | Scan de decouverte API, enforcement spec OpenAPI |
| API10 | Unsafe Consumption of APIs | Confiance aveugle dans les réponses d'APIs tierces | Valider toutes les entrées externes |
Matrice de Stratégie de Rate Limiting
| Stratégie | Fonctionnement | Avantages | Inconvenients | Ideal Pour |
|---|---|---|---|---|
| Fenetre fixé | N requêtes par fenêtre de temps | Simple | Rafales aux bords | APIs faible trafic |
| Fenetre glissante | Comptage roulant | Distribution lisse | Plus de mémoire/calcul | Usage general |
| Token bucket | Tokens se rechargent a taux fixé | Rafales contrôlees | Legerement complexe | Trafic en rafales |
| Leaky bucket | Requetes traitées a taux fixé | Sortie parfaitement lisse | Pas de tolérance rafale | Contrôle strict |
| Adaptatif | Limites s'ajustent selon la charge | Resilient aux pics | Complexe a régler | Production a grande échelle |
Ressources
- OWASP API Security Top 10 (2023) -- le catalogue de risqués definitif
- API Security in Action (Manning) -- guide d'implémentation complet
- OAuth 2.0 Simplified (Aaron Parecki) -- référence OAuth claire
- Zero Trust Architecture (NIST SP 800-207) -- cadre zéro trust :::