Analise smart-contract
12.04.2024

Περιγραφή του ανιχνευτή μεσολάβησης

Συνεχίζουμε τη σειρά άρθρων που είναι αφιερωμένα στην περιγραφή των δόλιων συστημάτων στα έξυπνα συμβόλαια. Σήμερα θα μιλήσουμε για τα έξυπνα συμβόλαια με το χαρακτηριστικό ελέγχου μεσολάβησης (Proxy).

Τα έξυπνα συμβόλαια μεσολάβησης έχουν κερδίσει δημοτικότητα στο χώρο της αλυσίδας μπλοκ λόγω της εκσυγχρονιστικότητας και της ευελιξίας τους. Ωστόσο, οι συμβάσεις αυτές ενέχουν επίσης μεγάλο κίνδυνο, ιδίως όταν χρησιμοποιούνται από κακόβουλους χρήστες. Οι απατεώνες χρησιμοποιούν συχνά παραπλανητικά σχήματα στις έξυπνες συμβάσεις μεσολάβησης για να εξαπατήσουν τους χρήστες. Για να εντοπίσετε τέτοιες απειλές, πρέπει να κατανοήσετε τους πιθανούς κινδύνους και να έχετε τεχνικές γνώσεις.

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

Οι κίνδυνοι των έξυπνων συμβάσεων μεσολάβησης:

  1. Μη εξουσιοδοτημένη ενημέρωση:
    Τα συμβόλαια μεσολάβησης επιτρέπουν στον ιδιοκτήτη να ενημερώνει το υποκείμενο συμβόλαιο. Ωστόσο, εάν αυτός ο μηχανισμός δεν υλοποιηθεί με ασφάλεια, μπορεί να οδηγήσει σε μη εξουσιοδοτημένες ενημερώσεις, επιτρέποντας στους επιτιθέμενους να εισάγουν κακόβουλο κώδικα στο συμβόλαιο.

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

  3. Έλλειψη διαφάνειας:
    Ο πηγαίος κώδικας του συμβολαίου διαχείρισης συνήθως δεν επαληθεύεται.

  4. Παραποιημένα έργα:
    Οι απατεώνες δημιουργούν πλαστά έργα που υπόσχονται ελκυστικά χαρακτηριστικά, όπως υψηλές αποδόσεις ή μοναδική λειτουργικότητα. Ενδέχεται να χρησιμοποιούν συμβόλαια μεσολάβησης για να δημιουργήσουν την εντύπωση της νομιμότητας, ενώ παράλληλα κρύβουν κακόβουλες προθέσεις.

  5. Σχήματα Ponzi:
    Οι απατεώνες κατασκευάζουν συστήματα Ponzi που βασίζονται σε συμβόλαια μεσολάβησης, δελεάζοντας τους χρήστες με υποσχέσεις για υψηλές αποδόσεις. Τέτοια σχήματα μπορεί να έχουν ανανεώσιμα στοιχεία για να διατηρούν την ψευδαίσθηση της αληθοφάνειας.

  6. Κλωνοποιημένα συμβόλαια:
    Οι απατεώνες κλωνοποιούν νόμιμα έργα και εισάγουν ευπάθειες ή αλλαγές στην κλωνοποιημένη σύμβαση. Οι ανυποψίαστοι χρήστες μπορούν να αλληλεπιδράσουν με τέτοιους κλώνους, συγχέοντάς τους με το πρωτότυπο.

Πώς μπορείτε να προσδιορίσετε ανεξάρτητα αν υπάρχουν τέτοιες απειλές σε έξυπνα συμβόλαια;

Αξίζει να σημειωθεί ότι αν ο κώδικας-στόχος ενός έξυπνου συμβολαίου περιέχει αναφορά σε ένα εξωτερικό συμβόλαιο (Proxy), τότε σχεδόν στο 100% των περιπτώσεων αυτό το συμβόλαιο Proxy θα είναι με κρυφό πηγαίο κώδικα. Σε αυτή την περίπτωση, το εξωτερικό συμβόλαιο ελέγχου μπορεί να εκτελέσει απολύτως οποιεσδήποτε ενέργειες με το συμβόλαιο-στόχο (για παράδειγμα: αλλαγή υπολοίπων χρηστών, ενεργοποίηση και απενεργοποίηση συναλλαγών, έναρξη εκπομπών κ.λπ.).

Επομένως, αξίζει να κατανοήσουμε ότι η εργασία με ένα έξυπνο συμβόλαιο Proxy είναι ένα παιχνίδι ρουλέτας με την κυριολεκτική έννοια της λέξης (το καζίνο κερδίζει πάντα).

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

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

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

  • Εξασφαλίστε ότι το έξυπνο συμβόλαιο έχει υποβληθεί σε εξωτερικό έλεγχο ασφαλείας από αξιόπιστες εταιρείες. Η έκθεση ελέγχου μπορεί να παράσχει πληροφορίες σχετικά με πιθανές ευπάθειες.

  • Ερευνήστε την ομάδα ανάπτυξης του έργου. Οι διαφανείς και αξιόπιστες ομάδες είναι λιγότερο πιθανό να εμπλακούν σε απάτες.

  • Συμβουλευτείτε την κοινότητα του έργου και λάβετε ανατροφοδότηση από άλλους χρήστες που έχουν εμπειρία με το συμβόλαιο. Οι απατεώνες συχνά αποφεύγουν τη δημόσια συζήτηση.

  • Όταν εργάζεστε με συμβόλαια, χρησιμοποιείτε γνωστά προγράμματα και εργαλεία πορτοφολιού που παρέχουν πρόσθετα χαρακτηριστικά ασφαλείας και προστασίας συναλλαγών.

  • Να είστε προσεκτικοί όταν ασχολείστε με νέα και μη αποδεδειγμένα συμβόλαια, ειδικά εκείνα που υπόσχονται υψηλές αποδόσεις ή παρουσιάζουν ασυνήθιστη συμπεριφορά.

  • Αν κάτι στο συμβόλαιο φαίνεται πολύ καλό για να είναι αληθινό ή είναι ύποπτο, εμπιστευτείτε τη διαίσθησή σας και αποφύγετε το συμβόλαιο.

  • Ενημερωθείτε για τις τελευταίες εξελίξεις στην κοινότητά μας (κανάλι Telegram) και τις βέλτιστες πρακτικές για την ανίχνευση απάτης (ιστολόγιο και κανάλι YouTube).

Ο σαρωτής ασφαλείας της Lotus Market βρίσκει όλα τα κοινά (συμπεριλαμβανομένων των κρυφών) χαρακτηριστικά εξωτερικού ελέγχου (Proxy). Χρησιμοποιήστε την premium συνδρομή μας και προστατέψτε τα κεφάλαιά σας από απειλές.


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

Ο βασικός κανόνας είναι ότι εάν ο κώδικας ενός συμβολαίου περιέχει κλήση των συναρτήσεων Call, CallCode ή DelegateCall, αυτό σημαίνει ότι το συμβόλαιο καλεί εξωτερικό κώδικα και του μεταβιβάζει τον έλεγχο των δεδομένων του.

tips around proxy

Ας ρίξουμε μια ματιά στα κύρια παραδείγματα χρήσης συμβάσεων Proxy.

1. Μη αρχικοποιημένες μεταβλητές αποθήκευσης.

Ένα από τα πιο συνηθισμένα τρωτά σημεία στα συμβόλαια μεσολάβησης είναι η κακή χρήση των μεταβλητών αποθήκευσης. Όταν ένα συμβόλαιο μεσολάβησης χρησιμοποιείται με το DelegateCall για την κλήση συναρτήσεων σε ένα συμβόλαιο υλοποίησης, οι μεταβλητές αποθήκευσης του συμβολαίου μεσολάβησης τροποποιούνται. Ωστόσο, εάν η αποθήκευση του συμβολαίου πληρεξουσίου έχει μη αρχικοποιημένες τιμές ή προεπιλεγμένες τιμές, αυτό μπορεί να οδηγήσει σε απροσδόκητη συμπεριφορά.


  contract Implementation {
    address public owner;

    constructor() {
        owner = msg.sender;
    }
}

Σε αυτό το παράδειγμα, εάν η μεταβλητή owner στο συμβόλαιο Proxy δεν είναι αρχικοποιημένη, η κλήση της owner() στο συμβόλαιο proxy θα επιστρέψει τη μεταβλητή owner του συμβολαίου υλοποίησης, η οποία μπορεί να μην είναι αυτή που περιμένει ο χρήστης.

2. Μη επαληθευμένες εξωτερικές κλήσεις.

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


  contract Proxy {
    function execute(address target, bytes memory data) external {
        target.delegatecall(data);
    }
}

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

3. Ακατάλληλος έλεγχος πρόσβασης.

Οι δόλιες συμβάσεις μπορεί να έχουν ακατάλληλους ελέγχους πρόσβασης, επιτρέποντας σε μη εξουσιοδοτημένους χρήστες να εκτελούν διαχειριστικές λειτουργίες. Κατά τη χρήση συμβολαίου μεσολάβησης, θα πρέπει να ελέγχεται προσεκτικά ποιος έχει την άδεια να ενημερώνει το συμβόλαιο υλοποίησης. Η αποτυχία αυτή μπορεί να οδηγήσει σε μη εξουσιοδοτημένες αλλαγές στη συμπεριφορά του συμβολαίου.


  contract Proxy {
    address public owner;
    address public implementation;
                                    
    function upgrade(address newImplementation) external {
        require(msg.sender == owner, "Only the owner can upgrade.");
        implementation = newImplementation;
    }
}

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

4. Κίνδυνοι έκδοσης και διαχείρισης.

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


  contract Proxy {
    address public owner;
    address public implementation;
    address public pendingImplementation;
        
    function upgrade(address newImplementation) external {
        require(msg.sender == owner, "Only the owner can upgrade.");
        pendingImplementation = newImplementation;
    }
    function claimUpgrade() external {
        require(msg.sender == owner, "Only the owner can claim the upgrade.");
        implementation = pendingImplementation;
    }
}

Σε αυτή την περίπτωση, ο επιτιθέμενος μπορεί να προσφέρει ένα νέο "καθαρό" συμβόλαιο και στη συνέχεια να προβεί αμέσως σε ενημερώσεις, θέτοντας ουσιαστικά σε λειτουργία τον κακόβουλο κώδικά του.

tips around proxy

Τι πρέπει να προσέξω όταν μελετώ τις συμβάσεις μεσολάβησης και ποιες απειλές ενέχουν;

  1. Μη εξουσιοδοτημένη μεταφορά κεφαλαίων:
    Ένας από τους πιο συνηθισμένους τρόπους με τους οποίους οι απατεώνες κλέβουν χρήματα είναι η μεταφορά κεφαλαίων από τον κάτοχο του συμβολαίου στον εαυτό του ή σε άλλη διεύθυνση χωρίς εξουσιοδότηση.

  2. Κρυφές "κερκόπορτες":
    Οι απατεώνες μπορεί να κρύβουν κακόβουλο κώδικα πίσω από συγκεκαλυμμένα ή παραπλανητικά ονόματα χαρακτηριστικών, καθιστώντας δύσκολο για τους χρήστες να εντοπίσουν τις πραγματικές τους προθέσεις. Ασαφή ή παραπλανητικά ονόματα λειτουργιών. Τελεστές υπό όρους που χορηγούν ειδικά προνόμια σε ορισμένες διευθύνσεις.

  3. Παραποιημένα tokens και ανταλλαγές:
    Οι απατεώνες συχνά δημιουργούν ψεύτικα tokens ή ψεύτικες πλατφόρμες ανταλλαγής για να εξαπατήσουν τους χρήστες ώστε να μεταφέρουν τα περιουσιακά τους στοιχεία σε ένα κακόβουλο συμβόλαιο. Δώστε προσοχή σε συμβόλαια token των οποίων η συμπεριφορά είναι ύποπτη, όπως η κοπή απεριόριστων token ή η αποδοχή μη εξουσιοδοτημένων μεταβιβάσεων.

  4. Λειτουργίες μη εξουσιοδοτημένης έκδοσης ή μεταφοράς ιδιοκτησίας:
    Ένα εξωτερικό συμβόλαιο μπορεί να αλλάξει τον κάτοχο του token ή να προκαλέσει νέα έκδοση, προκαλώντας πληθωρισμό των τιμών.

  5. Παραπλανητική τεκμηρίωση ή σχόλια που δεν συνάδουν με τη συμπεριφορά του κώδικα:
    Οι απατεώνες ενδέχεται να παρέχουν παραπλανητική ή ανακριβή τεκμηρίωση ή σχόλια στον κώδικά τους για να παραπλανήσουν τους χρήστες σχετικά με την πραγματική λειτουργικότητα του συμβολαίου. Πάντα να διασταυρώνετε την τεκμηρίωση με την πραγματική συμπεριφορά του κώδικα.

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

  7. Πολύπλοκες εκφράσεις υπό όρους:
    Οι απατεώνες ενδέχεται να χρησιμοποιούν σύνθετες υπό όρους εκφράσεις ή λογική που είναι δύσκολο να ακολουθηθεί, καθιστώντας δύσκολη την κατανόηση της πραγματικής λειτουργικότητας της σύμβασης. Αναζητήστε περιττά περίπλοκο κώδικα: υπερβολικά πολύπλοκη ή ασαφή λογική και όρους και προϋποθέσεις που είναι άσχετοι με τον σκοπό της σύμβασης.

  8. Ασαφή πρότυπα διαχείρισης και ιδιοκτησίας (Ownership):
    Οι απατεώνες χρησιμοποιούν συχνά συμβάσεις πληρεξουσίων με ασαφείς μηχανισμούς διαχείρισης ή κρυφές δομές ιδιοκτησίας, καθιστώντας δύσκολο για τους χρήστες να προσδιορίσουν ποιος ελέγχει τη σύμβαση.

  9. Αποσιώπηση γνωστών έργων:
    Οι απατεώνες συχνά δημιουργούν συμβάσεις που μιμούνται τη λειτουργικότητα ή την εμφάνιση γνωστών, νόμιμων έργων. Ελέγχετε πάντα τη γνησιότητα του έργου και βεβαιωθείτε ότι δεν πρόκειται για απομίμηση. Δώστε προσοχή σε μικρές διαφορές στα ονόματα, τα λογότυπα ή την επωνυμία. Έργα που ισχυρίζονται ότι είναι επίσημα, αλλά δεν έχουν την κατάλληλη επικύρωση.

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

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

  12. Ασυνήθιστη ή κρυφή αποθήκευση δεδομένων:
    Οι απατεώνες ενδέχεται να χρησιμοποιούν αντισυμβατικά ή κρυφά συστήματα αποθήκευσης δεδομένων για να συγκαλύψουν την κακόβουλη λειτουργία. Σημειώστε ότι τα δεδομένα ενδέχεται να αποθηκεύονται σε απροσδόκητα σημεία εντός της σύμβασης.

  13. Παραποιημένες δεξαμενές ρευστότητας:
    Στην περίπτωση των έργων DeFi, να είστε επιφυλακτικοί απέναντι σε δεξαμενές ρευστότητας που υπόσχονται υψηλές αποδόσεις. Οι απατεώνες ενδέχεται να δημιουργήσουν πλαστές δεξαμενές για να προσελκύσουν ρευστότητα και στη συνέχεια να εκμεταλλευτούν τους χρήστες. Ασυμβίβαστα υψηλά έσοδα από την παροχή ρευστότητας. Έλλειψη διαφάνειας και τεκμηρίωσης του μηχανισμού λειτουργίας της δεξαμενής.

tips around proxy

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

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


Ελπίζουμε ότι αυτές οι πληροφορίες σας βοήθησαν να κατανοήσετε καλύτερα τα σχήματα των διαχειριζόμενων (Proxy) έξυπνων συμβολαίων.


Επειδή όλες οι πληροφορίες στην αλυσίδα μπλοκ είναι ανοιχτές (υπό την προϋπόθεση, φυσικά, ότι ο πηγαίος κώδικας του συμβολαίου είναι επαληθευμένος), οπλισμένοι με αυτές τις γνώσεις μπορείτε να μελετήσετε ανεξάρτητα τα έξυπνα συμβόλαια και να εντοπίσετε διάφορα σχήματα απάτης.

Πάντως, εμείς τα έχουμε ήδη κάνει όλα αυτά για εσάς! Εγγραφείτε για μια συνδρομή premium και αποκτήστε πρόσβαση σε αποκλειστικά φίλτρα σχετικά με τα χαρακτηριστικά των έξυπνων συμβολαίων και φρέσκα αναλυτικά στοιχεία. Αυξήστε τις πιθανότητες να επενδύσετε με επιτυχία σε κερδοφόρα token.

Χαιρετισμούς, ομάδα της Lotus Market.

All posts

Connect to a wallet

Metamask