DataDome

DataDome lance l’obfuscation basée sur machine virtuelle (VM)

Table des matières

Dans la course aux armements permanente entre les fraudeurs et les équipes de sécurité, la détection côté client représente à la fois une couche de défense critique et une vulnérabilité inhérente. La logique de détection de DataDome, s’exécutant directement dans le navigateur pour identifier l’automatisation malveillante, est, par définition, accessible au public. Tout attaquant disposant d’outils de développement peut inspecter, mettre en pause et analyser notre code. Cela exige une innovation continue dans la manière dont nous protégeons nos capacités de détection.

Les méthodes traditionnelles d’obfuscation, qui se contentent de coder du texte ou d’ajouter du code « inutile », ne suffisent plus. Les acteurs de menace sophistiqués ont développé des outils de désobfuscation automatisés capables de déjouer ces protections en quelques minutes. Chez DataDome, nous savons depuis longtemps que l’obfuscation classique seule ne peut pas protéger une logique de détection côté client avancée. La logique du code reste visible, simplement plus difficile à lire.

DataDome a déjà employé des techniques d’obfuscation avancées, y compris la régénération dynamique du code et la compilation WebAssembly (WASM) pour garder une longueur d’avance sur les attaquants. Mais la sophistication des fraudeurs continue d’évoluer, exigeant une protection encore plus robuste.

Aujourd’hui, nous annonçons la sortie de l’obfuscation par machine virtuelle (VM) pour DataDome Device Check et Slider, notre avancée la plus significative à ce jour en matière de protection côté client. Combinée à nos protections dynamiques et WASM existantes, cette défense à trois couches représente l’avant-garde de la sécurité de la détection côté client.

Présentation de l’obfuscation basée sur VM : transformer la manière l’exécution du code de détection

Bien que nos techniques d’obfuscation existantes se soient avérées très efficaces, l’obfuscation VM rend encore plus difficile pour les acteurs malveillants de détecter notre code. Plutôt que d’obscurcir ce que dit le code, l’obfuscation VM change comment le code s’exécute. Nous avons construit une machine virtuelle personnalisée qui fonctionne entièrement dans le navigateur, créant un environnement d’exécution qui est architecturalement différent du JavaScript standard.

Comment fonctionne notre obfuscation basée sur VM

Une machine virtuelle est un programme qui simule un ordinateur. Tout comme un CPU physique lit le code machine et exécute des instructions, notre VM lit le bytecode personnalisé et l’exécute étape par étape, le tout dans l’environnement du navigateur.

Au moment de la compilation : un compilateur propriétaire traduit notre logique de détection en bytecode. Le code source original n’est jamais envoyé au navigateur. À la place, nous livrons une séquence d’instructions binaires où chaque instruction est simplement un nombre (un « opcode ») suivi de ses opérandes. Du point de vue d’un attaquant, le navigateur ne reçoit qu’un flux opaque d’octets sans structure discernable.

Au moment de l’exécution : un interpréteur exécute le bytecode instruction par instruction. Il maintient son propre état interne, y compris :

  • un compteur de programme qui suit quelle instruction exécuter ensuite ;
  • une pile pour les valeurs temporaires et le calcul ;
  • une mémoire interne pour les variables et les structures de données.

Les opérations que notre VM comprend—arithmétique, comparaisons, accès à la mémoire, flux de contrôle et appels d’API du navigateur—constituent un ensemble d’instructions propriétaire. Ce langage personnalisé est unique à DataDome, sans spécification publique ni documentation.

Pourquoi l’obfuscation VM est-elle unique et puissante

L’obfuscation VM crée plusieurs couches de complexité qui rendent l’ingénierie inverse extrêmement difficile :

Limites d’exécution floues
Dans l’interpréteur, la récupération, le décodage et l’exécution des instructions se mélangent de manière non linéaire. Le flux de contrôle devient des sauts entre les adresses de bytecode sans structure reconnaissable. Cela rend à la fois l’analyse statique (lecture du code) et l’analyse dynamique (observation de son exécution avec un débogueur) exponentiellement plus difficiles.

Aucun outil public
Les outils de désobfuscation existent parce que les modèles d’obfuscation standard sont bien documentés. Notre VM personnalisée n’a pas de spécification publique, pas de documentation et pas d’outils d’ingénierie inverse existants. Les attaquants ne peuvent pas simplement télécharger un désobfuscateur ; ils doivent en construire un à partir de zéro. Cela nécessite un temps et une expertise considérables.

Décomposition des instructions
Notre VM utilise un ensemble d’instructions beaucoup plus atomique que JavaScript. Une seule opération de haut niveau peut se décomposer en dizaines d’instructions de bytecode. Les constructions de haut niveau comme les instructions if/else et les boucles disparaissent complètement, remplacées par des sauts conditionnels dispersés dans le bytecode. Les attaquants traçant l’exécution ne voient aucun modèle familier, seulement une séquence plate d’instructions cryptiques.

Une cible en constante évolution
Comme notre base de code existante, la VM elle-même est soumise à notre pipeline de régénération dynamique. Sur un calendrier de déploiement régulier, l’ensemble du système est reconstruit :

  • les opcodes sont remappés : une instruction codée en tant que 0x1F devient 0x7A. La correspondance entre les nombres et les opérations se randomise à partir de zéro ;
  • la structure du bytecode change : le format binaire et la disposition des instructions évoluent, invalidant toute documentation des attaquants ;
  • l’architecture de l’interpréteur évolue : l’implémentation interne de la VM est restructurée avec des structures de données et un flux d’exécution réorganisés.

Cela fait de notre VM une cible mouvante. Tout progrès réalisé par les attaquants expire avec le prochain déploiement. 

La stratégie d’obfuscation à trois couches de DataDome

L’obfuscation VM complète l’approche de défense en profondeur de DataDome pour la protection côté client. Notre stratégie à trois couches combine désormais :

1. Obfuscation par machine virtuelle (VM) [NOUVEAU]

Notre couche la plus récente et la plus sophistiquée, l’obfuscation VM, transforme fondamentalement l’exécution du code. Plutôt que de cacher le code, nous changeons la façon dont il s’exécute, créant un environnement d’exécution propriétaire qui résiste à la fois à l’ingénierie inverse automatisée et manuelle.

2. Régénération dynamique du code [AMÉLIORÉE]

Notre système de régénération dynamique existant reconstruit et redéploie en continu l’ensemble de notre pile de protection, y compris la nouvelle VM. Sur un calendrier régulier, chaque aspect de notre obfuscation change : noms de variables, structure du code, clés de chiffrement, et maintenant, opcodes de la VM et architecture de l’interpréteur. Cela transforme la protection en une équation économique : le coût et le temps nécessaires pour réaliser une ingénierie inverse de notre système dépassent largement sa durée de vie utile.

3. Compilation WebAssembly (WASM) [EXISTANT]

Des portions critiques de notre logique de détection sont compilées en modules WebAssembly. Contrairement à JavaScript, WASM fournit du code binaire précompilé qui s’exécute dans le runtime bas niveau du navigateur. Cela offre à la fois des avantages de performance et une obfuscation par conception, car les binaires compilés résistent aux méthodes d’analyse JavaScript traditionnelles.

Ces trois techniques créent des défenses en couches. Percer une couche laisse encore les attaquants face à deux autres, chacune nécessitant des approches d’ingénierie inverse fondamentalement différentes.

Sécurité sans compromis : performance transparente

Une protection avancée n’est précieuse que si elle ne dégrade pas l’expérience des utilisateurs légitimes. Chez DataDome, la sécurité et l’expérience utilisateur ne sont pas des compromis.

Avant de déployer l’obfuscation VM en production, nous avons rigoureusement mesuré son impact sur la performance à travers nos implémentations Device Check et Slider. Les résultats montrent qu’une sécurité sophistiquée ne nécessite pas de sacrifier la vitesse :

  • temps d’exécution médian : amélioré après l’implémentation de la VM, diminuant d’environ 15% ;
  • temps d’exécution P95 : aucune augmentation mesurable de la latence de queue avec la sortie ; une optimisation supplémentaire, déployée quelques jours plus tard, l’a finalement améliorée ;
  • performance perçue par l’utilisateur : complètement transparente.

Les graphiques suivants montrent la performance mesurée en production avant et après le déploiement de la VM, combinant le temps d’exécution du code Slider et Device Check.

Ces mesures prouvent que l’obfuscation basée sur VM n’introduit aucune surcharge perceptible pour les utilisateurs finaux, malgré sa complexité architecturale. Notre détection fonctionne tout aussi rapidement, tout en étant exponentiellement plus difficile à démonter.

Cette transparence de performance reflète notre philosophie d’ingénierie : protection impitoyable avec une UX optimisée. Chaque milliseconde compte dans le e-commerce, où même de petits retards impactent les taux de conversion. 

Median execution time graph p95 execution time graph

DataDome est leader dans la sécurité de la détection côté client

La sortie de l’obfuscation basée sur VM consolide la position de DataDome à l’avant-garde de la sécurité de la détection côté client. En combinant l’obfuscation VM avec nos techniques de régénération dynamique et de WebAssembly existantes, nous avons créé la protection côté client la plus sophistiquée disponible dans la gestion des bots.

Ce que cette stratégie de défense en profondeur à trois couches garantit :

  1. L’obfuscation VM transforme l’exécution du code, rendant l’ingénierie inverse exponentiellement plus complexe.
  2. La régénération dynamique évolue continuellement toutes les couches de protection, invalidant automatiquement les progrès des attaquants.
  3. WebAssembly fournit une protection binaire compilée avec des caractéristiques de performance natives.

Aucune technique unique n’est une solution miracle. Mais ensemble, elles créent un système de protection où le temps, le coût et l’expertise nécessaires pour percer nos défenses dépassent largement le retour sur investissement de tout attaquant ; surtout lorsque cette protection se réinitialise automatiquement à chaque déploiement.

DataDome’s Device Check et Slider bénéficient désormais de ce système d’obfuscation complet à trois couches, ce qui offre une protection de pointe contre les opérateurs de bots les plus sophistiqués, sans compromettre la vitesse, la fiabilité ou l’expérience utilisateur.

L’avenir de la protection côté client

La détection côté client fera toujours face au défi de fonctionner dans un environnement hostile. Mais avec une innovation continue et la bonne approche architecturale, ce défi devient gérable.

La sortie de l’obfuscation VM marque une étape importante dans l’engagement continu de DataDome à rester en avance sur les menaces. En changeant la façon dont notre code de détection s’exécute et en le combinant avec nos protections dynamiques et WebAssembly éprouvées, nous avons construit un système qui est exponentiellement plus difficile à détourner, s’adapte automatiquement au fil du temps et maintient des performances optimales.

Pour les organisations confrontées à des menaces d’automatisation sophistiquées, l’obfuscation classique n’est plus suffisante. L’avenir de la sécurité côté client réside dans une protection multi-couches, en évolution continue. Avec la sortie de l’obfuscation VM, DataDome continue de montrer la voie.

Vous voulez voir quels bots et agents malveillants peuvent accéder à votre site web ? Le scan de vulnérabilité de DataDome vous montre exactement où vos défenses sont exposées. Obtenez un scan gratuit aujourd’hui pour voir quelles menaces passent à travers et comment les arrêter.