Attacchi Denial of Service sui contratti intelligenti: come risolvere ed evitare (una guida esperta) PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Attacchi Denial of Service sugli Smart Contract: come risolvere ed evitare (una guida esperta)

Tempo per leggere: 6 verbale

Hai mai visitato un sito che ha richiesto molto tempo di caricamento solo per scoprire che non può essere aperto al momento? Si tratta semplicemente dell'effetto degli attacchi Denial of Service. 

Gli attacchi Denial of Service (DoS) sono una delle molte vulnerabilità che vengono maggiormente prese in considerazione durante l'audit dei contratti intelligenti. Questo blog mira a svelare i dettagli dell'attacco DoS: di cosa si tratta, il suo impatto, i tipi e molto altro da aggiungere.

Entriamo rapidamente ed esploriamoli tutti. 

Che cos'è un attacco DoS?

L'attacco DoS intende interrompere le capacità di elaborazione di una rete, un server o un'applicazione, impedendo di accettare le richieste degli utenti legittimi. In questo, l'attaccante sopraffa la rete inviando più traffico che esaurisce la memoria e la larghezza di banda dei server. 

A causa dell'immenso potenziale che detiene la blockchain, sono l'obiettivo principale degli attacchi DoS per rubare le ricchezze. Le criptovalute più famose, come Bitcoin, Ethereum, ecc., hanno anche subito attacchi DoS. 

Distributed Denial of Service (DDoS)

Distributed Denial of Service (DDoS) è un attacco DoS che coinvolge l'attaccante che controlla più dispositivi per lanciare un attacco al nodo di destinazione.

L'attaccante osserva il nodo di destinazione e incanala i molteplici dispositivi sotto il suo controllo per inviare una grande quantità di informazioni inondando il nodo di destinazione. Ciò provoca l'arresto anomalo del bersaglio e l'impossibilità di eseguire l'attività specificata.  

Obiettivi degli attacchi DoS nell'ecosistema Blockchain

Dalle registrazioni degli eventi passati degli attacchi DoS, ogni parte dell'ecosistema blockchain è vulnerabile agli attacchi DoS. E per citarne alcuni, 

Portafogli di criptovaluta: Come con qualsiasi portafoglio, il portafoglio di criptovaluta viene utilizzato per archiviare, inviare o ricevere criptovalute. E quei portafogli online utilizzano contratti intelligenti, che sono soggetti ad attacchi DoS che ostacolano i loro servizi e l'interazione con Dapps. 

Servizi di cambio criptovalute: La piattaforma online in cui vengono scambiate criptovalute e lo scambio avviene tra utenti. Sono gli obiettivi principali per gli hacker per eseguire attacchi DoS che causano l'indisponibilità della piattaforma e dei suoi servizi. 

Es: piattaforma di scambio Bitcoin, Bifinex ha subito attacchi DDoS più volte. 

Pool di memoria (transazione): Le transazioni sulla blockchain devono essere convalidate prima di essere aggiunte ai blocchi. Fino ad allora, le richieste di transazione vengono archiviate nel mempool, che è come un repository di transazioni non confermate in attesa di essere raccolte da un miner. 

È molto probabile che la transazione con una commissione elevata venga scelta dal minatore. Quindi, inondando il mempool con molte transazioni di piccole commissioni, l'utente paga commissioni elevate per elaborare la transazione. Quindi l'attacco DoS ha fatto la sua magia nell'aumentare la commissione di elaborazione. 

Partecipanti al consenso: Sono i giocatori che risolvono la logica e decidono i blocchi da aggiungere alla blockchain. Infliggere attacchi DoS al leader del consenso ferma l'intero sistema. 

Servizi di miscelazione: Utilizza un protocollo per consentire agli utenti di eseguire transazioni in modo anonimo. Subiscono attacchi DoS con vari mezzi, come richieste di partecipazione eccessive al pool di missaggio, input incoerenti per lo shuffle, ecc. 

Contratti intelligenti: Lo smart contract è il protocollo alla base di ogni transazione sulla blockchain. Gli attacchi DoS agli smart contract possono mandare in crash il nodo che interrompe il funzionamento delle Dapp da esso ospitate.

Gli attacchi DoS vengono eseguiti su di loro in diversi modi possibili, elaborati nella sezione seguente.

Analisi dei tipi di attacchi DoS Smart Contract 

La vulnerabilità DoS nei contratti intelligenti si traduce in un utilizzo illimitato delle risorse o nella manipolazione del contratto. Ciò comporta la sospensione nell'esecuzione delle normali attività o interrompe e fa crollare la logica del contratto. 

Di seguito si trova la classificazione dei vari attacchi DoS nei contratti intelligenti

DoS di ripristino imprevisto

Per studiare questo attacco DoS agli smart contract, prendiamo come esempio un contratto d'asta. Il contratto d'asta viene aggiornato con ogni offerta più alta ricevuta e restituisce l'importo dell'offerta dell'offerente precedente in quanto è inferiore all'offerta corrente.

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;
    }
}

Il contratto dell'attaccante viene inizializzato con il contratto d'asta nel costruttore, che ottiene l'accesso al contratto d'asta. In questo, chiamando la funzione 'attack()', l'attaccante blocca l'importo e quindi non riesce a restituire l'importo dell'offerta all'attaccante anche dopo aver ricevuto un'offerta superiore a quella. 

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

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

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

}

È perché il contratto "attaccante" non include alcuna funzione "receive()" o fallback per rimborsare Ether, con conseguente ripristino imprevisto. Questo fa sì che l'attaccante contragga sempre il miglior offerente. 

Blocca il limite di gas DoS 

Il blocco ha un limite massimo di gas da spendere che è proporzionale alla quantità di lavoro di calcolo da svolgere. In caso di superamento del limite di gas, porta a due tipi di attacchi DoS.

Gas Limit DoS – Operazione contrattuale illimitata

C'è un limite di gas impostato e se le transazioni raggiungono un limite di gas superiore al limite impostato, la transazione fallisce. 

Diventa ancora peggio quando l'attaccante manipola il gas necessario. Questo è quando l'attaccante aggiunge alcuni indirizzi per un rimborso molto piccolo. Ogni rimborso costa una tassa gas; quindi, il costo del gas supera il limite che impedisce l'esecuzione delle operazioni di rimborso. 

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;
}

Pertanto, è necessario considerare i passaggi necessari durante l'implementazione di un ciclo su un array. 

Ripieno a blocchi

L'attaccante avvia questo attacco per impedire che le transazioni si aggiungano ai blocchi inviando transazioni ad alta intensità di calcolo con prezzi del gas elevati. Diverse transazioni vengono emesse in modo simile per consumare l'intero limite di gas. 

Pagando l'elevata commissione del gas, l'attaccante si assicura che solo le transazioni previste vengano aggiunte ai blocchi tralasciando il resto. 

Azione del proprietario

Ogni contratto ha un indirizzo del proprietario che ha l'autorità di aprire o sospendere le transazioni. L'intera operazione dipende dall'indirizzo del proprietario, quindi in caso di smarrimento, l'utente non può inviare alcun token e il funzionamento del contratto crollerà.

Impatto dell'attacco DoS

Il riempimento dei blocchi è uno dei tanti impatti che impediscono l'aggiunta di transazioni legittime ai blocchi. Tuttavia, ci sono molti altri impatti degli attacchi DoS. 

Registro gonfio: Il registro blockchain è il luogo in cui le transazioni vengono registrate in modo permanente. I nodi blockchain memorizzano una copia delle transazioni per verificare le doppie spese. Un attacco DoS può gonfiare il libro mastro con transazioni di spam.

Traffico di rete: Conosciamo le funzioni blockchain basate sulla modalità peer-to-peer. Ogni nodo nella blockchain riceve una copia della transazione. Un flooding DoS può comportare un volume di transazioni elevato, consumando la larghezza di banda della rete. 

Errori del nodo: Blockchain funziona sui nodi che richiedono il supporto del software per gestire grandi volumi di dati. Durante il flooding delle transazioni, i nodi potrebbero esaurire la memoria, interrompendo le operazioni.

Crash del software: Come abbiamo discusso, il mempool o i blocchi hanno determinati limiti sulla memoria assegnata loro. Il software riceve, elabora e archivia le transazioni entro il limite impostato. Quando le transazioni in entrata superano i limiti incorporati, il software si arresta in modo anomalo.  

Limita i contratti intelligenti dagli attacchi DoS 

Dall'analisi degli attacchi DoS, è possibile utilizzare i seguenti modi per mitigare l'attacco. 

Puzzle: I server possono generare puzzle come puzzle di memoria, puzzle time-lock, puzzle legati alla CPU, ecc. Affinché un utente possa accedere a un servizio, i puzzle devono essere risolti, il che combatte gli attacchi di spam.

Approccio a pagamento: È possibile imporre un costo aggiuntivo alla blockchain, come commissioni di mining per pool di mining, commissioni di transazione, ecc. Ciò rende l'hacking DoS costoso per gli aggressori, riducendo così tali attacchi. 

Nota conclusiva

Una verifica del contratto intelligente eseguita presso QuillAudit cerca le potenziali vulnerabilità che si trovano nella codifica. Alcuni di essi includono vulnerabilità di rientro, collisione di archiviazione, attacco casuale, Denial of Service e così via. 

Questo significa chiaramente il smart contract sono accuratamente testati per essere privi di minacce di attacco Denial of Service. Ciò garantisce che il tuo progetto sia protetto dalle possibili vulnerabilità dello spazio Web3.

Fai attenzione al nostro canale Telegram per raccogliere gli ultimi approfondimenti sui nostri servizi: https://t.me/quillhash

13 Visualizzazioni

Timestamp:

Di più da quillhash