L’analisi di Ranieri Razzante, Consigliere per la Cybersecurity del Sottosegretario alla Difesa: “Con l’occasione si ribadisce che la regolamentazione di questo settore deve diventare una delle priorità sia in sede Ue che, possibilmente, universale”.
Ora si attaccano tra loro.
Gli hacker hanno rubato criptovalute per un valore di oltre 600 milioni di dollari da “Poly Network”, una piattaforma di finanza decentralizzata o “DeFi”, in uno dei più grandi furti di criptovalute degli ultimi anni. In una svolta a sorpresa, chi ha rubato il denaro ha poi restituito oltre un terzo dei beni rubati. Cosa spiegabile forse con un accordo scellerato che mira alla pubblicizzazione delle attività di ciascuno. La finalità degli hackeraggi, infatti, come ho già avuto modo di ricordare, è ormai di larga visibilità e marketing, oltre che economico.
Sopra abbiamo fatto cenno alla “DeFi”, ovvero la finanza decentralizzata. Ebbene, pur non essendo questo il luogo in cui analizzare tale “finanza”, corre l’obbligo – mentre si parla di cybersecurity- di spendere qualche parola su di essa, anticipando che trattasi di un “angolo” caldo e rischioso del mercato delle criptovalute, e non solo di esse.
“DeFi” è un termine generico per i servizi finanziari offerti su blockchain pubblici.
Come le banche tradizionali, le applicazioni “DeFi” consentono agli utenti di prendere prestiti, guadagnare interessi e scambiare attività e derivati, tra le altre cose. La raccolta di servizi viene spesso utilizzata da persone che cercano di prendere in prestito le proprie criptovalute per piazzare scommesse ancora più grandi.
Ci sono due differenze fondamentali rispetto alle banche tradizionali:
- tutti i servizi sono per valute digitali anziché per quelle emesse dal governo, come il dollaro e l’euro, e non esiste un sistema intermediario o centralizzato attraverso il quale vengano elaborate le transazioni;
- gli utenti, in genere, accedono alle piattaforme “DeFi” tramite software noti come dapps o app decentralizzate, la maggior parte delle quali viene eseguita sulla rete Ethereum. Collegano il loro portafogli digitale all’app e selezionano un servizio da un menu a discesa. Le funzioni gestite in una banca tradizionale da un funzionario o da un cassiere sono automatizzate.
Si tratta, essenzialmente, di attività bancarie per lo spazio blockchain.
Poly Network, che utilizza risorse digitali per prestiti e altre transazioni finanziarie, ha rivelato l’hackeraggio in una serie di post su Twitter martedì 10 agosto. La società di sicurezza blockchain “SlowMist” ha stimato che le criptovalute rubate valevano oltre 610 milioni di dollari nel momento del “furto”.
Gli hacker hanno razziato le valute digitali, tra cui ether e token supportati da bitcoin, oltre a tether, una moneta progettata per imitare il valore del dollaro USA, e la moneta Shiba Inu, criptovaluta dogecoin ispirata alla razza canina Shiba Inu.
Infatti, Dogecoin ha un logo che si rifà graficamente ad un meme di internet rappresentante un cane Shiba Inu. Nata come scherzo l’8 dicembre 2013, si sviluppò rapidamente e nel gennaio 2014 raggiunse una capitalizzazione di mercato di 60 milioni di dollari.
Poly Network ha dichiarato mercoledì 11 agosto che sono stati restituiti beni per un valore di circa 260 milioni di dollari.
In una serie di lunghi post di domande e risposte sulla “rapina” pubblicati su un account blockchain utilizzato per dirottare i fondi, il presunto hacker o gli hacker hanno affermato che hanno sempre pianificato di restituire i fondi.
Il 10 agosto 2021, secondo le notizie della SlowMist Zone, il protocollo di interoperabilità cross-chain Poly Network è stato attaccato da hacker. Il team di sicurezza di SlowMist si è immediatamente inserito nell’analisi e ne ha condiviso alcuni risultati.
I dettagli dell’attacco
Il fulcro di questo attacco è rappresentato dalla funzione “verifyHeaderAndExecuteTx” del contratto “EthCrossChainManager”, che può eseguire specifiche transazioni cross-chain tramite la funzione “_executeCrossChainTx”.
Poiché il titolare del contratto “EthCrossChainData” è il contratto “EthCrossChainManager”, il contratto “EthCrossChainManager” può modificare il custode del medesimo richiamando la funzione “putCurEpochConPubKeyBytes” del primo.
La funzione “verifyHeaderAndExecuteTx” del contratto “EthCrossChainManager” può eseguire transazioni cross-chain specificate dall’utente tramite la funzione “_executeCrossChainTx”. Quindi, il pirata deve solo passare i dati accuratamente costruiti attraverso la funzione “verifyHeaderAndExecuteTx” per la funzione “_executeCrossChainTx” per eseguire la funzione “PutCurEpochConPubKeyBytes” del contratto “EthCrossChainData”, al fine di cambiare il ruolo di custode nell’indirizzo specificato dagli aggressori.
Dopo aver sostituito l’indirizzo del ruolo di custode, l’hacker può costruire una transazione a piacimento e prelevare qualsiasi quantità di fondi dal contratto.
I processi
Contratto attaccato:
L’hacker ha utilizzato la funzione “verifyHeaderAndExecuteTx” del contratto “EthCrossChainManager” per richiamare la funzione “putCurEpochConPubKeyBytes” e modificare l’operazione del custode:
https://bscscan.com/tx/0x3eba3f1fb50c4cbe76e7cc4dcc14ac7544762a0e785cf22034f175f67c8d3be9
Transazioni di attacco:
https://bscscan.com/tx/0x50105b6d07b4d738cd11b4b8ae16943bed09c7ce724dc8b171c74155dd496c25
https://bscscan.com/tx/0xd65025a2dd953f529815bd3c669ada635c6001b3cc50e042f9477c7db077b4c9
https://bscscan.com/tx/0xea37b320843f75a8a849fdf13cd357cb64761a848d48a516c3cac5bbd6caaad5
Dopo che l’attacco è stato completato, il custode è stato modificato e le altre normali transazioni sono state ripristinate.
L’attacco tracciato
La stessa operazione è stata eseguita su Ethereum:
Contratto attaccato:
L’hacker modifica l’operazione del custode:
https://etherscan.io/tx/0xb1f70464bd95b774c6ce60fc706eb5f9e35cb5f06e6cfe7c17dcda46ffd59581
La Transazione con cui l’attaccante ha effettuato l’attacco:
https://etherscan.io/tx/0xad7a2c70c958fcd3effbf374d0acf3774a9257577625ae4c838e24b0de17602a
Conclusioni
Questo attacco è dovuto, principalmente, al fatto che il custode del contratto “EthCrossChainData” può essere modificato dal contratto “EthCrossChainManager” e la funzione “verifyHeaderAndExecuteTx” del contratto “EthCrossChainManager” può eseguire i dati passati dall’utente tramite la funzione “_executeCrossChainTx”. Pertanto, l’hacker utilizza tale funzione per trasmettere dati accuratamente costruiti per modificare il custode del contratto “EthCrossChainData”.
Sulle ragioni, ripeto, siamo abbastanza convinti, con l’occasione ribadendo che la regolamentazione di questo settore deve diventare una delle priorità sia in sede Ue che, possibilmente, universale.
L’autore, Ranieri Razzante, Consigliere per la Cybersecurity del Sottosegretario alla Difesa on. Giorgio Mulè.
*I dati di analisi sono del Centro di ricerca sulla Sicurezza e il Terrorismo (coordinatore dott. Benedetto Palombo).