Уязвимость временного хранилища привела к атаке на проект Ethereum на сумму 300000 долларов. Команда безопасности анализирует ключевые детали.

robot
Генерация тезисов в процессе

Анализ инцидента атаки в 30 долларов США в результате уязвимости временного хранилища в блокчейне

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

Фоновая информация

Версия Solidity 0.8.24 ввела функциональность моментального хранения (transient storage), которая является новым местом для хранения данных. Основные характеристики включают:

  1. Низкая стоимость газа: фиксированная стоимость газа для операций TSTORE и TLOAD составляет 100.
  2. Постоянство данных в транзакции: данные остаются действительными на протяжении всей транзакции.
  3. Автоочистка: после завершения сделки временное хранилище автоматически сбрасывается до нуля.

Смертельные остатки: ограбление в 300 000 долларов, вызванное временным хранилищем в блокчейне

Причины атаки

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

Смертельные остатки: ограбление на 300000 долларов, вызванное временным хранилищем в блокчейне

Этапы атаки

  1. Злоумышленник создает два вредоносных токена A и B и создает пул для этих токенов на одном из DEX, чтобы внедрить ликвидность.

  2. Злоумышленник вызывает функцию initialize контракта Vault, чтобы создать рынок кредитного плеча с токеном A в качестве залога и токеном B в качестве долгового токена.

  3. Атакующий вызывает функцию mint контракта Vault и вносит долговой токен B для выпуска леверидж-токенов. В этом процессе адрес пула DEX временно сохраняется в первый раз.

  4. Когда пул DEX выполняет операцию обмена, вызывается функция uniswapV3SwapCallback контракта Vault. Эта функция использует tload для проверки идентичности вызывающего из временного хранилища и сохраняет количество, созданное в вторичное временное хранилище.

  5. Атакующий создает злонамеренный контракт, адрес которого совпадает со значением второго временного хранилища.

  6. Атакующий напрямую вызывает функцию uniswapV3SwapCallback контракта Vault через этот вредоносный контракт для вывода токенов. Поскольку значения во временном хранилище не были очищены, это приводит к ошибочному прохождению проверки подлинности.

  7. Наконец, злоумышленник, атакуя контракт (токен A), вызывает функцию uniswapV3SwapCallback контракта Vault, чтобы вывести другие токены из контракта Vault (такие как WBTC, WETH) для получения прибыли.

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

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

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

Смертельный остаток: ограбление на 300000 долларов в блокчейне, вызванное временным хранением

Смертельные остатки: ограбление на 300000 долларов в блокчейне, вызванное временным хранилищем

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

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

Смертельный остаток: ограбление в 300000 долларов, вызванное временным хранением в блокчейне

Смертельные остатки: ограбление на 300000 долларов в блокчейне, вызванное временным хранилищем

Смертельные остатки: ограбление в 300000 долларов, вызванное временным хранилищем в блокчейне

Смертельные остатки: ограбление в $300,000, вызванное временным хранилищем в блокчейне

Смертельные остатки: ограбление на 300000 долларов, вызванное временным хранилищем в блокчейне

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

Анализ денежных потоков

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

  • 17,814.8626 USDC
  • 1.4085 WBTC
  • 119.871 ВТ

Затем злоумышленник обменял WBTC и USDC на WETH, в итоге 193.1428 WETH было переведено в некий смешанный инструмент. Исходный капитал злоумышленника поступил из 0.3 ETH, переведенных в этот смешанный инструмент.

Смертельные остатки: ограбление в 300000 долларов, вызванное временным хранилищем в блокчейне

Смертельный остаток: ограбление в 300000 долларов, вызванное временным хранением в блокчейне

Рекомендации по безопасности

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

  2. Укрепить аудит кода контрактов и безопасность тестирования, чтобы избежать подобных уязвимостей.

  3. Осторожно используйте новые вводимые функции, полностью осознавая их потенциальные риски.

  4. Установите многофакторный механизм аутентификации, не полагайтесь только на один метод проверки подлинности.

  5. Регулярно проводить оценку безопасности и сканирование на уязвимости, своевременно устранять обнаруженные проблемы.

Данный инцидент с атакой снова подчеркивает необходимость особой осторожности при использовании новых технологических характеристик в проектах в блокчейне, а также важность постоянного аудита безопасности. Разработчики должны постоянно следить за последними лучшими практиками безопасности и строго соблюдать их при реализации кода.

Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 7
  • Поделиться
комментарий
0/400
DegenWhisperervip
· 20ч назад
Будут играть для лохов одной днём снова начался
Посмотреть ОригиналОтветить0
PensionDestroyervip
· 20ч назад
30w снова увлажнён
Посмотреть ОригиналОтветить0
AirDropMissedvip
· 20ч назад
Снова разыграли людей как лохов.
Посмотреть ОригиналОтветить0
ruggedNotShruggedvip
· 20ч назад
Мир стал слишком узким. Сейчас даже эта атака не имеет значения.
Посмотреть ОригиналОтветить0
SillyWhalevip
· 20ч назад
Снова маленькие проекты будут играть для лохов.
Посмотреть ОригиналОтветить0
RugPullAlarmvip
· 20ч назад
Еще один контракт, который не был тщательно закрыт, был раскрыт.
Посмотреть ОригиналОтветить0
SwingingLittleLeekvip
· 20ч назад
В последнее время Эфир колебался выше 3000! В будущем он будет оставаться выше 3000.
Посмотреть ОригиналОтветить0
  • Закрепить