Раскрытие мошенничества с фишингом подписи Uniswap Permit2
Хакеры являются пугающим присутствием в экосистеме Web3. Для команд проектов открытый код вызывает страх, так как они боятся, что одна ошибка в коде может оставить уязвимость. Для пользователей каждый раз, когда происходит взаимодействие с цепочкой или подпись, существует риск кражи активов. Поэтому вопрос безопасности всегда был одной из основных проблем в криптомире. Из-за особенностей блокчейна украденные активы практически невозможно вернуть, поэтому обладание знаниями в области безопасности особенно важно.
Недавно исследователь обнаружил новый метод фишинга, который может привести к краже активов только с помощью подписи. Этот метод крайне скрытен и труден для предотвращения, и адреса, которые когда-либо взаимодействовали с какой-либо торговой платформой, могут подвергаться риску. В этой статье будет объяснён метод фишинга с подписью, чтобы минимизировать возможные потери активов.
Ход событий
Недавно у моего друга ( маленького А ) были украдены средства из кошелька. В отличие от обычных способов кражи, маленький А не раскрыл свой приватный ключ и не взаимодействовал с фишинговыми сайтами.
Блокчейн-браузер показывает, что USDT в кошельке Xiao A был переведен с помощью функции Transfer From. Это означает, что другой адрес осуществил перевод токенов, а не произошла утечка приватного ключа кошелька.
Детали сделки раскрывают ключевые подсказки:
Один адрес перевел активы маленького А на другой адрес
Эта операция взаимодействует с контрактом Permit2 определенной торговой платформы.
В чем проблема, как этот адрес получил права на активы? Почему это связано с какой-то торговой платформой?
Чтобы вызвать функцию Transfer From, необходимо, чтобы вызывающая сторона имела право на лимит токена (approve). Перед тем как перевести активы маленького A с этого адреса, также была выполнена операция Permit, обе операции взаимодействуют с контрактом Permit2 определенной торговой платформы.
Permit2 — это новый контракт, выпущенный некоторой торговой платформой в конце 2022 года, который позволяет токенам делиться управлением через различные приложения, стремясь создать более унифицированный, более экономически эффективный и более безопасный пользовательский опыт. С увеличением числа интегрированных проектов, Permit2 ожидается, что будет способствовать стандартизации одобрения токенов во всех приложениях, снижая затраты на транзакции и повышая безопасность смарт-контрактов.
Запуск Permit2 может изменить правила экосистемы Dapp. В традиционном подходе пользователи должны каждый раз предоставлять разрешение при взаимодействии с Dapp, в то время как Permit2 позволяет избежать этого шага, эффективно снижая затраты на взаимодействие пользователей. Permit2 выступает в качестве посредника между пользователями и Dapp, пользователям необходимо лишь предоставить разрешение контракту Permit2, и все Dapp, интегрированные с этим контрактом, могут делиться объемом разрешений.
Тем не менее, это также двусторонний меч. Permit2 превращает действия пользователей в подписи вне цепи, все действия в цепи выполняются посредником. Это позволяет пользователям использовать другие токены для оплаты комиссий за газ, даже если в их кошельке нет ETH, или компенсировать эти расходы через посредника. Но подпись вне цепи также является этапом, который пользователи чаще всего игнорируют, и большинство людей не проверяет содержание подписей внимательно.
Чтобы использовать этот метод фишинга, ключевое условие заключается в том, что кошелек, который будет фишинговать, должен уже быть авторизован для токена на контракт Permit2. В настоящее время, если вы хотите выполнить своп на Dapp или какой-либо торговой платформе, интегрирующей Permit2, необходимо предоставить разрешение контракту Permit2.
Более того, независимо от суммы Swap, контракт Permit2 по умолчанию разрешает пользователю авторизовать весь баланс токена. Хотя кошелек будет предлагать ввести пользовательскую сумму, большинство людей могут просто выбрать максимальное или значение по умолчанию, а значение по умолчанию для Permit2 — это неограниченный лимит.
Это означает, что после 2023 года, если вы взаимодействовали с какой-либо торговой платформой и предоставили разрешение контракту Permit2, вы можете столкнуться с риском этого промывания глаз.
Основное внимание уделяется функции Permit, которая позволяет передавать лимит токенов, предоставленных пользователем контракту Permit2, другим адресам. Хакеры, получив подпись пользователя, могут получить права на токены в кошельке пользователя и осуществить перевод активов.
Подробный анализ события
Функция Permit позволяет пользователям заранее подписывать "контракт", позволяя другим (spender) использовать определенное количество токенов в будущем. Пользователи должны предоставить подпись, подтверждающую подлинность "контракта".
Рабочий процесс функции:
Проверьте, истекло ли текущее время действия подписи.
Проверка подлинности подписи
Если проверка пройдена, обновите запись, позволяя другим использовать токены
Основное внимание уделяется функциям verify и _updateApproval.
Функция verify извлекает три данных v, r, s из информации о подписи, которые используются для восстановления адреса подписи транзакции. Контракт сравнивает восстановленный адрес с переданным адресом владельца токенов; если они совпадают, проверка проходит успешно.
Функция _updateApproval обновляет значение разрешения после проверки подписи, что означает, что права были переданы. В этот момент уполномоченная сторона может вызвать функцию transferfrom для перевода токенов на указанный адрес.
Истинные транзакции на блокчейне показывают:
owner это адрес кошелька маленького A
В разделе Details содержится информация о адресе контракта токена и сумме.
Spender это адрес хакера
sigDeadline это время действия подписи, signature это информация о подписи малого A
Просматривая записи взаимодействия с Xiao A, обнаружил, что при использовании одной торговой платформы ранее была нажата кнопка по умолчанию для авторизации, то есть практически безлимитный лимит.
Простой обзор: Маленький A ранее дал разрешение на неограниченный лимит USDT для Permit2, затем по неосторожности попал в ловушку фишинга, разработанную хакерами. Получив подпись, хакеры провели операции Permit и Transfer From в контракте Permit2, переместив активы Маленького A. В настоящее время контракт Permit2, похоже, стал раем для фишинга, этот способ фишинга начал активно использоваться около двух месяцев назад.
Как предотвратить?
Учитывая, что контракт Permit2 может стать более распространенным в будущем, больше проектов или интеграций могут осуществлять авторизацию для совместного использования. Эффективные меры предотвращения включают:
Понимание и распознавание содержимого подписи:
Формат подписи Permit обычно содержит ключевую информацию, такую как Owner, Spender, value, nonce и deadline. Чтобы воспользоваться преимуществами Permit2, необходимо научиться распознавать такие форматы подписи. Использование безопасного плагина является хорошим выбором.
Разделение кошелька активов и интерактивного кошелька:
Рекомендуется хранить большие объемы активов в холодном кошельке, а в кошельке для взаимодействия с блокчейном оставлять лишь небольшую сумму, что может значительно уменьшить потери в случае фишинга.
Ограничение суммы авторизации или отмена авторизации:
При обмене на некоторой торговой платформе разрешите только необходимую сумму для взаимодействия. Хотя повторное разрешение на каждое взаимодействие увеличит затраты, это может избежать риска фишинга с подписями Permit2. Пользователи, которым было выдано разрешение, могут отменить его через безопасное расширение.
Определите природу токена, обратите внимание на поддержку функции permit:
В будущем может появиться больше токенов ERC20, реализующих функцию permit. Необходимо следить за тем, поддерживает ли ваш токен эту функцию, если поддерживает, то операции с交易 следует проводить особенно осторожно, строго проверяя каждую неизвестную подпись.
После мошенничества, если токены хранятся на других платформах, необходимо разработать полноценный план спасения:
Если вы обнаружили, что стали жертвой мошенничества, но у вас все еще есть токены, находящиеся на других платформах через стейкинг и другие способы, будьте осторожны при их выводе и переносе. Хакеры могут в любое время следить за балансом адреса, и как только появятся токены, их могут перенести. Необходимо разработать тщательный план спасения, вывод и перенос должны выполняться синхронно, можно использовать MEV для переноса или обратиться за помощью к профессиональной команде безопасности.
В будущем количество фишинговых атак на основе Permit2 может возрасти, этот способ крайне скрытен и труден для предотвращения. С расширением области применения Permit2 также увеличится количество адресов, подверженных риску. Надеюсь, что читатели, увидев эту статью, смогут распространить ее среди большего числа людей, чтобы предотвратить ущерб для большего количества людей.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
9 Лайков
Награда
9
7
Поделиться
комментарий
0/400
InfraVibes
· 10ч назад
Посмотри и подпиши, понял?
Посмотреть ОригиналОтветить0
MetaverseMigrant
· 10ч назад
Снова придумали что-то новое, этот Хакер действительно талант.
Посмотреть ОригиналОтветить0
RektButAlive
· 10ч назад
Повседневно следую за последними уязвимостями~
Посмотреть ОригиналОтветить0
StablecoinEnjoyer
· 10ч назад
Снова новая ловушка, новичок, будьте осторожны с подписанием.
Посмотреть ОригиналОтветить0
NftBankruptcyClub
· 10ч назад
Сколько раз снова попал в ловушку
Посмотреть ОригиналОтветить0
P2ENotWorking
· 10ч назад
又有新неудачники等разыгрывайте людей как лохов了
Посмотреть ОригиналОтветить0
ValidatorViking
· 10ч назад
чёрт возьми, нубы никогда не учатся проверять подписи... вернуться к основам, чёрт возьми
Метод фишинга с подписями Permit2 для новичков, необходимо быть осторожным с рисками безопасности активов.
Раскрытие мошенничества с фишингом подписи Uniswap Permit2
Хакеры являются пугающим присутствием в экосистеме Web3. Для команд проектов открытый код вызывает страх, так как они боятся, что одна ошибка в коде может оставить уязвимость. Для пользователей каждый раз, когда происходит взаимодействие с цепочкой или подпись, существует риск кражи активов. Поэтому вопрос безопасности всегда был одной из основных проблем в криптомире. Из-за особенностей блокчейна украденные активы практически невозможно вернуть, поэтому обладание знаниями в области безопасности особенно важно.
Недавно исследователь обнаружил новый метод фишинга, который может привести к краже активов только с помощью подписи. Этот метод крайне скрытен и труден для предотвращения, и адреса, которые когда-либо взаимодействовали с какой-либо торговой платформой, могут подвергаться риску. В этой статье будет объяснён метод фишинга с подписью, чтобы минимизировать возможные потери активов.
Ход событий
Недавно у моего друга ( маленького А ) были украдены средства из кошелька. В отличие от обычных способов кражи, маленький А не раскрыл свой приватный ключ и не взаимодействовал с фишинговыми сайтами.
Блокчейн-браузер показывает, что USDT в кошельке Xiao A был переведен с помощью функции Transfer From. Это означает, что другой адрес осуществил перевод токенов, а не произошла утечка приватного ключа кошелька.
Детали сделки раскрывают ключевые подсказки:
В чем проблема, как этот адрес получил права на активы? Почему это связано с какой-то торговой платформой?
Чтобы вызвать функцию Transfer From, необходимо, чтобы вызывающая сторона имела право на лимит токена (approve). Перед тем как перевести активы маленького A с этого адреса, также была выполнена операция Permit, обе операции взаимодействуют с контрактом Permit2 определенной торговой платформы.
Permit2 — это новый контракт, выпущенный некоторой торговой платформой в конце 2022 года, который позволяет токенам делиться управлением через различные приложения, стремясь создать более унифицированный, более экономически эффективный и более безопасный пользовательский опыт. С увеличением числа интегрированных проектов, Permit2 ожидается, что будет способствовать стандартизации одобрения токенов во всех приложениях, снижая затраты на транзакции и повышая безопасность смарт-контрактов.
Запуск Permit2 может изменить правила экосистемы Dapp. В традиционном подходе пользователи должны каждый раз предоставлять разрешение при взаимодействии с Dapp, в то время как Permit2 позволяет избежать этого шага, эффективно снижая затраты на взаимодействие пользователей. Permit2 выступает в качестве посредника между пользователями и Dapp, пользователям необходимо лишь предоставить разрешение контракту Permit2, и все Dapp, интегрированные с этим контрактом, могут делиться объемом разрешений.
Тем не менее, это также двусторонний меч. Permit2 превращает действия пользователей в подписи вне цепи, все действия в цепи выполняются посредником. Это позволяет пользователям использовать другие токены для оплаты комиссий за газ, даже если в их кошельке нет ETH, или компенсировать эти расходы через посредника. Но подпись вне цепи также является этапом, который пользователи чаще всего игнорируют, и большинство людей не проверяет содержание подписей внимательно.
Чтобы использовать этот метод фишинга, ключевое условие заключается в том, что кошелек, который будет фишинговать, должен уже быть авторизован для токена на контракт Permit2. В настоящее время, если вы хотите выполнить своп на Dapp или какой-либо торговой платформе, интегрирующей Permit2, необходимо предоставить разрешение контракту Permit2.
Более того, независимо от суммы Swap, контракт Permit2 по умолчанию разрешает пользователю авторизовать весь баланс токена. Хотя кошелек будет предлагать ввести пользовательскую сумму, большинство людей могут просто выбрать максимальное или значение по умолчанию, а значение по умолчанию для Permit2 — это неограниченный лимит.
Это означает, что после 2023 года, если вы взаимодействовали с какой-либо торговой платформой и предоставили разрешение контракту Permit2, вы можете столкнуться с риском этого промывания глаз.
Основное внимание уделяется функции Permit, которая позволяет передавать лимит токенов, предоставленных пользователем контракту Permit2, другим адресам. Хакеры, получив подпись пользователя, могут получить права на токены в кошельке пользователя и осуществить перевод активов.
Подробный анализ события
Функция Permit позволяет пользователям заранее подписывать "контракт", позволяя другим (spender) использовать определенное количество токенов в будущем. Пользователи должны предоставить подпись, подтверждающую подлинность "контракта".
Рабочий процесс функции:
Основное внимание уделяется функциям verify и _updateApproval.
Функция verify извлекает три данных v, r, s из информации о подписи, которые используются для восстановления адреса подписи транзакции. Контракт сравнивает восстановленный адрес с переданным адресом владельца токенов; если они совпадают, проверка проходит успешно.
Функция _updateApproval обновляет значение разрешения после проверки подписи, что означает, что права были переданы. В этот момент уполномоченная сторона может вызвать функцию transferfrom для перевода токенов на указанный адрес.
Истинные транзакции на блокчейне показывают:
Просматривая записи взаимодействия с Xiao A, обнаружил, что при использовании одной торговой платформы ранее была нажата кнопка по умолчанию для авторизации, то есть практически безлимитный лимит.
Простой обзор: Маленький A ранее дал разрешение на неограниченный лимит USDT для Permit2, затем по неосторожности попал в ловушку фишинга, разработанную хакерами. Получив подпись, хакеры провели операции Permit и Transfer From в контракте Permit2, переместив активы Маленького A. В настоящее время контракт Permit2, похоже, стал раем для фишинга, этот способ фишинга начал активно использоваться около двух месяцев назад.
Как предотвратить?
Учитывая, что контракт Permit2 может стать более распространенным в будущем, больше проектов или интеграций могут осуществлять авторизацию для совместного использования. Эффективные меры предотвращения включают:
Разделение кошелька активов и интерактивного кошелька: Рекомендуется хранить большие объемы активов в холодном кошельке, а в кошельке для взаимодействия с блокчейном оставлять лишь небольшую сумму, что может значительно уменьшить потери в случае фишинга.
Ограничение суммы авторизации или отмена авторизации: При обмене на некоторой торговой платформе разрешите только необходимую сумму для взаимодействия. Хотя повторное разрешение на каждое взаимодействие увеличит затраты, это может избежать риска фишинга с подписями Permit2. Пользователи, которым было выдано разрешение, могут отменить его через безопасное расширение.
Определите природу токена, обратите внимание на поддержку функции permit: В будущем может появиться больше токенов ERC20, реализующих функцию permit. Необходимо следить за тем, поддерживает ли ваш токен эту функцию, если поддерживает, то операции с交易 следует проводить особенно осторожно, строго проверяя каждую неизвестную подпись.
После мошенничества, если токены хранятся на других платформах, необходимо разработать полноценный план спасения: Если вы обнаружили, что стали жертвой мошенничества, но у вас все еще есть токены, находящиеся на других платформах через стейкинг и другие способы, будьте осторожны при их выводе и переносе. Хакеры могут в любое время следить за балансом адреса, и как только появятся токены, их могут перенести. Необходимо разработать тщательный план спасения, вывод и перенос должны выполняться синхронно, можно использовать MEV для переноса или обратиться за помощью к профессиональной команде безопасности.
В будущем количество фишинговых атак на основе Permit2 может возрасти, этот способ крайне скрытен и труден для предотвращения. С расширением области применения Permit2 также увеличится количество адресов, подверженных риску. Надеюсь, что читатели, увидев эту статью, смогут распространить ее среди большего числа людей, чтобы предотвратить ущерб для большего количества людей.