Аналіз атаки у блокчейні на суму 300 000 доларів, викликаної вразливістю миттєвого зберігання
30 березня 2025 року, певний проект з леверидж-трейдингу у блокчейні зазнав атаки, що призвело до втрати активів на понад 300 000 доларів. Команда з безпеки провела глибокий аналіз цього інциденту і тепер ділиться результатами.
Фон
Атака сталася в мережі Ethereum, метою якої був проект з торгівлі з важелем. Атакуючий скористався вразливістю, пов'язаною з миттєвим зберіганням у контракті проекту.
Попередні знання
Версія Solidity 0.8.24 ввела функцію миттєвого зберігання (transient storage), яка є новим місцем для зберігання даних. Основні характеристики включають:
Низькі витрати на газ: операції TSTORE та TLOAD споживають фіксовано 100 газу
Тривалість даних у транзакції: дані залишаються дійсними протягом усієї транзакції
Автоматичне очищення: автоматичне скидання до нуля після завершення交易.
Причини вразливості
Основною причиною цієї атаки є те, що значення, що використовуються в контракті за допомогою tstore для тимчасового зберігання, не були очищені після завершення виклику функції. Це дозволило зловмиснику скористатися цією особливістю для створення певної адреси, обійти перевірку прав доступу та вивести токени.
Процес атаки
Зловмисник створює два шкідливі токени A та B і створює для них ліквідність у певному DEX.
Викликати функцію initialize цільового контракту, щоб створити ринкову платформу для маржинальної торгівлі з токеном A в якості застави та токеном B в якості боргового токена.
Виклик функції mint для внесення токенів B для карбування токенів з важелем, при цьому було виконано дві операції тимчасового зберігання.
Створіть адресу, яка має таке ж значення тимчасового зберігання, як і другий раз, для шкідливого контракту.
Використовуючи цей шкідливий контракт, викликається функція зворотного виклику цільового контракту, обходячи перевірку прав для виведення токенів.
Нарешті, через атаку на контракт (токен A) знову викликається функція зворотного виклику, щоб вивести інші токени (такі як WBTC, WETH) для отримання прибутку.
Аналіз руху коштів
Зловмисники вкрали близько 300 тисяч доларів активів, включаючи:
17 814,8626 доларів США
1,4085 WBTC
119.871 ЗХ.
Потім зловмисник обміняв WBTC та USDC на WETH, врешті-решт перевівши 193,1428 WETH у певний мікс-сервіс.
Початковий капітал нападника (0.3 ETH) також походить з цього сервісу змішування.
Підсумки та рекомендації
Основна суть цієї атаки полягає в використанні характеристик тимчасового зберігання, що дозволяють зберігати значення незмінним протягом всього періоду транзакції, що дозволило обійти перевірку прав контракту. Для запобігання подібним атакам рекомендується сторонам проекту:
Після закінчення виклику функції негайно використовуйте tstore(key, 0) для очищення значень у тимчасовому сховищі.
Посилити аудит коду контрактів та безпекове тестування.
Обережно використовуйте нові мовні особливості, повністю усвідомлюючи їх потенційні ризики.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
7 лайків
Нагородити
7
6
Поділіться
Прокоментувати
0/400
PensionDestroyer
· 17год тому
Знову невдахи надіслали
Переглянути оригіналвідповісти на0
TestnetFreeloader
· 17год тому
А це що, безкоштовно хапнути? Навіть свій проект не можуть втримати.
Переглянути оригіналвідповісти на0
LootboxPhobia
· 17год тому
Погано, погано, ще один брат наступив на міну.
Переглянути оригіналвідповісти на0
BearMarketMonk
· 17год тому
Витягнули не лише ягнята, але й контрактні дірки.
Переглянути оригіналвідповісти на0
DeFiAlchemist
· 17год тому
ах, ще одна жертва темним мистецтвам експлуатації смарт-контрактів... *налаштовує кристальну кулю* ці ефемерні вразливості зберігання подібні до тріщин у герметичному запечатанні алхімії протоколу
Уразливість миттєвого зберігання призвела до атаки на проект у блокчейні на 300 000 доларів США. Експерти аналізують поради щодо запобігання.
Аналіз атаки у блокчейні на суму 300 000 доларів, викликаної вразливістю миттєвого зберігання
30 березня 2025 року, певний проект з леверидж-трейдингу у блокчейні зазнав атаки, що призвело до втрати активів на понад 300 000 доларів. Команда з безпеки провела глибокий аналіз цього інциденту і тепер ділиться результатами.
Фон
Атака сталася в мережі Ethereum, метою якої був проект з торгівлі з важелем. Атакуючий скористався вразливістю, пов'язаною з миттєвим зберіганням у контракті проекту.
Попередні знання
Версія Solidity 0.8.24 ввела функцію миттєвого зберігання (transient storage), яка є новим місцем для зберігання даних. Основні характеристики включають:
Причини вразливості
Основною причиною цієї атаки є те, що значення, що використовуються в контракті за допомогою tstore для тимчасового зберігання, не були очищені після завершення виклику функції. Це дозволило зловмиснику скористатися цією особливістю для створення певної адреси, обійти перевірку прав доступу та вивести токени.
Процес атаки
Аналіз руху коштів
Зловмисники вкрали близько 300 тисяч доларів активів, включаючи:
Потім зловмисник обміняв WBTC та USDC на WETH, врешті-решт перевівши 193,1428 WETH у певний мікс-сервіс.
Початковий капітал нападника (0.3 ETH) також походить з цього сервісу змішування.
Підсумки та рекомендації
Основна суть цієї атаки полягає в використанні характеристик тимчасового зберігання, що дозволяють зберігати значення незмінним протягом всього періоду транзакції, що дозволило обійти перевірку прав контракту. Для запобігання подібним атакам рекомендується сторонам проекту: