Напад у блокчейні, викликаний транзитним зберіганням: за лаштунками втрати 300 тисяч доларів
30 березня 2025 року проект зleveraged trading на базі Ethereum під назвою SIR.trading зазнав атаки, що призвело до втрат активів понад 300 000 доларів США. Команда безпеки провела глибокий аналіз цього інциденту, розкривши деталі та причини атаки.
Фон події
Зловмисники скористалися особливістю тимчасового зберігання, запровадженою в версії Solidity 0.8.24. Це нове місце зберігання даних призначене для забезпечення низької вартості та ефективного тимчасового зберігання під час транзакції. Основні характеристики тимчасового зберігання включають:
Низька вартість газу: операційні витрати становлять 100 gas.
Постійність під час транзакції: дані залишаються дійсними протягом всієї транзакції.
Автоматичне очищення: після завершення угоди зберігання автоматично скидається на нуль.
Джерело атаки
Основною причиною атаки є те, що значення, що використовуються в tstore для тимчасового зберігання в функції, не очищаються після завершення виклику функції. Це дозволяє зловмисникові створювати певні шкідливі адреси, обходити перевірки прав і виводити токени.
Процес атаки
Зловмисник створює два шкідливі токени A та B, а також створює пул для цих двох токенів на певному DEX і вводить ліквідність.
Зловмисник викликає функцію initialize контракту Vault, створюючи ринкову торгівлю з використанням токенів A в якості застави та токенів B в якості боргових токенів.
Зловмисник викликає функцію mint контракту Vault, вносячи борговий токен B для карбування левередж-токена. У цьому процесі адреса DEX-пулу та кількість карбування зберігаються в тимчасовій пам'яті.
Зловмисник створює шкідливий контракт, адреса якого збігається з раніше збереженою кількістю випуску.
Зловмисник за допомогою шкідливого контракту викликав функцію зворотного виклику контракту Vault, і, оскільки значення у тимчасовій пам'яті не були очищені, успішно обійшов перевірку прав.
Нарешті, зловмисник безпосередньо через атакуючий контракт викликає зворотний виклик Vault контракту, виводячи інші токени (такі як WBTC, WETH) для отримання прибутку.
Аналіз руху коштів
Згідно з даними інструментів аналізу у блокчейні, зловмисники вкрали активи на суму приблизно 300 тисяч доларів, включаючи:
17 814,8626 доларів США
1,4085 WBTC
119.871 ЗХ.
Ці активи потім були конвертовані в WETH і зрештою були переведені в інструмент анонімізації. Початковим джерелом коштів зловмисника були 0.3 ETH, переведені з цього інструменту.
Рекомендації з безпеки
Щоб запобігти подібним атакам, команда проєкту повинна:
Після завершення виклику функції негайно використовуйте tstore(key, 0) для очищення значення в транзитному сховищі.
Посилити аудит коду контракту та безпекове тестування.
Обережно використовуйте нові введені мовні особливості, повністю розуміючи їх потенційні ризики.
Ця подія ще раз підкреслила важливість підтримання балансу між безпекою та впровадженням нових технологій у розробці проектів у блокчейні. З розвитком технологій розробники та експерти з безпеки повинні бути насторожі, своєчасно виявляти та реагувати на нові виклики безпеки.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
11 лайків
Нагородити
11
7
Поділіться
Прокоментувати
0/400
MemeTokenGenius
· 14год тому
Невже так сильно хочеться подобатися, що запускають без тестування?
Переглянути оригіналвідповісти на0
quiet_lurker
· 14год тому
Ще один проєкт притиснули до землі та терли.
Переглянути оригіналвідповісти на0
PumpBeforeRug
· 14год тому
Чув, що цього разу повернеться і побіжить~смартконтракти невелика уразливість
Переглянути оригіналвідповісти на0
MEVHunter
· 14год тому
Ці 30 тисяч занадто дешеві, навіть Термінові позики не хочеться брати.
Переглянути оригіналвідповісти на0
ContractSurrender
· 15год тому
Старий проект All in нові особливості Ляля...
Переглянути оригіналвідповісти на0
MissedAirdropAgain
· 15год тому
Га-га, всього лише 30 тисяч.
Переглянути оригіналвідповісти на0
NeverPresent
· 15год тому
Такі примітивні вразливості можуть призвести до проблем?
Вразливість тимчасового зберігання призвела до атаки хакера на проєкт Ethereum на суму 300 000 доларів.
Напад у блокчейні, викликаний транзитним зберіганням: за лаштунками втрати 300 тисяч доларів
30 березня 2025 року проект зleveraged trading на базі Ethereum під назвою SIR.trading зазнав атаки, що призвело до втрат активів понад 300 000 доларів США. Команда безпеки провела глибокий аналіз цього інциденту, розкривши деталі та причини атаки.
Фон події
Зловмисники скористалися особливістю тимчасового зберігання, запровадженою в версії Solidity 0.8.24. Це нове місце зберігання даних призначене для забезпечення низької вартості та ефективного тимчасового зберігання під час транзакції. Основні характеристики тимчасового зберігання включають:
Джерело атаки
Основною причиною атаки є те, що значення, що використовуються в tstore для тимчасового зберігання в функції, не очищаються після завершення виклику функції. Це дозволяє зловмисникові створювати певні шкідливі адреси, обходити перевірки прав і виводити токени.
Процес атаки
Зловмисник створює два шкідливі токени A та B, а також створює пул для цих двох токенів на певному DEX і вводить ліквідність.
Зловмисник викликає функцію initialize контракту Vault, створюючи ринкову торгівлю з використанням токенів A в якості застави та токенів B в якості боргових токенів.
Зловмисник викликає функцію mint контракту Vault, вносячи борговий токен B для карбування левередж-токена. У цьому процесі адреса DEX-пулу та кількість карбування зберігаються в тимчасовій пам'яті.
Зловмисник створює шкідливий контракт, адреса якого збігається з раніше збереженою кількістю випуску.
Зловмисник за допомогою шкідливого контракту викликав функцію зворотного виклику контракту Vault, і, оскільки значення у тимчасовій пам'яті не були очищені, успішно обійшов перевірку прав.
Нарешті, зловмисник безпосередньо через атакуючий контракт викликає зворотний виклик Vault контракту, виводячи інші токени (такі як WBTC, WETH) для отримання прибутку.
Аналіз руху коштів
Згідно з даними інструментів аналізу у блокчейні, зловмисники вкрали активи на суму приблизно 300 тисяч доларів, включаючи:
Ці активи потім були конвертовані в WETH і зрештою були переведені в інструмент анонімізації. Початковим джерелом коштів зловмисника були 0.3 ETH, переведені з цього інструменту.
Рекомендації з безпеки
Щоб запобігти подібним атакам, команда проєкту повинна:
Ця подія ще раз підкреслила важливість підтримання балансу між безпекою та впровадженням нових технологій у розробці проектів у блокчейні. З розвитком технологій розробники та експерти з безпеки повинні бути насторожі, своєчасно виявляти та реагувати на нові виклики безпеки.