Μονάδες
1. Εισαγωγή στην Τεχνητή Νοημοσύνη στο Blockchain και στο Web3: Ρόλοι, Όρια, Έλεγχος ταυτότητας και Ασφάλεια-Κρισιμότητα 2. Υποστήριξη Smart Contract Writing: Solidity/Vyper Draft και Secure Code Generation 3. Υποστήριξη Έξυπνου Ελέγχου Συμβάσεων: Ανασκόπηση Ασφαλείας και Προσχέδια Ευρημάτων 4. Σάρωση ευπάθειας: Κοινά μοτίβα ευπάθειας και αυτοματοποιημένη ανάλυση 5. Ανάλυση δεδομένων On-Chain: Κάνοντας αίσθηση αποκλεισμού, συναλλαγών και δεδομένων πορτοφολιού 6. Ανάλυση DeFi και Πρωτοκόλλου: Ρευστότητα, MEV και Οικονομικές Επιθέσεις 7. Tokenomic Modelling: Supply, Distribution, Incentive και Simulation 8. Τεκμηρίωση και τεχνική γραφή: Λευκό βιβλίο, NatSpec και Οδηγός χρήσης 9. Απάτη, χάλι και ανίχνευση κινδύνου: Κόκκινες σημαίες επί της αλυσίδας 10. Έλεγχος κρίσιμος για την ασφάλεια, έγκριση από εμπειρογνώμονα και υπεύθυνη χρήση 11. Ροή εργασιών από άκρο σε άκρο, Διακυβέρνηση, Επαλήθευση και Δεοντολογία
Μονάδα 4 / 11

Σάρωση ευπάθειας: Κοινά μοτίβα ευπάθειας και αυτοματοποιημένη ανάλυση

Κέρδη:

  • Δυνατότητα αναγνώρισης κοινών μοτίβων ευπάθειας όπως επανεισαγωγή, έλεγχος πρόσβασης, χειραγώγηση μαντείου και εκ των προτέρων εκτέλεση και σάρωση με ένα εργαλείο στατικής ανάλυσης + τεχνητή νοημοσύνη + άνθρωπο
  • Ικανότητα διάκρισης μεταξύ των δυνατών σημείων τεχνητής νοημοσύνης στην επεξήγηση της παραγωγής εργαλείων και στην ιεράρχηση των ψευδών θετικών και αδυναμιών στο MEV και στην επιχειρηματική λογική
  • Κατανοήστε ότι μια «καθαρή σάρωση» δεν είναι πιστοποιητικό ασφαλείας, ότι η σάρωση είναι μόνο ένα επίπεδο ελέγχου

Είδαμε την ολιστική πειθαρχία του ελέγχου στην προηγούμενη ενότητα. Σε αυτήν την ενότητα, εστιάζουμε σε ένα πιο τεχνικό θέμα: σάρωση ευπάθειας — η συστηματική αναζήτηση γνωστών μοτίβων ευπάθειας στον κώδικα. Εδώ θα χρησιμοποιήσουμε το AI, μαζί με εργαλεία στατικής ανάλυσης, ως βοηθό που σαρώνει και περιγράφει γνωστά πρότυπα ευπάθειας. Στόχος: να γνωρίσετε σε βάθος τις πιο κοινές ευπάθειες και να διακρίνετε πού είναι αξιόπιστη η τεχνητή νοημοσύνη και πού είναι ανεπαρκής στη σάρωση τους.

Στατική και δυναμική σάρωση

Η σάρωση είναι δύο τύπων. Στατική ανάλυση — εξέταση του κώδικα χωρίς εκτέλεση: Εργαλεία όπως το Slither και το Mythril σαρώνουν τον κωδικό της σύμβασης και επισημαίνουν γνωστά μοτίβα. Δυναμική/συμβολική ανάλυση (εκτέλεση του κώδικα με διαφορετικές εισόδους ή εξερεύνηση του μαθηματικά): το fuzzing (βομβαρδισμός με τυχαία είσοδο) και η συμβολική εκτέλεση (εξερεύνηση όλων των πιθανών διαδρομών) εμπίπτουν σε αυτήν την ομάδα.

Η τεχνητή νοημοσύνη δεν αντικαθιστά αυτά τα εργαλεία, τα συμπληρώνει: όταν το όχημα εκδίδει μια προειδοποίηση, η τεχνητή νοημοσύνη εξηγεί την προειδοποίηση σε απλή γλώσσα. Η τεχνητή νοημοσύνη μπορεί να υπενθυμίσει πότε το εργαλείο χάνει ένα μοτίβο. Αλλά το AI από μόνο του δεν μπορεί να εγγυηθεί πόσο σαρώνει. Η σωστή ροή εργασίας: εργαλείο + AI + άνθρωπος.

Συμβουλή: Δώστε στην τεχνητή νοημοσύνη το αποτέλεσμα ενός εργαλείου στατικής ανάλυσης (π.χ. αναφορά Slither) και ρωτήστε "εξηγήστε κάθε ειδοποίηση σε απλή γλώσσα, ποιοι είναι πραγματικοί κίνδυνοι και ποιοι θα μπορούσαν να είναι ψευδώς θετικοί;" παρακαλώ. Η τεχνητή νοημοσύνη είναι ανεκτίμητη στο να κάνει την παραγωγή ακατέργαστων εργαλείων κατανοητή και με προτεραιότητα στους ανθρώπους.

Τα πιο κοινά πρότυπα ευπάθειας

1. Επανεισαγωγή. Εάν μια συνάρτηση καλεί ένα εξωτερικό συμβόλαιο χωρίς να ενημερώσει την κατάστασή της, το συμβόλαιο που καλείται μπορεί να επιστρέψει, να ενεργοποιήσει ξανά την ίδια λειτουργία και να αποσύρει το κεφάλαιο πολλές φορές. Λύση: διαταγή επιταγών-επιπτώσεων-αλληλεπιδράσεων και φύλαξη επανεισόδου.

2. Έλλειψη ελέγχου πρόσβασης. Μια κρίσιμη λειτουργία (απόσυρση, απόσυρση, αναβάθμιση) δημοσιοποιείται κατά λάθος. Είναι ένα από τα πιο συνηθισμένα και ακριβά λάθη.

3. Χειρισμός μαντείου. Η τυφλή εξάρτηση του συμβολαίου σε μια εξωτερική πηγή τιμής (μαντείο). Ο εισβολέας χειραγωγεί την τιμή αμέσως και εξαπατά το πρωτόκολλο. Λύση: χρονικά σταθμισμένη μέση τιμή (TWAP), πολλαπλές πηγές.

4. Υπερχείλιση/υπόπτωση ακέραιου αριθμού. Όταν ένας αριθμός υπερβαίνει τη μέγιστη επιτρεπόμενη τιμή και επιστρέφει στην αρχή. Το Modern Solidity πιάνει το μεγαλύτερο μέρος του αυτόματα, αλλά ο κίνδυνος παραμένει σε κώδικα χαμηλού επιπέδου (συναρμολόγησης).

5. Μπροστινό τρέξιμο. Οι συναλλαγές εμφανίζονται στο δημόσιο pool (mempool) πριν επιβεβαιωθούν. Ο εισβολέας μπορεί να δει τη συναλλαγή σας και να εισαγάγει τη δική του συναλλαγή μπροστά από αυτήν. MEV (Μέγιστη Εξαγώγιμη Τιμή — η τιμή που εξάγεται από την ακολουθία συναλλαγών) είναι η γενική ονομασία αυτού του θέματος.

6. Άρνηση υπηρεσίας (DoS). Ένας βρόχος γίνεται πολύ ακριβός και καθιστά τη λειτουργία αχρησιμοποίητη ή μια εξάρτηση από μια διεύθυνση κλειδώνεται.

7. Κίνδυνοι αναβάθμισης. Σύγκρουση αποθήκευσης και κατάχρηση εξουσίας σε συμβάσεις με δυνατότητα αναβάθμισης.

ευπάθεια

Εμπιστοσύνη σάρωσης AI

Γιατί

επανεισδοχή

ψηλά

Γνωστό, ξεκάθαρο μοτίβο

έλεγχος πρόσβασης

ψηλά

Το καλούπι μπορεί να σαρωθεί

Ακέραιες πράξεις

ψηλά

τυπικός έλεγχος

Χειρισμός μαντείου

μεσαίο

Απαιτεί πλαίσιο

Front-running/MEV

Μεσαίου-Χαμηλού

συγκεκριμένο πρωτόκολλο

σφάλμα επιχειρησιακής λογικής

χαμηλά

Αυθεντικό, συμφραζόμενο

Αδύναμη προτροπή / Ισχυρή προτροπή

Αδύναμη προτροπή:

Υπάρχει κάποιο κενό σε αυτόν τον κώδικα;

Ισχυρή προτροπή:

Ο ρόλος σας: βοηθός ελέγχου ασφαλείας. Σαρώστε το συμβόλαιο παρακάτω για τα ακόλουθα γνωστά μοτίβα και "σε κίνδυνο/όχι/αβέβαιο" για καθένα: επανεισαγωγή, έλεγχος πρόσβασης, λειτουργίες ακέραιου αριθμού, εξάρτηση από το oracle, εκ των προτέρων, DoS, ασφάλεια αναβάθμισης. Συνδέστε κάθε προσδιορισμό με τη σχετική γραμμή και εξηγήστε γιατί υπάρχει κίνδυνος. Αυτές είναι υποθέσεις που ΘΑ ΕΠΑΛΗΘΕΥΘΟΥΝ με εργαλείο στατικής ανάλυσης και ελεγκτή. Σημειώστε ότι ενδέχεται να υπάρχουν ψευδώς θετικά αποτελέσματα.

Τέσσερα πρότυπα με δυνατότητα αντιγραφής

1) Περιγραφή εξόδου εργαλείου:

Ακολουθεί η αναφορά ενός εργαλείου στατικής ανάλυσης (Slither). Εξηγήστε κάθε ειδοποίηση σε απλή γλώσσα: τι σημαίνει, είναι πραγματικός κίνδυνος ή πιθανό ψευδώς θετικό, ποια πρέπει να είναι η προτεραιότητά του; Μην πάρετε μια σταθερή απόφαση. Προτεραιότητα για επιβεβαίωση ελεγκτή.

2) Έλεγχος επικεντρωμένος στην επανεισδοχή:

Βρείτε όλες τις λειτουργίες που πραγματοποιούν εξωτερικές κλήσεις σε αυτό το συμβόλαιο. Εξετάστε εάν τηρείται η σειρά επιταγών-επιπτώσεων-αλληλεπιδράσεων για καθένα από αυτά και εάν υπάρχει φύλακας επανεισόδου. Δείξτε τους επικίνδυνους με μια γραμμή. Σημειώστε εάν δεν είστε σίγουροι. Δημιουργία κώδικα εκμετάλλευσης.

3) Χάρτης ελέγχου πρόσβασης:

Καταγράψτε όλες τις εξωτερικές/δημόσιες λειτουργίες σε αυτό το συμβόλαιο και καθορίστε "ποιος μπορεί να καλέσει" (όλοι/κάτοχος/ρόλος) για καθεμία. Εκτελέστε κρίσιμες λειτουργίες (απόσυρση, εκτύπωση, αναβάθμιση) και επισημάνετε αυτές με αδύναμο έλεγχο πρόσβασης. Παρουσιάστε το με έναν πίνακα.

4) Εσφαλμένη θετική εξάλειψη:

Σκεφτείτε γιατί αυτή η προειδοποίηση σάρωσης μπορεί να μην είναι ΠΡΑΓΜΑΤΙΚΟΣ κίνδυνος (ψευδώς θετικός): ποιο πλαίσιο ή συνθήκη κώδικα θα ακύρωνε αυτήν την προειδοποίηση; Αλλά μην πείτε "δεν υπάρχει απολύτως κανένα πρόβλημα"? Καταγράψτε τα σημεία που χρειάζονται επιβεβαίωση.

Τρεις μίνι θήκες (σε αριθμούς)

Περίπτωση 1 — Το όχημα + AI διπλασίασε την απόδοση. Μια ομάδα έτρεξε τον Slither σε ένα έργο 12 συμβάσεων και έλαβε 140 προειδοποιήσεις. Μόλις βάλαμε το AI να εξηγήσει και να ιεραρχήσει τις ειδοποιήσεις, αποδείχθηκε ότι 95 από τις 140 ειδοποιήσεις ήταν ψευδώς θετικές. Η ομάδα επικεντρώθηκε σε 45 πραγματικούς υποψηφίους. Ο χρόνος διαλογής μειώθηκε από 2 ημέρες σε 5 ώρες. Μάθημα: Η τεχνητή νοημοσύνη είναι πανίσχυρη στον εξανθρωπισμό της παραγωγής οχημάτων.

Υπόθεση 2 — Η AI κατέλαβε το MEV. Σε ένα συμβόλαιο DEX (αποκεντρωμένη ανταλλαγή), η τεχνητή νοημοσύνη βρήκε τα τυπικά μοτίβα καθαρά, αλλά απέτυχε να εντοπίσει μια ευπάθεια στην πρώτη γραμμή. επειδή αυτό ήταν συγκεκριμένο για τη σειρά λειτουργιών του πρωτοκόλλου. Καταγράφηκε ανθρώπινος ελεγκτής και προσομοίωση. Μάθημα: Οι κίνδυνοι που σχετίζονται με το πρωτόκολλο, όπως το MEV/front-running είναι η αδύναμη περιοχή της τεχνητής νοημοσύνης.

Περίπτωση 3 — Αποφεύχθηκε η απώλεια χρόνου σε ψευδώς θετικά. Η ομάδα γλίτωσε από μια περιττή επανεγγραφή όταν η τεχνητή νοημοσύνη εξήγησε ότι μια προειδοποίηση επανεισόδου ήταν στην πραγματικότητα ψευδώς θετική (η λειτουργία ήταν ήδη προστατευμένη). Αλλά η ομάδα το επιβεβαίωσε με ένα μόνο τεστ. Μάθημα: Η τεχνητή νοημοσύνη δίνει προτεραιότητα. Η επιβεβαίωση έρχεται και πάλι με τη δοκιμή.

Όρια σάρωσης

Η σάρωση βρίσκει γνωστά μοτίβα. Ούτε το εργαλείο ούτε η τεχνητή νοημοσύνη είναι εγγυημένα ότι θα εντοπίσουν μια νέα, μοναδική ή συγκεκριμένη ευπάθεια για το πρωτόκολλο. Επομένως, ο έλεγχος αποτελεί μέρος του ελέγχου. όχι τον εαυτό του. Η ιδέα ότι «η σάρωση είναι καθαρή, άρα σημαίνει ότι είναι ασφαλής» είναι μια από τις πιο επικίνδυνες παρανοήσεις σε αυτόν τον τομέα. Η βυθοκόρηση μαζεύει τα χαμηλά κρεμαστά φρούτα. Για βαθιούς και μοναδικούς κινδύνους, η ανθρώπινη τεχνογνωσία, οι δοκιμές, το fuzzing και ο επίσημος έλεγχος είναι απαραίτητα.

Προσοχή: Μια «καθαρή» αναφορά ενός εργαλείου σάρωσης ή AI δεν είναι πιστοποιητικό ασφαλείας. Η παρουσίασή του με αυτόν τον τρόπο - ειδικά στους επενδυτές - είναι παραπλανητική και ανήθικη.

Συνήθη λάθη

  • Αντικατάσταση διαλογής για επιθεώρηση. Η σάρωση είναι ένα στρώμα, όχι ολόκληρο.
  • Χρήση AI χωρίς εργαλεία. Στατική ανάλυση + AI + ανθρώπινη εργασία μαζί.
  • Εξάλειψη ψευδών θετικών στοιχείων χωρίς επιβεβαίωση. Κάθε οθόνη ελέγχεται/επιβεβαιώνεται από τον άνθρωπο.
  • Παράκαμψη ειδικών κινδύνων για το πρωτόκολλο (MEV) βασιζόμενη στην τεχνητή νοημοσύνη. Η αδύναμη περιοχή του AI.
  • Σκέψη "καθαρή σάρωση" = "ασφαλής". Δεν μπορεί να βρει το άγνωστο.
  • Δημιουργία κώδικα εκμετάλλευσης. Μόνο η αμυντική περιγραφή κινδύνου είναι θεμιτή.

Συνοπτικά

  • Η σάρωση ευπάθειας αναζητά γνωστά μοτίβα ευπάθειας με όχημα + AI + άνθρωπο.
  • Η τεχνητή νοημοσύνη είναι ισχυρή στο να εξηγεί και να δίνει προτεραιότητα στην έξοδο του εργαλείου στατικής ανάλυσης.
  • Αξιόπιστο σε ξεκάθαρα μοτίβα όπως η επανεισαγωγή και ο έλεγχος πρόσβασης. Αδύναμος σε MEV και επιχειρηματική λογική.
  • Ακόμη και η εξάλειψη των ψευδών θετικών απαιτεί επιβεβαίωση.
  • Μια "καθαρή σάρωση" δεν είναι πιστοποιητικό ασφαλείας. Δεν υποκαθιστά την εποπτεία.

Εργασία εφαρμογής

Εκτελέστε ένα εργαλείο στατικής ανάλυσης σε ένα δείγμα συμβολαίου (αν είναι δυνατόν) ή βρείτε μια έτοιμη αναφορά Slither. Εφαρμόστε την προτροπή "Tool output description" στο AI. Αξιολογήστε εάν η τεχνητή νοημοσύνη: (1) εξηγεί σωστά τις προειδοποιήσεις, (2) έχει νόημα στη διάκριση μεταξύ ψευδώς θετικών και (3) χάνει έναν κίνδυνο που σχετίζεται με το πρωτόκολλο. Συμπληρώστε τις στήλες «Βρέθηκε όχημα / Επεξήγηση τεχνητής νοημοσύνης / επιβεβαιώθηκε από τον άνθρωπο» σε έναν πίνακα.

λίστα ελέγχου

  • [ ] Τοποθέτησα την καταπακτή ως στρώμα του χειριστηρίου.
  • [ ] Χρησιμοποίησα εργαλείο στατικής ανάλυσης + AI + άνθρωπο μαζί.
  • [ ] Έψαξα κατηγορία ανά κατηγορία για γνωστά μοτίβα.
  • [ ] Εξάλειψα τα ψευδώς θετικά με επιβεβαίωση.
  • [ ] Βασίστηκα σε ανθρώπους σε αδύναμους τομείς όπως το MEV/επιχειρηματική λογική.
  • [ ] Δεν πρόσφερα "καθαρή σάρωση" ως διαβεβαίωση.
  • [ ] Εργάστηκα μόνο για αμυντικούς σκοπούς. Δεν δημιούργησα κατορθώματα.