Ограбление в блокчейне, вызванное временным хранением: за кулисами потери в 300000 долларов
30 марта 2025 года проект по торговле с использованием кредитного плеча на основе 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) для получения прибыли.
Анализ потоков средств
Согласно данным инструментов анализа в блокчейне, злоумышленник украл активов на сумму около 300000 долларов, включая:
17,814.8626 USDC
1.4085 WBTC
119.871 ВТ
Эти активы затем были преобразованы в WETH и в конечном итоге переведены в какой-то анонимный инструмент. Начальный источник средств злоумышленника составил 0.3 ETH, переведенный из этого инструмента.
Рекомендации по безопасности
Чтобы предотвратить подобные атаки, команде проекта следует:
Немедленно используйте tstore(key для очистки значений во временном хранилище после завершения вызова функции.
Укрепить аудит кода контрактов и тестирование безопасности.
Осторожно используйте новые введенные языковые особенности, полностью понимая их потенциальные риски.
Этот инцидент еще раз подчеркивает важность поддержания баланса между безопасностью и применением новых технологий в разработке проектов в блокчейне. С учетом постоянного развития технологий, разработчики и специалисты по безопасности должны оставаться бдительными, своевременно выявлять и реагировать на новые угрозы безопасности.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
11 Лайков
Награда
11
7
Поделиться
комментарий
0/400
MemeTokenGenius
· 16ч назад
Как мило, что они запустили его без тестирования?
Посмотреть ОригиналОтветить0
quiet_lurker
· 16ч назад
Еще один проект был прижат и растерт на земле.
Посмотреть ОригиналОтветить0
PumpBeforeRug
· 16ч назад
Слышал, что на этот раз просто развернется и убежит~смарт-контракты маленькая уязвимость
Посмотреть ОригиналОтветить0
MEVHunter
· 16ч назад
Эти 30w слишком дешево, даже Срочные займы не хочется использовать.
Уязвимость временного хранилища привела к атаке на проект Ethereum на сумму 300000 долларов США от хакера.
Ограбление в блокчейне, вызванное временным хранением: за кулисами потери в 300000 долларов
30 марта 2025 года проект по торговле с использованием кредитного плеча на основе 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) для получения прибыли.
Анализ потоков средств
Согласно данным инструментов анализа в блокчейне, злоумышленник украл активов на сумму около 300000 долларов, включая:
Эти активы затем были преобразованы в WETH и в конечном итоге переведены в какой-то анонимный инструмент. Начальный источник средств злоумышленника составил 0.3 ETH, переведенный из этого инструмента.
Рекомендации по безопасности
Чтобы предотвратить подобные атаки, команде проекта следует:
Этот инцидент еще раз подчеркивает важность поддержания баланса между безопасностью и применением новых технологий в разработке проектов в блокчейне. С учетом постоянного развития технологий, разработчики и специалисты по безопасности должны оставаться бдительными, своевременно выявлять и реагировать на новые угрозы безопасности.