I dati di Etherscan mostrano che alcuni truffatori di criptovalute stanno prendendo di mira gli utenti con un nuovo trucco che consente loro di confermare una transazione dal portafoglio della vittima, ma senza avere la chiave privata della vittima. L'attacco può essere eseguito solo per transazioni di valore 0. Tuttavia, potrebbe causare l'invio accidentale di token all'attaccante da parte di alcuni utenti a seguito di un copia e incolla da una cronologia delle transazioni dirottata.
La società di sicurezza blockchain SlowMist ha scoperto la nuova tecnica a dicembre e l'ha rivelata in un post del blog. Da allora, sia SafePal che Etherscan hanno adottato tecniche di mitigazione per limitarne l'effetto sugli utenti, ma alcuni utenti potrebbero ancora non esserne a conoscenza.
Di recente abbiamo ricevuto segnalazioni dalla comunità di un nuovo tipo di truffa: truffa Zero Transfer. Fai attenzione se vedi un sospetto trasferimento 0 nel tuo portafoglio:1/10
— Veronica (@V_SafePal) 14 dicembre 2022
Secondo il post di SlowMist, la truffa funziona inviando una transazione di zero token dal portafoglio della vittima a un indirizzo simile a quello a cui la vittima aveva precedentemente inviato i token.
Ad esempio, se la vittima ha inviato 100 monete a un indirizzo di deposito di un exchange, l'attaccante potrebbe inviare zero monete dal portafoglio della vittima a un indirizzo che sembra simile ma che è, in effetti, sotto il controllo dell'attaccante. La vittima potrebbe vedere questa transazione nella cronologia delle transazioni e concludere che l'indirizzo mostrato è l'indirizzo di deposito corretto. Di conseguenza, potrebbe inviare le proprie monete direttamente all'attaccante.
Invio di una transazione senza l'autorizzazione del proprietario
In circostanze normali, un aggressore ha bisogno della chiave privata della vittima per inviare una transazione dal portafoglio della vittima. Ma la funzionalità "scheda contratto" di Etherscan rivela che c'è una scappatoia in alcuni contratti token che può consentire a un aggressore di inviare una transazione da qualsiasi portafoglio.
Ad esempio, il codice per USD Coin (USDC) su Etherscan mostra che la funzione "TransferFrom" consente a chiunque di spostare monete dal portafoglio di un'altra persona, a condizione che la quantità di monete che sta inviando sia inferiore o uguale alla quantità consentita dal proprietario dell'indirizzo.
Ciò significa solitamente che un aggressore non può effettuare una transazione dall'indirizzo di un'altra persona a meno che il proprietario non approvi un'indennità per loro.
Tuttavia, c'è una scappatoia in questa restrizione. L'importo consentito è definito come un numero (chiamato "tipo uint256"), il che significa che viene interpretato come zero a meno che non sia specificamente impostato su un altro numero. Questo può essere visto nella funzione "allowance".

Di conseguenza, finché il valore della transazione dell'attaccante è inferiore o uguale a zero, questi può inviare una transazione da qualsiasi portafoglio desideri, senza bisogno della chiave privata o della previa approvazione del proprietario.
USDC non è l'unico token che consente di farlo. Un codice simile può essere trovato nella maggior parte dei contratti token. Può essere trovato anche nei contratti di esempio linkati dal sito web ufficiale della Ethereum Foundation.
Esempi di truffa del trasferimento di valore zero
Etherscan mostra che alcuni indirizzi wallet inviano ogni giorno migliaia di transazioni di valore zero dai wallet di varie vittime senza il loro consenso.
Ad esempio, un account etichettato Fake_Phishing7974 ha utilizzato uno smart contract non verificato per eseguire più di 80 pacchetti di transazioni il 12 gennaio, ciascuno contenente 50 transazioni di valore zero, per un totale di 4.000 transazioni non autorizzate in un giorno.
Indirizzi fuorvianti
Analizzando più da vicino ogni transazione si scopre il movente di questo spam: l'aggressore invia transazioni di valore zero ad indirizzi molto simili a quelli a cui le vittime avevano inviato fondi in precedenza.
Ad esempio, Etherscan mostra che uno degli indirizzi utente presi di mira dall'aggressore è il seguente:
Italiano:
Il 29 gennaio, questo account ha autorizzato l'invio di 5.000 Tether (USDT) al seguente indirizzo di ricezione:
0xa541efe60f274f813a834afd31e896348810bb09.
Subito dopo, Fake_Phishing7974 ha inviato una transazione di valore zero dal portafoglio della vittima a questo indirizzo:
Italiano: 0xA545c8659B0CD5B426A027509E55220FDa10bB09.
I primi cinque caratteri e gli ultimi sei caratteri di questi due indirizzi di ricezione sono esattamente gli stessi, ma i caratteri al centro sono tutti completamente diversi. L'attaccante potrebbe aver voluto che l'utente inviasse USDT a questo secondo indirizzo (falso) invece che a quello reale, dando le proprie monete all'attaccante.
In questo caso particolare, sembra che la truffa non abbia funzionato, poiché Etherscan non mostra alcuna transazione da questo indirizzo a uno degli indirizzi falsi creati dal truffatore. Ma dato il volume di transazioni di valore zero effettuate da questo account, il piano potrebbe aver funzionato in altri casi.
I portafogli e gli esploratori di blocchi possono variare notevolmente nel modo in cui e nel se mostrano transazioni fuorvianti.
Portafogli
Alcuni wallet potrebbero non mostrare affatto le transazioni spam. Ad esempio, MetaMask non mostra alcuna cronologia delle transazioni se viene reinstallato, anche se l'account stesso ha centinaia di transazioni sulla blockchain. Ciò implica che memorizza la propria cronologia delle transazioni anziché estrarre i dati dalla blockchain. Ciò dovrebbe impedire che le transazioni spam vengano visualizzate nella cronologia delle transazioni del wallet.
D'altro canto, se il portafoglio estrae i dati direttamente dalla blockchain, le transazioni spam potrebbero essere visualizzate sul display del portafoglio. In un annuncio del 13 dicembre su Twitter, la CEO di SafePal Veronica Wong ha avvisato gli utenti di SafePal che il suo portafoglio potrebbe visualizzare le transazioni. Per mitigare questo rischio, ha affermato che SafePal stava modificando il modo in cui gli indirizzi vengono visualizzati nelle versioni più recenti del suo portafoglio in modo da rendere più facile per gli utenti ispezionare gli indirizzi.
(6/10) A questo proposito, abbiamo preso delle misure: 1) Nell'ultimo aggiornamento V3.7.3, abbiamo modificato la lunghezza dell'indirizzo del portafoglio visualizzato nella cronologia delle transazioni. Le prime e le ultime 10 cifre dell'indirizzo del portafoglio verranno visualizzate di default, per motivi di esame dell'indirizzo
— Veronica (@V_SafePal) 14 dicembre 2022
A dicembre, un utente ha anche segnalato che il suo portafoglio Trezor mostrava transazioni fuorvianti.
Cointelegraph ha contattato via email lo sviluppatore di Trezor SatoshiLabs per un commento. In risposta, un rappresentante ha affermato che il portafoglio estrae la cronologia delle transazioni direttamente dalla blockchain "ogni volta che gli utenti collegano il loro portafoglio Trezor".
Tuttavia, il team sta prendendo misure per proteggere gli utenti dalla truffa. In un imminente aggiornamento di Trezor Suite, il software "contrassegna le transazioni sospette di valore zero in modo che gli utenti siano avvisati che tali transazioni sono potenzialmente fraudolente". L'azienda ha anche affermato che il portafoglio visualizza sempre l'indirizzo completo di ogni transazione e che "raccomanda vivamente agli utenti di controllare sempre l'indirizzo completo, non solo il primo e l'ultimo carattere".
Esploratori di blocchi
Oltre ai wallet, i block explorer sono un altro tipo di software che può essere utilizzato per visualizzare la cronologia delle transazioni. Alcuni explorer potrebbero visualizzare queste transazioni in modo tale da trarre in inganno inavvertitamente gli utenti, proprio come fanno alcuni wallet.
Per mitigare questa minaccia, Etherscan ha iniziato a rendere grigie le transazioni di token di valore zero che non sono state avviate dall'utente. Segnala inoltre queste transazioni con un avviso che dice "Questo è un trasferimento di token di valore zero avviato da un altro indirizzo", come evidenziato dall'immagine sottostante.

Altri esploratori di blocchi potrebbero aver adottato le stesse misure di Etherscan per avvisare gli utenti di queste transazioni, ma alcuni potrebbero non aver ancora implementato tali misure.
Suggerimenti per evitare il trucco del "TransferFrom a valore zero"
Cointelegraph ha contattato SlowMist per chiedere consiglio su come evitare di cadere nella trappola del "TransferFrom a valore zero".
Un rappresentante dell'azienda ha fornito a Cointelegraph un elenco di suggerimenti per evitare di cadere vittima dell'attacco:
"Prestare attenzione e verificare l'indirizzo prima di eseguire qualsiasi transazione."
"Utilizza la funzione whitelist nel tuo portafoglio per evitare di inviare fondi agli indirizzi sbagliati."
"Resta vigile e informato. Se ti imbatti in trasferimenti sospetti, prenditi il tempo di indagare sulla questione con calma per evitare di cadere vittima di truffatori."
"Mantieni un sano livello di scetticismo, sii sempre cauto e vigile."
A giudicare da questo consiglio, la cosa più importante che gli utenti di criptovalute devono ricordare è di controllare sempre l'indirizzo prima di inviargli criptovalute. Anche se il record della transazione sembra implicare che hai già inviato criptovalute all'indirizzo in precedenza, questa apparenza potrebbe essere ingannevole.


