Стандарт токенов ERC-20 позволяет мошенникам в полной мере использовать фишинг.
В марте, по данным Scam Sniffer, на долю распространенного стандарта токенов сети Ethereum пришлось 89,5% от потерь криптовалюты на сумму 71,5 миллиона долларов в результате фишинговых атак.
Эти токены были украдены в результате того, что жертвы невольно подверглись фишингу и одобрили такие функции, как «permit» и «increaseAllowance». Функции, предназначенные для повышения эффективности стандарта токенов, привели к появлению новых уязвимостей.
Токены ERC-20, впервые представленные в 2015 году, полны зияющих дыр в системе безопасности, и в ближайшее время у них мало шансов на исправление.
«Проблема заключается в исторически неудачных решениях в проектах ERC-20 и Ethereum», - говорит журналу Микко Охтамаа, соучредитель торговой стратегии Algorithmic Investment Protocol.
Он говорит, что проблемы, связанные с дизайном токенов, в основном характерны для Ethereum и Solana.
«Проблема была устранена в других блокчейнах, таких как MultiversX, Radix, Cosmos и так далее», - говорит Охтамаа.
Но неизменный характер смарт-контрактов усложняет усилия по исправлению недостатков ERC-20.
Рисунок 1. Ethereum - сеть, наиболее часто подвергающаяся фишинговым атакам. Источник: Scam Sniffer.
Фишинговые атаки: Permit2 от Uniswap
Смарт-контракт Permit2 от Uniswap, запущенный в 2022 году, направлен на улучшение транзакций, позволяя пользователям предоставлять dApps пакетные разрешения на использование токенов. Это устраняет необходимость в отдельных утверждениях для каждой транзакции, экономя плату за газ в процессе.
Permit2 похож на своего предшественника, предложение по улучшению Ethereum-2612, в котором были введены утверждения токенов вне сети. Поскольку они не передаются по цепочке, плата за газ не взимается за подписание этих сообщений.
EIP-2612 является расширением ERC-20. Это означает, что такая функция является необязательной. Но большинство токенов ERC-20, обращающихся на рынке, не имеют этого дополнения. Это означает, что пользователи не всегда могут воспользоваться преимуществами взаимодействия с dApps.
И вот тут-то и появляется разрешение Uniswap2. Этот посреднический контракт распространяет действие EIP-2612 на весь спектр токенов ERC-20 на своей платформе.
Однако то, что показалось участникам DeFi ценным обновлением на одной из крупнейших децентрализованных бирж, побудило одного из исследователей забить тревогу.
Примерно через неделю после публикации нового контракта Uniswap в ноябре 2022 года исследователь безопасности Роман Рахлин опубликовал статью, в которой продемонстрировал, как незаконные субъекты могут получать подписи разрешений с помощью фишинговых схем, в конечном итоге воруя токены у ничего не подозревающих жертв.
«Примерно через месяц после публикации моей статьи я увидел, что некоторые мошенники действительно начали использовать подписи-разрешения, как я и продемонстрировал», - говорит Рахлин.
Uniswap не ответил на запрос о комментариях.
ERC-20 и мошенничество с криптовалютами
Ничто из этого не говорит о том, что токены ERC-20 не были значительным шагом вперед, когда были введены более восьми лет назад. Они обеспечили общую структуру, которая позволила создавать новые взаимозаменяемые токены на Ethereum и бесперебойно работать в рамках предопределенных правил.
Основные функциональные возможности стандарта, такие как механизм «approve», позволяют держателям токенов управлять своими активами в децентрализованных экосистемах и предоставлять разрешения на перемещение активов от их имени, тем самым стимулируя рост DeFi.
Существует различие между родной валютой Ethereum, эфиром, и токенами ERC-20, особенно в том, как они взаимодействуют со смарт-контрактами.
Во-первых, отправка эфира на смарт-контракт довольно проста. Пользователь просто отправляет эфир так же, как отправлял бы его на кошелек другого человека.
Однако токены ERC-20 требуют подтверждения при взаимодействии с другими смарт-контрактами. Злоумышленники могут использовать эту процедуру подтверждения, чтобы обманом заставить пользователей подписывать поддельные сообщения.
«Сам стандарт несовершенен», - говорит журналу Михаил Владимиров, разработчик Ethereum и аудитор смарт-контрактов.
Рисунок 2. Разработчик Ethereum и аудитор Михаил Владимиров.
В 2016 году Владимиров написал статью, которая описывает теоретический вектор атаки «approve», при котором изменения в утвержденных суммах токенов могут быть использованы злоумышленниками для перемещения большей суммы средств, чем изначально разрешено владельцем токена.
Например, предположим, что у Алисы есть 1000 токенов, и она хочет обменять их на DEX. Алиса использует функцию «approve», чтобы разрешить DEX потратить 500 токенов от ее имени. Но Алиса передумала и хочет обменять больше.
Алиса может увеличить количество одобренных токенов, сначала установив лимит на ноль, а затем одобрив 800 токенов. В этом гипотетическом сценарии злоумышленник может инициировать транзакцию за короткий промежуток времени до сброса до нуля и нового лимита, потратив больше токенов, чем изначально намеревалась Алиса.
Эту конкретную теоретическую атаку может быть довольно сложно осуществить, ведь она нацелена на короткий промежуток времени, когда Алиса вносит изменения в свое одобрение.
В этой статье предлагается решение для такой гипотетической атаки, которое позволяет пользователям изменять допуск вместо установки нового.
В 2017 году внедрение функций «increaseAllowance» и «decreaseAllowance» позволило снизить риск атак «approve», позволив при этом держателям токенов корректировать утвержденное количество токенов без их полного сброса.
Благодаря этим функциям Алисе больше не нужно обнуляться, она может напрямую увеличить свой допуск до 800 токенов.
«Функция EncreasedAllowance предназначена для решения этой проблемы, но в итоге она чаще всего создает дополнительные проблемы для конечного пользователя», - рассказывает журналу Лев Меньшиков, исследователь безопасности в аудиторской фирме Oxorio.
В ходе мошенничества злоумышленники могут отправлять фишинговые сообщения с просьбой увеличить количество токенов, казалось бы, по уважительным причинам - например, из-за поддельного обновления, которое требует увеличения количества токенов, чтобы пользователи могли продолжать пользоваться услугами без сбоев, или из-за поддельной меры безопасности, которая требует от пользователей увеличить количество одобренных токенов.
Это позволяет хакерам перемещать одобренные токены из кошелька пользователя в свой собственный, в некоторых случаях выводя всю сумму.
Токены ERC-20: неизменяемый курс
В прошлом году из контракта ERC-20 была исключена надбавка на повышение и продлен контракт после того, как независимый исследователь безопасности Pcaversaccio выразил обеспокоенность по поводу возможностей мошенничества, которые предоставляет эта функция.
«Поскольку контракты являются неизменяемыми, вы не можете их изменить», - говорит Pcaversaccio.
Для существующих токенов, которые уже находятся в обращении, а их бесчисленное количество, модификации невозможны из-за неизменяемости блокчейна.
Однако, используя обновляемые прокси-серверы или посреднические контракты, проекты имеют возможность расширять или уменьшать функциональные возможности, например, устранять непрофильные функции, такие как «increaseAllowance» и «permit», подобно тому, как Permit2 от Uniswap привнес функцию «permit» в токены ERC-20, которые сами по себе не имеют такой возможности.
Рисунок 3. Исследователь Pcaversaccio предлагает удалить функции, которые позволяют использовать фишинговые схемы. Источник: OpenZeppelin.
Но Pcaversaccio добавляет, что функция «approve» должна быть сохранена, ведь она относится к исходной спецификации ERC-20.
Это означает, что вектор атаки останется практически неизменным.
«Неизменяемость - это особенность, а не ошибка на уровне выполнения».
По его словам, проблема лежит на прикладном уровне, например, в dApps и кошельках.
Владимиров признает, что в ERC-20 есть недостатки, но объясняет рост числа мошенничеств в первую очередь социальной инженерией - тактикой манипулирования, которая обманывает людей, взаимодействующих с системами безопасности, а не саму технологию.
Он утверждает, что кошельки должны предоставлять более простые или удобочитаемые форматы, а не технический жаргон или коды, которые часто сбивают пользователей с толку и делают их более восприимчивыми к мошенничеству.
Рисунок 4. Вопросы одобрения токенов, по-видимому, являются приоритетными для Ethereum. Источник: Eric Connor.
«К сожалению, мы не можем требовать, чтобы все кошельки действовали правильно, особенно если сообщество не может прийти к единому мнению о том, что является правильным», - говорит Владимиров.
Микко Охтамаа предполагает, что сообщество безопасности не считает мошенничество высокоприоритетной проблемой, ведь оно в основном затрагивает пользователей с низким уровнем знаний или вызвано неисправными интерфейсами.
«Некоторые исследователи безопасности ведут себя еще более самонадеянно, заявляя, что это «глупая проблема пользователя» или что-то такое, что «разработчики кошельков и интерфейсов должны исправить», перекладывая проблему, которую они создали, на кого-то другого», - говорит Охтамаа.
Фишинговые атаки настигают крипто-пользователей
Однако все чаще пользователи, которые регулярно совершают транзакции в экосистеме Ethereum, начинают становиться жертвами вездесущих мошенников.
Даже крипто-аборигены, такие как Некксус, криптомайнер и сотрудник криминалистической платформы Intelligence On Chain, стали жертвами изощренной тактики социальной инженерии.
Рисунок 5. Beary the Cucumber становится жертвой функции разрешения. Источник: Beary the Cucumber.
«Потери были серьезными, но я постепенно работаю над их возмещением», - говорит Некксус, который утверждает, что потерял около 20 000 долларов в результате фишинговой атаки.
Некксус говорит, что его обманула взломанная учетная запись исполнителя NFT, и он зашел на веб-сайт поддельного проекта социальных сетей Web3.
«Я не знал об этом, пока не стало слишком поздно», - добавляет он.
Соучредитель платформы DeFi Pickle Finance, работающий под псевдонимами Larry the Cucumber и Beary the Cucumber, также стал жертвой недавней фишинговой аферы, в которой была задействована функция «permit».
В отличие от большинства жертв, Larry the Cucumber принял дополнительные меры предосторожности, такие как использование симулятора транзакций, который позволяет пользователям просмотреть сценарий перед завершением транзакции.
Меньшиков из Oxorio предупреждает инвесторов о том, что продолжают появляться новые тенденции фишинга.
«Действительно важной тенденцией, которую я мог бы выделить в области фишинга, является заметная популяризация атак на владельцев доменов ENS», - говорит Меньшиков.
В рамках этой фишинговой схемы злоумышленники рассылают поддельные уведомления по электронной почте владельцам доменов ENS, чтобы заманить их на поддельный сайт продления, где у них могут вымогать средства.
Владимиров утверждает, что для предотвращения атак, неизменность смарт-контрактов и постоянно растущее количество токенов затрудняют любые сетевые решения, отмечая, что тактика социальной инженерии (она же мошенничество) существовала задолго до появления криптовалюты.
Он говорит, что реальные решения появятся в результате развития инструментов безопасности, которые смогут предупреждать пользователей об известных векторах атак.
Larry the Cucumber рассказывает, что пользователи криптовалют могут защитить себя от многих атак, используя такие инструменты безопасности, как WalletGuard и Pocket Universe, где пользователи могут сканировать URL-адреса для обнаружения рисков, таких как утечка кошельков.
Общее правило Pcaversaccio, которое позволяет избежать фишинговых атак, - относиться с подозрением ко всем и вся:
«Будьте параноидальны по отношению ко всему, что вы подписываете».