Подпись украли? Остерегайтесь фишинга подписи Uniswap Permit2

**Эта статья написана Beosin, специально приглашенным независимым исследователем Spinach Spinach! (twitter@wzxznl) Сообщение в соавторстве с Beosin, исследователем безопасности, Sivan; *

Хакеры, это существование, которое пугает всех в экосистеме Web3.Со стороны проекта, когда хакеры со всего мира могут смотреть на вас, природа кода с открытым исходным кодом заставляет проектную сторону бояться написать неправильную строку кода, когда развитие Оставляя лазейки, после того, как произойдет инцидент безопасности, последствия будут трудновыносимыми.

** Для отдельных лиц: если вы не понимаете, что делаете, каждое взаимодействие в сети или подпись, которую вы делаете, могут привести к краже ваших активов. ** Таким образом, вопросы безопасности всегда были одними из самых неприятных вопросов в мире шифрования, а из-за особенностей блокчейна, когда активы украдены, восстановить их практически невозможно, поэтому особенно важно иметь знание безопасности в мире шифрования.

Совсем недавно хороший друг **Beosin;, Спинах, обнаружил новый метод фишинга, который активно использовался в течение последних двух месяцев. **Пока подпись украдена, этот метод чрезвычайно скрыт, и его трудно предотвратить.**И used;Uniswap; Все интерактивные адреса могут быть подвержены риску. Эта статья, Beosin и независимый исследователь Pincai совместно проводят научно-популярные исследования этого метода фишинга сигнатур и пытаются избежать дополнительных потерь активов для всех. **

Ниже приводится пересказ личного опыта шпината:

процесс

Недавно друг (рабочее имя Xiao;A) нашел Spinach после того, как активы в его кошельке были украдены.В отличие от обычного способа кражи, Xiao;A; не раскрывал закрытый ключ и не взаимодействовал с контрактом фишингового сайта. Шпинат начал расследование кражи активов.

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

В обозревателе цепочки блоков вы можете видеть, что украденный маленький кошелек ;A; USDT; переводится через ;Transfer From; Token; При переводе средств фактически вызывается функция «Transfer» смарт-контракта «Token». ;Передача с; означает, что третья сторона передает ;Токен; с адреса на другой адрес. **Это также означает, что украденный актив был перенесен с другого адреса, токена, а не утечки закрытого ключа кошелька.

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Запрашивая детали транзакции, мы можем найти некоторые ключевые подсказки:

Адрес с порядковым номером;f;d5;1; переводит активы small;A; на адрес с порядковым номером;a;0;c;8;

Эта операция взаимодействует с;Разрешением;2;контрактом;Uniswap;

Итак, возникает сомнение, как адрес, оканчивающийся на ;f;d5;1;, получил разрешение этого актива? Почему это связано с «Uniswap»? Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Прежде всего, нам нужно знать, что для успешного вызова функции «Перевод из» предпосылка заключается в том, что вызывающая сторона должна иметь полномочия квоты «Токен», то есть «одобрить». работающий в цепочке, должен быть знаком с ним.Когда мы используем какое-либо «Dapp», когда речь идет о передаче активов, нам необходимо сначала выполнить операцию авторизации (одобрения), чтобы контракт «Dapp» имел право на передать наши активы.

Чтобы решить эту загадку, нам нужно продолжить копать, ** и ответ находится в записи взаимодействия адреса, оканчивающегося на ;f;d5;1;,** по этому адресу, ;Transfer From;transfer small;A; Before актива вы можете видеть, что адрес также выполнил операцию «Разрешение», и объектами взаимодействия этих двух операций являются контракт «Uniswap» «Permit; 2», затем эта функция «Разрешение» и «Разрешение Uniswap» ;2;Какова ситуация?

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Разрешение Uniswap;2; контракт; Uniswap; в конце; 2022; согласно официальному заявлению, запущен новый смарт-контракт, это контракт на утверждение токенов, который позволяет совместно использовать и управлять авторизацией токенов в разных приложениях, Создать более унифицированный, экономичный и безопасный пользовательский интерфейс.

И в будущем, поскольку все больше и больше проектов интегрируются с Permit; 2, Permit; 2; могут быть стандартизированы во всех приложениях; Token; утверждены. Permit;2 улучшит взаимодействие с пользователем за счет снижения транзакционных издержек и повышения безопасности смарт-контрактов.

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Давайте сначала разберемся, почему «Uniswap» хочет запустить «Permit; 2;», давайте предположим сценарий, когда мы хотим «обменять» на определенном «Dex», традиционный метод взаимодействия заключается в том, что нам нужно авторизовать (одобрить) Дайте это «Dex, а затем «Swap», который обычно стоит нам двух сборов «Gas», а стоимость трения слишком высока для пользователей. Я думаю, что у каждого был такой опыт. Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Источник изображения:

Запуск «Permit; 2» может изменить все правила экологической игры «Dapp».Проще говоря, традиционный метод заключается в том, что вам необходимо авторизоваться каждый раз, когда вы взаимодействуете с «Dapp» для передачи активов, и; Permit; 2; Этот шаг можно пропустить, что может эффективно снизить стоимость взаимодействия с пользователем и улучшить взаимодействие с пользователем.

Решение:;Разрешить;2;как посреднику между пользователем и;Dapp;, пользователю нужно только авторизовать разрешение;Токена;на;Разрешение;2;контракт, все интегрировано;Разрешение;2;контракт ;Dapp; Эта разрешенная сумма может быть разделена. Для пользователей это снижает затраты на взаимодействие и улучшает пользовательский опыт. Для «Dapp» улучшение пользовательского опыта приносит больше пользователей и средств. Это беспроигрышная ситуация, но в то же время время, это также может быть палкой о двух концах, и проблема заключается в том, как взаимодействует ;Permit;2;.

В традиционном режиме взаимодействия, будь то авторизация или перевод средств, это взаимодействие по цепочке для пользователя операции. А ;Permit;2; превращает операцию пользователя в автономную подпись, и все операции в цепочке выполняются промежуточными ролями (такими как;Permit;2;контракты и участники проекта, которые интегрируют ;Permit;2; и т. д. ), польза, которую приносит эта схема, заключается в том, что поскольку роль взаимодействия в цепочке передается от пользователя к промежуточной роли, даже если у пользователя нет «ETH» в кошельке, он может использовать другой «Токен» для оплачивать сбор "Газ" или быть полностью возмещенным промежуточной ролью, это зависит от выбора промежуточных ролей. Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Источник изображения:

Хотя появление «Permit; 2» может изменить будущие правила игры «Dapp», видно, что это сильный обоюдоострый меч.Для пользователей подписи вне сети — это самый простой способ подавить свою защиту. , например, когда мы входим в какое-то «Dapp» с помощью кошелька, нам нужна подпись для подключения, и большинство людей не проверяют содержимое подписи тщательно и не понимают содержание подписи, и это самое страшное место.

Понятно;Разрешение;2;Контракт, вернемся к маленькому;А;событие, мы понимаем, почему активы крадут и взаимодействуют с;Разрешение;2;Контракт, затем пусть Шпинат воспроизведет это;Разрешение;2.Сигнатурный метод фишинга, в первую очередь , важным предварительным условием является то, что фишинговый кошелек должен иметь «токен», авторизованный для «Uniswap», «Permit;2; ;Dapp; или;Swap; на Uniswap;, все они должны быть авторизованы для ;Permit; 2; контракт (шпинат на картинке ниже использует плагин безопасности). Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Еще один пугающий момент заключается в том, что независимо от того, какую сумму вы хотите «обменять», контракт Uniswap «Permit; 2» позволит вам авторизовать «токен» по умолчанию, хотя «MetaMask» позволит вам определить ввод количество, но я полагаю, что большинство людей будут напрямую нажимать на максимальное значение или значение по умолчанию, а значение по умолчанию ;Permit;2; - неограниченная сумма....

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Это также означает, что до тех пор, пока вы взаимодействуете с «Uniswap» и авторизуете сумму контракта «Permit; 2» после 2023 года, вы будете подвергаться риску этого фишингового мошенничества.

Поскольку основное внимание уделяется функции ;Permit;, которая взаимодействовала с контрактом ;Permit;2; по адресу, оканчивающемуся на ;f;d5;1;, эта функция просто использует ваш кошелек, чтобы разрешить вам ;Permit; 2; " Токен» контракта передается на другой адрес, то есть, пока вы получаете свою подпись, хакер может получить полномочия «Токен» в вашем кошельке и перевести ваши активы.

Подробный анализ события

разрешение; Функция:

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2. Вы можете рассматривать функцию «Разрешение» как способ подписывать контракты онлайн. Эта функция позволяет вам (PermitSingle) предварительно подписать «контракт», который позволяет кому-то другому (покупателю) потратить часть ваших токенов в какой-то момент в будущем.

При этом вам также необходимо предоставить подпись (подпись), как и при подписании бумажного договора, чтобы доказать, что этот «договор» действительно подписан вами.

Так как же работает эта функция?

  1. Во-первых, он проверит, превышает ли текущее время срок действия вашей подписи (sigDeadline). Точно так же, как подписанный вами контракт имеет срок действия, если текущее время превышает срок действия, то этот «контракт» больше нельзя использовать, и программа сразу остановится.
  2. Далее он проверяет, действительно ли ваша подпись принадлежит вам. Программа будет использовать специальный метод (signature.verify) для проверки подписи, чтобы убедиться, что подпись действительно подписана вами и не была подделана другими.
  3. Наконец, если проверки пройдены, программа обновит запись, чтобы отметить, что вы разрешили другим использовать некоторые из ваших токенов.

Основное внимание уделяется функциям ;verify; и _updateApproval;.

проверить; функция:

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Видно, что функция Verify получит три данных v, r, s из параметра информации о подписи v, r, s, это значение подписи транзакции, и их можно использовать для восстановления адреса. подписи транзакции, как показано на рисунке выше Из кода видно, что после того, как контракт восстанавливает адрес подписи транзакции, он сравнивает его с входящим адресом владельца токена, если они совпадают, то проверка проходит, и продолжается вызов функции _updateApproval;, если они отличаются, транзакция откатывается.

_updateApproval; Функция:

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Когда проверка подписи будет пройдена, будет вызвана функция _updateApproval; для обновления значения авторизации, что означает, что ваши разрешения были переданы. В это время удобно вызвать функцию ;transferfrom; для передачи токена на указанный адрес после авторизации, как показано в коде ниже.

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Хорошо, после объяснения функции «разрешение», давайте посмотрим на реальную транзакцию в цепочке, мы можем узнать подробности этого взаимодействия:

адрес кошелька владельца; is small;A; (бортовой номер;308;a)

Детали; вы можете увидеть авторизованный; Токен; адрес контракта (USDT) и сумму и другую информацию

Sender; — адрес хакера с хвостовым номером;f;d5;1;

sigDeadline — время действия подписи, а — подпись — информация о подписи small;A;

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

И, оглядываясь назад на записи взаимодействий Xiao;A;, мы обнаружим, что **Xiao;A; ранее использовал «Uniswap» и нажал на сумму авторизации по умолчанию, которая практически не ограничена. **

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Простой обзор - ** мало; А; до этого был авторизован на "Uniswap Permit" в процессе использования "Uniswap"; 2; неограниченный; USDT; сумма, но маленькая; A; случайно при выполнении операций с кошельком Попадание в ;Разрешение;2; сигнатурная фишинговая ловушка, разработанная хакерами; хакер получил подпись small;A; и использовал подпись small;A; в;Permit;2;контракте;Permit;и;Transfer From; Две операции передал маленькому;A;активы прочь,** и, что заметил Спинах, так это то, что;разрешение;2;контракт "Uniswap" стал активным только несколько месяцев назад.

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

источник:

А в записях взаимодействий можно обнаружить, что почти большинство из них помечены фишинговыми адресами (Fake_Phishing), и людей постоянно дурят.

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

источник:;

Как предотвратить?

Учитывая, что контракт «Uniswap Permit; 2» может стать более популярным в будущем, и будет больше интеграционных контрактов «Permit; 2;» для разделения авторизации, мы можем представить себе эффективные методы предотвращения следующим образом:

1 Понять и распознать содержание подписи:

Формат подписи разрешения, как правило, включает в себя: владельца, спонсора, значение, одноразовый номер и формат. (Хорошим вариантом является загрузка плагина безопасности)

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Мы рекомендуем всем читателям и друзьям следующий антифишинговый плагин «Beosin», который может идентифицировать большинство фишинговых веб-сайтов в области Web3 и защитить кошелек и безопасность активов каждого.

Подпись украдена? Остерегайтесь фишинга подписи Uniswap Permit2

Скачать антифишинговый плагин:

2 Кошелек активов и интерактивный кошелек используются отдельно:

Если у вас есть большое количество активов, рекомендуется положить все активы в холодный кошелек, а небольшое количество средств положить в интерактивный кошелек на цепочке, что может значительно снизить потери в случае фишинга.

3 Не разрешайте слишком большую сумму;Разрешить;2;Заключить или отменить авторизацию:

Когда вы «Обмениваете» на «Uniswap», вы разрешаете только ту сумму, с которой хотите взаимодействовать, так что, хотя каждое взаимодействие требует повторной авторизации, будут некоторые затраты на взаимодействие, но вы можете избежать страданий от «Разрешить; 2; Подписать Ловит рыбу. Если вы уже авторизовали квоту, вы можете найти соответствующий плагин безопасности для отмены авторизации.

**4 Определите характер токена, поддерживает ли он; разрешение; функцию: **

В будущем все больше и больше токенов "ERC;20" могут использовать этот протокол расширения для реализации функции "разрешения". Вам нужно обратить внимание на то, поддерживает ли ваш токен эту функцию. Если да, то для token Будьте особенно осторожны в транзакциях или манипуляциях и строго проверяйте, является ли каждая неизвестная подпись подписью функции «разрешения».

5 Если после обмана на других платформах хранятся токены, необходимо разработать комплексный план спасения:

Когда вы обнаружите, что вас обманули и ваши токены были выведены хакерами, но у вас все еще есть токены, хранящиеся на других платформах с помощью таких методов, как залог и т. д., вам необходимо вывести их и перевести на безопасный адрес. на этот раз вам нужно знать, что хакеры могут постоянно следить за вами Баланс токена адреса, потому что у него есть ваша подпись, пока токен появляется на вашем украденном адресе, хакер может передать его напрямую. В настоящее время необходимо сформулировать полный процесс спасения токенов. Два процесса извлечения токенов и передачи токенов должны выполняться вместе. Хакерские транзакции не могут быть вставлены в него. Вы можете использовать передачу «MEV», которая требует некоторого блокчейна. знания и навыки работы с кодом., Вы также можете найти профессиональную охранную компанию, такую как Beosin, команда, чтобы использовать сценарий вытеснения транзакций для достижения.

Я считаю, что в будущем будет все больше и больше фишинга на основе «Разрешения;2;» **этот метод фишинга сигнатур чрезвычайно скрыт и его трудно предотвратить, а с более широким применением «Разрешения;2; все больше и больше адресов под ним.Я надеюсь, что вы перед экраном сможете распространить его среди большего количества людей после прочтения этой статьи, чтобы избежать кражи большего количества людей. **

Ссылка:

Посмотреть Оригинал
Содержание носит исключительно справочный характер и не является предложением или офертой. Консультации по инвестициям, налогообложению или юридическим вопросам не предоставляются. Более подробную информацию о рисках см. в разделе «Дисклеймер».
  • Награда
  • комментарий
  • Поделиться
комментарий
0/400
Нет комментариев
  • Закрепить