Согласно отчетам пользователей и данным блокчейна, новая афера, распространяемая в Telegram, позволяет злоумышленнику истощать криптовалютный кошелек жертвы без необходимости подтверждения транзакции.
Афера работает только с токенами, соответствующими стандарту токенов ERC-2612, который допускает переводы “без газа” или с кошелька, на котором не хранится эфир (ETH). Хотя метод не требует от пользователей одобрения транзакции, похоже, он требует обмана пользователя с целью подписи сообщения.
По мере того, как все больше токенов внедряют стандарт ERC-2612, этот конкретный тип атаки может стать более распространенным.
С Cointelegraph связался пользователь, который сказал, что потерял токены Open Exchange (OX) на сумму более 600 долларов после посещения, по его мнению, официальной группы Telegram для разработчика токена, OPNX. Однако это была фишинговая афера.
Когда он вошел в группу Telegram, его попросили нажать кнопку для подключения кошелька, чтобы доказать, что он не бот. При этом открылось окно браузера, и он подключил свой кошелек к сайту, полагая, что простое подключение не представляет риска для его средств. Однако в течение нескольких минут все его жетоны OX были истощены. Потерпевший утверждал, что он ни разу не одобрил ни одну транзакцию со страницы, но его средства все равно были украдены.
Коинтелеграф посетил группу Telegram и обнаружил, что там представлена поддельная версия системы проверки Telegram Collab.Land. Настоящая система Collab.Land отправляет сообщения с Telegram-канала @collablandbot, написанные с двумя строчными буквами «л». Эта фейковая версия отправляла сообщения от @colIablandbot с заглавной «I» вместо второй строчной «l». В шрифте, который Telegram использует для своих имен пользователей, эти две буквы выглядят очень похожими.
Фейковый профиль бота Collab Land. Источник: Телеграм.
Кроме того, кнопка «подключить кошелек» в подлинных сообщениях Collab.Land отправляет пользователей на URL-адрес Connect.collab.info, который не содержит дефисов, тогда как эта поддельная версия отправляла пользователей на Connect-collab.info с дефисом вместо тире. период.
Пользовательский интерфейс вредоносного приложения. Источник: Connect-collab.info.
Согласно данным блокчейна, злоумышленник слил средства, вызвав функцию «transferFrom» в контракте токена OX. В обычных обстоятельствах эта функция может быть вызвана третьей стороной только в том случае, если владелец сначала вызывает «одобрить» через отдельную транзакцию и устанавливает лимит расходов. Данные блокчейна не содержат доказательств того, что жертва когда-либо давала такое одобрение.
Примерно за час и 40 минут до передачи злоумышленник вызвал «Разрешить» на контракте токена OX, указав себя в качестве «платителя», а учетную запись жертвы в качестве «владельца». Они также устанавливают «крайний срок» или период времени, по истечении которого разрешение истечет, а также «стоимость» или количество токенов, которые могут быть переданы. «Значение» было установлено на сколь угодно большое число.
Разрешить транзакцию, совершенную злоумышленником. Источник: Этерскан.
Функция Permit находится в строках 116–160 файла ERC20.sol контракта токена. Он позволяет третьей стороне разрешать передачу токенов от имени их владельца, но только в том случае, если владелец доставит подписанное сообщение, подтверждающее их авторизацию.
Требование подписи токена OX для функции Permit, строка 154. Источник: Etherscan
Такая установка может объяснить, почему злоумышленнику удалось вывести средства, не заставляя владельца сделать традиционное одобрение токена. Однако это также означает, что злоумышленник обманом заставил владельца подписать сообщение. После ознакомления с этими доказательствами жертва сообщила, что попыталась подключиться к сайту во второй раз. На этот раз он заметил, что был «дополнительный диалог подписания», который он, должно быть, подтвердил в первый раз, даже не осознавая этого.
Функция Permit, по-видимому, является новой функцией некоторых контрактов токенов. Он реализуется как часть стандарта ERC-2612, который позволяет совершать транзакции с помощью кошельков, не хранящих ETH. Разработчик Web3 OpenZeppelin так описывает назначение функции:
«[Его] можно использовать для изменения разрешения ERC20 учетной записи (см. IERC20.allowance), представив сообщение, подписанное учетной записью. Не полагаясь на IERC20.approve, учетной записи держателя токена не нужно отправлять транзакцию и, следовательно, вообще не требуется хранить Ether».
Со временем эта функция может позволить разработчикам кошельков создавать удобные для пользователя кошельки, в которых хранятся только стейблкоины. Однако расследование Cointelegraph показало, что мошенники также используют эту функцию, чтобы обманом заставить пользователей отдать свои средства. Пользователи Web3 должны знать, что злоумышленник может вывести их средства, даже если они не совершат транзакцию подтверждения, если они подпишут сообщение, предоставляющее злоумышленнику такую возможность.
Эта статья не содержит инвестиционных советов. Если информация, которую я предоставил, оказалась интересной и познавательной, не стесняйтесь отметить это лайком и подписаться на канал, чтобы получать ещё больше полезных рекомендаций