I truffatori prendono di mira gli utenti di criptovalute con il nuovo trucco "TransferFrom a valore zero".

I dati di Etherscan mostrano che alcuni truffatori crittografici 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 da parte di alcuni utenti all'attaccante a seguito del taglia e incolla da una cronologia delle transazioni dirottate.

L'azienda di sicurezza blockchain SlowMist scoperto la nuova tecnica a dicembre e l'ha rivelata in un post sul blog. Da allora, sia SafePal che Etherscan hanno adottato tecniche di mitigazione per limitarne l'effetto sugli utenti, ma alcuni utenti potrebbero ancora non essere a conoscenza della sua esistenza.

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 scambio, l'aggressore può inviare zero monete dal portafoglio della vittima a un indirizzo che sembra simile ma che è, in realtà, sotto il controllo dell'attaccante. La vittima può vedere questa transazione nella cronologia delle transazioni e concludere che l'indirizzo mostrato è l'indirizzo di deposito corretto. Di conseguenza, possono inviare le loro monete direttamente all'aggressore.

Invio di una transazione senza l'autorizzazione del proprietario 

In circostanze normali, un utente malintenzionato ha bisogno della chiave privata della vittima per inviare una transazione dal portafoglio della vittima. Ma la funzione "scheda contratto" di Etherscan rivela che esiste una scappatoia in alcuni contratti token che può consentire a un utente malintenzionato di inviare una transazione da qualsiasi portafoglio.

Ad esempio, il codice per USD Coin (USDC) su Etherscan spettacoli che la funzione "TransferFrom" consente a qualsiasi persona di spostare monete dal portafoglio di un'altra persona purché la quantità di monete che sta inviando sia inferiore o uguale all'importo consentito dal proprietario dell'indirizzo.

Questo di solito significa che un utente malintenzionato 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 "indennità".

Di conseguenza, fintanto che il valore della transazione dell'attaccante è inferiore o uguale a zero, 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ò anche essere essere trovato nei contratti di esempio collegati dal sito Web ufficiale della Ethereum Foundation.

Esempi della truffa del trasferimento a valore zero

Etherscan mostra che alcuni indirizzi di portafogli inviano migliaia di transazioni di valore zero al giorno dai portafogli di varie vittime senza il loro consenso.

Ad esempio, un account con l'etichetta Fake_Phishing7974 ha utilizzato uno smart contract non verificato per eseguire più di 80 pacchetti di transazioni il 12 gennaio, con ciascun pacchetto contenente 50 transazioni a valore zero per un totale di 4,000 transazioni non autorizzate in un giorno.

Indirizzi fuorvianti

L'esame più approfondito di ogni transazione rivela il movente di questo spam: l'attaccante sta inviando transazioni di valore zero a indirizzi che sembrano molto simili a quelli a cui le vittime avevano precedentemente inviato i fondi.

Ad esempio, Etherscan mostra che uno degli indirizzi utente presi di mira dall'attaccante è il seguente:

0x20d7f90d9c40901488a935870e1e80127de11d74.

Il 29 gennaio, questo account ha autorizzato l'invio di 5,000 Tether (USDT) a questo indirizzo di ricezione:

0xa541efe60f274f813a834afd31e896348810bb09.

Subito dopo, Fake_Phishing7974 ha inviato una transazione di valore zero dal portafoglio della vittima a questo indirizzo:

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 di quello reale, dando le sue monete all'attaccante.

In questo caso particolare, sembra che la truffa non abbia funzionato, in quanto Etherscan non mostra alcuna transazione da questo indirizzo verso uno degli indirizzi falsi creati dal truffatore. Ma dato il volume di transazioni a valore zero effettuate da questo conto, il piano potrebbe aver funzionato in altri casi.

I portafogli e i block explorer possono variare in modo significativo su come o se mostrano transazioni fuorvianti.

Portafogli

Alcuni portafogli 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 di spam vengano visualizzate nella cronologia delle transazioni del portafoglio.

D'altra parte, se il portafoglio estrae i dati direttamente dalla blockchain, le transazioni di spam potrebbero essere visualizzate sul display del portafoglio. In un annuncio del 13 dicembre su Twitter, il CEO di SafePal Veronica Wong avvertito Utenti SafePal che il suo portafoglio può visualizzare le transazioni. Per mitigare questo rischio, ha affermato che SafePal stava alterando 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.

A dicembre, un utente ha anche riferito che il suo portafoglio Trezor lo era visualizzazione transazioni fuorvianti.

Cointelegraph ha contattato tramite e-mail 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 proprio portafoglio Trezor".

Tuttavia, il team sta adottando misure per proteggere gli utenti dalla truffa. In un prossimo aggiornamento di Trezor Suite, il software "contrassegnerà le transazioni sospette di valore zero in modo che gli utenti vengano avvisati che tali transazioni sono potenzialmente fraudolente". La società ha anche affermato che il portafoglio mostra sempre l'indirizzo completo di ogni transazione e che "raccomandano vivamente agli utenti di controllare sempre l'indirizzo completo, non solo il primo e l'ultimo carattere".

Blocca esploratori

Oltre ai portafogli, i block explorer sono un altro tipo di software che può essere utilizzato per visualizzare la cronologia delle transazioni. Alcuni esploratori possono visualizzare queste transazioni in modo tale da fuorviare inavvertitamente gli utenti, proprio come fanno alcuni portafogli.

Per mitigare questa minaccia, Etherscan ha iniziato a disattivare le transazioni di token di valore zero che non vengono avviate dall'utente. Contrassegna 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 qui sotto.

Altri block explorer potrebbero aver adottato gli stessi passaggi di Etherscan per avvisare gli utenti di queste transazioni, ma alcuni potrebbero non aver ancora implementato questi passaggi.

Suggerimenti per evitare il trucco del "Trasferimento da valore zero".

Cointelegraph ha contattato SlowMist per un consiglio su come evitare di cadere vittima del trucco del "TransferFrom a valore zero".

Un rappresentante dell'azienda ha fornito a Cointelegraph un elenco di suggerimenti per evitare di diventare vittima dell'attacco:

  1. "Esercitare cautela e verificare l'indirizzo prima di eseguire qualsiasi transazione."
  2. "Utilizza la funzione di whitelist nel tuo portafoglio per impedire l'invio di fondi agli indirizzi sbagliati."
  3. “Resta vigile e informato. Se riscontri trasferimenti sospetti, prenditi il ​​tempo necessario per indagare sulla questione con calma per evitare di cadere vittima di truffatori".
  4. “Mantieni un sano livello di scetticismo, rimani sempre cauto e vigile”.

A giudicare da questo consiglio, la cosa più importante da ricordare per gli utenti di criptovalute è controllare sempre l'indirizzo prima di inviargli criptovalute. Anche se il record della transazione sembra implicare che tu abbia già inviato criptovalute all'indirizzo, questa apparenza potrebbe essere ingannevole.