Move est un langage que les développeurs Web3 ne peuvent ignorer. Grâce à son système de types robuste et sa sémantique des ressources, il est très « rigoureux » en matière de propriété des actifs, de transferts illégaux et de compétition des données. Des écosystèmes comme Sui et Aptos placent de plus en plus d'actifs critiques et de protocoles centraux sur Move précisément parce que les caractéristiques fondamentales du langage permettent de construire des contrats intelligents plus sûrs et moins risqués.
Mais la réalité que nous observons dans notre pratique à long terme de l'audit et de la cybersécurité est la suivante : une grande partie des problèmes épineux ne surviennent pas à des endroits évidents comme des « erreurs de syntaxe » ou des « incompatibilités de types », mais plutôt au niveau système, plus complexe et plus réel — interactions entre modules, hypothèses de permissions, limites des machines à états, et ces séquences d'appels qui, prises individuellement, semblent raisonnables, mais qui, combinées, peuvent être exploitées. C'est aussi pourquoi, même si le langage Move possède des paradigmes de sécurité plus aboutis, des attaques majeures ont tout de même eu lieu dans son écosystème. Il est clair que la recherche sur la sécurité de Move doit aller plus loin.
Nous avons identifié un problème central : dans le langage Move, il manque un outil efficace de test flou (Fuzzing). En raison des contraintes plus fortes de Move, le Fuzzing traditionnel des contrats intelligents se heurte à une difficulté majeure dans le contexte Move : générer des séquences de transactions « correctes au niveau des types » et « accessibles sémantiquement » est très complexe. Si les entrées ne sont pas assez précises, l'appel ne peut pas aboutir ; sans appel, il est impossible de couvrir les branches profondes, d'atteindre les états clés, et on risque plus facilement de manquer les chemins qui peuvent réellement déclencher des vulnérabilités.
Sur la base de cette difficulté persistante, nous avons collaboré avec une équipe de recherche universitaire pour finaliser et publier conjointement nos résultats de recherche :
« Belobog : Move Language Fuzzing Framework For Real-World Smart Contracts »
arXiv:2512.02918 (prépublication)
Lien vers l'article : https://arxiv.org/abs/2512.02918
Cet article est actuellement publié sur arXiv en tant que preprint (prépublication). Son but est de permettre à la communauté de voir plus rapidement les avancées de la recherche et de recevoir des retours. Nous soumettons actuellement ce travail à PLDI’26 et attendons le processus d'évaluation par les pairs. Une fois les résultats de la soumission confirmés et l'examen par les pairs terminé, nous partagerons également les progrès en temps voulu.
Faire en sorte que le Fuzzing puisse vraiment « entrer » dans Move : De l'essai-erreur aléatoire au guidage par les types
L'idée centrale de Belobog est simple : puisque le système de types de Move est sa contrainte fondamentale, le Fuzzing devrait également utiliser les types comme guide, et non comme un obstacle.
Les approches traditionnelles reposent souvent sur une génération et une mutation aléatoires, mais sur Move, cela produit rapidement un grand nombre d'échantillons invalides : types incompatibles, ressources inaccessibles, paramètres impossibles à construire correctement, points de blocage dans la chaîne d'appels — au final, vous n'obtenez pas une couverture de test, mais un tas d'« échecs dès le départ ».
La méthode de Belobog ressemble plus à donner une « carte » au Fuzzer. Elle part du système de types de Move pour construire un graphe de types (type graph) basé sur la sémantique des types pour le contrat cible, puis utilise ce graphe pour générer ou muter des séquences de transactions. En d'autres termes, il ne s'agit pas d'assembler des appels aveuglément, mais de construire des combinaisons d'appels plus raisonnables, plus exécutables et plus susceptibles d'explorer en profondeur l'espace d'état en suivant les relations de types.
Pour la recherche en sécurité, ce changement n'apporte pas un « algorithme plus fantaisiste », mais un bénéfice très simple mais crucial :
Une proportion plus élevée d'échantillons valides, une efficacité d'exploration accrue, et une meilleure chance d'atteindre ces chemins profonds où les vulnérabilités réelles apparaissent souvent.
Face aux contraintes complexes : Belobog introduit l'exécution Concolic pour « pousser la porte »
Dans les vrais contrats Move, la logique critique est souvent entourée de multiples vérifications, assertions et contraintes. Si vous ne comptez que sur des mutations traditionnelles, vous risquez de buter constamment à la porte : les conditions ne sont jamais remplies, les branches ne sont jamais atteintes, l'état n'est jamais atteint.
Pour résoudre ce problème, Belobog a conçu et implémenté l'exécution concolique (exécution concrète + déduction symbolique mixte). En termes simples :
D'une part, il maintient une exécution concrète « qui fonctionne », et d'autre part, il utilise la déduction symbolique pour se rapprocher plus efficacement de ces conditions de branchement, permettant ainsi de percer plus efficacement les vérifications complexes et d'augmenter la profondeur de couverture.
Ce point est particulièrement important pour l'écosystème Move, car la « sensation de sécurité » des contrats Move est souvent basée sur des couches de contraintes, et les vrais problèmes se cachent souvent dans les interstices laissés par l'imbrication de ces contraintes. Ce que Belobog veut faire, c'est pousser les tests près de ces interstices.
Alignement sur le monde réel : Pas seulement exécuter une démo, mais approcher les chemins d'attaque réels
Nous ne souhaitons pas que ce type d'effort se limite à « exécuter une démo ». L'évaluation de Belobog est directement orientée vers des projets réels et des conclusions de vulnérabilités réelles. Selon les résultats expérimentaux présentés dans l'article :Belobog a été évalué sur 109 projets réels de contrats intelligents Move. Les résultats expérimentaux montrent que Belobog a pu détecter 100 % des vulnérabilités Critiques et 79 % des vulnérabilités Majeures confirmées par des audits d'experts en sécurité humains.
Plus important encore : Sans dépendre de connaissances préalables sur les vulnérabilités, Belobog a pu reproduire des attaques complètes (full exploits) lors d'événements réels sur la chaîne. La valeur de ce type de capacité réside dans le fait qu'elle se rapproche davantage de ce à quoi nous sommes confrontés dans les situations réelles d'attaque et de défense : les attaquants ne réussissent pas grâce à une « erreur de fonction ponctuelle », mais grâce à un chemin complet et à une évolution de l'état.
Ce travail ne vise pas seulement à « créer un outil »
Cet article mérite d'être lu, non pas seulement parce qu'il propose un nouveau framework, mais parce qu'il représente une direction plus pragmatique : abstraire l'expérience de sécurité de première ligne en méthodes réutilisables et les concrétiser avec une implémentation ingénieuse et vérifiable.
Nous pensons que la signification de Belobog ne réside pas dans le fait d'être « encore un Fuzzer », mais dans le fait qu'il rapproche le Fuzzing de la réalité sur Move — capable d'entrer, d'aller en profondeur, et de se rapprocher des chemins d'attaque réels. Belobog n'est pas conçu comme un outil fermé pour une poignée d'experts en sécurité, mais comme un framework convivial pour les développeurs (developer-friendly) : il vise à réduire la barrière à l'entrée, permettant aux développeurs d'intégrer continuellement des tests de sécurité dans leur flux de développement familier, plutôt que de faire du Fuzzing un travail ponctuel et a posteriori.
Nous publierons également Belobog en open source, espérant qu'il devienne une infrastructure que la communauté pourra utiliser, étendre et faire évoluer ensemble, et non pas un projet expérimental restant au « niveau de l'outil ».
Article (prépublication) : https://arxiv.org/abs/2512.02918
(Ce travail est également en cours de soumission à PLDI’26, en attente de l'examen par les pairs.)
À propos de MoveBit
MoveBit (莫比安全), sous-marque de BitsLab, est une entreprise de sécurité blockchain spécialisée dans l'écosystème Move, visant à faire de l'écosystème Move l'écosystème Web3 le plus sûr grâce à l'utilisation pionnière de la vérification formelle. MoveBit a déjà collaboré avec de nombreux projets renommés dans le monde et a fourni des services d'audit de sécurité complets à ses partenaires. L'équipe MoveBit est composée d'experts en sécurité de renom du monde universitaire et de leaders de l'industrie de la sécurité, cumulant 10 ans d'expérience en sécurité et ayant publié des recherches en sécurité lors de conférences académiques internationales de premier plan comme NDSS et CCS. De plus, ils sont parmi les premiers contributeurs de l'écosystème Move, travaillant avec les développeurs Move pour établir les normes des applications Move sécurisées.








