Ethereum rafforza la sicurezza degli smart contract per prevenire gli hack

Gaia Tommasi
| 5 min read

Ethereum

Ethereum, ideata da Vitalik Buterin, è la blockchain per eccellenza per la creazione di smart contracts e applicazioni decentralizzate (DApps).  Non solo è una delle chain più utilizzate a livello globale, ma vanta anche il maggior numero di sviluppatori. Secondo i dati di CoinMarketCap, il 16% di tutti gli sviluppatori attivi nel settore contribuisce al suo ecosistema.

ETH

Fonte: CoinMarketCap

Tuttavia, nonostante il suo successo e la sua vasta adozione, la blockchain di Ethereum non è immune agli attacchi di sicurezza.

Nel recente report “Global Web3 Security Report” dell’azienda di sicurezza blockchain Beosin emerge una situazione preoccupante: nel terzo trimestre di quest’anno, gli investitori hanno perso ben 282,96 milioni di dollari a causa di attacchi hacker.

Inoltre, durante lo stesso periodo, sono stati registrati schemi di phishing che hanno provocato ulteriori perdite, raggiungendo un totale di 66,15 milioni di dollari. Secondo i risultati di Beosin, la blockchain di Ethereum ha subito il maggior numero di perdite e hack in assoluto.

ETH

Fonte: Beosin

Revisione del codice degli smart contract


Chaals Nevile, direttore del programma tecnico dell’Enterprise Ethereum Alliance (EEA, un’organizzazione che mira a promuovere l’uso della chain nelle imprese), ha riferito alla redazione di Cryptonews che sono presenti dei problemi all’interno di Ethereum che hanno un impatto sulla sicurezza dell’ecosistema.

“Il problema più evidente è che il compilatore Solidity, che produce il codice byte e altri artefatti necessari per la distribuzione degli smart contract, presenta dei bug. Man mano che il compilatore si evolve, vengono corretti i vecchi bug, ma ne vengono creati di nuovi”, ha dichiarato Nevile.

Per affrontare questi problemi, l’EEA ha creato il “Gruppo di lavoro sui livelli di sicurezza EthTrust” nel novembre 2020. Nel mese di agosto 2022, il gruppo ha pubblicato il documento “EthTrust Security Levels Specification v1”, che definisce gli standard e le linee guida per la sicurezza degli smart contract.

Da allora, questa specifica ha funzionato come un punto di riferimento per gli sviluppatori, le organizzazioni e i clienti che lavorano con il codice degli smart contract scritti nel linguaggio di programmazione principale di Ethereum, chiamato Solidity.

Tuttavia, dato che la chain continua a crescere, Chaals Nevile ha sottolineato che la EthTrust Security Levels Specification ha richiesto aggiornamenti per riflettere i continui sviluppi in materia di sicurezza.

“Per esempio, la specifica v1 copre i bug fino all’anno 2022 circa, ma sono stati scoperti nuovi bug dopo il rilascio della v1”.

Nevile ha anche condiviso che l’EEA ha annunciato il rilascio della “Versione 2.0” della specifica dei livelli di sicurezza EthTrust. In questa specifica vengono affrontate varie questioni, tra cui nuovi bug scoperti nel compilatore Solidity, il trattamento degli errori di arrotondamento, un approccio più rigoroso alla gestione degli attacchi di reentrancy in sola lettura e molte altre tematiche legate alla sicurezza.

Questi aggiornamenti sono essenziali, visto che l’ecosistema di Ethereum ha subito diversi exploit di sicurezza a causa di questi problemi. Ad esempio, Michael Lewellen, responsabile dell’architettura delle soluzioni di OpenZeppelin, una società specializzata nella sicurezza degli smart contract, ha dichiarato alla redazione di Cryptonews che l’hack “The DAO”, che ha causato una perdita di 3,64 milioni di dollari in ETH,  è avvenuto a causa della reentrancy.

“L’hack “The DAO” è stato il primo grande hack su Ethereum, avvenuto nel 2016, che ha fatto riflettere tutti sulla sicurezza. Questo è stato un classico caso di reentrancy“, ha detto Lewellen.

Nevile ha spiegato che la reentrancy si verifica quando uno sviluppatore avvia uno smart contract e successivamente chiede al programma di eseguire un’altra operazione mentre il contratto è ancora impegnato nell’esecuzione del codice. Ha detto:

“Questo vuol dire che mentre un programma sta eseguendo una parte del codice, viene interrotto da una richiesta per svolgere un’altra azione. Di conseguenza, le due richieste potrebbero sovrapporsi e creare confusione. Un hacker potrebbe sfruttare questa confusione per rubare i fondi delle persone”.

Sarà adottato uno standard di settore su larga scala?


Michael Lewellen ha sottolineato quanto sia importante prevenire questi problemi di sicurezza e ha riferito che per questo motivo la sua società OpenZeppelin utilizza il framework EthTrust Security Levels v1.

“Utilizziamo questo framework come valutazione pre-audit per molti dei nostri clienti, in modo che i clienti sappiano che stiamo verificando la presenza di determinate istanze durante il processo di audit”.

Questo standard sembra essere utile, poiché un cliente di OpenZeppelin ha rivelato alla redazione di Cryptonews che EthTrust era ciò che mancava all’azienda in passato.

“Abbiamo fallito il nostro precedente audit di sicurezza perché non avevamo una guida chiara su quali requisiti di sicurezza ci mancavano. Ci sentiamo molto più sicuri nell’affrontare il prossimo audit dopo aver esaminato i requisiti di EthTrust e averli implementati nella nostra base di codice”.

Tuttavia, ci sono delle sfide nell’adozione di questo standard. Nevile ha commentato che, nonostante il feedback positivo su EthTrust v1, è ancora difficile far conoscere questo standard a sviluppatori e organizzazioni. Ha anche notato che il framework è maggiormente adatto ai progetti di Ethereum più recenti, come Uniswap e Aave.

“Progetti consolidati come Uniswap e Aave possono trarre beneficio da queste specifiche, ma per la maggior parte di loro, tali requisiti di sicurezza sono già ben noti e consolidati. Al contrario, i progetti emergenti in fase di sviluppo e avvio su Ethereum potrebbero trovare queste specifiche estremamente preziose.”

Tuttavia, resta da vedere se questo nuovo standard industriale sarà davvero efficace nel prevenire in futuro i problemi di sicurezza sulla chain di Ethereum.

John Wingate, il fondatore e CEO di BankSocial, un’azienda di servizi finanziari che utilizza la tecnologia blockchain, ha condiviso le sue preoccupazioni con la redazione di Cryptonews riguardo i cambiamenti costanti degli standard e nei linguaggi di programmazione, che possono influenzare aspetti cruciali come i metodi, le variabili e i tipi di dati.

“Gli standard cambiano in continuazione; i linguaggi non smettono di svalutare metodi, variabili, tipi di dati e tipi di oggetti”.

Per questo motivo stanno già lavorando alla “Versione 3″ delle specifiche di EthTrust. Inoltre Wingate ha spiegato che tra una pubblicazione e l’altra passano circa 16 mesi, e crede che questa periodicità, compresa tra 12 e 18 mesi, sia sufficiente per mantenere aggiornate le specifiche.

Nonostante possano verificarsi cambiamenti negli standard, Wingate ritiene che il modo migliore per garantire che le applicazioni decentralizzate rispettino le migliori pratiche di sicurezza sia attraverso l’implementazione di test automatizzati e ripetibili del codice.

“Ciò implica la capacità di configurare la propria piattaforma in modo da eseguire test del codice in modo regolare e automatico. Quando si rileva un bug nel codice sorgente o nel compilatore, l’automazione consente di apportare tempestivamente gli aggiornamenti necessari, garantendo che tutti possano trarre vantaggio da una scansione costante per individuare e correggere potenziali vulnerabilità”.

Leggi anche: