Что такое «атака красной таблетки»?
Команда криптовалютного кошелька ZenGo обнаружила уязвимость в моделировании транзакций Web3 в нескольких популярных решениях для хранения активов. Разработчики оперативно устранили ее, а вскоре был опубликован отчет о данной проблеме.
Прежде чем разбирать данную уязвимость, стоит выяснить, что такое моделирование транзакций. До появления смарт-контрактов криптовалюты использовались только для частных переводов. Но теперь они стали частью децентрализованных приложений, число которых растет с каждым днем.
А чтобы люди могли убедиться в безопасности смарт-контракта, все основные кошельки интегрировали у себя на платформе эту технологию. При инициации транзакции происходит ее моделирование в виртуальной среде, а пользователь видит прогнозируемый результат взаимодействия с приложением, прежде чем подтвердить ее.
В основном потеря средств происходит из-за вредоносных Web2-интерфейсов или мошеннического кода. Цель первого состоит в том, чтобы выманить у смарт-контракта хранящиеся в нем активы, а второго — под любым предлогом заставить жертву перевести токены. И благодаря уязвимости в моделировании мошенники пользовались этой технологией, чтобы успешнее формировать свой обман.
Атака красной таблетки
Суть заключается в том, что некоторый вредоносный код может распознавать симуляцию и демонстрировать положительный результат для пользователя. Но при отправке в блокчейн он не будет выполнен. Для атаки код использует определенные показатели в транзакции, которые в языке программирования Solidity называются «специальные переменные».
Они предназначены для отображения непостоянной информации (например комиссии, адреса майнера или номера блока). Такие параметры и становятся «красными таблетками», потому что многие разработчики игнорируют правила безопасности и устанавливают для них постоянные значения. Это позволило вводить пользователей в заблуждение с помощью интерфейса различных кошельков.
Уязвимые расширения, кошельки и производители симуляций. Источник: официальный блог ZenGo
Чтобы это предотвратить, нужно просто заполнять значения точными цифрами: майнером последнего блока или случайной цифрой (значением предполагаемой комиссии). Благо, все популярные кошельки быстро отреагировали на уязвимость. Несмотря на то, что некоторые разработчики пытаются решить проблему мошеннических смарт-контрактов с помощью личного встроенного брандмауэра Web3, моделирование транзакций остается мощным инструментом, позволяющим обезопасить новичков от потери средств, и оно всегда должно работать правильно.