Analyse de la sécurité du contrat SUI et des défis de l'écosystème

Avancé12/17/2024, 5:30:04 AM
En tant que membre important de l'écosystème Move, SUI s'engage à fournir des services de transaction rapides et sécurisés pour divers scénarios d'application blockchain. Dans cet article, Beosin vous aidera à comprendre les défis de sécurité auxquels sont confrontés les utilisateurs et les développeurs de l'écosystème SUI, grâce à des années d'expérience en audit de sécurité.

Depuis août, le développement de l'écosystème Sui a été rapide. Selon DefiLlama, le TVL de Sui a dépassé 1 milliard de dollars, en hausse de 200 % au cours des deux derniers mois, et actuellement le volume des échanges de Cetus, un Dex construit sur Sui, dépasse 160 millions de dollars par jour.

Le 9 octobre, le USDC natif de Sui est entré sur le mainnet, ce qui continuera à attirer plus de fonds dans l'écosystème Sui. En tant que membre important de l'écosystème Move, Sui s'engage à fournir des services de transaction rapides et sécurisés pour une variété de scénarios d'application blockchain.

Dans cet article, Beosin vous aidera à comprendre les défis de sécurité auxquels sont confrontés les utilisateurs et les développeurs de l'écosystème SUI avec des années d'expérience en audit de sécurité.

Sécurité du contrat

Sui utilise Move comme langage de programmation pour les contrats intelligents. Move a été conçu pour être un langage bytecode exécutable avec des algorithmes de sécurité intégrés et un vérificateur de bytecode, et utilise des appels statiques lors de l'appel de contrats.

Ce design permet à Move de traiter les vulnérabilités courantes des contrats intelligents, telles que les attaques de réentrance, les débordements d'entiers, les doubles dépenses et les éventuels problèmes de compilateur, mais il est toujours possible que les développeurs introduisent involontairement des vulnérabilités dans le développement de contrats. En réponse, Beosin a introduit Move Lint en 2023, un outil de détection statique qui automatise la détection des risques de sécurité potentiels dans les contrats et localise les vulnérabilités.

En plus des outils de détection, voici les problèmes de sécurité auxquels les développeurs doivent accorder une attention supplémentaire lors du développement des contrats Move pour améliorer la sécurité :

1) Dépassement d'entier

Comparé à d'autres langages de contrat intelligent, Move vérifie automatiquement les problèmes de débordement par défaut lors des opérations mathématiques entières, ce qui peut prévenir un grand nombre de problèmes de débordement, mais il y a encore deux points à noter :

Les opérations de bits dans le langage Move ne vérifient pas automatiquement les débordements car les opérations de bits sont essentiellement des opérations au niveau des bits sur des données qui se comportent différemment des opérations entières.

Lorsque la vérification de dépassement automatique de Move prend effet, l'exécution de la fonction lance une exception, qui, si elle est mal conçue, peut entraîner l'échec de l'exécution du projet commercial comme prévu, entraînant des attaques de type DoS.

2) Contrôle des autorisations et des accès

Le passage d'objets privilégiés et d'appels de fonction privilégiés doit être soigneusement authentifié, car ces fonctions et objets sont impliqués dans la sécurité du financement. De plus, les types d'objets doivent être vérifiés pour déterminer s'ils sont des objets privés ou partagés. Si un objet est converti de manière incorrecte d'un objet privé en un objet partagé, des utilisateurs non autorisés peuvent accéder à l'objet, ce qui constitue un risque potentiel pour la sécurité.

Les développeurs peuvent utiliser Move Prover pour vérifier que le programme applique une politique de contrôle d'accès explicite. Par exemple, dans std::offre, nous pouvons voir que la fonction est terminée lorsque le destinataire n'est pas sur liste blanche :

3) Problème de dépendance de l'ordre de transaction

La Dépendance de l'Ordre des Transactions (DOT) fait référence au fait que le comportement d'un contrat peut avoir des résultats différents en fonction de l'ordre dans lequel les transactions sont exécutées, notamment dans un environnement décentralisé où le mineur ou le vérificateur peut choisir comment les transactions sont ordonnées. Cela peut entraîner des risques tels que des attaques de front-running.

En Sui, il revient encore au producteur de blocs d'exécuter l'ordre des transactions, de sorte que les contrats MOVE peuvent encore être affectés par ce problème s'ils sont conçus pour dépendre de l'ordre des transactions pour les changements d'état.

4) Problème de consommation de gaz

Sur la chaîne Sui, le problème du gaz des contrats intelligents Move se reflète principalement dans les coûts de calcul et de stockage nécessaires à l’exécution des contrats. Avec l’augmentation de la complexité des contrats et les changements d’état, la consommation de gaz augmente également en conséquence. Les développeurs doivent se concentrer sur l’optimisation de la logique du contrat, réduire les calculs inutiles et les mises à jour de statut afin de réduire les coûts de transaction pour les utilisateurs, et surtout d’éviter la situation d’itérations incontrôlables dans le contrat, qui peuvent être dues à un gaz insuffisant et à l’incapacité d’exécuter correctement l’entreprise.

5) Précision du calcul

Actuellement, le type numérique pris en charge par Move est un entier non signé et ne prend pas en charge les nombres à virgule flottante. Par conséquent, la partie fractionnaire sera tronquée et arrondie vers le bas lors des opérations de division, ce qui entraînera des résultats de calcul inexacts, pouvant affecter certaines politiques clés, entraîner une perte de revenus et même devenir une vulnérabilité de sécurité.

Pour ce problème, la mesure habituelle d'atténuation consiste à étendre la précision, mais il convient de noter que la précision doit être rétablie lorsque le résultat final est obtenu.

6) Gestion des objets

Dans les contrats intelligents Move sur la blockchain Sui, la gestion des objets est un défi clé, couvrant plusieurs aspects du cycle de vie de l'objet, de la propriété, de l'accès concurrent, de la sérialisation et des coûts de stockage. Les développeurs doivent gérer précisément la création, la mise à jour et la destruction des objets pour éviter le gaspillage de ressources et l'incohérence de l'état. En même temps, la conception raisonnable de la logique du contrat pour contrôler la propriété et les droits d'accès des objets, ainsi que la gestion de l'accès concurrent de plusieurs utilisateurs au même objet, sont des facteurs importants pour assurer le fonctionnement sûr et efficace des contrats intelligents.

7) Problèmes de conception et de mise en œuvre de la logique commerciale

Par exemple, avec la mise en œuvre du prêt éclair dans le projet SUI DeFi, les attaquants peuvent utiliser un prêt éclair pour effectuer de grandes attaques de fonds telles que la manipulation des prix.

Dans la fonctionnalité courante d'échange de jetons AMM, les développeurs peuvent utiliser Move Prover pour vérifier que le nombre de jetons a été modifié correctement:

Par exemple, les protocoles de prêt doivent toujours être entièrement sécurisés après une série de dépôts, d'emprunts et de retraits. Dans le cas où le carnet d'ordres de l'accord de trading de contrat perpétuel on-chain est annulé après la passation de l'ordre, il ne doit y avoir aucun changement dans le registre, etc., qui doivent être vérifiés et validés par le développeur.

Défis dans l'écosystème SUI

Actuellement, DeFi et Memecoins de Sui sont en plein essor, et le volume des échanges et le TVL ont attiré une croissance explosive. Par la suite, il y a de plus en plus de types d'arnaques et de transactions indésirables que les utilisateurs doivent éviter.

Phishings

Cette année, une escroquerie par largage aérien appelée Suisses est apparue dans Sui Eco, ce qui a permis à de nombreux utilisateurs de se faire voler leurs actifs. Lorsqu'un utilisateur se connecte à un portefeuille sur le site web de Suisses et clique sur Réclamation, une demande de transaction pour le transfert des actifs de l'utilisateur apparaît. Si l'utilisateur signe la transaction, il constatera que tous les actifs de son portefeuille ont été transférés.

En raison des caractéristiques de SUI : tout est l'objet, non seulement les jetons dans le portefeuille de l'utilisateur, mais aussi les NFT, ainsi que la participation de l'utilisateur à l'exploitation minière DeFi, à l'engagement de liquidité et à d'autres certificats. En cas d'attaque de phishing, tous les actifs d'un utilisateur au sein de l'écosystème SUI peuvent être transférés par le pirate informatique en une seule fois.

Arnaques aux jetons

Il y a de nombreux tokens factices et pièges à miel dans l'écosystème Sui. En particulier, lorsque les utilisateurs échangent des memecoins dans l'écosystème Sui, ils peuvent être attrapés accidentellement.

En créant des jetons sur SUI, comme le montre ci-dessous, les pirates informatiques peuvent définir les mêmes icônes et noms que les jetons populaires ou majeurs, les rendant indiscernables pour les utilisateurs généraux. Par conséquent, les utilisateurs doivent vérifier si le format de données du jeton est correct lors de l'achat du jeton.

De plus, les pirates informatiques peuvent également ajouter une fonction de liste de refus au contrat de jeton, de sorte que les utilisateurs qui achètent le jeton ne peuvent pas le vendre, ce qui cause des pertes aux utilisateurs.

Défi MEV

MEV signifie Maximum Extractable Value. MEV désignait à l'origine la Valeur Extractible par les Mineurs, où les mineurs du réseau BTC gagnent des récompenses au-delà des frais de bloc et de réseau en réorganisant les transactions dans les blocs. MEV n'a rien à voir avec le type de réseau blockchain. MEV existe dans toutes les blockchains, et Sui ne fait pas exception.

Sui utilise Narwhal comme pool de mémoire pour attribuer des transactions inachevées aux nœuds, et utilise l'algorithme Bullshark comme moteur de consensus pour trier les transactions.

La règle de commande de Sui pour les transactions est basée sur les frais de gaz. De plus, étant donné que Sui adopte un schéma d'exécution de transaction combinant parallèle et séquentiel, les transactions qui partagent le même état de pool de transactions AMM ne peuvent être exécutées que séquentiellement. Par conséquent, l'attaque sandwich / l'exécution de transaction en frontrunning est faisable. Un attaquant peut lancer une attaque sandwich en proposant des frais de gaz plus élevés, de sorte que les utilisateurs participant aux transactions DeFi subissent des pertes.

Avertissement :

  1. Cet article est reproduit à partir de [beosin]. Tous les droits d'auteur appartiennent à l'auteur original [beosin]. Si des objections sont formulées à cette réimpression, veuillez contacter le Porte Apprendrel'équipe, et ils s'en occuperont rapidement.
  2. Clause de non-responsabilité : Les opinions exprimées dans cet article sont uniquement celles de l'auteur et ne constituent en aucun cas des conseils en matière d'investissement.
  3. Les traductions de l'article dans d'autres langues sont effectuées par l'équipe Gate Learn. Sauf mention contraire, il est interdit de copier, distribuer ou plagier les articles traduits.

Analyse de la sécurité du contrat SUI et des défis de l'écosystème

Avancé12/17/2024, 5:30:04 AM
En tant que membre important de l'écosystème Move, SUI s'engage à fournir des services de transaction rapides et sécurisés pour divers scénarios d'application blockchain. Dans cet article, Beosin vous aidera à comprendre les défis de sécurité auxquels sont confrontés les utilisateurs et les développeurs de l'écosystème SUI, grâce à des années d'expérience en audit de sécurité.

Depuis août, le développement de l'écosystème Sui a été rapide. Selon DefiLlama, le TVL de Sui a dépassé 1 milliard de dollars, en hausse de 200 % au cours des deux derniers mois, et actuellement le volume des échanges de Cetus, un Dex construit sur Sui, dépasse 160 millions de dollars par jour.

Le 9 octobre, le USDC natif de Sui est entré sur le mainnet, ce qui continuera à attirer plus de fonds dans l'écosystème Sui. En tant que membre important de l'écosystème Move, Sui s'engage à fournir des services de transaction rapides et sécurisés pour une variété de scénarios d'application blockchain.

Dans cet article, Beosin vous aidera à comprendre les défis de sécurité auxquels sont confrontés les utilisateurs et les développeurs de l'écosystème SUI avec des années d'expérience en audit de sécurité.

Sécurité du contrat

Sui utilise Move comme langage de programmation pour les contrats intelligents. Move a été conçu pour être un langage bytecode exécutable avec des algorithmes de sécurité intégrés et un vérificateur de bytecode, et utilise des appels statiques lors de l'appel de contrats.

Ce design permet à Move de traiter les vulnérabilités courantes des contrats intelligents, telles que les attaques de réentrance, les débordements d'entiers, les doubles dépenses et les éventuels problèmes de compilateur, mais il est toujours possible que les développeurs introduisent involontairement des vulnérabilités dans le développement de contrats. En réponse, Beosin a introduit Move Lint en 2023, un outil de détection statique qui automatise la détection des risques de sécurité potentiels dans les contrats et localise les vulnérabilités.

En plus des outils de détection, voici les problèmes de sécurité auxquels les développeurs doivent accorder une attention supplémentaire lors du développement des contrats Move pour améliorer la sécurité :

1) Dépassement d'entier

Comparé à d'autres langages de contrat intelligent, Move vérifie automatiquement les problèmes de débordement par défaut lors des opérations mathématiques entières, ce qui peut prévenir un grand nombre de problèmes de débordement, mais il y a encore deux points à noter :

Les opérations de bits dans le langage Move ne vérifient pas automatiquement les débordements car les opérations de bits sont essentiellement des opérations au niveau des bits sur des données qui se comportent différemment des opérations entières.

Lorsque la vérification de dépassement automatique de Move prend effet, l'exécution de la fonction lance une exception, qui, si elle est mal conçue, peut entraîner l'échec de l'exécution du projet commercial comme prévu, entraînant des attaques de type DoS.

2) Contrôle des autorisations et des accès

Le passage d'objets privilégiés et d'appels de fonction privilégiés doit être soigneusement authentifié, car ces fonctions et objets sont impliqués dans la sécurité du financement. De plus, les types d'objets doivent être vérifiés pour déterminer s'ils sont des objets privés ou partagés. Si un objet est converti de manière incorrecte d'un objet privé en un objet partagé, des utilisateurs non autorisés peuvent accéder à l'objet, ce qui constitue un risque potentiel pour la sécurité.

Les développeurs peuvent utiliser Move Prover pour vérifier que le programme applique une politique de contrôle d'accès explicite. Par exemple, dans std::offre, nous pouvons voir que la fonction est terminée lorsque le destinataire n'est pas sur liste blanche :

3) Problème de dépendance de l'ordre de transaction

La Dépendance de l'Ordre des Transactions (DOT) fait référence au fait que le comportement d'un contrat peut avoir des résultats différents en fonction de l'ordre dans lequel les transactions sont exécutées, notamment dans un environnement décentralisé où le mineur ou le vérificateur peut choisir comment les transactions sont ordonnées. Cela peut entraîner des risques tels que des attaques de front-running.

En Sui, il revient encore au producteur de blocs d'exécuter l'ordre des transactions, de sorte que les contrats MOVE peuvent encore être affectés par ce problème s'ils sont conçus pour dépendre de l'ordre des transactions pour les changements d'état.

4) Problème de consommation de gaz

Sur la chaîne Sui, le problème du gaz des contrats intelligents Move se reflète principalement dans les coûts de calcul et de stockage nécessaires à l’exécution des contrats. Avec l’augmentation de la complexité des contrats et les changements d’état, la consommation de gaz augmente également en conséquence. Les développeurs doivent se concentrer sur l’optimisation de la logique du contrat, réduire les calculs inutiles et les mises à jour de statut afin de réduire les coûts de transaction pour les utilisateurs, et surtout d’éviter la situation d’itérations incontrôlables dans le contrat, qui peuvent être dues à un gaz insuffisant et à l’incapacité d’exécuter correctement l’entreprise.

5) Précision du calcul

Actuellement, le type numérique pris en charge par Move est un entier non signé et ne prend pas en charge les nombres à virgule flottante. Par conséquent, la partie fractionnaire sera tronquée et arrondie vers le bas lors des opérations de division, ce qui entraînera des résultats de calcul inexacts, pouvant affecter certaines politiques clés, entraîner une perte de revenus et même devenir une vulnérabilité de sécurité.

Pour ce problème, la mesure habituelle d'atténuation consiste à étendre la précision, mais il convient de noter que la précision doit être rétablie lorsque le résultat final est obtenu.

6) Gestion des objets

Dans les contrats intelligents Move sur la blockchain Sui, la gestion des objets est un défi clé, couvrant plusieurs aspects du cycle de vie de l'objet, de la propriété, de l'accès concurrent, de la sérialisation et des coûts de stockage. Les développeurs doivent gérer précisément la création, la mise à jour et la destruction des objets pour éviter le gaspillage de ressources et l'incohérence de l'état. En même temps, la conception raisonnable de la logique du contrat pour contrôler la propriété et les droits d'accès des objets, ainsi que la gestion de l'accès concurrent de plusieurs utilisateurs au même objet, sont des facteurs importants pour assurer le fonctionnement sûr et efficace des contrats intelligents.

7) Problèmes de conception et de mise en œuvre de la logique commerciale

Par exemple, avec la mise en œuvre du prêt éclair dans le projet SUI DeFi, les attaquants peuvent utiliser un prêt éclair pour effectuer de grandes attaques de fonds telles que la manipulation des prix.

Dans la fonctionnalité courante d'échange de jetons AMM, les développeurs peuvent utiliser Move Prover pour vérifier que le nombre de jetons a été modifié correctement:

Par exemple, les protocoles de prêt doivent toujours être entièrement sécurisés après une série de dépôts, d'emprunts et de retraits. Dans le cas où le carnet d'ordres de l'accord de trading de contrat perpétuel on-chain est annulé après la passation de l'ordre, il ne doit y avoir aucun changement dans le registre, etc., qui doivent être vérifiés et validés par le développeur.

Défis dans l'écosystème SUI

Actuellement, DeFi et Memecoins de Sui sont en plein essor, et le volume des échanges et le TVL ont attiré une croissance explosive. Par la suite, il y a de plus en plus de types d'arnaques et de transactions indésirables que les utilisateurs doivent éviter.

Phishings

Cette année, une escroquerie par largage aérien appelée Suisses est apparue dans Sui Eco, ce qui a permis à de nombreux utilisateurs de se faire voler leurs actifs. Lorsqu'un utilisateur se connecte à un portefeuille sur le site web de Suisses et clique sur Réclamation, une demande de transaction pour le transfert des actifs de l'utilisateur apparaît. Si l'utilisateur signe la transaction, il constatera que tous les actifs de son portefeuille ont été transférés.

En raison des caractéristiques de SUI : tout est l'objet, non seulement les jetons dans le portefeuille de l'utilisateur, mais aussi les NFT, ainsi que la participation de l'utilisateur à l'exploitation minière DeFi, à l'engagement de liquidité et à d'autres certificats. En cas d'attaque de phishing, tous les actifs d'un utilisateur au sein de l'écosystème SUI peuvent être transférés par le pirate informatique en une seule fois.

Arnaques aux jetons

Il y a de nombreux tokens factices et pièges à miel dans l'écosystème Sui. En particulier, lorsque les utilisateurs échangent des memecoins dans l'écosystème Sui, ils peuvent être attrapés accidentellement.

En créant des jetons sur SUI, comme le montre ci-dessous, les pirates informatiques peuvent définir les mêmes icônes et noms que les jetons populaires ou majeurs, les rendant indiscernables pour les utilisateurs généraux. Par conséquent, les utilisateurs doivent vérifier si le format de données du jeton est correct lors de l'achat du jeton.

De plus, les pirates informatiques peuvent également ajouter une fonction de liste de refus au contrat de jeton, de sorte que les utilisateurs qui achètent le jeton ne peuvent pas le vendre, ce qui cause des pertes aux utilisateurs.

Défi MEV

MEV signifie Maximum Extractable Value. MEV désignait à l'origine la Valeur Extractible par les Mineurs, où les mineurs du réseau BTC gagnent des récompenses au-delà des frais de bloc et de réseau en réorganisant les transactions dans les blocs. MEV n'a rien à voir avec le type de réseau blockchain. MEV existe dans toutes les blockchains, et Sui ne fait pas exception.

Sui utilise Narwhal comme pool de mémoire pour attribuer des transactions inachevées aux nœuds, et utilise l'algorithme Bullshark comme moteur de consensus pour trier les transactions.

La règle de commande de Sui pour les transactions est basée sur les frais de gaz. De plus, étant donné que Sui adopte un schéma d'exécution de transaction combinant parallèle et séquentiel, les transactions qui partagent le même état de pool de transactions AMM ne peuvent être exécutées que séquentiellement. Par conséquent, l'attaque sandwich / l'exécution de transaction en frontrunning est faisable. Un attaquant peut lancer une attaque sandwich en proposant des frais de gaz plus élevés, de sorte que les utilisateurs participant aux transactions DeFi subissent des pertes.

Avertissement :

  1. Cet article est reproduit à partir de [beosin]. Tous les droits d'auteur appartiennent à l'auteur original [beosin]. Si des objections sont formulées à cette réimpression, veuillez contacter le Porte Apprendrel'équipe, et ils s'en occuperont rapidement.
  2. Clause de non-responsabilité : Les opinions exprimées dans cet article sont uniquement celles de l'auteur et ne constituent en aucun cas des conseils en matière d'investissement.
  3. Les traductions de l'article dans d'autres langues sont effectuées par l'équipe Gate Learn. Sauf mention contraire, il est interdit de copier, distribuer ou plagier les articles traduits.
Empieza ahora
¡Regístrate y recibe un bono de
$100
!