Ашуканцы нацэлены на карыстальнікаў крыптаграфіі з дапамогай новага трука «TransferFrom з нулявым коштам».

Дадзеныя 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 не паказвае гісторыі транзакцый, калі ён пераўсталяваны, нават калі ўліковы запіс мае сотні транзакцый у блокчейне. Гэта азначае, што ён захоўвае ўласную гісторыю транзакцый, а не выцягвае дадзеныя з блокчейна. Гэта павінна прадухіліць з'яўленне спам-транзакцый у гісторыі транзакцый кашалька.

З іншага боку, калі кашалёк атрымлівае дадзеныя непасрэдна з блокчейна, спам-транзакцыі могуць адлюстроўвацца на дысплеі кашалька. У паведамленні ў Twitter ад 13 снежня генеральны дырэктар SafePal Вераніка Вонг папярэдзілі Карыстальнікі SafePal, што яго кашалёк можа адлюстроўваць транзакцыі. Каб знізіць гэтую рызыку, яна сказала, што SafePal змяняе спосаб адлюстравання адрасоў у новых версіях свайго кашалька, каб карыстальнікам было лягчэй правяраць адрасы.

У снежні адзін карыстальнік таксама паведаміў, што іх кашалёк Trezor быў адлюстраванне транзакцыі, якія ўводзяць у зман.

Cointelegraph звярнуўся па электроннай пошце да распрацоўшчыка Trezor SatoshiLabs па каментар. У адказ прадстаўнік заявіў, што кашалёк сапраўды выцягвае гісторыю транзакцый непасрэдна з блокчейна «кожны раз, калі карыстальнікі падключаюць кашалёк Trezor».

Аднак каманда прымае меры, каб абараніць карыстальнікаў ад махлярства. У маючым адбыцца абнаўленні Trezor Suite праграмнае забеспячэнне будзе «пазначаць падазроныя транзакцыі з нулявым коштам, каб карыстальнікі былі папярэджаны, што такія транзакцыі патэнцыйна махлярскія». Кампанія таксама заявіла, што кашалёк заўсёды адлюстроўвае поўны адрас кожнай транзакцыі і што яны «настойліва рэкамендуюць карыстальнікам заўсёды правяраць поўны адрас, а не толькі першы і апошні сімвалы».

Даследчыкі блокаў

Акрамя кашалькоў, аглядальнікі блокаў - яшчэ адзін тып праграмнага забеспячэння, якое можна выкарыстоўваць для прагляду гісторыі транзакцый. Некаторыя даследчыкі могуць адлюстроўваць гэтыя транзакцыі такім чынам, каб ненаўмысна ўвесці карыстальнікаў у зман, як гэта робяць некаторыя кашалькі.

Каб паменшыць гэтую пагрозу, Etherscan пачаў зацяняць транзакцыі з токенамі з нулявым коштам, якія не ініцыяваны карыстальнікам. Ён таксама пазначае гэтыя транзакцыі папярэджаннем, якое абвяшчае: «Гэта перадача токена з нулявым коштам, ініцыяваная іншым адрасам», пра што сведчыць малюнак ніжэй.

Іншыя аглядальнікі блокаў, магчыма, прынялі тыя ж меры, што і Etherscan, каб папярэдзіць карыстальнікаў аб гэтых транзакцыях, але некаторыя, магчыма, яшчэ не рэалізавалі гэтыя крокі.

Парады, як пазбегнуць трука "TransferFrom з нулявым коштам".

Cointelegraph звярнуўся да SlowMist за парадай аб тым, як не стаць ахвярай трука «TransferFrom з нулявым коштам».

Прадстаўнік кампаніі даў Cointelegraph спіс парад, як не стаць ахвярай нападу:

  1. «Праяўляйце асцярожнасць і правярайце адрас перад выкананнем якіх-небудзь транзакцый».
  2. «Карыстайцеся функцыяй белага спісу ў кашальку, каб прадухіліць адпраўку сродкаў на няправільныя адрасы».
  3. «Заставайцеся пільнымі і інфармаванымі. Калі вы сутыкнецеся з падазронымі пераводамі, знайдзіце час, каб спакойна расследаваць гэтае пытанне, каб не стаць ахвярай ашуканцаў».
  4. «Захоўвайце здаровы ўзровень скептыцызму, заўсёды будзьце асцярожнымі і пільнымі».

Мяркуючы з гэтай парады, самае галоўнае для карыстальнікаў крыптаграфіі - гэта заўсёды правяраць адрас перад адпраўкай на яго крыптаграфіі. Нават калі ў запісе транзакцыі відаць, што вы ўжо адпраўлялі крыптаграфію на гэты адрас, гэты выгляд можа быць падманлівым.