Исследователи безопасности из ZenGo Wallet обнаружили , что децентрализованные криптографические приложения (DApp) оказались уязвимыми для “атаки красных таблеток” (” data-html=”true” data-original-title=”Red Pills Attack” >Red Pills Attack)- метода, который можно использовать для сокрытия вредоносного поведения смарт-контрактов от средств безопасности.
Исследователи безопасности из ZenGo Wallet обнаружили, что децентрализованные приложения, в том числе Coinbase Wallet, уязвимы для новой атаки Red Pills Attack, которая позволяет смарт-контрактам скрывать вредоносное поведение во время моделирования транзакций. Это заставляет пользователя поверить в безопасность транзакций – пользователь проведёт её, только позже узнав, что смарт-контракт украл все активы.
Уязвимость была раскрыта Coinbase, которая с тех пор устранила проблемы безопасности и наградила ZenGo Wallet многочисленными наградами за обнаружение ошибок.
Смарт-контракты можно использовать, например, для автоматической отправки NFT после получения платежа, “обложения налогом” пользователей за продажу актива слишком рано после его покупки и т.д. По сути, все, что можно запрограммировать, может быть выполнено с помощью смарт-контракта. Однако многие злоумышленники используют смарт-контракты для кражи криптовалюты и других активов пользователей. При этом злонамеренные запросы на подписание контрактов трудно отличить от легитимных.
Чтобы предотвратить эти атаки, разработчики децентрализованных приложений представили решения для имитации транзакций, чтобы эмулировать подписание транзакции и прогнозировать результат до того, как пользователь одобрит его. Затем результат имитации транзакции представляется пользователю, что позволяет ему увидеть, что произойдет после совершение транзакции, и решить, продолжить транзакцию или нет.
Моделирование транзакции
Аналитики объясняют, что злоумышленники могут внедрять “красные таблетки” (Red Pills) во вредоносные контракты, чтобы изменить поведение контрактов при имитации и украсть деньги у жертвы.
Эта атака проводится путем заполнения переменных в смарт-контракте “безопасными” данными во время моделирования, а затем заменой их “вредоносными” данными во время реальной транзакции. Это приводит к тому, что симуляция покажет смарт-контракт как безопасный во время имитации, но во время реальной транзакции контракт украдет криптовалюту пользователей. Исследователи также выпустили видео, чтобы продемонстрировать эту атаку.
Моделирование показывает, что после одобрения транзакции пользователь получит 0,016 WETH. Однако при выполнении реальной транзакции жертва ничего не получает.
Специалисты ZenGo объясняют, что инструкция COINBASE содержит адрес текущего майнера блоков. Поскольку во время моделирования нет реального блока и, следовательно, нет майнера, некоторые реализации моделирования просто устанавливают для него нулевой адрес (адрес со всеми нулями).
Для выполнения атаки нужно попросить пользователя отправить какую-нибудь собственную монету в контракт, и если адрес блока COINBASE равен нулю (что означает симуляцию в Polygon), контракт взамен отправит обратно несколько монет.
Изучив эти сценарии “атаки с красной таблеткой”, ZenGo обнаружил 6 децентрализованных приложений криптовалютных кошельков, уязвимых для эксплуатации.
Затронутые платформы
Все остальные упомянутые выше сервисы внедрили исправления в свою симуляцию транзакций вскоре после того, как получили отчет ZenGo Wallet. Исправление состоит в том, чтобы прекратить использование произвольных значений для уязвимых переменных, предотвращая их использование в качестве “красных таблеток” во вредоносных контрактах.