Publication
Partagez vos connaissances.

🔒 Sécurisation de votre application Sui : une liste de contrôle de sécurité pratique
S'appuyer sur Sui est passionnant : son modèle centré sur l'objet ouvre la voie à de nouveaux modèles de conception et à un parallélisme plus rapide. Mais ⚠️ nouveaux modèles = nouvelles erreurs. Les bugs de propriété, les fuites d'entiercement ou la négligence des clés d'administration peuvent entraîner des pertes coûteuses.
Ce guide vous propose une liste de contrôle de sécurité étape par étape 📝 ainsi qu'un exemple pratique de marketplace pour vous montrer comment éviter les pièges les plus courants.
✅ 1) La liste de contrôle de sécurité Sui
- 🔑 Le moindre privilège • Ne vous fiez pas à une seule « clé d'administration » globale. • Utilisez des objets de capacité pour obtenir de l'autorité. • Protégez les pouvoirs administratifs critiques grâce à une gouvernance multisignature ou en chaîne.
- ⚖️ Transferts séquestres atomiques • Sécurisez toujours les actifs dans des objets de liste dédiés. • Utilisez des blocs de transactions programmables (PTB) pour les échanges atomiques → évitez les dépenses anticipées et les doubles dépenses.
- 🛡️ Validez toutes les entrées • Dans Move, vérifiez les longueurs, les limites et les contraintes des vecteurs. • Validez la désérialisation et rejetez les objets mal formés. • Ne présumez jamais la sécurité des entrées simplement parce que l'objet existe sur la chaîne.
- 🧪 Testez et fuzz de manière agressive • Rédigez des tests négatifs : entrées non valides, mises à jour simultanées, épuisement des gaz. • Ajoutez du fuzzing pour les flux de transactions inattendus. • Automatisez dans CI pour détecter les régressions à un stade précoce.
- 🔐 Gestion des clés • Stockez les clés d'administration dans des portefeuilles matériels. • Utilisez le multisig pour les actions de gouvernance. • Faites pivoter les touches lorsque les membres de l'équipe partent.
- 👀 Audits et mesures incitatives • Faites auditer les modules Move critiques. • Lancez un programme Bug Bounty à des fins de test communautaire. • N'oubliez pas : les yeux extérieurs détectent ce qui vous manque.
🏪 2) Exemple pratique : un marché sûr
Voici comment appliquer la liste de contrôle dans une DApp de la place de marché : • Sécurisez les NFT en toute sécurité : Le vendeur déplace le NFT vers un objet d'annonce. Le contrat de la place de marché ne peut pas accepter de fonds sans l'approbation du vendeur. • Gérez correctement les redevances : Calculez les redevances dans le PTB, en veillant à une répartition correcte des frais (attention aux arrondis !). • Réentrée ? Pas ici : Le modèle de ressources de Move empêche la copie/la réentrée dès sa conception. Testez tout de même tous les flux pour vous assurer qu'il n'y a aucune faille logique.
📚 Sources et lectures complémentaires • Sui Docs : concepts et transactions • Livre blanc Sui (modèle centré sur l'objet) • Documentation sur le SDK TypeScript de Mysten Labs • Carnet de films • Sur GitHub Repo
✨ À retenir : sur Sui, la sécurité est moins une question de bogues de réentrée de type EVM qu'une question de propriété, d'autorité et d'atomicité. Si vous suivez la liste de contrôle, vous réduirez considérablement votre surface d'attaque tout en protégeant les actifs des utilisateurs.
- Sui
Sui is a Layer 1 protocol blockchain designed as the first internet-scale programmable blockchain platform.
Gagne ta part de 1000 Sui
Gagne des points de réputation et obtiens des récompenses pour avoir aidé la communauté Sui à se développer.

- Pourquoi BCS exige-t-il un ordre de champs exact pour la désérialisation alors que les structures Move ont des champs nommés ?55
- « Erreurs de vérification de sources multiples » dans les publications du module Sui Move - Résolution automatique des erreurs45
- Échec de la transaction Sui : objets réservés pour une autre transaction48
- Erreur Sui Move - Impossible de traiter la transaction Aucune pièce de gaz valide n'a été trouvée pour la transaction29
- Comment les contraintes de capacité interagissent-elles avec les champs dynamiques dans des collections hétérogènes ?07