Новий обман з підписом Uniswap Permit2: посібник з виявлення ризиків та запобігання

robot
Генерація анотацій у процесі

Розкриття: Фішингова схема підпису Uniswap Permit2

Хакери є страшним явищем у екосистемі Web3. Для проектів відкритий код означає, що глобальні хакери можуть зацікавитися вами, і якщо виникне проблема з безпекою, наслідки можуть бути важкими. Для особистих користувачів, якщо вони не розуміють, що вони роблять, кожна взаємодія або підпис на ланцюгу може призвести до крадіжки активів. Тому питання безпеки завжди є однією з найскладніших проблем у крипто-світі. Через особливості блокчейну, якщо активи були вкрадені, їх майже неможливо повернути, тому в крипто-світі особливо важливо володіти знаннями про безпеку.

Нещодавно активізувався новий вид рибальства, при якому, як тільки підписано, відбувається крадіжка. Метод вкрай прихований і важкий для запобігання. Адреси, які взаємодіяли з Uniswap, можуть бути під загрозою. У цій статті ми розглянемо цей метод підписного рибальства, щоб уникнути подальших втрат активів.

Хід подій

Нещодавно один мій друг ( тимчасово названий Маленький А ) втратив активи свого гаманця. На відміну від звичних способів крадіжки, Маленький А не розкрив свій приватний ключ і не взаємодіяв з контрактами фішингових сайтів.

Блокчейн-оглядач показує, що USDT у гаманці маленького А було переміщено за допомогою функції Transfer From. Це означає, що інша адреса виконала операцію, щоб забрати токени, а не було витоку приватного ключа гаманця.

Деталі угоди показують:

  • Адреса з尾号fd51 перевела активи маленького А на адресу з尾号a0c8
  • Це дія, яка взаємодіє з контрактом Permit2 Uniswap.

Ключове питання: як адреса з кінцевими цифрами fd51 отримала доступ до цього активу? Чому це пов'язано з Uniswap?

Подальше розслідування виявило, що перед переведенням активів малого A адреса, що закінчується на fd51, також виконала операцію Permit, і об'єктами взаємодії в цих двох операціях є контракт Permit2 Uniswap.

Підписався і став жертвою? Розкриття схемі замилювання очей Uniswap Permit2

Uniswap Permit2 є новим контрактом, випущеним наприкінці 2022 року, який дозволяє токенам надавати дозвіл на спільне використання та управління в різних додатках, спрямованим на створення більш уніфікованого, більш економічно ефективного та безпечного користувацького досвіду. З інтеграцією Permit2 в більше проектів, це дозволить стандартизувати затвердження Token у всіх додатках, знижуючи витрати на транзакції та підвищуючи безпеку смарт-контрактів.

Permit2 як посередник між користувачем та Dapp, користувачеві потрібно лише надати права на токени контракту Permit2, всі Dapp, які інтегрують Permit2, можуть ділитися цим обсягом дозволу. Це знижує витрати на взаємодію користувача та підвищує досвід. Але це також двосічний меч, проблема полягає у способі взаємодії з Permit2.

У традиційних способах взаємодії авторизація та переміщення коштів є онлайновими взаємодіями користувача. А Permit2 перетворює дії користувача на підпис поза ланцюгом, всі онлайнові операції виконуються проміжною особою. Це приносить переваги, оскільки навіть якщо в гаманці користувача немає ETH, він може використовувати інші токени для сплати комісії за газ або отримати відшкодування від проміжної особи.

Проте, підписування поза ланцюгом є етапом, який користувачі найчастіше ігнорують. Багато хто не перевіряє зміст підпису уважно і не розуміє його значення, що є найнебезпечнішим моментом.

Щоб викликати це підписування Permit2 для риболовлі, ключовою умовою є те, що зловмисний гаманець повинен вже надати токен дозволу для контракту Permit2 Uniswap. Наразі, щоб здійснити обмін в Dapp, що інтегрує Permit2, або на Uniswap, необхідно надати дозвіл контракту Permit2.

Ще страшніше те, що незалежно від суми Swap, контракт Permit2 Uniswap за замовчуванням дозволяє користувачеві уповноважити весь баланс цього токена. Хоча MetaMask дозволяє вводити кастомізовану суму, більшість людей, ймовірно, просто оберуть максимальне або значення за замовчуванням, а значення за замовчуванням для Permit2 є необмеженим.

Підписка була вкрадена? Розкриття шахрайства з підписами Uniswap Permit2

Це означає, що якщо ви взаємодіяли з Uniswap після 2023 року та надали дозвіл на використання для контракту Permit2, ви можете бути піддані ризику цього замилювання очей.

Ключовим моментом є функція Permit, яка дозволяє хакерам використовувати ваш підпис для передачі дозволеного обсягу токенів Permit2 на інші адреси. Як тільки хакер отримає ваш підпис, він зможе отримати доступ до токенів у вашому гаманці та перемістити активи.

Детальний аналіз події

робочий процес функції permit:

  1. Перевірте, чи не перевищує поточний час термін дії підпису (sigDeadline)
  2. Перевірка автентичності підпису
  3. Якщо перевірка, оновлення записів дозволяє іншим використовувати ваші токени

Основна увага приділяється функціям verify та _updateApproval.

функція verify отримує три дані v, r, s з інформації підпису, які використовуються для відновлення адреси підпису транзакції. Контракт порівнює відновлену адресу з переданою адресою власника токена, якщо вони однакові, то верифікація проходить, і викликається функція _updateApproval; якщо різні, то транзакція скасовується.

Функція _updateApproval оновлює значення дозволу після перевірки підпису, що означає, що ваші повноваження передаються. У цей момент уповноважена сторона може викликати функцію transferfrom, щоб перевести токени на вказану адресу.

Ланцюгові реальні交易 показують:

  • owner є адресою гаманця маленького A ( з кінцевими цифрами 308a)
  • У деталях можна побачити адресу контракту токена (USDT) та інформацію про суму та інші дані
  • Spender є адресою хакера з останніми цифрами fd51
  • sigDeadline це час дії підпису, signature це інформація про підпис маленького A

Підписався і став жертвою? Розкриття замилювання очей підписів Uniswap Permit2

Оглядаючи записи взаємодії малюка А, виявилося, що під час використання Uniswap він натиснув на стандартний ліміт авторизації, тобто майже безмежний ліміт.

Простий огляд: раніше маленький А надав безмежний ліміт USDT для Permit2, користуючись Uniswap. Пізніше, під час роботи з гаманцем, він випадково потрапив у пастку фішингу, розроблену хакерами, пов'язану з підписом Permit2. Після отримання підпису маленького А, хакер здійснив операції Permit і Transfer From у контракті Permit2, перемістивши активи маленького А. Наразі контракт Permit2 Uniswap, здається, став розсадником фішингу, цей тип підписного фішингу почав активно діяти приблизно два місяці тому.

Як запобігти?

Враховуючи, що контракт Uniswap Permit2 може стати більш поширеним у майбутньому, більше проектів можуть інтегрувати його для авторизації спільного використання, ефективними заходами протидії є:

  1. Розуміти та розпізнавати вміст підпису: Формат підпису Permit зазвичай містить ключову інформацію, таку як Owner, Spender, value, nonce та deadline. Якщо ви хочете скористатися перевагами та низькою вартістю, які надає Permit2, ви повинні навчитися розпізнавати цей формат підпису. Використання безпечних плагінів є непоганим вибором.

Підписавшись, вас можуть обманути? Розкриття шахрайства з підписами Uniswap Permit2

  1. Роздільне використання активного гаманця та інтерактивного гаманця: Якщо ви маєте велику кількість активів, рекомендується зберігати основні активи в холодному гаманці, а в гаманці для взаємодії з ланцюгом залишати лише невелику кількість коштів, що може суттєво зменшити втрати у разі фішингового замилювання очей.

  2. Обмеження суми, що надається контракту Permit2, або скасування авторизації: Під час обміну на Uniswap авторизуйте лише ту суму, яка потрібна для взаємодії. Хоча повторна авторизація кожного разу збільшить витрати, це допоможе уникнути фішингу підписів Permit2. Якщо ліміт вже авторизовано, можна використовувати безпечний плагін для скасування авторизації.

  3. Визначте природу токена, дізнайтеся, чи підтримує він функцію permit: У майбутньому може з'явитися більше токенів ERC20, які реалізують функцію permit. Потрібно звертати увагу на те, чи підтримують токени, що у вас є, цю функцію; якщо підтримують, то будьте особливо обережні під час угод або операцій, ретельно перевіряйте, чи кожен незнайомий підпис стосується функції permit.

  4. Якщо після обману ще залишаються токени на інших платформах, необхідно розробити вдосконалений план порятунку: Виявивши, що стали жертвою замилювання очей, якщо у вас ще є токени на інших платформах через стейкінг та інші способи, потрібно їх витягти та перенести. Слід звернути увагу, що хакери можуть в будь-який момент контролювати баланс вашої адреси. Розробіть детальний процес порятунку токенів, щоб забезпечити одночасне виконання витягування та перенесення, щоб запобігти вставкам угод хакерами. Можна розглянути можливість використання MEV-переносу або звернутися за допомогою до професійних безпекових компаній, таких як команда Beosin.

У майбутньому можливе збільшення кількості риболовлі на основі Permit2. Цей спосіб підпису риболовлі є надзвичайно прихованим і важко піддається захисту; із розширенням сфери застосування Permit2 також зросте кількість адрес, які піддаються ризику. Сподіваюсь, що читачі після прочитання цієї статті зможуть поширити її серед більшої кількості людей, щоб уникнути втрат для багатьох.

UNI5.28%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 8
  • Репост
  • Поділіться
Прокоментувати
0/400
DeFiGraylingvip
· 4год тому
Безпека справді є надзвичайно важливою.
Переглянути оригіналвідповісти на0
TokenSleuthvip
· 4год тому
Перший свідок жахливої трагедії. Цей вид шахрайства справді важко запобігти.
Переглянути оригіналвідповісти на0
NotFinancialAdviservip
· 08-10 23:39
Знову я, великий uni, беру на себе відповідальність за ризики.
Переглянути оригіналвідповісти на0
BlockTalkvip
· 08-10 15:17
Знову у пастці чи вкрадено
Переглянути оригіналвідповісти на0
AirdropChaservip
· 08-10 15:16
Є спосіб повернути? Досить жахливо
Переглянути оригіналвідповісти на0
ZenChainWalkervip
· 08-10 15:06
А, знову новий шахрайський прийом. Рано померти - рано стати співучасником.
Переглянути оригіналвідповісти на0
AirdropHunterZhangvip
· 08-10 15:05
Ой, так довго користувався безкоштовно, тепер справді потрібно платити, занадто багато обмінював uniV3.
Переглянути оригіналвідповісти на0
LiquidationAlertvip
· 08-10 14:50
Побачивши стільки вразливостей протоколу, дійсно не наважуюсь підписувати.
Переглянути оригіналвідповісти на0
  • Закріпити