Reconmind, accueil

Attaque

Condition de course

Aussi appeléRace conditionTOCTOU

En résumé

Une vulnérabilité où le résultat d’une opération dépend de l’ordre ou du moment auquel plusieurs requêtes concurrentes sont traitées. En envoyant des requêtes quasi simultanées, un attaquant peut dépasser une limite, utiliser deux fois un droit à usage unique ou contourner une vérification.

Condition de course, en détail

Beaucoup d’applications suivent le même schéma : lire un état, vérifier une condition, puis écrire le résultat. Entre la vérification et l’écriture, il existe une fenêtre pendant laquelle une autre requête peut lire le même état initial. Si deux requêtes passent la vérification avant que l’une ait écrit, la limite est dépassée. C’est le principe du TOCTOU (time-of-check to time-of-use), le décalage entre le moment du contrôle et celui de l’usage.

Les cas typiques sont un bon de réduction utilisé plusieurs fois, un solde débité en double, un retrait supérieur au disponible, un code de validation consommé deux fois, ou une limite de tentatives de connexion contournée par l’envoi simultané de nombreux essais. Les techniques récentes d’envoi synchronisé des requêtes rendent ces fenêtres de quelques millisecondes exploitables même à travers Internet.

La correction passe par l’atomicité : exécuter la vérification et la modification dans une même transaction avec verrouillage, ou s’appuyer sur une contrainte d’unicité de la base de données qui refuse le doublon. Les contrôles faits uniquement dans le code applicatif sans verrou sont les plus exposés. Ces défauts se détectent avec des tests concurrents ciblés, rarement avec des outils généralistes.

Qu’est-ce que cela change pour vous ?

Pour toute application qui manipule de la valeur (crédits, remises, soldes, stocks), une condition de course se traduit directement en perte financière. Elle ne se voit pas dans une relecture classique, car chaque requête, prise isolément, est correcte.

Exemple illustratif (fictif)

Prenons une plateforme de fidélité où l’échange de points contre une récompense vérifie le solde puis le débite. En envoyant simultanément plusieurs demandes d’échange, un analyste pourrait obtenir plusieurs récompenses pour un seul solde suffisant.

La confusion fréquente

Croire que le problème disparaît parce que « le serveur est rapide ». La fenêtre de vulnérabilité est étroite, mais un attaquant qui peut tenter des centaines de fois finit par la toucher ; seule l’atomicité de l’opération la supprime.

Comment le détecter chez vous ?

Aller plus loin

Termes liés

  • AttaqueFaille de logique métier : définitionUn défaut dans les règles propres à une application, exploitable en utilisant ses fonctions de façon légitime mais dans un ordre, un contexte ou une combinaison que ses concepteurs n’avaient pas prévus.
  • AttaqueIDOR / BOLA : définitionUn défaut de contrôle d’accès où l’application sert l’objet demandé sans vérifier qu’il appartient à l’utilisateur authentifié.
  • MéthodeTest d’intrusion : définitionUne simulation d’attaque autorisée et encadrée, menée par des analystes, qui cherche à démontrer ce qu’un attaquant pourrait obtenir sur un périmètre défini.
  • TechniqueScan de vulnérabilités : définitionUne analyse automatisée qui compare un système (serveur, application, réseau) à une base de défauts connus : versions vulnérables, configurations par défaut, en-têtes manquants.

Revenir au glossaire complet

Réponse à toute demande sous 24 h ouvrées

Un périmètre à faire tester ?

Le cadrage est gratuit et sans engagement. Trente minutes suffisent à savoir si une mission est pertinente, laquelle, et ce qu’elle coûterait.

  • Accord de confidentialité systématique
  • Cadrage gratuit et sans engagement
  • Périmètre et prix écrits avant le début