Ώρα ανάγνωσης: 5 πρακτικά
Ο κόσμος του Web3 είναι ένας κόσμος πρωτοκόλλων και προτύπων. Σίγουρα πρέπει να έχετε συναντήσει πολλά πρότυπα ERC. Μερικά από τα πιο διάσημα πρότυπα ERC είναι τα 20 και 721, τα οποία είναι για μάρκες και NFT, αντίστοιχα. Αλλά το Web3 δεν περιορίζεται σε αυτό.
Βλέπουμε τακτικές ενημερώσεις και αναβαθμίσεις στο Web3. Μία από τις πιο πρόσφατες αναβαθμίσεις ήταν το ERC 4337, που αναπτύχθηκε στο Ethereum Mainnet τον Μάρτιο του 2023. Δεν είναι κάθε ενημέρωση επιτυχής με μία κίνηση. Το ίδιο ισχύει και με το ERC 4337. Σε αυτό το ιστολόγιο, θα μάθουμε για τις ευπάθειες σχετικά με την ενότητα Λειτουργία χρήστη του προτύπου και τον αντίκτυπό τους. Αρχικά, ας ξεκινήσουμε με μια σύντομη εισαγωγή στο πρότυπο ERC 4337.
Τι είναι το ERC 4337;
Σε αντίθεση με το δίκτυο του Bitcoin, Ethereum υποστηρίζει έξυπνα συμβόλαια στην αλυσίδα, γεγονός που κάνει το Ethereum να έχει δύο διαφορετικούς τύπους λογαριασμών, έναν συναλλακτικό ή έναν λειτουργικό λογαριασμό. Επιπλέον, τα έξυπνα συμβόλαια έχουν τον δικό τους χώρο, σχεδόν σαν λογαριασμός. Αυτοί οι δύο τύποι λογαριασμών στο Ethereum έχουν τις δικές τους λειτουργίες.
Τα περισσότερα πορτοφόλια που λειτουργούν με το Ethereum είναι του EOA, που σημαίνει τους λογαριασμούς του χρήστη και όχι τους έξυπνους συμβολαίους. Αυτοί οι τύποι λογαριασμών έχουν τους δικούς τους περιορισμούς. Ένας περιορισμός περιλαμβάνει την αποκλειστική εξάρτηση του χρήστη από τα ιδιωτικά κλειδιά για πρόσβαση σε λογαριασμούς και την απαίτηση όλων των υπογραφών για συναλλαγές. Αυτοί οι περιορισμοί οδήγησαν την εισαγωγή του ERC 4337.
Το ERC 4337 επιχειρεί να παρέχει αφαίρεση λογαριασμού συνδυάζοντας τα καλύτερα από τα δύο χαρακτηριστικά τύπου λογαριασμού. Ναι, λογαριασμοί ΕΟΑ και έξυπνων συμβολαίων. Αυτό γίνεται εφικτό από ένα ενιαίο συμβόλαιο που μπορεί να πραγματοποιεί συναλλαγές με διακριτικά και να δημιουργεί συμβόλαια ταυτόχρονα, και το ERC 4337 είναι ένα πρότυπο που διευκολύνει αυτή τη φοβερή νέα εξέλιξη.
Ευπάθεια UserOperation packing;
Τα πάντα σχετικά με αυτό το πρότυπο και το έργο είναι φοβερά, αλλά τι πήγε στραβά; Λοιπόν, υπήρχε ένα ζήτημα υλοποίησης που είχε ως αποτέλεσμα ασυνεπή κατακερματισμό με βάση τη μέθοδο που χρησιμοποιήθηκε για την υπογραφή. Αυτό οδηγεί σε συγκρούσεις παραγγελιών, ιδιαίτερα διαφορετικούς κατακερματισμούς για τις ίδιες Λειτουργίες χρήστη και σύγκρουση κατακερματισμών για διαφορετικές Λειτουργίες χρηστών.
Οι πληγείσες περιοχές περιορίστηκαν σε δύο ευπάθειες, την ευπάθεια συσκευασίας EntryPoint και την ευπάθεια συσκευασίας VerifyingPaymaster. Περισσότερα για αυτό αργότερα. Ας έχουμε πρώτα μια γενική κατανόηση και μετά θα μάθουμε για αυτά ξεχωριστά.
Ας ρίξουμε μια ματιά στο UserOperation.sol:-
Βλέπετε την παράμετρο UserOperation, ένα Calldata, να μεταβιβάζεται ως όρισμα στη συνάρτηση pack. Ας εξερευνήσουμε τη δομή: -
Αυτά είναι τα πεδία που φέρει η δομή UserOperation. Για να αντιγράψετε αυτό το μεγάλο τμήμα του Calldata στη μνήμη, τα τμήματα κώδικα χρησιμοποιούν συγκρότηση. Ορισμένες μέθοδοι των συμβολαίων σκοπεύουν να καταγράψουν όλα τα πεδία του UserOperation, συμπεριλαμβανομένων των πεδίων μεταβλητού μεγέθους, που ονομάζονται επίσης δυναμικά πεδία στην κωδικοποίηση ABI. Για παράδειγμα, η δυναμική κωδικοποίηση σε αυτήν τη δομή είναι «initCode», «callData» και «paymasterAndData».
Ορισμένες μέθοδοι δεν μπορούν να περιλαμβάνουν το "paymasterAndData" επειδή αυτό το πεδίο δεν έχει οριστεί ή δηλωθεί ακόμη. Οι μέθοδοι χρησιμοποιούν το πεδίο ευκολίας «.offset» που παρέχεται σε δυναμικούς τύπους δεδομένων για να το κάνουν αυτό. Αλλά τα συμβόλαια που χρησιμοποιούν ορίσματα με κωδικοποίηση ABI δεν επικυρώνουν τη σειρά με την οποία ορίζονται τα πεδία και την εγκυρότητα των μετατοπίσεων. Είναι δυνατή η κατασκευή μιας έγκυρης αναπαράστασης των λειτουργιών χρήστη στο Calldata με ασυνήθιστες ιδιότητες κατακερματισμού.
Ευπάθεια συσκευασίας EntryPoint
Το ζήτημα με το UserOperation επηρεάζει και ορισμένα από τα άλλα μέρη του προτύπου, ένα από αυτά είναι η ευπάθεια EntryPoint Packing. Όταν χρησιμοποιείται ένα διαφορετικό σχήμα κατακερματισμού μεταξύ του συμβολαίου EntryPoint και του πορτοφολιού ή χρησιμοποιείται μια μη τυπική κωδικοποίηση λειτουργίας χρήστη, βλέπουμε απόκλιση κατακερματισμού.
Ο κίνδυνος εμφανίζεται ως EntryPoint. Τώρα μια λειτουργία μεμονωμένου χρήστη θα μπορούσε να αντιπροσωπεύεται από πολλαπλούς «κατακερματισμούς op χρήστη» και το ίδιο «user op hash» θα μπορούσε να αντιπροσωπεύει λειτουργίες πολλαπλών χρηστών. Τώρα αυτό μπορεί να δημιουργήσει κάποια ανεπιθύμητα αποτελέσματα. Ας συζητήσουμε τον αντίκτυπο που μπορεί να έχει.
Το Erc 4337 βρίσκεται ακόμα σε πολύ πρώιμο στάδιο, καθώς κυκλοφόρησε μόλις τον Μάρτιο, επομένως ο αντίκτυπος αυτών των τρωτών σημείων δεν είναι πλήρως γνωστός. Είναι δύσκολο να περιγράψει κανείς τον πιθανό αντίκτυπο από την οπτική γωνία ενός πτηνού. Πάνω από αυτό, ο αντίκτυπος εξαρτάται από την υλοποίηση bundlers, indexers, user operation explorers και άλλων υπηρεσιών εκτός αλυσίδας. Ας δούμε μερικά από τα ζητήματα που προκαλεί αυτή η ευπάθεια.
- Αυτό μπορεί να προκαλέσει σύγχυση για τον χρήστη, επειδή ο κατακερματισμός της λειτουργίας χρήστη μπορεί να αλλάξει μεταξύ του χρόνου υποβολής και συμπερίληψης. Αυτό το φαινόμενο είναι άγνωστο στα περισσότερα πορτοφόλια, επομένως ενδέχεται να μην αντιπροσωπεύουν αυτή τη διαφορά.
- Τα πορτοφόλια μπορούν να τροποποιηθούν και να σχεδιαστούν έτσι ώστε να αποφεύγεται σκόπιμα η δημιουργία ευρετηρίου, ρυθμίζοντας όλους τους κατακερματισμούς λειτουργίας του χρήστη να είναι ίδιοι.
- Μπορούμε να δούμε λάθος χειρισμό δεδομένων και κλειδιών εάν μια υπηρεσία εκτός αλυσίδας που παρακολουθεί τη συμπερίληψη λειτουργίας χρήστη χάσει τη συμπερίληψη μιας δεδομένης λειτουργίας χρήστη.
VerifyingPaymaster Packing Vulnerability
Σε κανέναν δεν αρέσει να παραγγέλνει κάτι από ηλεκτρονικές αγορές και να λαμβάνει ένα εντελώς διαφορετικό προϊόν. Το ίδιο συμβαίνει και στο Web3, αλλά αυτή η ευπάθεια υποβαθμίζει την εμπειρία του χρήστη. Ένας χρήστης μπορεί να έχει αλλάξει ή διαφορετικό περιεχόμενο μεταξύ του χρόνου υπογραφής και της συμπερίληψης στην αλυσίδα. Και ο λόγος για τον οποίο συμβαίνει αυτό είναι ότι δύο διαφορετικές λειτουργίες χρήστη επιστρέφουν τον ίδιο κατακερματισμό από τη συνάρτηση "VerifyingPaymaster.getHash()".
Η συνάρτηση VerifyingPaymaster.getHash() παίρνει μερικά ορίσματα όπως το 'UserOperation', το οποίο είναι μια δομή, 'validUnitl', μια τιμή uint48 και μια validAfter μια άλλη τιμή uint48. Το ζήτημα των διαφορετικών περιεχομένων μεταξύ του χρόνου υπογραφής και του χρόνου συμπερίληψης επηρεάζει την εμπειρία του χρήστη και τη συνολική ασφάλεια. Ας συζητήσουμε μερικές από τις ανησυχίες που εγείρει.
- Οι υπογράφοντες εκτός αλυσίδας που υπογράφουν σε μορφή κωδικοποιημένη με ABI αφού λάβουν λειτουργίες χρήστη ή οι υπογράφοντες με ενσωματώσεις συμβολαίων για προετοιμασία δεδομένων για υπογραφή γίνονται ευάλωτοι.
- Ο κατακερματισμός μπορεί να τροποποιηθεί ώστε να καλύπτει λιγότερα στοιχεία από τα αναμενόμενα, γεγονός που μπορεί να οδηγήσει σε εξαίρεση ορισμένων στατικών πεδίων, όπως το initCode κ.λπ. από τον κατακερματισμό. Αυτό μπορεί να οδηγήσει σε διαφορετική χρήση από αυτή που προορίζεται για τις υπογραφές χορηγίας πληρωμών.
- Μπορούμε να δούμε μια παραβίαση και παράκαμψη των κανόνων αλλάζοντας το userOp.initCode και το userOp.callData αφού λάβουμε μια υπογραφή. Αυτό θα επιτρέψει τη χρήση του εγγενούς διακριτικού του διαχειριστή πληρωμής για σκοπούς άλλους από την κοπή NFT χωρίς αέριο.
Συμπέρασμα
Με τη διαρκή εξέλιξη και ανάπτυξη, θα γίνουμε μάρτυρες πολλών φοβερών πραγμάτων, και το ERC 4337 είναι ένα από αυτά. Ενώ η ανάπτυξη και η προώθηση της ασφάλειας είναι κάτι που δεν μπορούμε ποτέ να συμβιβάσουμε. Είναι εκπληκτικό να σημειωθεί πόσο γρήγορα εντοπίστηκαν τα τρωτά σημεία στο πρότυπο και διεξάγεται συνεχής έρευνα και ανάπτυξη για να γίνει ασφαλές.
Είναι σημαντικό να σημειωθεί ότι ακόμη και μερικοί από τους μεγαλύτερους και πιο γνωστούς οργανισμούς που δημιουργούν στο Web3 μπορούν να κάνουν λάθη που σχετίζονται με την ασφάλεια, και σίγουρα τα άλλα πρωτόκολλα τα κάνουν επίσης. Η συνεχής άνοδος στο Περιστατικά Web3 τα τελευταία χρόνια είναι εμφανές.
Η ενιαία λύση για να προστατεύσει εσάς, τους χρήστες και το πρωτόκολλό σας από τέτοιες απειλές ασφαλείας πρόκειται για έλεγχο. Εμείς η QuillAudits, είμαστε ένας από τους κορυφαίους παρόχους υπηρεσιών στον έλεγχο έξυπνων συμβολαίων και στην ασφάλεια του blockchain. Επισκεφτείτε τον ιστότοπό μας για να μάθετε περισσότερα και να εξασφαλίσετε το έργο σας. Και μείνετε συντονισμένοι για να απολαύσετε περισσότερα τέτοια ενημερωτικά ιστολόγια
34 Προβολές
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- Platoblockchain. Web3 Metaverse Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- Minting the Future με την Adryenn Ashley. Πρόσβαση εδώ.
- πηγή: https://blog.quillhash.com/2023/04/24/understanding-erc-4337-user-operation-packing-vulnerability/
- :είναι
- :δεν
- 20
- 2023
- a
- Σχετικα
- πρόσβαση
- Λογαριασμός
- αφαίρεση λογαριασμού
- Λογαριασμοί
- απέναντι
- Επιπλέον
- προαγωγή
- Μετά το
- Όλα
- Επίσης
- μεταβάλλεται
- an
- και
- Άλλος
- ΕΙΝΑΙ
- επιχείρημα
- επιχειρήματα
- AS
- Συνέλευση
- At
- Προσπάθειες
- έλεγχος
- λογιστικού ελέγχου
- βασίζονται
- BE
- επειδή
- γίνονται
- είναι
- ΚΑΛΎΤΕΡΟΣ
- μεταξύ
- Μεγαλύτερη
- blockchain
- Ασφάλεια blockchain
- Μπλοκ
- παραβίαση
- Κτίριο
- αλλά
- by
- που ονομάζεται
- CAN
- δεν μπορώ
- πιάνω
- Αιτία
- αίτια
- αλυσίδα
- αλλαγή
- αλλαγή
- κωδικός
- συνδυάζοντας
- Ελάτε
- συμβιβασμός
- Πιθανά ερωτήματα
- σύγχυση
- κατασκευάσει
- περιεχόμενα
- συνεχής
- σύμβαση
- συμβάσεις
- ευκολία
- θα μπορούσε να
- κάλυμμα
- δημιουργία
- ημερομηνία
- ορίζεται
- εξαρτάται
- αναπτυχθεί
- περιγράφουν
- σχεδιασμένα
- ανάπτυξη
- Ανάπτυξη
- διαφορά
- διαφορετικές
- συζητήσουν
- Απόκλιση
- do
- δυναμικός
- Νωρίς
- πρώιμο στάδιο
- αποτελέσματα
- στοιχεία
- απολαύσετε
- εξ ολοκλήρου
- ERC-4337
- κ.λπ.
- ethereum
- ETHEREUM MAINNET
- Even
- Κάθε
- παράδειγμα
- εξαιρούνται
- αναμένεται
- εμπειρία
- διερευνήσει
- Εξερευνητές
- μάτι
- διευκολύνοντας
- πασίγνωστη και
- Χαρακτηριστικά
- λίγοι
- πεδίο
- Πεδία
- Εύρεση
- Όνομα
- Για
- μορφή
- Βρέθηκαν
- από
- πλήρως
- λειτουργία
- λειτουργίες
- λειτουργία
- General
- παίρνω
- να πάρει
- δεδομένου
- Go
- μετάβαση
- συμβαίνει
- Σκληρά
- χασίσι
- κατακερματισμός
- Έχω
- Πως
- HTTPS
- Επίπτωση
- Επιπτώσεις
- εκτέλεση
- εκτελεστικών
- σημαντικό
- in
- περιλαμβάνουν
- περιλαμβάνει
- Συμπεριλαμβανομένου
- συμπερίληψη
- Μεμονωμένα
- πληροφοριακός
- ολοκληρώσεις
- σκοπεύω
- εκ προθέσεως
- σε
- Εισαγωγή
- ζήτημα
- θέματα
- IT
- μόλις
- πλήκτρα
- γνωστός
- large
- Επίθετο
- αργότερο
- οδηγήσει
- ΜΑΘΑΊΝΩ
- Μου αρέσει
- περιορισμός
- περιορισμούς
- Περιωρισμένος
- ματιά
- που
- κεντρικό δίκτυο
- κάνω
- ΚΑΝΕΙ
- πολοί
- Μάρτιος
- max-width
- Ενδέχεται..
- μέσα
- Μνήμη
- μέθοδος
- μέθοδοι
- ενδέχεται να
- νομισματοκοπείο
- κακομεταχείριση
- χάνει
- λάθη
- τροποποιημένο
- παρακολούθηση
- περισσότερο
- πλέον
- πολλαπλούς
- ντόπιος
- Εγγενές κουπόνι
- δίκτυο
- Νέα
- NFT
- τώρα
- of
- on
- ONE
- διαδικτυακά (online)
- online αγορές
- OP
- λειτουργία
- επιχειρήσεων
- λειτουργίες
- or
- τάξη
- Οργανισμοί
- ΑΛΛΑ
- Άλλα πρωτόκολλα
- δικός μας
- επί
- φόρμες
- δική
- Πακέτο
- παράμετρος
- ιδιαίτερα
- εξαρτήματα
- πέρασε
- φαινόμενο
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- δυνατός
- δυναμικού
- Προετοιμάστε
- ιδιωτικός
- Ιδιωτικά κλειδιά
- Προϊόν
- σχέδιο
- ιδιότητες
- προστασία
- πρωτόκολλο
- πρωτόκολλα
- παρέχουν
- παρέχεται
- Παρόχους υπηρεσιών
- σκοποί
- γρήγορα
- Quillhash
- αυξήσεις
- λόγος
- λήψη
- σχετικά με
- περιοχές
- τακτικός
- κυκλοφόρησε
- εξάρτηση
- εκπροσωπώ
- αντιπροσώπευση
- εκπροσωπούνται
- έρευνα
- έρευνα και ανάπτυξη
- αποτέλεσμα
- απόδοση
- Αύξηση
- Κίνδυνος
- κανόνες
- ίδιο
- σχέδιο
- Τμήμα
- προστατευμένο περιβάλλον
- Ασφαλής
- ασφάλεια
- Απειλές ασφαλείας
- δείτε
- τμήματα
- υπηρεσία
- πάροχοι υπηρεσιών
- Υπηρεσίες
- τον καθορισμό
- διάφοροι
- Καταστήματα Λιανικής
- υπογράψουν
- Υπογραφές
- υπογραφή
- ταυτοχρόνως
- ενιαίας
- έξυπνος
- έξυπνη σύμβαση
- Έξυπνα συμβόλαια
- So
- SOL
- λύση
- μερικοί
- κάτι
- Χώρος
- αιγίδα
- Στάδιο
- πρότυπο
- πρότυπα
- Εκκίνηση
- παραμονή
- Ακόμη
- υποβολή
- επιτυχής
- τέτοιος
- Υποστηρίζει
- ασφαλώς
- παίρνει
- από
- ότι
- Η
- τους
- Τους
- Εκεί.
- Αυτοί
- αυτοί
- πράγματα
- αυτό
- εκείνοι
- απειλές
- ώρα
- προς την
- ένδειξη
- κουπόνια
- πολύ
- κορυφή
- διεξάγω
- συναλλακτική
- Συναλλαγές
- αληθής
- τύποι
- κατανόηση
- ανεπιθύμητος
- Ενημέρωση
- ενημερώσεις
- αναβαθμίσεις
- χρήση
- μεταχειρισμένος
- Χρήστες
- Η εμπειρία χρήστη
- Χρήστες
- ΕΠΙΚΥΡΩΝΩ
- αξία
- πολύ
- Δες
- Επίσκεψη
- Θέματα ευπάθειας
- ευπάθεια
- Ευάλωτες
- Πορτοφόλι
- Πορτοφόλια
- ήταν
- we
- Web3
- Ιστοσελίδα : www.example.gr
- ΛΟΙΠΌΝ
- πολύ γνωστό
- ήταν
- Τι
- πότε
- Ποιό
- ενώ
- WHY
- θα
- με
- μάρτυρας
- κόσμος
- Λανθασμένος
- χρόνια
- Εσείς
- Σας
- zephyrnet