Business Logic Vulnerability
hackingDéfinition
Les vulnérabilités de logique métier (Business Logic Vulnerabilities) sont des failles dans la conception ou l'implémentation des règles et des processus propres à une application, qui permettent à un attaquant de manipuler le comportement prévu de l'application à son avantage. Contrairement aux vulnérabilités techniques classiques (injection, XSS), ces failles ne peuvent pas être détectées par des scanners automatiques car elles nécessitent de comprendre le contexte métier. Des exemples représentatifs incluent : la manipulation de prix dans les applications e-commerce (modifier le prix d'un article dans les paramètres POST, passer un prix négatif pour être crédité, ou modifier le total de commande après validation), le contournement de limites (appliquer un coupon de réduction plusieurs fois malgré une limite d'utilisation unique, transférer plus de fonds que le solde disponible via des race conditions), et l'exploitation d'états intermédiaires (compléter partiellement un flux multi-étapes puis reprendre depuis un état différent). Les race conditions sont une sous-catégorie importante : deux requêtes simultanées peuvent contourner des vérifications 'vérifier puis agir' (check-then-act). Par exemple, un transfert bancaire vérifie le solde (100€), deux transferts simultanés de 100€ passent tous les deux car chacun voit un solde de 100€ avant que l'autre ait débité. Des outils comme Turbo Intruder (extension Burp) permettent d'envoyer des requêtes simultanées avec une précision de quelques millisecondes. D'autres patterns incluent : la manipulation de workflows (sauter des étapes de validation, reprendre un workflow à une étape antérieure), les IDOR (Insecure Direct Object References - accéder aux ressources d'autres utilisateurs en modifiant un ID), et les mass assignment (assigner des attributs non prévus en exploitant des APIs qui acceptent des propriétés supplémentaires non filtrées). Les vulnérabilités de logique métier sont particulièrement valorisées dans les programmes de bug bounty car elles démontrent une compréhension approfondie de l'application et ont souvent un impact métier direct (pertes financières, violation de la confidentialité).
Fonctionnement
Race condition sur coupon : envoyer 20 requêtes simultanées d'application du coupon PROMO10 avec Turbo Intruder (single-packet attack). Si le check et l'update ne sont pas atomiques (transaction SQL), plusieurs requêtes passent la vérification 'coupon utilisé?' avant que l'une d'elles marque le coupon comme utilisé. Résultat : coupon appliqué 5-10 fois au lieu d'une. Turbo Intruder : engine.queue(target.req) × 20 + engine.openGate('gate1') pour envoyer simultanément.
Exploitation offensive
Les applications financières, les marketplaces, et les systèmes de réservation sont particulièrement sensibles aux business logic flaws. Un pentest complet inclut un mapping des fonctionnalités métier critiques, des tests de chaque transition d'état, et des tests de race conditions sur les opérations sur les ressources. L'impact peut être direct (pertes financières, accès non autorisé à des données) et souvent non auditable dans les logs.
Détection et mitigation
Les transactions de base de données avec verrouillage approprié (SELECT FOR UPDATE) évitent les race conditions sur les ressources partagées. La validation côté serveur de toutes les données métier (prix, quantités, limites) sans faire confiance aux paramètres client est essentielle. Les tests de logique métier doivent être intégrés dans les reviews de code et les tests fonctionnels de sécurité.
Ce terme vous interpelle ?
Nos experts interviennent sur toutes les thématiques de ce glossaire — pentest, conformité NIS 2 / ISO 27001, forensics, sécurité IA. Réponse sous 24h, devis gratuit et sans engagement.