L'équipe CertiK a découvert une série de vulnérabilités de déni de service dans la blockchain Sui. Parmi ces vulnérabilités, une nouvelle vulnérabilité à fort impact se démarque. Cette vulnérabilité peut empêcher les nœuds du réseau Sui de traiter de nouvelles transactions, ce qui a pour effet de fermer complètement l'ensemble du réseau. Lundi dernier, CertiK a reçu une prime de bug SUI de 500 000 $ pour avoir découvert cette vulnérabilité de sécurité majeure. CoinDesk, le média faisant autorité dans l'industrie américaine, a rendu compte de l'incident, puis les principaux médias ont suivi son rapport et publié des informations pertinentes. Cette vulnérabilité de sécurité est clairement appelée « roue de hamster » : sa méthode d'attaque unique est différente des attaques actuellement connues. L'attaquant n'a besoin que de soumettre une charge utile d'environ 100 octets pour déclencher une boucle infinie dans le nœud de vérification Sui, ce qui le rend incapable. pour répondre à de nouvelles transactions. De plus, les dommages causés par l'attaque peuvent persister après le redémarrage du réseau et se propager automatiquement dans le réseau Sui, laissant tous les nœuds comme un hamster fonctionnant sans fin sur la roue, incapables de traiter de nouvelles transactions. C'est pourquoi nous appelons ce type d'attaque unique une attaque « roue de hamster ».
Après avoir découvert la vulnérabilité, CertiK l'a signalée à Sui via le programme de bug bounty de Sui. Sui a également répondu efficacement dans les plus brefs délais, a confirmé la gravité de la vulnérabilité et a activement pris les mesures correspondantes pour réparer le problème avant le lancement du réseau principal. En plus de corriger cette vulnérabilité spécifique, Sui a mis en œuvre des mesures d'atténuation préventives pour réduire les dommages potentiels que la vulnérabilité pourrait causer. Pour remercier l'équipe CertiK pour sa divulgation responsable, Sui a accordé à l'équipe CertiK une prime de 500 000 $.
Le préjudice persistant des attaques « roue de hamster » dans le réseau Sui
Le programme de bug bounty de Sui a des réglementations strictes sur l'évaluation des niveaux de vulnérabilité, principalement basées sur le degré de dommage causé à l'ensemble du réseau. Une vulnérabilité qui répond à la note « critique » doit arrêter l'ensemble du réseau et empêcher efficacement la confirmation de nouvelles transactions, et nécessite un hard fork pour résoudre le problème ; si la vulnérabilité ne peut qu'amener certains nœuds du réseau à refuser le service, ce sera le cas ; classé comme « risque moyen » au maximum (moyen) » ou « élevé ». La vulnérabilité « roue de hamster » découverte par l'équipe CertiK Skyfall peut arrêter l'ensemble du réseau Sui et nécessite la sortie officielle d'une nouvelle version pour la mettre à niveau et la réparer. Compte tenu de la gravité de la vulnérabilité, Sui l'a finalement qualifiée de « critique ». Afin de mieux comprendre l'impact sérieux de l'attaque de la « roue de hamster », nous devons comprendre l'architecture complexe du système backend de Sui, en particulier l'ensemble du processus de publication ou de mise à niveau des transactions en chaîne. Initialement, les transactions des utilisateurs sont soumises via RPC frontal et transmises au service back-end après une vérification de base. Le service backend Sui est chargé de valider davantage la charge utile de la transaction entrante. Après avoir vérifié avec succès la signature de l'utilisateur, la transaction est convertie en un certificat de transaction (contenant les informations de transaction ainsi que la signature de Sui). Ces certificats de transaction constituent un élément fondamental du fonctionnement du réseau Sui et peuvent être propagés entre différents nœuds de vérification du réseau. Pour les transactions de création/mise à niveau de contrat, le nœud de vérification appellera le validateur Sui pour vérifier et vérifier la validité de la structure/sémantique du contrat de ces certificats avant de pouvoir les mettre sur la chaîne. C'est lors de cette phase critique de vérification que la vulnérabilité « boucle infinie » peut être déclenchée et exploitée.
Lorsque la vulnérabilité est déclenchée, le processus de vérification est interrompu indéfiniment, ce qui entrave effectivement la capacité du système à traiter de nouvelles transactions et provoque un arrêt complet du réseau. Pire encore, la situation persiste après le redémarrage du nœud, ce qui signifie que les mesures d’atténuation traditionnelles sont loin d’être suffisantes. Une fois cette vulnérabilité déclenchée, des « dommages continus » se produiront, laissant un impact durable sur l'ensemble du réseau Sui.
La solution de Sui
Après les commentaires de CertiK, Sui a rapidement confirmé la vulnérabilité et publié un correctif pour corriger la faille critique. Le correctif garantit la cohérence entre les changements d'état et les indicateurs post-changement, éliminant ainsi l'impact critique des attaques de type « roue de hamster ». Pour éliminer l'incohérence ci-dessus, le correctif de Sui inclut un ajustement petit mais critique à la fonction AbstractState::join. Ce correctif supprime la logique de détermination du résultat de la fusion d'état avant d'exécuter AbstractValue::join. Au lieu de cela, il exécute d'abord la fonction AbstractValue::join pour fusionner l'état et définit si la fusion se produit en comparant le résultat final de la mise à jour avec l'état d'origine. valeur (old_value). Changer la marque. De cette façon, le résultat de la fusion d’états sera cohérent avec le résultat de la mise à jour réelle et aucune boucle infinie ne se produira pendant le processus d’analyse. #山寨币 #BTC