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

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

30 березня 2025 року, у блокчейні Ethereum стався напад на проект з важелями, внаслідок чого було втрачено активів на суму понад 300 000 доларів. Команда безпеки провела глибокий аналіз цього інциденту, ось відповідні висновки:

Фон події

Зловмисники використали вразливість, що міститься в функції миттєвого зберігання, введеній у версії Solidity 0.8.24, (transient storage). Миттєве зберігання — це нове місце зберігання даних, яке має на меті забезпечити тимчасове зберігання з низькими витратами, яке діє під час транзакції. Воно реалізується за допомогою інструкцій TSTORE і TLOAD і має низькі витрати на газ, постійність під час транзакції та автоматичне очищення.

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

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

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

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

Процес атаки

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

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

  1. Ініціалізація ринку маржинальної торгівлі: зловмисник викликає функцію ініціалізації контракту проекту, використовуючи токен A як заставу, а токен B як борговий токен для створення ринку маржинальної торгівлі.

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

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

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

  1. Створення шкідливого контракту: зловмисник створює адресу з шкідливим контрактом, що відповідає кількості, що випускається у тимчасовому сховищі.

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

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

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

  1. Виведення активів: нарешті, зловмисник безпосередньо викликає зворотну функцію контракту проекту через атакований контракт, виводячи інші токени з контракту (як WBTC, WETH) для отримання прибутку.

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

Оцінка збитків

Згідно з даними інструментів аналізу у блокчейні, зловмисники вкрали близько 300 000 доларів США активів, включаючи 17 814,8626 USDC, 1,4085 WBTC та 119,871 WETH. Ці активи були пізніше обміняні та переведені в певну анонімну систему.

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

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

  1. Розумне використання транзитного сховища: проектна команда повинна відповідно до бізнес-логіки після завершення виклику функції негайно використовувати tstore(key, 0) для очищення значень у транзитному сховищі.

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

  1. Посилення аудиту контрактів: необхідно провести всебічний аудит безпеки та тестування коду контрактів проекту для виявлення та виправлення потенційних вразливостей.

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

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

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

  1. Моніторинг аномальної активності: впровадження системи моніторингу в реальному часі для своєчасного виявлення та реагування на підозрілі транзакції.

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

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

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

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

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

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

WBTC-0.17%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 3
  • Поділіться
Прокоментувати
0/400
GasBankruptervip
· 07-27 11:42
Ще одна велика дірка в безпеці
Переглянути оригіналвідповісти на0
WalletDivorcervip
· 07-25 07:46
Втрачені гроші - це уроки.
Переглянути оригіналвідповісти на0
MetaMuskRatvip
· 07-25 07:31
Досить дорога урок.
Переглянути оригіналвідповісти на0
  • Закріпити