Атака АРА. Детальний розбір і методи захисту

13.12.2022
20 хв
2999
0
Атака АРА. Детальний розбір і методи захисту. Головний колаж статті.

Останніми тижнями почастішали «атаки отруєння» АРА (Address Poisoning Attack) з переказами $0 USD. За даними на 2 грудня в мережі «отруєно» понад 340 тис. адрес. Загалом ми маємо 99 адрес жертв і понад $1,64 млн вкрадених коштів.

У цій статті X-explore дає всебічний аналіз таких атак, відстежує зловмисників онлайн, а також показує детальну схему реалізації АРА.

Хотілося б, щоб додатки-гаманці активізували такі сповіщення про ризики. А звичайні користувачі були в курсі подібних загроз при переказі крипти.

Переклад статті від x-explore.eth

Історія

Нещодавно наш ончейн-моніторинг ризиків показав, що в мережах ETH і BSC часто бувають перекази по $0 USD. Ми взяли дані транзакцій BSC-chain як приклад, щоб показати, як це відбувається.

Жертва A робить звичайну транзакцію з переказу 452 BSC-USD Користувачеві B. Але Користувач B отримає 0 BSC-USD від Атакуючого C. У цей самий час, у тій самій транзакції хеша сам Користувач A помилково переказує 0 BSC-USD на адресу Атакуючого C (реалізація операції переказу 0 BSC-USD «туди-назад»):

Приклад атаки APA

Багато користувачів не розуміють, у чому справа. Вони бояться, що їхні закриті ключі під загрозою, і що зловмисники крадуть активи. Ось скріни повідомлень із соцмереж:

Скріни повідомлень про атаку

Цілі атаки

Насправді користувачам, які зіткнулися з такою ситуацією, не потрібно нервувати. Їхні активи в безпеці, приватний ключ не зламаний. Потрібно тільки уважно підтвердити адресу і не передавати невірну адресу. Методи хакера дуже прості:

  1. Він відстежує інформацію про переказ кількох стейблкоїнів ончейн. Наприклад, він перехоплює інформацію про переказ, який адреса Жертви А часто відправляє Користувачеві В.
  2. Далі створює хакерську Адресу C з тими самими першими й останніми цифрами, що й адреса користувача B. Потім жертва A і хакерська адреса C передають одна одній 0 монет. (Тут зловмисник може використати інструмент генерації чисел Profanity, щоб за кілька секунд згенерувати адресу з тими самими першими й останніми 7 цифрами, що й адреса користувача).
  3. Наступного разу, коли Жертва А неуважно копіює адресу історичної транзакції, дуже легко скопіювати саме Адресу С, підготовлену хакером для виверту. Таким чином кошти переводяться на неправильний рахунок.
Адреса користувача

Жертви переказують гроші на нормальні адреси:

Адреса зловмисника

Хакерські адреси з переказами $0:

Хакерська адреса з переказами

Жертви переказують гроші на хакерські адреси

Ось наші висновки з приводу атаки «address poisoning attack»:

  1. По-перше, хакер робить так, щоб його адреса відображалася в історії транзакцій користувача. Мета — щоб користувача не догледів і прийняв його за довірений контакт. Тобто адресу, якій часто відправляє гроші.
  2. По-друге, хакер створює адресу, що збігається з довіреною адресою за першими й останніми цифрами. Помилково її може використати жертва для наступної транзакції.

Користувачі ризикують втратити капітал, тож будьте напоготові!

Тенденції

На 2 грудня зафіксовано велику кількість таких атак: 290 000 у мережі BSC і 40 000 у мережі Ethereum. А кількість незалежних адрес, яких торкнулися атаки, перевищила 150 000 і 36 000 відповідно.

З погляду трендів, мережа BSC почала зазнавати атак з 22 листопада, а мережа ETH — з 27 листопада. При цьому масштаби атак в обох блокчейнах посилюються.

Також ми бачимо, що атаки мають певну регулярність за часом. Їхній обсяг значно зменшується щодня в період між 17:00 UTC і 0:00 UTC. Тож підозрювані зловмисники, найімовірніше, живуть в азійському часовому поясі.

Обсяг атак

Станом на 2 грудня жертвами скаму стали 94 унікальні адреси. Вони втратили кошти на загальну суму $1 640 000. Ми прогнозуємо, що апетити зловмисників будуть тільки зростати. У найближчому майбутньому все більше користувачів почнуть піддаватися такому шахрайству.

К-ть постраждалих

Також ми проаналізували вартість атаки зловмисника. Загальна сума зараз близька до $26 000 (46 BNB + 10 ETH). При цьому зловмисник віддає перевагу BSC-USD і USDT — найімовірніше, через великий обіг і популярність цих стейблкоїнів.

Вартість атаки

Відстеження злочинця

Ми відстежуємо одного з шахраїв, який орудував на двох великих централізованих біржах. Повний процес показано на малюнку нижче.

  1. Адреса джерела його коштів для атаки пов’язана з акаунтом OKX.com. Зловмисник спочатку переводить ці монети з мережі TRON у мережу BSC, використовуючи кросчейн-міст Transit.Finance.
  2. Вкрадені кошти в кінцевому підсумку йдуть на Huobi.com. Тут зловмисник знову використовує міст Transit.Finance для переказу в мережу TRON.
Ланцюжок дій під час атаки

Підімо далі та простежимо потік вкрадених коштів до джерела:

  1. Адреса жертви: 0xe17c2b2b40574d229a251fe3776e6da2cc46aa5e.
  2. Він передає 1300 монет на адресу зловмисника: 0x720c1cfe1bfc38b3b21c20961262ad1e095a6867 (Переказ був двома частинами).
  3. Далі зловмисник вносить кошти на цю адресу: 0x89e692c1b31e7f03b7b9cbb1c7ab7872ddeadd49.
Послідовність дій зловмисника
  1. Зловмисник виконав кросчейн-переказ коштів за адресою: 0x89e692c1b31e7f03b7b9cbb1c7ab7872ddeadd49. У цей хеш: 0x72905bd839f682f795946d285500143ee7606e9690df2ad32968e878ad290d9f
  2. У транзакції, як показано нижче, він передає 10561 USDT через контракт Transit.Finance: 0xb45a2dda996c32e93b8c47098e90ed0e7ab18e39
  3. У журналах подій цієї транзакції видно, що монети USDT пішли в мережу TRON. Ось ця адреса: TLUKBw37BVWDZdhbGco2ZEfdMd5Cit8TMD
    • Він відповідає хешу транзакції в мережі TRON: 716507136ad28717ffd5f2f437af753ff96d344d2bcbe83f24d801db49f5a884.
Хеш транзакції в мережі TRON
  1. Зрештою зловмисник додав адресу TLUKBw37BVWDZdhbGco2ZEfdMd5Cit8TMD до біржі Huobi. Адреси депозитів для поповнення: TPtzsrCAG61QMwig3jZV8Px7Rd1WZVnRXG, TDp7r3S1hJeiNfH1CvCVXeY8notY47nagJ:
Зловмисник додав адресу в біржу Huobi

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

Випадок атаки 1:

EOA: 0xBAA1451bE8C33998CD43F375c2e67E79c1a104AD

CA: 0x7ceBeb6035B231A73CB5Fb4119c2FbBC04Ec6fD1

Випадок атаки 2:

EOA: 0x616384a80f32aDb65243522971aE2ba7664B62E3

CA: 0x6f00Ed594A6AceEf0E1A6FE023Ecd5Eb96c8665a

Приклад атаки

Хакер контролює різні адреси й переводить 0 BSC-USD на адреси жертв у пакетному режимі через контракти.

Атаки на Binance Smart Chain в основному охоплюють такі токени: BSC-USD, BUSD, USDC, ETH тощо. Більшість таких атак здійснюються через пакетний файл, який запускає команду transferFrom() за контрактом атаки. Але бувають і випадки ручного запуску функції transfer(). Принцип здебільшого один і той самий. Нижче ми бачимо приклад контракту на атаку з BSC-USD.

transferFrom()

У транзакції, де зловмисник використовує такі скрипти, контракт атаки викликає тільки функцію transferFrom() BSC-USD. Після заповнення параметрів відправника, одержувача та суми, хакер може запустити перекази 0 USD між будь-якими адресами. І водночас генерувати команди AuthorizeApproval() і TransferTransfer().

Phalcon Blockchain Transaction Explorer

Binance Smart Chain transaction hash parse for txhash 0x825a3281e1897239c01797e590d3d62c1f9ab4c323bd8484c142541ac77ad73e

phalcon.blocksec.com

Скрипт transferFrom()

Інформації про транзакції з блокчейн-браузера Blocksec phalcon

Вихідний код контракту BSC-USD показує, що функція transferFrom() послідовно викликає функції _transfer() і _approve():

Інформації про транзакції з блокчейн-браузера Blocksec phalcon

Опція _transfer() має просту функцію. По-перше, вона виключає всі нульові адреси з транзакції. Потім віднімає гроші для відправника і додає гроші для одержувача. І, нарешті, записує подію переказу. Використовувані тут функції додавання і віднімання add()/sub() — це бібліотека SafeMath, створена в колекції смарт-контрактів OpenZeppelin. У разі переповнення вона повідомить про помилку повернення:

Інформації про транзакції з блокчейн-браузера Blocksec phalcon

Функція _approve() також виключає повну нульову адресу і змінює значення авторизації. Основна увага в цій функції приділяється обчисленню параметра виклику transferFrom для затвердження. Він використовує такий скрипт:

_allowances[sender][_msgSender()].sub(amount, “BEP20: transfer amount exceeds allowance”)

Цей скрипт віднімає кількість наявних токенів авторизації з передачі. Сума авторизації, що залишилася, поміщається у твердження і повторно авторизується. Функція віднімання sub(), що використовується тут, являє собою теж бібліотеку SafeMath від колекції смарт-контрактів OpenZeppelin. У разі переповнення вона повідомляє про помилку повернення. Однак, якщо параметр суми всього процесу дорівнює нулю, жоден механізм виявлення не може відхилити транзакцію. Це також призводить до великої кількості нульових переказів он-чейн, які можуть бути відправлені у звичайному режимі. Хакеру потрібно тільки заплатити комісію, щоб отримати солідний дохід.

Інформації про транзакції з блокчейн-браузера Blocksec phalcon

transfer()

Виклик функції transfer() має такий самий принцип дії, як описаний вище. Тільки весь процес додає або віднімає виявлення переповнення. Тут немає фільтрації нульових переказів:

Виклик функції transfer()

BNB

У процесі трасування (відстеження) токен-атаки ми також знайшли першу й останню ідентичні фішингові атаки через переказ 0 BNB. Принцип тут аналогічний токен-фішингу: хакер будує першу й останню ідентичні адреси для фішингу.

Транзакції з атакою:

https://bscscan.com/tx/0x5ae6a7b8e3ee1f342153c1992ef9170788e024c4142941590857d773c63ceeb3

Після таких хитрощів користувач може заплутатися в адресах і випадково перевести токени на хакерську адресу:

Звичайна адреса користувача:

0x69c b60065ddd0197e0837fac61f8de8e186c 2a73

Адреса хакера:

0x69c 22da7a26a322ace4098cba637b39fa0a4 2a73

Атака з BNB

Висновки

Наразі команда X-explore забезпечує онлайн-моніторинг таких атак у режимі реального часу. Щоб уникнути подальших загроз, ми рекомендуємо:

  • Встановити додаток, який допомагає користувачам розрізняти адреси за кольором або іншими підказками.
  • Користувачі повинні ретельно перевіряти історичні адреси транзакцій під час переказу коштів.
  • Бажано вести окремі записи з адресами десь на окремих документах. Це не дуже зручно, зате надійно.

Бережіть свої фінанси та не забувайте читати наші свіжі навчальні матеріали.

Як вам стаття?

0
0

статті на цю ж тему

Де зберігати криптовалюту у 2024...
avatar Anastasia Mirza
27.02.2024
Що таке браузер Tor: чим він цікавий для...
avatar Ivan Pavlovskyy
19.12.2023
Ledger Nano X. Детальний огляд гаманця: де...
avatar Ilya Surgan
21.11.2022