Розкриття шахрайства з підписом Uniswap Permit2: будьте обережні з підписами, щоб не бути обкраденими
Хакери є страшним явищем в екосистемі Web3. Для проектів відкритий код ускладнює уникнення вразливостей; для окремих користувачів кожна взаємодія в мережі може призвести до ризику крадіжки активів. Тому питання безпеки завжди було болючим місцем в крипто-світі, а особливості блокчейну ускладнюють повернення вкрадених активів, тому знання про безпеку є особливо важливими.
Нещодавно з'явився новий вид фішингу, який може призвести до крадіжки активів лише за допомогою підпису, метод прихований і важко запобігти. Адреси, які раніше взаємодіяли з певною торговою платформою, можуть бути під загрозою. У цій статті буде проаналізовано цей метод фішингу за допомогою підпису, щоб допомогти читачам уникнути подальших втрат активів.
хід подій
Один друг ( маленький А ) втратив активи з гаманця, але приватний ключ не був розкритий і не було взаємодії з підозрілими контрактами. Розслідування виявило, що USDT маленького А було переміщено через функцію Transfer From, що означає, що активи були переміщені третім стороннім оператором, а не через розкриття приватного ключа гаманця.
Додаткова перевірка деталей交易, виявила:
Адреса перенесе активи малого А на іншу адресу
Ця операція взаємодіє з контрактом Permit2 певної торговельної платформи.
Ключове питання: як ця адреса отримала доступ до активів малюка А? Чому це пов'язано з цією торговою платформою?
Дослідження показує, що перед передачею активів маленького A, ця адреса також виконала одну операцію Permit, і обидві операції взаємодіяли з контрактом Permit2 даної торгової платформи.
Контракт Permit2 є новим контрактом, запровадженим цією торговою платформою наприкінці 2022 року, що має на меті реалізацію спільного використання та управління авторизацією токенів між різними додатками, забезпечуючи більш уніфікований, ефективний та безпечний користувацький досвід. У майбутньому, з інтеграцією більшої кількості проєктів, Permit2 має потенціал для стандартизації затвердження токенів між додатками, зменшуючи витрати на транзакції та підвищуючи безпеку.
Впровадження Permit2 може змінити правила екосистеми Dapp. У традиційній моделі користувачеві потрібно окремо надавати дозвіл щоразу при взаємодії з Dapp, тоді як Permit2 діє як посередник, і користувачеві потрібно надати дозвіл лише одного разу, всі Dapp, інтегровані з Permit2, можуть ділитися лімітом дозволів. Це підвищує зручність для користувачів, але також може нести ризики, проблема полягає у способі взаємодії з Permit2.
Permit2 перетворює дії користувача на підписання поза мережею, а дії в мережі виконуються проміжною особою. Це дозволяє користувачам оплачувати Gas без ETH або за рахунок проміжної особи, але підписання поза мережею також є найбільш ігнорованим етапом користувачами.
Повертаючись до випадку маленького А, крадіжка активів пов'язана з взаємодією з контрактом Permit2. Ключовою умовою є те, що зламаний гаманець вже повинен був надати дозвіл контракту Permit2. Варто зазначити, що в даний час для проведення свопу на Dapp, що інтегрує Permit2, або на цій торговій платформі, потрібно надати дозвіл контракту Permit2.
Більш тривожним є те, що незалежно від суми Swap, контракт Permit2 на цій торговій платформі за замовчуванням вимагає авторизацію всього балансу. Хоча гаманці можуть пропонувати налаштування для введення суми, більшість користувачів, ймовірно, виберуть максимальну або значення за замовчуванням, а значення за замовчуванням для Permit2 є необмеженим.
Це означає, що, якщо після 2023 року ви мали справу з цією торговою платформою та надали дозвіл контракту Permit2, ви можете піддатися ризику цього замилювання очей.
Замилювання очей полягає у функції Permit, яка дозволяє через підпис передавати обсяги токенів, дозволені контракту Permit2, іншим адресам. Коли хакер отримує підпис, він може контролювати токени в гаманці користувача та переводити активи.
детальний аналіз події
Функція Permit подібна до онлайн підписання контракту, дозволяє заздалегідь уповноважити інших (spender) на майбутнє використання певної кількості токенів. Функція перевіряє термін дії підпису, підтверджує автентичність підпису, а потім оновлює записи про уповноваження.
функція verify витягує дані v, r, s з інформації підпису, щоб відновити адресу підпису та порівняти з адресою власника токена, якщо верифікація пройшла, продовжує викликати функцію _updateApproval.
Функція _updateApproval оновлює значення дозволу після перевірки підпису, реалізуючи передачу прав. У цей момент уповноважена сторона може викликати функцію transferfrom для переведення токенів на вказану адресу.
Аналіз реальних транзакцій на блокчейні видно:
owner є адресою гаманця маленького А
Деталі показують адресу контракту токена (USDT) та інформацію про суму тощо
Spender є адресою хакера
sigDeadline це час дії підпису
signature є підписом маленького A
Відстеживши взаємодії малюка А, виявили, що під час попереднього використання цієї торгової платформи він за замовчуванням надав майже безмежний ліміт.
Коротко кажучи, маленький A раніше надав безмежний ліміт USDT контракту Permit2, а потім випадково потрапив у фішингову пастку, спроектовану хакерами, що використовує підпис Permit2. Отримавши підпис, хакер виконав операції Permit і Transfer From у контракті Permit2, перемістивши активи маленького A. Наразі контракт Permit2 цієї торгової платформи, здається, став розсадником фішингу, а цей метод фішингу активізувався близько двох місяців тому.
Як запобігти?
Враховуючи, що контракт Permit2 може стати більш поширеним у майбутньому, дедалі більше проєктів можуть інтегрувати цей контракт для надання дозволів на спільне використання, ефективні запобіжні заходи включають:
Розуміти та ідентифікувати зміст підпису:
Підпис Permit зазвичай містить ключову інформацію, таку як Owner, Spender, value, nonce та deadline. Використання безпечних плагінів допомагає виявити цей формат підпису.
Розділення зберігання активів і інтерактивного гаманця:
Рекомендується зберігати велику кількість активів у холодному гаманці, а в інтерактивному гаманці зберігати лише невелику кількість коштів, щоб зменшити потенційні втрати.
Обмеження розміру дозволу або скасування дозволу:
Під час Swap на цій торговій платформі авторизуйте лише необхідну суму для взаємодії. Хоча повторна авторизація кожного разу збільшує витрати, це може уникнути ризику фішингу підпису Permit2. Авторизовані користувачі можуть скасувати авторизацію за допомогою безпечного плагіна.
Визначте, чи токен підтримує функцію permit:
Зверніть увагу на те, чи підтримують токени самостійного утримання цю функцію; якщо підтримують, потрібно бути особливо обережними, ретельно перевіряти кожен невідомий підпис.
Розробка вдосконаленого плану порятунку активів:
Якщо ви виявили, що стали жертвою замилювання очей, але все ще маєте токени на інших платформах, будьте обережні при їх вилученні та переміщенні. Розгляньте можливість використання MEV-переміщення або зверніться за допомогою до професійної команди безпеки, щоб уникнути повторного перехоплення хакерами.
У майбутньому риболовля на основі Permit2 може стати більш поширеною, цей спосіб підписного риболовства надзвичайно прихований і важко захистити. З розширенням сфери застосування Permit2 також зросте кількість адрес, що піддаються ризику. Сподіваюсь, читачі зможуть поширити цю інформацію, щоб уникнути втрат для більшої кількості людей.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Permit2 підпис риболовля нове замилювання очей: користувачі платформи повинні бути обережними
Розкриття шахрайства з підписом Uniswap Permit2: будьте обережні з підписами, щоб не бути обкраденими
Хакери є страшним явищем в екосистемі Web3. Для проектів відкритий код ускладнює уникнення вразливостей; для окремих користувачів кожна взаємодія в мережі може призвести до ризику крадіжки активів. Тому питання безпеки завжди було болючим місцем в крипто-світі, а особливості блокчейну ускладнюють повернення вкрадених активів, тому знання про безпеку є особливо важливими.
Нещодавно з'явився новий вид фішингу, який може призвести до крадіжки активів лише за допомогою підпису, метод прихований і важко запобігти. Адреси, які раніше взаємодіяли з певною торговою платформою, можуть бути під загрозою. У цій статті буде проаналізовано цей метод фішингу за допомогою підпису, щоб допомогти читачам уникнути подальших втрат активів.
хід подій
Один друг ( маленький А ) втратив активи з гаманця, але приватний ключ не був розкритий і не було взаємодії з підозрілими контрактами. Розслідування виявило, що USDT маленького А було переміщено через функцію Transfer From, що означає, що активи були переміщені третім стороннім оператором, а не через розкриття приватного ключа гаманця.
Додаткова перевірка деталей交易, виявила:
Ключове питання: як ця адреса отримала доступ до активів малюка А? Чому це пов'язано з цією торговою платформою?
Дослідження показує, що перед передачею активів маленького A, ця адреса також виконала одну операцію Permit, і обидві операції взаємодіяли з контрактом Permit2 даної торгової платформи.
Контракт Permit2 є новим контрактом, запровадженим цією торговою платформою наприкінці 2022 року, що має на меті реалізацію спільного використання та управління авторизацією токенів між різними додатками, забезпечуючи більш уніфікований, ефективний та безпечний користувацький досвід. У майбутньому, з інтеграцією більшої кількості проєктів, Permit2 має потенціал для стандартизації затвердження токенів між додатками, зменшуючи витрати на транзакції та підвищуючи безпеку.
Впровадження Permit2 може змінити правила екосистеми Dapp. У традиційній моделі користувачеві потрібно окремо надавати дозвіл щоразу при взаємодії з Dapp, тоді як Permit2 діє як посередник, і користувачеві потрібно надати дозвіл лише одного разу, всі Dapp, інтегровані з Permit2, можуть ділитися лімітом дозволів. Це підвищує зручність для користувачів, але також може нести ризики, проблема полягає у способі взаємодії з Permit2.
Permit2 перетворює дії користувача на підписання поза мережею, а дії в мережі виконуються проміжною особою. Це дозволяє користувачам оплачувати Gas без ETH або за рахунок проміжної особи, але підписання поза мережею також є найбільш ігнорованим етапом користувачами.
Повертаючись до випадку маленького А, крадіжка активів пов'язана з взаємодією з контрактом Permit2. Ключовою умовою є те, що зламаний гаманець вже повинен був надати дозвіл контракту Permit2. Варто зазначити, що в даний час для проведення свопу на Dapp, що інтегрує Permit2, або на цій торговій платформі, потрібно надати дозвіл контракту Permit2.
Більш тривожним є те, що незалежно від суми Swap, контракт Permit2 на цій торговій платформі за замовчуванням вимагає авторизацію всього балансу. Хоча гаманці можуть пропонувати налаштування для введення суми, більшість користувачів, ймовірно, виберуть максимальну або значення за замовчуванням, а значення за замовчуванням для Permit2 є необмеженим.
Це означає, що, якщо після 2023 року ви мали справу з цією торговою платформою та надали дозвіл контракту Permit2, ви можете піддатися ризику цього замилювання очей.
Замилювання очей полягає у функції Permit, яка дозволяє через підпис передавати обсяги токенів, дозволені контракту Permit2, іншим адресам. Коли хакер отримує підпис, він може контролювати токени в гаманці користувача та переводити активи.
детальний аналіз події
Функція Permit подібна до онлайн підписання контракту, дозволяє заздалегідь уповноважити інших (spender) на майбутнє використання певної кількості токенів. Функція перевіряє термін дії підпису, підтверджує автентичність підпису, а потім оновлює записи про уповноваження.
функція verify витягує дані v, r, s з інформації підпису, щоб відновити адресу підпису та порівняти з адресою власника токена, якщо верифікація пройшла, продовжує викликати функцію _updateApproval.
Функція _updateApproval оновлює значення дозволу після перевірки підпису, реалізуючи передачу прав. У цей момент уповноважена сторона може викликати функцію transferfrom для переведення токенів на вказану адресу.
Аналіз реальних транзакцій на блокчейні видно:
Відстеживши взаємодії малюка А, виявили, що під час попереднього використання цієї торгової платформи він за замовчуванням надав майже безмежний ліміт.
Коротко кажучи, маленький A раніше надав безмежний ліміт USDT контракту Permit2, а потім випадково потрапив у фішингову пастку, спроектовану хакерами, що використовує підпис Permit2. Отримавши підпис, хакер виконав операції Permit і Transfer From у контракті Permit2, перемістивши активи маленького A. Наразі контракт Permit2 цієї торгової платформи, здається, став розсадником фішингу, а цей метод фішингу активізувався близько двох місяців тому.
Як запобігти?
Враховуючи, що контракт Permit2 може стати більш поширеним у майбутньому, дедалі більше проєктів можуть інтегрувати цей контракт для надання дозволів на спільне використання, ефективні запобіжні заходи включають:
Розділення зберігання активів і інтерактивного гаманця: Рекомендується зберігати велику кількість активів у холодному гаманці, а в інтерактивному гаманці зберігати лише невелику кількість коштів, щоб зменшити потенційні втрати.
Обмеження розміру дозволу або скасування дозволу: Під час Swap на цій торговій платформі авторизуйте лише необхідну суму для взаємодії. Хоча повторна авторизація кожного разу збільшує витрати, це може уникнути ризику фішингу підпису Permit2. Авторизовані користувачі можуть скасувати авторизацію за допомогою безпечного плагіна.
Визначте, чи токен підтримує функцію permit: Зверніть увагу на те, чи підтримують токени самостійного утримання цю функцію; якщо підтримують, потрібно бути особливо обережними, ретельно перевіряти кожен невідомий підпис.
Розробка вдосконаленого плану порятунку активів: Якщо ви виявили, що стали жертвою замилювання очей, але все ще маєте токени на інших платформах, будьте обережні при їх вилученні та переміщенні. Розгляньте можливість використання MEV-переміщення або зверніться за допомогою до професійної команди безпеки, щоб уникнути повторного перехоплення хакерами.
У майбутньому риболовля на основі Permit2 може стати більш поширеною, цей спосіб підписного риболовства надзвичайно прихований і важко захистити. З розширенням сфери застосування Permit2 також зросте кількість адрес, що піддаються ризику. Сподіваюсь, читачі зможуть поширити цю інформацію, щоб уникнути втрат для більшої кількості людей.