Bedragare riktar sig till kryptoanvändare med ett nytt "nollvärde TransferFrom"-trick

Data från Etherscan visar att vissa kryptobedragare riktar sig till användare med ett nytt trick som låter dem bekräfta en transaktion från offrets plånbok, men utan att ha offrets privata nyckel. Attacken kan endast utföras för transaktioner med 0 värde. Det kan dock göra att vissa användare av misstag skickar tokens till angriparen som ett resultat av att klippa och klistra från en kapad transaktionshistorik.

Blockchain-säkerhetsföretaget SlowMist upptäckt den nya tekniken i december och avslöjade den i ett blogginlägg. Sedan dess har både SafePal och Etherscan antagit begränsningstekniker för att begränsa dess effekt på användarna, men vissa användare kan fortfarande vara omedvetna om dess existens.

Enligt inlägget från SlowMist fungerar bluffen genom att skicka en transaktion på noll tokens från offrets plånbok till en adress som liknar en som offret tidigare skickat tokens till.

Till exempel, om offret skickade 100 mynt till en växlingsadress, kan angriparen skicka noll mynt från offrets plånbok till en adress som ser likadan ut men som i själva verket är under kontroll av angriparen. Offret kan se denna transaktion i sin transaktionshistorik och dra slutsatsen att adressen som visas är den korrekta insättningsadressen. Som ett resultat kan de skicka sina mynt direkt till angriparen.

Skickar en transaktion utan ägarens tillstånd 

Under normala omständigheter behöver en angripare offrets privata nyckel för att skicka en transaktion från offrets plånbok. Men Etherscans "contract tab"-funktion avslöjar att det finns ett kryphål i vissa token-kontrakt som kan tillåta en angripare att skicka en transaktion från vilken plånbok som helst.

Till exempel koden för USD Coin (USDC) på Etherscan visar att funktionen "TransferFrom" tillåter vilken person som helst att flytta mynt från en annan persons plånbok så länge som mängden mynt de skickar är mindre än eller lika med det belopp som tillåts av ägaren av adressen.

Detta innebär vanligtvis att en angripare inte kan göra en transaktion från en annan persons adress om inte ägaren godkänner en ersättning för dem.

Det finns dock ett kryphål i denna begränsning. Det tillåtna beloppet definieras som ett tal (kallas "uint256-typen"), vilket betyder att det tolkas som noll om det inte är specifikt inställt på något annat nummer. Detta kan ses i funktionen "bidrag".

Som ett resultat, så länge som värdet på angriparens transaktion är mindre än eller lika med noll, kan de skicka en transaktion från absolut vilken plånbok de vill, utan att behöva den privata nyckeln eller förhandsgodkännande från ägaren.

USDC är inte den enda token som tillåter detta att göras. Liknande kod finns i de flesta tokenkontrakt. Det kan det till och med vara hittade i exemplet kontrakt länkade från Ethereum Foundations officiella webbplats.

Exempel på bedrägeri med nollvärdeöverföring

Etherscan visar att vissa plånboksadresser skickar tusentals transaktioner med nollvärde per dag från olika offers plånböcker utan deras medgivande.

Till exempel använde ett konto märkt Fake_Phishing7974 ett overifierat smart kontrakt för att utföra mer än 80 paket med transaktioner den 12 januari, med varje paket innehållande 50 nollvärde transaktioner för totalt 4,000 XNUMX obehöriga transaktioner på en dag.

Missvisande adresser

Att titta närmare på varje transaktion avslöjar ett motiv för denna spam: Angriparen skickar transaktioner med noll värde till adresser som ser väldigt lika ut som offren tidigare skickat pengar till.

Till exempel visar Etherscan att en av användaradresserna som angriparen riktar sig till är följande:

0x20d7f90d9c40901488a935870e1e80127de11d74.

Den 29 januari godkände detta konto 5,000 XNUMX Tether (USDT) att skickas till denna mottagningsadress:

0xa541efe60f274f813a834afd31e896348810bb09.

Omedelbart efteråt skickade Fake_Phishing7974 en transaktion med noll värde från offrets plånbok till denna adress:

0xA545c8659B0CD5B426A027509E55220FDa10bB09.

De första fem tecknen och de sista sex tecknen i dessa två mottagningsadresser är exakt likadana, men tecknen i mitten är alla helt olika. Angriparen kan ha tänkt att användaren ska skicka USDT till denna andra (falska) adress istället för den riktiga, och ge sina mynt till angriparen.

I just det här fallet verkar det som att bluffen inte fungerade, eftersom Etherscan inte visar några transaktioner från denna adress till någon av de falska adresserna som bedragaren skapat. Men med tanke på volymen av transaktioner med nollvärde som gjorts av detta konto, kan planen ha fungerat i andra fall.

Plånböcker och blockutforskare kan variera avsevärt när det gäller hur eller om de visar vilseledande transaktioner.

Plånböcker

Vissa plånböcker kanske inte visar skräpposttransaktionerna alls. Till exempel visar MetaMask ingen transaktionshistorik om den installeras om, även om kontot i sig har hundratals transaktioner på blockkedjan. Detta innebär att den lagrar sin egen transaktionshistorik snarare än att hämta data från blockkedjan. Detta bör förhindra att skräpposttransaktionerna dyker upp i plånbokens transaktionshistorik.

Å andra sidan, om plånboken drar data direkt från blockkedjan, kan skräpposttransaktionerna dyka upp i plånbokens display. I ett tillkännagivande den 13 december på Twitter, SafePal VD Veronica Wong varnade SafePal-användare att dess plånbok kan visa transaktionerna. För att mildra denna risk sa hon att SafePal ändrade sättet att visa adresser i nyare versioner av sin plånbok för att göra det lättare för användare att inspektera adresser.

I december rapporterade en användare också att deras Trezor-plånbok var det visning vilseledande transaktioner.

Cointelegraph nådde ut via e-post till Trezor-utvecklaren SatoshiLabs för kommentar. Som svar uppgav en representant att plånboken drar sin transaktionshistorik direkt från blockkedjan "varje gång användare ansluter sin Trezor-plånbok."

Teamet vidtar dock åtgärder för att skydda användare från bluffen. I en kommande Trezor Suite-uppdatering kommer programvaran att "flagga de misstänkta transaktionerna med nollvärde så att användarna blir varnade om att sådana transaktioner är potentiellt bedrägliga." Företaget uppgav också att plånboken alltid visar den fullständiga adressen för varje transaktion och att de "rekommenderar starkt att användare alltid kontrollerar den fullständiga adressen, inte bara de första och sista tecknen."

Blockera upptäcktsresande

Bortsett från plånböcker är blockutforskare en annan typ av programvara som kan användas för att se transaktionshistorik. Vissa utforskare kan visa dessa transaktioner på ett sådant sätt att de oavsiktligt vilseleda användare, precis som vissa plånböcker gör.

För att mildra detta hot har Etherscan börjat grålägga tokentransaktioner med nollvärde som inte initieras av användaren. Den flaggar också dessa transaktioner med en varning som säger, "Detta är en noll-värde token-överföring initierad av en annan adress", vilket framgår av bilden nedan.

Andra blockutforskare kan ha tagit samma steg som Etherscan för att varna användare om dessa transaktioner, men vissa kanske inte har implementerat dessa steg ännu.

Tips för att undvika "nollvärde TransferFrom"-tricket

Cointelegraph kontaktade SlowMist för råd om hur man undviker att falla offer för "nollvärde TransferFrom"-tricket.

En representant från företaget gav Cointelegraph en lista med tips för att undvika att bli offer för attacken:

  1. "Var försiktig och verifiera adressen innan du utför några transaktioner."
  2. "Använd vitlistasfunktionen i din plånbok för att förhindra att pengar skickas till fel adresser."
  3. "Var vaksam och informerad. Om du stöter på några misstänkta överföringar, ta dig tid att undersöka saken lugnt för att undvika att bli offer för bedragare.”
  4. "Behåll en sund nivå av skepsis, var alltid försiktig och vaksam."

Att döma av detta råd är det viktigaste för kryptoanvändare att komma ihåg att alltid kontrollera adressen innan de skickar krypto till den. Även om transaktionsposten verkar antyda att du har skickat krypto till adressen tidigare, kan det här utseendet vara vilseledande.