Επιθέσεις άρνησης υπηρεσίας σε έξυπνα συμβόλαια: Πώς να διορθώσετε και να αποφύγετε (Οδηγός εμπειρογνωμόνων) Intelligence δεδομένων PlatoBlockchain. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Επιθέσεις άρνησης υπηρεσίας σε έξυπνα συμβόλαια: Πώς να διορθώσετε και να αποφύγετε (Οδηγός ειδικού)

Ώρα ανάγνωσης: 6 πρακτικά

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

Οι επιθέσεις άρνησης υπηρεσίας (DoS) είναι ένα από τα πολλά τρωτά σημεία που πρέπει να ληφθούν υπόψη κατά τον έλεγχο των έξυπνων συμβολαίων. Αυτό το ιστολόγιο στοχεύει να ξετυλίξει τα μέσα και τα έξω της επίθεσης DoS - τι είναι, τον αντίκτυπό της, τους τύπους και πολλά άλλα να προσθέσει.

Ας μπούμε γρήγορα και ας τα εξερευνήσουμε όλα. 

Τι είναι μια επίθεση DoS;

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

Λόγω των τεράστιων δυνατοτήτων που διαθέτει το blockchain, είναι ο πρωταρχικός στόχος για επιθέσεις DoS για να κλέψουν τα πλούτη. Τα πιο διάσημα κρυπτονομίσματα, όπως το Bitcoin, Ethereum, κ.λπ., έχουν επίσης υποστεί επιθέσεις DoS. 

Κατανεμημένη άρνηση παροχής υπηρεσίας (DDoS)

Το Distributed Denial of Service (DDoS) είναι μια επίθεση DoS που περιλαμβάνει τον εισβολέα που ελέγχει πολλές συσκευές για να εξαπολύσει μια επίθεση στον κόμβο-στόχο.

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

Στόχοι επιθέσεων DoS στο οικοσύστημα Blockchain

Από τις καταγραφές των προηγούμενων γεγονότων επιθέσεων DoS, κάθε τμήμα του οικοσυστήματος blockchain είναι ευάλωτο σε επιθέσεις DoS. Και για να αναφέρουμε μερικά, 

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

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

Π.χ.: Η πλατφόρμα ανταλλαγής Bitcoin, η Bifinex έχει υποστεί πολλές φορές επιθέσεις DDoS. 

Πισίνες μνήμης (συναλλαγής): Οι συναλλαγές στο blockchain πρέπει να επικυρωθούν πριν προστεθούν στα μπλοκ. Μέχρι τότε, τα αιτήματα συναλλαγών αποθηκεύονται στο mempool, το οποίο είναι σαν ένα αποθετήριο μη επιβεβαιωμένων συναλλαγών που περιμένουν να επιλεγούν από έναν εξορύκτη. 

Η συναλλαγή με υψηλή χρέωση είναι πολύ πιθανό να επιλεγεί από τον εξορύκτη. Έτσι, το να πλημμυρίσει το mempool με πολλές συναλλαγές μικρών χρεώσεων έχει ως αποτέλεσμα ο χρήστης να πληρώνει υψηλά τέλη για να διεκπεραιωθεί η συναλλαγή του. Έτσι, η επίθεση DoS έκανε τα μαγικά της αυξάνοντας το τέλος επεξεργασίας. 

Συμμετέχοντες στη συναίνεση: Είναι οι παίκτες που λύνουν τη λογική και αποφασίζουν τα μπλοκ που θα προστεθούν στο blockchain. Η πρόκληση επιθέσεων DoS στον ηγέτη της συναίνεσης σταματά ολόκληρο το σύστημα. 

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

Έξυπνες συμβάσεις: Το έξυπνο συμβόλαιο είναι το υποκείμενο πρωτόκολλο πίσω από κάθε συναλλαγή στο blockchain. Οι επιθέσεις DoS σε έξυπνα συμβόλαια μπορούν να καταστρέψουν τον κόμβο που σταματά τη λειτουργία των Dapps που φιλοξενούνται από αυτόν.

Οι επιθέσεις DoS εκτελούνται εναντίον τους με διάφορους πιθανούς τρόπους, οι οποίοι αναλύονται στην επόμενη ενότητα.

Ανάλυση τύπων επιθέσεων DoS έξυπνων συμβολαίων 

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

Παρακάτω βρίσκεται η ταξινόμηση των διαφόρων επιθέσεων DoS σε έξυπνα συμβόλαια

Μη αναμενόμενη επαναφορά DoS

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

contract Auction {
    address frontRunner;
    uint256 highestBid;

    function bid() public payable {
        require(msg.value > highestBid, "Need to be higher than highest bid");
        // Refund the old leader, if it fails then revert   
        require(payable(frontRunner).send(highestBid), "Failed to send Ether");
 
        frontRunner = msg.sender;
        highestBid = msg.value;
    }
}

Το συμβόλαιο επιτιθέμενου αρχικοποιείται με το συμβόλαιο δημοπρασίας στον κατασκευαστή, ο οποίος αποκτά πρόσβαση στο συμβόλαιο δημοπρασίας. Σε αυτό, καλώντας τη συνάρτηση 'attack()', ο εισβολέας κλειδώνει το ποσό και ως εκ τούτου, αποτυγχάνει να επιστρέψει το ποσό της προσφοράς στον εισβολέα ακόμη και αν λάβει υψηλότερη προσφορά από αυτό. 

import "./Auction.sol";   
contract Attacker{
    Auction auction;

    constructor(Auction _auctionaddr){
        auction = Auction(_auctionaddr);
    }

    function attack (){
        auction.bid{value: msg.value}();
    }

}

Αυτό οφείλεται στο ότι το συμβόλαιο «επίθεσης» δεν περιλαμβάνει καμία συνάρτηση «receive()» ή εναλλακτική συνάρτηση για την επιστροφή χρημάτων στον Ether, με αποτέλεσμα την απροσδόκητη επαναφορά. Αυτό κάνει το συμβόλαιο του επιτιθέμενου να είναι πάντα ο πλειοδότης. 

Block Gas Limit DoS 

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

Gas Limit DoS – Απεριόριστη Συμβατική Λειτουργία

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

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

struct Payee {
    address addr;
    uint256 value;
}

Payee[] payees;
uint256 nextPayeeIndex;

function payOut() {
    uint256 i = nextPayeeIndex;
    while (i < payees.length && msg.gas > 200000) {
      payees[i].addr.send(payees[i].value);
      i++;
    }
    nextPayeeIndex = i;
}

Επομένως, πρέπει να λαμβάνονται υπόψη τα απαραίτητα βήματα κατά την υλοποίηση ενός βρόχου πάνω από έναν πίνακα. 

Γέμισμα μπλοκ

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

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

Δράση Ιδιοκτήτη

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

Επιπτώσεις της επίθεσης DoS

Η γέμιση μπλοκ είναι μία από τις πολλές επιπτώσεις που εμποδίζουν την προσθήκη νόμιμων συναλλαγών στα μπλοκ. Ωστόσο, υπάρχουν πολλές άλλες επιπτώσεις των επιθέσεων DoS. 

Φουσκωμένο καθολικό: Το καθολικό blockchain είναι το σημείο όπου οι συναλλαγές καταγράφονται μόνιμα. Οι κόμβοι blockchain αποθηκεύουν ένα αντίγραφο των συναλλαγών για να επαληθεύσουν για διπλές δαπάνες. Μια επίθεση DoS μπορεί να φουσκώσει το καθολικό με συναλλαγές ανεπιθύμητης αλληλογραφίας.

Κυκλοφορία δικτύου: Γνωρίζουμε τις λειτουργίες blockchain που βασίζονται στη λειτουργία peer-to-peer. Κάθε κόμβος στο blockchain λαμβάνει ένα αντίγραφο της συναλλαγής. Μια πλημμύρα DoS μπορεί να οδηγήσει σε μεγάλο όγκο συναλλαγών, καταναλώνοντας το εύρος ζώνης του δικτύου. 

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

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

Περιορίστε τα έξυπνα συμβόλαια από επιθέσεις DoS 

Από την ανάλυση των επιθέσεων DoS, μπορούν να χρησιμοποιηθούν οι ακόλουθοι τρόποι για τον μετριασμό της επίθεσης. 

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

Προσέγγιση βάσει αμοιβής: Μπορεί να επιβληθεί ένα επιπλέον τέλος στο blockchain, όπως τέλη εξόρυξης για τις ομάδες εξόρυξης, χρεώσεις συναλλαγών, κ.λπ. Αυτό καθιστά το hack DoS δαπανηρό για τους εισβολείς, μειώνοντας έτσι τέτοιες επιθέσεις. 

Τελική σημείωση

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

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

Προσέξτε το κανάλι μας στο Telegram για να συγκεντρώσετε τις πιο πρόσφατες πληροφορίες για τις υπηρεσίες μας: https://t.me/quillhash

13 Προβολές

Σφραγίδα ώρας:

Περισσότερα από Quillhash