Aller au contenu

PD-240 — Revue sécurité (adversarial)

Vecteurs d’attaque

  • Token replay (reauth)
  • Exploitabilité : Moyen
  • Impact : Élevé
  • Recommandation : Invalider/blacklister le reauth token après usage ou vérifier un nonce/iat monotone.

  • Token stealing (X-Reauth-Token intercepté)

  • Exploitabilité : Moyen
  • Impact : Élevé
  • Recommandation : TTL court + liaison forte au JWT principal (déjà) + détection de réutilisation/alerting.

  • CSRF sur DELETE /user/account

  • Exploitabilité : Difficile
  • Impact : Élevé
  • Recommandation : Confirmer que l’API est utilisée uniquement via Authorization header (Bearer) et pas via cookies ; sinon ajouter anti‑CSRF.

  • Race condition (sessions invalidées → purge → Keycloak)

  • Exploitabilité : Difficile
  • Impact : Moyen
  • Recommandation : S’assurer que l’invalidation sessions est atomique et idempotente pour éviter réutilisation d’un token entre étapes.

  • Privilege escalation (suppression d’un autre compte)

  • Exploitabilité : Non exploitable
  • Impact : Critique
  • Recommandation : Vérifier strictement sub du reauth token == sub du JWT (déjà en place) et absence de paramètre userId contrôlable.

  • Data leakage (logs)

  • Exploitabilité : Moyen
  • Impact : Moyen
  • Recommandation : Vérifier que logs n’incluent jamais tokens/confirm/PII en clair ; ajouter masquage systématique.

  • Denial of service (tentatives répétées)

  • Exploitabilité : Moyen
  • Impact : Moyen
  • Recommandation : Rate limiting sur l’endpoint critique.

  • IDOR admin audit

  • Exploitabilité : Moyen
  • Impact : Élevé
  • Recommandation : S’assurer que AuthorizationGuard + Roles('admin') ne reposent pas sur claims falsifiables.

  • Email hash collision (hash tronqué 16 chars)

  • Exploitabilité : Difficile
  • Impact : Faible
  • Recommandation : Conserver hash complet ou allonger la troncature pour réduire collision.

Points de sécurité bien implémentés

  • Vérification purpose et sub sur reauth token.
  • Confirmation renforcée explicite côté backend.
  • Purge RGPD réalisée en transaction avec audit.

Vulnérabilités identifiées (par criticité)

  • Élevé : Token replay possible (absence d’invalidation/nonce).
  • Élevé : Risque DoS sans rate limiting.
  • Moyen : Exposition potentielle d’informations via logs/audit si non masquées.
  • Faible : Collision possible sur hash email tronqué.

Verdict sécurité : APPROUVÉ AVEC RÉSERVES