Измамниците се насочват към потребители на крипто с нов трик „прехвърляне от нулева стойност“.

Данните от Etherscan показват, че някои крипто измамници се насочват към потребителите с нов трик, който им позволява да потвърдят транзакция от портфейла на жертвата, но без да имат частния ключ на жертвата. Атаката може да се извърши само за транзакции на стойност 0. Това обаче може да накара някои потребители случайно да изпратят токени на нападателя в резултат на изрязване и поставяне от отвлечена история на транзакциите.

Фирма за сигурност на блокчейн SlowMist открит новата техника през декември и я разкри в публикация в блог. Оттогава както SafePal, така и Etherscan са приели техники за смекчаване, за да ограничат ефекта му върху потребителите, но някои потребители все още може да не знаят за съществуването му.

Според публикацията от SlowMist, измамата работи чрез изпращане на транзакция с нула токени от портфейла на жертвата до адрес, който изглежда подобен на този, на който жертвата е изпратила токени преди това.

Например, ако жертвата изпрати 100 монети на адрес за обменен депозит, нападателят може да изпрати нула монети от портфейла на жертвата на адрес, който изглежда подобен, но който всъщност е под контрола на нападателя. Жертвата може да види тази транзакция в историята на транзакциите си и да заключи, че показаният адрес е правилният адрес за депозит. В резултат на това те могат да изпратят своите монети директно на нападателя.

Изпращане на транзакция без разрешение на собственика 

При нормални обстоятелства нападателят се нуждае от частния ключ на жертвата, за да изпрати транзакция от портфейла на жертвата. Но функцията „договорен раздел“ на Etherscan разкрива, че има вратичка в някои договори за токени, която може да позволи на нападател да изпрати транзакция от какъвто и да е портфейл.

Например кодът за USD Coin (USDC) на Etherscan предавания че функцията „TransferFrom“ позволява на всяко лице да премества монети от портфейла на друго лице, стига количеството монети, което изпраща, да е по-малко или равно на количеството, разрешено от собственика на адреса.

Това обикновено означава, че нападателят не може да извърши транзакция от адреса на друго лице, освен ако собственикът не одобри разрешение за него.

В това ограничение обаче има вратичка. Разрешеното количество се определя като число (наречено „тип uint256“), което означава, че се интерпретира като нула, освен ако не е специално зададено на друго число. Това може да се види във функцията „разрешение“.

В резултат на това, докато стойността на транзакцията на нападателя е по-малка или равна на нула, той може да изпрати транзакция от абсолютно всеки портфейл, който пожелае, без да се нуждае от частния ключ или предварително одобрение от собственика.

USDC не е единственият токен, който позволява това да се направи. Подобен код може да се намери в повечето токен договори. Дори може да бъде намерени в примерните договори, свързани от официалния уебсайт на Ethereum Foundation.

Примери за измама с прехвърляне на нулева стойност

Etherscan показва, че някои адреси на портфейли изпращат хиляди транзакции с нулева стойност на ден от различни портфейли на жертви без тяхното съгласие.

Например, акаунт с етикет Fake_Phishing7974 използва непроверен интелигентен договор, за да изпълнява повече от 80 пакета транзакции на 12 януари, с всеки пакет съдържащ 50 транзакции с нулева стойност за общо 4,000 неразрешени транзакции за един ден.

Подвеждащи адреси

По-внимателното разглеждане на всяка транзакция разкрива мотив за този спам: нападателят изпраща транзакции с нулева стойност до адреси, които изглеждат много подобни на тези, на които жертвите преди това са изпратили средства.

Например Etherscan показва, че един от потребителските адреси, насочени от нападателя, е следният:

0x20d7f90d9c40901488a935870e1e80127de11d74.

На 29 януари този акаунт разреши 5,000 Tether (USDT) да бъдат изпратени до този адрес за получаване:

0xa541efe60f274f813a834afd31e896348810bb09.

Веднага след това Fake_Phishing7974 изпрати транзакция с нулева стойност от портфейла на жертвата на този адрес:

0xA545c8659B0CD5B426A027509E55220FDa10bB09.

Първите пет знака и последните шест знака на тези два получателни адреса са абсолютно еднакви, но символите в средата са напълно различни. Нападателят може да е възнамерявал потребителят да изпрати USDT на този втори (фалшив) адрес вместо на истинския, давайки своите монети на нападателя.

В този конкретен случай изглежда, че измамата не е проработила, тъй като Etherscan не показва транзакции от този адрес към един от фалшивите адреси, създадени от измамника. Но предвид обема на транзакциите с нулева стойност, извършени от този акаунт, планът може да е проработил в други случаи.

Портфейлите и изследователите на блокове може да се различават значително по отношение на това как и дали показват подвеждащи транзакции.

Портфейли

Някои портфейли може изобщо да не показват спам транзакциите. Например MetaMask не показва история на транзакциите, ако е преинсталиран, дори ако самият акаунт има стотици транзакции в блокчейна. Това означава, че той съхранява собствената си история на транзакциите, вместо да изтегля данните от блокчейна. Това трябва да попречи на спам транзакциите да се показват в историята на транзакциите на портфейла.

От друга страна, ако портфейлът изтегля данни директно от блокчейна, спам транзакциите може да се покажат на дисплея на портфейла. В съобщение от 13 декември в Twitter главният изпълнителен директор на SafePal Вероника Уонг предупреди SafePal потребители, че неговият портфейл може да показва транзакциите. За да смекчи този риск, тя каза, че SafePal променя начина, по който адресите се показват в по-новите версии на портфейла, така че да улесни потребителите да проверяват адресите.

През декември един потребител също съобщи, че портфейлът им в Trezor е бил показване подвеждащи сделки.

Cointelegraph се свърза чрез имейл с разработчика на Trezor SatoshiLabs за коментар. В отговор представител заяви, че портфейлът изтегля историята на транзакциите си директно от блокчейна „всеки път, когато потребителите включат своя портфейл Trezor“.

Екипът обаче предприема стъпки, за да защити потребителите от измамата. В предстояща актуализация на Trezor Suite софтуерът ще „маркира подозрителните транзакции с нулева стойност, така че потребителите да бъдат предупреждавани, че такива транзакции са потенциално измамни“. Компанията също така заяви, че портфейлът винаги показва пълния адрес на всяка транзакция и че те „силно препоръчват потребителите винаги да проверяват пълния адрес, а не само първия и последния знак“.

Блокирайте изследователите

Освен портфейлите, изследователите на блокове са друг тип софтуер, който може да се използва за преглед на историята на транзакциите. Някои изследователи могат да покажат тези транзакции по такъв начин, че неволно да подведат потребителите, точно както правят някои портфейли.

За да смекчи тази заплаха, Etherscan започна да оцветява транзакции с токени с нулева стойност, които не са инициирани от потребителя. Той също така маркира тези транзакции с предупреждение, което казва: „Това е прехвърляне на токен с нулева стойност, инициирано от друг адрес“, както се вижда от изображението по-долу.

Други изследователи на блокове може да са предприели същите стъпки като Etherscan, за да предупредят потребителите за тези транзакции, но някои може все още да не са приложили тези стъпки.

Съвети за избягване на трика „Прехвърляне от с нулева стойност“.

Cointelegraph се обърна към SlowMist за съвет как да избегнете да станете жертва на трика „TransferFrom с нулева стойност“.

Представител на компанията даде на Cointelegraph списък със съвети как да не станете жертва на атаката:

  1. „Бъдете внимателни и проверете адреса, преди да извършите транзакции.“
  2. „Използвайте функцията за бял списък в портфейла си, за да предотвратите изпращането на средства до грешни адреси.“
  3. „Бъдете бдителни и информирани. Ако срещнете подозрителни трансфери, отделете време, за да проучите въпроса спокойно, за да не станете жертва на измамници.“
  4. „Поддържайте здравословно ниво на скептицизъм, винаги бъдете предпазливи и бдителни.“

Съдейки по този съвет, най-важното нещо, което потребителите на крипто трябва да запомнят, е винаги да проверяват адреса, преди да изпратят крипто до него. Дори ако записът на транзакцията изглежда предполага, че сте изпращали криптовалута на адреса преди, този вид може да е измамен.