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
purposeetsubsur 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é.