tadata
← Retour à l'accueil

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é

tadata
Couche 1 : réseau /edge WAF Protection DDoS Terminaison TLS Liste d'IP autorisées Couche 2 : passerelleAPI Limitation de débit Authentification (JWT /OAuth) Validation des requêtes Gestion des clés API Couche 3 : application Validation des entrées Autorisation (RBAC / ABAC) Contrôles métier Filtrage des sorties Couche 4 : données Chiffrement au repos Masquage de colonnes Journal d'audit Classification des données Requête client → quatre couches de sécurité
Couche 1 : réseau /edge WAF Protection DDoS Terminaison TLS Liste d'IP autorisées Couche 2 : passerelleAPI Limitation de débit Authentification (JWT /OAuth) Validation des requêtes Gestion des clés API Couche 3 : application Validation des entrées Autorisation (RBAC / ABAC) Contrôles métier Filtrage des sorties Couche 4 : données Chiffrement au repos Masquage de colonnes Journal d'audit Classification des données Requête client → quatre couches de sécurité

Comparaison des Méthodes d'Authentification

MéthodeNiveau SécuritéComplexitéCas d'UsageRevocabiliteScalabilite
Cle APIFaibleFaibleServeur-a-serveur, internePar cleElevee
OAuth 2.0 + OIDCEleveEleveeApps utilisateur, accès delegueExpiration + revocation tokenElevee
JWT (autonome)Moyen-EleveMoyenneMicroservices, auth statelessDifficile (jusqu'a expiration)Tres élevée
mTLSTres EleveTres EleveeService mesh, zéro-trustRevocation certificatMoyenne
Signatures HMACEleveMoyenneWebhooks, intégrité requêtePar cleElevee

Arbre de Decision : Quelle Méthode ?

tadata
  • Quelle méthode d'authentification ?
    • → Machine à machine, interne ?
      • environnement zero trust: mTLS
      • intégrité des requêtes requise: Signatures HMAC
      • appel interne simple: Clé API + restriction réseau
    • → Application utilisateur ?
      • délégation d'accès à un tiers: OAuth 2.0
      • SPA / mobile: OAuth 2.0 + PKCE
      • rendu serveur classique: Cookies de session
    • → Microservice à microservice ?
      • service mesh en place: mTLS (Istio / Linkerd)
      • pas de mesh: JWT à courte durée de vie + rotation

OWASP API Security Top 10 (2023)

RangRisqueDescriptionMitigation
API1Broken Object Level AuthorizationAccès aux données d'autres utilisateurs via manipulation d'IDVerification d'autorisation par objet
API2Broken AuthenticationMécanismes d'auth faiblesLibrairies d'auth eprouvees, MFA, rate-limit login
API3Broken Object Property Level AuthMass assignment, exposition de champs internesListes blanches explicites entrée/sortie
API4Unrestricted Resource ConsumptionPas de limites sur taillé requête, débit, paginationRate limiting, caps pagination, limités taillé
API5Broken Function Level AuthAccès aux endpoints admin sans rôle adminApplication RBAC au niveau fonction/endpoint
API6Unrestricted Access to Sensitive FlowsAbus automatise de logique métierDétection bot, CAPTCHA, rate limits métier
API7SSRFL'API fetch des URLs contrôlees par l'attaquantAllowlist URLs, desactiver redirections
API8Security MisconfigurationConfigs par défaut, erreurs verbeusesChecklists durcissement, scan automatise
API9Improper Inventory ManagementAPIs fantomes, endpoints non documentesScan de decouverte API, enforcement spec OpenAPI
API10Unsafe Consumption of APIsConfiance aveugle dans les réponses d'APIs tiercesValider toutes les entrées externes
tadata
Orders API ofan online shop 1. GET /v2/orders/{id} 2. /v2/admin/* 3. POST /v2/auth/otp 4. POST /v2/import?url= 5. /v1/* still live 6. Partner stock feed 1. GET /v2/orders/{id} (internet, risk high): Owner check per object (API1)2. /v2/admin/* (internet, risk high): Role check on every route (API5)3. POST /v2/auth/otp (internet, risk medium): Rate limit per token and phone (API4)4. POST /v2/import?url= (internet, risk high): Destination allow-list (API7)5. /v1/* still live (internet, risk high): Inventory, retire with 410 Gone (API9)6. Partner stock feed (partner, risk medium): Validate responses (API10)
Orders API ofan online shop 1. GET /v2/orders/{id} 2. /v2/admin/* 3. POST /v2/auth/otp 4. POST /v2/import?url= 5. /v1/* still live 6. Partner stock feed 1. GET /v2/orders/{id} (internet, risk high): Owner check per object (API1)2. /v2/admin/* (internet, risk high): Role check on every route (API5)3. POST /v2/auth/otp (internet, risk medium): Rate limit per token and phone (API4)4. POST /v2/import?url= (internet, risk high): Destination allow-list (API7)5. /v1/* still live (internet, risk high): Inventory, retire with 410 Gone (API9)6. Partner stock feed (partner, risk medium): Validate responses (API10)
Le Top 10 API lu comme une surface d'attaque : chaque point d'entrée avec son exposition et le contrôle qui le ferme

Extrait de la fiche « OWASP API Security Top 10 - 2023 » · Demander la fiche complète

Matrice de Stratégie de Rate Limiting

StratégieFonctionnementAvantagesInconvenientsIdeal Pour
Fenetre fixéN requêtes par fenêtre de tempsSimpleRafales aux bordsAPIs faible trafic
Fenetre glissanteComptage roulantDistribution lissePlus de mémoire/calculUsage general
Token bucketTokens se rechargent a taux fixéRafales contrôleesLegerement complexeTrafic en rafales
Leaky bucketRequetes traitées a taux fixéSortie parfaitement lissePas de tolérance rafaleContrôle strict
AdaptatifLimites s'ajustent selon la chargeResilient aux picsComplexe a réglerProduction a grande échelle
tadata
{ } API gateway 1 JWT: alg, iss, aud, exp 2 Scopes per route (API5) 3 Token bucket (API4) 4 Quota on costly calls 5 Schema check (API3) 6 Declared routes (API9) Web app Mobile app Partner Orders GET /v2/orders/{id} Users GET /v2/users/me Reports POST /v2/exports410 /v1/* (retired)
{ } API gateway 1 JWT: alg, iss, aud, exp 2 Scopes per route (API5) 3 Token bucket (API4) 4 Quota on costly calls 5 Schema check (API3) 6 Declared routes (API9) Web app Mobile app Partner Orders GET /v2/orders/{id} Users GET /v2/users/me Reports POST /v2/exports410 /v1/* (retired)
Où se placent les contrôles du Top 10 API sur la gateway. Le rate limiting (API4) se base sur le token, pas sur l'IP (NAT, proxies) : le token bucket autorise des rafales contrôlées, les fenêtres fixes laissent passer des pics aux frontières ; répondez 429 Too Many Requests (RFC 6585) avec Retry-After. Les contrôles BOLA (API1) et BFLA (API5) ne peuvent pas y vivre : le backend doit comparer le propriétaire de l'objet avec l'appelant

Extrait de la fiche « OWASP API Security Top 10, Part 2: Testing, GraphQL, Rate Limits, Tokens » · Demander la fiche complète

Ressources

Nous utilisons des cookies analytiques pour améliorer votre expérience. Aucune donnée personnelle n'est collectée.