Cover photo

SCAM-attack “Отравление адреса”

В последнее время наблюдается увеличение адресной атаки, при которой злоумышленники отправляют 0$ на кошелек. На 2 декабря было зафиксировано, что более 340 тысяч адресов были подвержены этой атаке, и в результате 99 адресов пострадали, что привело к ущербу в размере более 1,64 млн долларов США.

Предпосылка

Последние отчеты об осмотрах рисков в сети указывают на распространенность нулевых переводов в сетях ETH и BSC. Данные транзакций BSC были взяты как пример, показывающий, как это происходит. В случае, когда владелец кошелька A отправляет обычную транзакцию на сумму 452$ BSC-USD кошельку B, злоумышленник C незамедлительно отправляет туда же 0$ BSC-USD. В результате этого, кошелек A автоматически отправляет обратно 0$ BSC-USD на кошелек C, объединяя обе транзакции в одной.

Вот что появляются в списке пользовательских транзакций
Вот что появляются в списке пользовательских транзакций

Эта операция может отображаться в списке пользовательских транзакций, что вызывает беспокойство и недоверие у сообщества.

post image

Намерение атаки

Пользователи не должны беспокоиться о безопасности своих активов, если они столкнулись с подобной ситуацией. Важно тщательно проверить адрес перед отправкой и не передавать на неверный, приватный ключ находится в такой ситуации в безопасности.Хакеры обычно используют простые методы:

  • Хакер отслеживает данные о нескольких стейблкоинах, которые уже были переведены в сети и использует эту информацию, чтобы перехватить данные о переводе между пользователями A и B.

  • Хакер тщательно создает хакерский адрес C, имеющий те же первые и последние цифры, что и адрес пользователя B. Используя специальные инструменты, наподобие Profanity, чтобы быстро сгенерировать адрес с теми же первыми и последними цифрами.

  • Затем, хакер идет на обман, предварительно передавая друг другу 0$ в своих кошельках. Когда жертва А копирует адрес из предыдущей транзакции, она случайно копирует адрес С, созданный хакером, и переводит средства на неверный счет.

Перевод жертвы на нормальный адрес
Перевод жертвы на нормальный адрес
Взлом адреса жертвы, чтобы получить 0 долларов
Взлом адреса жертвы, чтобы получить 0 долларов
Жертва переводят деньги на адрес хакера
Жертва переводят деньги на адрес хакера

Хакер проводит атаку, перехватывая переводы денег между пользователями, и создает фальшивый адрес, который очень похож на доверенный адрес взаимодействия между пользователями.Жертва не зная обмана копирует адрес хакера и переводит деньги на неверный счет. Это называется атакой с отравлением адресов по цепочке.

Пользователи должны быть предупреждены о такой уязвимости, чтобы избежать потери своих сбережений.

Тенденция атаки

По данным на 2 декабря, количество атак на BSC и ETH достигло 290 000 и 40 000 соответственно, с более чем 150 000 и 36 000 затронутыми адресами соответственно.Атаки на обе цепочки продолжают усиливаться, причем BSC начал расти с 22 ноября, а ETH - с 27 ноября.Обнаружена закономерность во времени нападений, с минимальным количеством атак с 17:00 UTC до 0:00 UTC ежедневно, что говорит о том, что нападающие находятся в азиатском часовом поясе.

post image

Количество взломанных адресов на 2 декабря составило 99, общая сумма украденных средств - 1 640 000 USD. С увеличением числа целей нападающих ожидается, что в скором времени большее количество пользователей станут жертвами мошенников.

post image
post image

Была произведена аналитика стоимости атаки злоумышленником, и общая стоимость в настоящее время составляет около 25 000 USD (46 BNB + 9 ETH). Злоумышленник сфокусировался на BSC-USD и USDT, так как эти монеты широко используются и имеют большие пользовательские запасы.

post image
post image

Отслеживание хакера

Команда X-explore и WuBlockchain вместе отслеживают деятельность одного из злоумышленников, который связан с двумя крупными централизованными биржами.По данным, адрес источника для его атак связан с OKX.com, и он использует Transit.Finance кросс-чейн мост, чтобы переводить средства из TRON в BSC. Украденные средства в конечном итоге переводятся на Huobi.com, также через кросс-чейн мост.

post image

Продолжим и проследим поток украденных средств до источника. Сначала адрес жертвы 0xe17c2b2b40574d229a251fe3776e6da2cc46aa5e переводит в общей сложности 1300$ на адрес злоумышленника 0x720c1cfe1bfc38b3b21c20961262ad1e095a6867 двумя частями. Далее злоумышленник перечисляет средства на адрес 0x89e692c1b31e7f03b7b9cbb1c7ab7872ddeadd49

post image

Передача 10561$ была произведена злоумышленником через перекрестный перевод с помощью адреса0x89e692c1b31e7f03b7b9cbb1c7ab7872ddeadd49и txhash 0x72905bd839f682f795946d285500143ee7606e9690df2ad32968e878ad290d9f,при использовании Transit.Finance контракта(0 xb45a2dda996c32e93b8c47098e90ed0e7ab18e39).Данные проводки были зафиксированы в журналах событий и средства были направлены в USDT цепочки TRON с адреса**TLUKBw37BVWDZdhbGco2ZEfdMd5Cit8TMD **и соответствующим txhash 716507136ad28717ffd5f2f437af753ff96d344d2bcbe83f24d801db49f5a884 в цепочке TRON.

post image
post image
post image

В конечном итоге, злоумышленник перевел с адреса TLUKBw37BVWDZdhbGco2ZEfdMd5Cit8TMD на биржу Huobi. Адреса для пополнения счета следующие: TPtzsrCAG61QMwig3jZV8Px7Rd1WZVnRXG TDp7r3S1hJeiNfH1CvCVXeY8notY47nagJ

post image
post image

Анализ принципа атаки

Случай злоумышленника 1:

EOA: 0xBAA1451bE8C33998CD43F375c2e67E79c1a104AD CA: 0x7ceBeb6035B231A73CB5Fb4119c2FbBC04Ec6fD1

Случай злоумышленника 2:

EOA: 0x616384a80f32aDb65243522971aE2ba7664B62E3 CA: 0x6f00Ed594A6AceEf0E1A6FE023Ecd5Eb96c8665a

post image

Хакеры используют различные адреса, чтобы переводить 0 BSC-USD в пакетном режиме через контракты на адреса жертв.В сети BSC мошенники часто используют такие токены, как BSC-USD, BUSD, USDC, ETH и другие.Они обычно проводятся через вызов функции transferFrom(), хотя иногда используется ручной вызов функции transfer() для основной монеты. Однако принцип атаки остается тем же.

Ниже приводится пример атаки на контракт BSC-USD.

Функция transferFrom() используется злоумышленниками в транзакциях для атаки на контракт. Они могут заполнить значения параметров sender, recipient и amount для BSC-USD и осуществлять перевод нулевой суммы между любыми адресами. При этом они могут генерировать события AuthorizeApproval() и TransferTransfer().

https://phalcon.blocksec.com/tx/bsc/0x825a3281e1897239c01797e590d3d62c1f9ab4c323bd8484c142541ac77ad73e

post image

Информации о транзакциях из Blocksec phalcon blockchain browser Исходный код контракта BSC-USD показывает, что функция transferFrom() последовательно вызывает функции _transfer() и _approve().

post image

Функция _transfer() имеет простое назначение. Сначала она удаляет нулевые адреса из транзакции, затем проводит вычитание денег у отправителя и добавление денег получателю, и, наконец, запоминает событие перевода.Для операций с вычитанием и добавлением используются функции add() / sub(), взятые из safemath библиотеки OpenZeppelin. Они защищают от переполнения и при возникновении ошибки возврата.

post image

Функция _approve() также проверяет наличие нулевых адресов и изменяет значение авторизации. Она используется для вычисления параметров вызова функции transferFrom() в рамках утверждения. Это позволяет вычесть количество уже авторизованных токенов из передаваемой суммы, оставляя только оставшуюся сумму для авторизации.Функция sub(), используемая в этом процессе, взята из safemath библиотеки OpenZeppelin, и она защищает от ошибок переполнения. Однако, если весь процесс авторизации оставляет равную нулю сумму, значит, нет способа обнаружить эту транзакцию и она будет выполнена успешно, что может привести к большому количеству переводов нулевых сумм между адресами в сети. Злоумышленник должен будет лишь оплатить комиссию для получения желаемого результата.

post image

transfer()

Вызов функции transfer() для атаки работает таким же образом, весь процесс только добавляет или вычитает обнаружение переполнения, фильтрация нулевой передачи отсутствует.

post image

BNB В ходе мониторинга деятельности злоумышленников были выявлены мошеннические атаки, осуществляемые путём перевода 0 BNB посредством использования тех же принципов, что и при фишинговых атаках, где первый и последний символы адреса совпадают. * Транзакция атаки: https://bscscan.com/tx/0x5ae6a7b8e3ee1f342153c1992ef9170788e024c4142941590857d773c63ceeb3*

post image

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

Настоящий адрес: 0x69cb60065ddd0197e0837fac61f8de8e186c2a73 Хакерский адрес: 0x69c22da7a26a322ace4098cba637b39fa0a42a73

Рекомендации E-explore

В настоящее время X-explore предоставляет возможность онлайн-мониторинга таких атак в режиме реального времени. Чтобы избежать дополнительного ущерба, мы рекомендуем:

  • Пользователи могут использовать приложения кошельков, которые помогают им различать адреса по цвету или другим подсказкам.

  • При переводе средств пользователи должны тщательно проверять исторические адреса транзакций, а лучше всего вести адресную книгу самостоятельно.

  • X-explore разработали и отображают эту атаку "отравления адресов" в виде базы данных, которая реализована на сервисе Dune: https://dune.com/opang/first-and-last-address-construction.

Оригинальная статья: https://mirror.xyz/x-explore.eth/cL3d_CyNujXq8XY7ueP4omNXx_IY1EG5Dz0FD0vJ90M