Вразливість тимчасового зберігання призвела до атаки хакера на проєкт Ethereum на суму 300 000 доларів.

robot
Генерація анотацій у процесі

Напад у блокчейні, викликаний транзитним зберіганням: за лаштунками втрати 300 тисяч доларів

30 березня 2025 року проект зleveraged trading на базі Ethereum під назвою SIR.trading зазнав атаки, що призвело до втрат активів понад 300 000 доларів США. Команда безпеки провела глибокий аналіз цього інциденту, розкривши деталі та причини атаки.

Смертельний залишок: злочин на 300 тисяч доларів у блокчейні, викликаний транзитним зберіганням

Фон події

Зловмисники скористалися особливістю тимчасового зберігання, запровадженою в версії Solidity 0.8.24. Це нове місце зберігання даних призначене для забезпечення низької вартості та ефективного тимчасового зберігання під час транзакції. Основні характеристики тимчасового зберігання включають:

  1. Низька вартість газу: операційні витрати становлять 100 gas.
  2. Постійність під час транзакції: дані залишаються дійсними протягом всієї транзакції.
  3. Автоматичне очищення: після завершення угоди зберігання автоматично скидається на нуль.

Смертельний залишок: випадок з 300 000 доларів у блокчейні, спричинений транзитним зберіганням

Джерело атаки

Основною причиною атаки є те, що значення, що використовуються в tstore для тимчасового зберігання в функції, не очищаються після завершення виклику функції. Це дозволяє зловмисникові створювати певні шкідливі адреси, обходити перевірки прав і виводити токени.

Смертельні залишки: злочин у 30 тисяч доларів, спричинений тимчасовою пам'яттю у блокчейні

Процес атаки

  1. Зловмисник створює два шкідливі токени A та B, а також створює пул для цих двох токенів на певному DEX і вводить ліквідність.

  2. Зловмисник викликає функцію initialize контракту Vault, створюючи ринкову торгівлю з використанням токенів A в якості застави та токенів B в якості боргових токенів.

  3. Зловмисник викликає функцію mint контракту Vault, вносячи борговий токен B для карбування левередж-токена. У цьому процесі адреса DEX-пулу та кількість карбування зберігаються в тимчасовій пам'яті.

  4. Зловмисник створює шкідливий контракт, адреса якого збігається з раніше збереженою кількістю випуску.

  5. Зловмисник за допомогою шкідливого контракту викликав функцію зворотного виклику контракту Vault, і, оскільки значення у тимчасовій пам'яті не були очищені, успішно обійшов перевірку прав.

  6. Нарешті, зловмисник безпосередньо через атакуючий контракт викликає зворотний виклик Vault контракту, виводячи інші токени (такі як WBTC, WETH) для отримання прибутку.

Смертельний залишок: крадіжка на 300 тисяч доларів, викликана транзитним зберіганням у блокчейні

Смертельні залишки: крадіжка у блокчейні на 300 000 доларів, спричинена тимчасовим зберіганням

Смертельний залишок: справа на 300 тисяч доларів, викликана транзитним зберіганням у блокчейні

Смертельний залишок: злочин у 30 тисяч доларів, спричинений тимчасовим зберіганням у блокчейні

Смертельний залишок: крадіжка в 300000 доларів у блокчейні, спровокована транзитним зберіганням

Смертельні залишки: злочин на 300000 доларів у блокчейні, викликаний тимчасовим зберіганням

Смертельні залишки: пограбування на 300 тисяч доларів, спричинене тимчасовим зберіганням у блокчейні

Смертельний залишок: злочин у 30 тисяч доларів, спричинений миттєвим зберіганням у блокчейні

Смертельний залишок: пограбування на 300 тисяч доларів у блокчейні, викликане транзитним зберіганням

Смертельні залишки: пограбування в у блокчейні на 300 000 доларів, спричинене тимчасовим зберіганням

Смертельні залишки: пограбування на $300,000 у блокчейні, спричинене транзитним зберіганням

Смертельний залишок: крадіжка у блокчейні на 300 000 доларів, викликана транзитним зберіганням

Смертельний залишок: пограбування на 300 тисяч доларів, спричинене транзитним зберіганням у блокчейні

Аналіз руху коштів

Згідно з даними інструментів аналізу у блокчейні, зловмисники вкрали активи на суму приблизно 300 тисяч доларів, включаючи:

  • 17 814,8626 доларів США
  • 1,4085 WBTC
  • 119.871 ЗХ.

Ці активи потім були конвертовані в WETH і зрештою були переведені в інструмент анонімізації. Початковим джерелом коштів зловмисника були 0.3 ETH, переведені з цього інструменту.

Смертельні залишки: пограбування у блокчейні на 300 тисяч доларів, спричинене тимчасовим зберіганням

Рекомендації з безпеки

Щоб запобігти подібним атакам, команда проєкту повинна:

  1. Після завершення виклику функції негайно використовуйте tstore(key, 0) для очищення значення в транзитному сховищі.
  2. Посилити аудит коду контракту та безпекове тестування.
  3. Обережно використовуйте нові введені мовні особливості, повністю розуміючи їх потенційні ризики.

Ця подія ще раз підкреслила важливість підтримання балансу між безпекою та впровадженням нових технологій у розробці проектів у блокчейні. З розвитком технологій розробники та експерти з безпеки повинні бути насторожі, своєчасно виявляти та реагувати на нові виклики безпеки.

ETH5.54%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 7
  • Поділіться
Прокоментувати
0/400
MemeTokenGeniusvip
· 14год тому
Невже так сильно хочеться подобатися, що запускають без тестування?
Переглянути оригіналвідповісти на0
quiet_lurkervip
· 14год тому
Ще один проєкт притиснули до землі та терли.
Переглянути оригіналвідповісти на0
PumpBeforeRugvip
· 14год тому
Чув, що цього разу повернеться і побіжить~смартконтракти невелика уразливість
Переглянути оригіналвідповісти на0
MEVHuntervip
· 14год тому
Ці 30 тисяч занадто дешеві, навіть Термінові позики не хочеться брати.
Переглянути оригіналвідповісти на0
ContractSurrendervip
· 15год тому
Старий проект All in нові особливості Ляля...
Переглянути оригіналвідповісти на0
MissedAirdropAgainvip
· 15год тому
Га-га, всього лише 30 тисяч.
Переглянути оригіналвідповісти на0
NeverPresentvip
· 15год тому
Такі примітивні вразливості можуть призвести до проблем?
Переглянути оригіналвідповісти на0
  • Закріпити