**Цю статтю написав; Beosin; спеціальний запрошений незалежний дослідник Шпинат Шпинат! (twitter@wzxznl) Допис у співавторстві з: Beosin; дослідником безпеки; Sivan; *
Хакери, це існування, яке лякає всіх в екосистемі Web3. Для сторони проекту, коли хакери з усього світу можуть витріщатися на вас, природа коду з відкритим кодом змушує сторону проекту боятися написати неправильний рядок коду, коли розвиток Залишаючи лазівки, як тільки станеться інцидент безпеки, наслідки буде важко витримати.
**Що стосується окремих осіб, якщо ви не розумієте, що робите, кожна взаємодія в ланцюжку або підпис, який ви робите, потенційно може призвести до викрадення ваших активів. ** Таким чином, питання безпеки завжди були одними з найбільш неприємних питань у світі шифрування, і через особливості блокчейну, як тільки активи викрадено, їх майже неможливо відновити, тому особливо важливо мати знання безпеки у світі шифрування.
Нещодавно **хороший друг Беосіна; Шпинат виявив новий метод фішингу, який був активним протягом останніх двох місяців, поки підпис вкрадено, метод надзвичайно прихований і його важко запобігти і used;Uniswap; Усі інтерактивні адреси можуть бути піддані ризикам. Ця стаття; Beosin; і незалежний дослідник Pincai спільно проводять науково-популярні дослідження цієї технології фішингу та намагаються уникнути додаткових втрат активів для всіх. **
Нижче наведено переказ особистого досвіду шпинату:
процес
Нещодавно друг (попереднє ім’я Xiao;A) знайшов Spinach після викрадення активів у його гаманці. На відміну від звичайного способу крадіжки, Xiao;A; не розкривав закритий ключ і не взаємодіяв із контрактом фішингового веб-сайту. Тож Шпинат почав розслідувати розкрадання активів.
У браузері ланцюга блоків ви можете побачити, що маленький гаманець ;A; вкрадено; USDT; передається через ;Transfer From; Token; Під час переказу коштів насправді викликається функція «Transfer» смарт-контракту «Token». ;Transfer From; означає, що третя сторона передає ;Token; в адресі на іншу адресу. **Це також означає, що викрадений актив було передано з іншої адреси; токен; замість витоку приватного ключа гаманця.
Запитуючи деталі транзакції, ми можемо знайти деякі ключові підказки:
Адреса з кінцевим номером;f;d5;1; передає активи малого;A; на адресу з кінцевим номером;a;0;c;8;
Ця операція взаємодіє з;Дозволом;2;контрактом;Uniswap;
Отже, виникає сумнів, як адреса, що закінчується на ;f;d5;1;, отримала дозвіл цього активу? Чому це пов'язано з "Uniswap"?
Перш за все, нам потрібно знати, що для успішного виклику функції «Transfer From;» передумовою є те, що абонент повинен мати квотні повноваження «Token», тобто «схвалити». Я вірю, що кожен, хто має Коли ми використовуємо якийсь "Dapp", коли йдеться про передачу активів, нам потрібно спочатку виконати операцію авторизації (затвердження), щоб контракт "Dapp" мав право передати наші активи.
Щоб вирішити цю головоломку, нам потрібно продовжити копати, і відповідь знаходиться в записі взаємодії адреси, що закінчується на ;f;d5;1;, за цією адресою, ;Transfer From;transfer small;A; Перед активу, ви бачите, що адреса також виконала операцію «Дозвіл», а об’єктами взаємодії цих двох операцій є контракт «Дозвіл;2» Uniswap;, потім ця функція «Дозвол» і «Дозвіл Uniswap» ;2;Яка ситуація?
Uniswap Permit;2; контракт; Uniswap; наприкінці; 2022; новий смарт-контракт запущено, згідно з офіційною заявою, це контракт на затвердження токенів, який дозволяє спільно використовувати та керувати авторизацією токенів у різних програмах, Створити більш уніфікований, економічно ефективний і безпечний досвід користувача.
І в майбутньому, оскільки все більше і більше проектів буде інтегровано з Permit; 2, Permit; 2; може бути стандартизовано в усіх програмах; Token; затверджено. Permit;2 покращить взаємодію з користувачем за рахунок зниження транзакційних витрат і підвищення безпеки смарт-контрактів.
Давайте спочатку зрозуміємо, чому "Uniswap" хоче запустити "Permit;2;", давайте припустимо сценарій, коли ми хочемо "Swap" на певному "Dex", традиційний метод взаємодії полягає в тому, що нам потрібно авторизувати (схвалити) Дайте це «Dex, а потім «Swap», який зазвичай коштує нам дві комісії «Gas», а вартість тертя занадто висока для користувачів. Я думаю, кожен мав такий досвід.
Джерело зображення:
Запуск "Permit; 2" може повністю змінити правила екологічної гри "Dapp". Простіше кажучи, традиційний метод полягає в тому, що вам потрібно авторизуватися щоразу, коли ви взаємодієте з "Dapp" для передачі активів, і; Permit; 2; Цей крок можна пропустити, що може ефективно зменшити вартість взаємодії користувача та забезпечити кращий досвід користувача.
Рішенням є;Permit;2;як посередник між користувачем і;Dapp;, користувачеві потрібно лише авторизувати дозвіл;Token;на;Permit;2;контракт, усе інтегровано;Permit;2;контракт ;Dapp; Ця авторизована сума може бути спільною. Для користувачів це зменшує витрати на взаємодію та покращує взаємодію з користувачем. Для «Dapp» покращення взаємодії з користувачем приносить більше користувачів і коштів. Це безпрограшна ситуація, але водночас час, це також може бути палкою з двома кінцями, і проблема полягає в тому, як взаємодіє ;Permit;2;.
У традиційному режимі взаємодії, будь то авторизація чи переказ коштів, це взаємодія по ланцюжку для користувача операції. А ;Permit;2; перетворює операцію користувача на підпис поза ланцюжком, і всі операції в ланцюжку завершуються проміжною роллю (такою як;Permit;2;контракт і інтегрований;Permit;2; сторона проекту тощо). ) , перевага цієї схеми полягає в тому, що оскільки роль взаємодії в ланцюжку передається від користувача до проміжної ролі, навіть якщо користувач не має «ETH» у гаманці, він може використовувати інший «токен», щоб платити «Газ» або повністю компенсувати проміжну роль. Це залежить від вибору проміжної ролі.
Джерело зображення:
Незважаючи на те, що поява "Permit;2" може змінити майбутні правила гри "Dapp", можна побачити, що це сильна палиця з двома кінцями. Для користувачів підписи поза ланцюгом є найпростішим способом подолати свій захист Посилання , наприклад, коли ми входимо в якийсь "Dapp" за допомогою гаманця, нам потрібен підпис для підключення, і більшість людей не перевіряють уважно вміст підпису та не розуміють вміст підпису, і це найстрашніше місце.
Understound;Permit;2;Contract, повернемося до невеликої;A; події, ми розуміємо, чому активи викрадені та взаємодіємо з;Permit;2;Contract, тоді дозвольте Spinach відтворити це;Permit; 2. Метод фішингу підпису, перш за все , важливою передумовою є те, що гаманець, який підлягає фішингу, повинен мати «Token» авторизований для «Uniswap»; «Permit;2; ;Dapp; або ;Swap; на Uniswap;, усі вони повинні бути авторизовані для ;Permit; 2; договір (шпинат на малюнку нижче використовує плагін безпеки).
Інший страшний момент полягає в тому, що незалежно від суми, яку ви хочете «обмінити», контракт «Permit;2» Uniswap; дозволить вам авторизувати «Token» за замовчуванням, хоча «MetaMask» дозволить вам визначити введення кількість, але я вважаю, що більшість людей безпосередньо клацнуть максимальне значення або значення за замовчуванням, а значення за замовчуванням ;Permit;2; є необмеженою кількістю....
Це також означає, що якщо ви взаємодіяли з «Uniswap» і авторизували суму в контракті «Permit; 2» після 2023 року, ви будете наражатися на ризик цього фішингового шахрайства.
Оскільки фокус зосереджений на функції ;Permit;, яка взаємодіяла з контрактом ;Permit;2; в адресі, що закінчується на ;f;d5;1;, ця функція просто використовує ваш гаманець, щоб авторизувати вас ;Permit; 2; The " Токен» контракту передається на іншу адресу, тобто поки ви отримуєте свій підпис, хакер може отримати повноваження «Токен» у вашому гаманці та перенести ваші активи.
Детальний аналіз події
дозвіл; Функція:
Ви можете розглядати функцію «Дозвол» як спосіб підписувати контракти в Інтернеті. Ця функція дозволяє вам (PermitSingle) попередньо підписати «контракт», який дозволяє комусь іншому (покупцеві) витратити частину ваших жетонів у певний момент у майбутньому.
При цьому вам також потрібно надати підпис (підпис), як і підписуючи паперовий договір, щоб підтвердити, що цей «договір» дійсно підписаний вами.
Отже, як працює ця функція?
Спочатку він перевірить, чи поточний час перевищує термін дії вашого підпису (sigDeadline). Подібно до того, як підписаний вами контракт має дату закінчення терміну дії, якщо поточний час перевищує дату закінчення терміну дії, цей «контракт» більше не можна використовувати, і програма зупиниться безпосередньо.
Далі він перевіряє, чи ваш підпис дійсно ваш. Програма за допомогою спеціального методу (signature.verify) перевірить підпис, щоб переконатися, що підпис дійсно підписаний вами, а не підроблений іншими.
Нарешті, якщо перевірки пройдено, програма оновить запис, щоб відзначити, що ви дозволили іншим використовувати деякі з ваших маркерів.
Основна увага зосереджена на функціях ;verify; і _updateApproval;.
перевірити; функція:
Можна побачити, що функція verify; отримає три дані; v, r, s; з параметра інформації про підпис, v, r, s; це значення підпису транзакції, і їх можна використовувати для відновлення адреси підпису транзакції, як показано на малюнку вище. З коду видно, що після того, як контракт відновлює адресу підпису транзакції, він порівнює її з адресою власника вхідного токена. Якщо вони однакові, перевірка проходить, і виклик функції _updateApproval; продовжується. Якщо вони різні, транзакція відкочується.
_updateApproval; Функція:
Коли перевірку підпису пройдено, буде викликана функція _updateApproval; для оновлення значення авторизації, що означає, що ваші дозволи передано. У цей час зручно викликати функцію ;transferfrom;, щоб передати маркер на вказану адресу після авторизації, як показано в коді нижче.
Гаразд, після пояснення функції «дозвіл», давайте подивимося на реальну транзакцію в ланцюжку. Ми можемо дізнатися деталі цієї взаємодії:
власник; невеликий; адреса гаманця A; (записний номер; 308; a)
Подробиці; ви можете побачити авторизований; токен; адресу контракту (USDT), суму та іншу інформацію
Spender; це адреса хакера з хвостовим номером;f;d5;1;
sigDeadline; — ефективний час підпису, і;signature; — інформація підпису small;A;
І, озираючись на записи взаємодії xiao;A;, ми виявимо, що **xiao;A; раніше використовував «Uniswap» і натискав суму авторизації за замовчуванням, яка є майже необмеженою. **
Простий огляд полягає в тому, що ** невеликий; A; був авторизований "Uniswap Permit" у процесі використання "Uniswap" раніше; 2; необмежений; USDT; сума, але невелика; A; випадково під час виконання операцій гаманця Потрапляння в ;Permit;2; пастка для фішингу з підписом, розроблена хакерами, хакер отримав підпис small;A; і використав підпис small;A; у;Permit;2;contract;Permit;and;Transfer From; Дві операції передав активи малого;A;,** і Шпинат зауважив, що;Дозвіл;2;контракт «Uniswap;» став активним лише кілька місяців тому.
джерело:
І в записах взаємодії можна виявити, що майже більшість із них позначено фішинговими адресами (Fake_Phishing), і людей постійно обманюють.
джерело:;
Як запобігти?
Враховуючи, що контракт «Uniswap Permit; 2» може стати більш популярним у майбутньому, і буде більше контрактів «Permit; 2;» інтеграції проекту для авторизації та спільного використання, ми можемо подумати про ефективні методи запобігання таким чином:
1 Розуміти та розпізнавати вміст підпису:
Формат підпису Permit; зазвичай включає; Owner, Spender, value, nonce; і; Format. (Хорошим варіантом є завантаження плагіна безпеки)
Ми рекомендуємо всім читачам і друзям наступний плагін для захисту від фішингу «Beosin», який може ідентифікувати більшість фішингових веб-сайтів у полі Web3 і захистити гаманець і безпеку активів кожного.
Завантаження плагіна для захисту від фішингу:
2 Гаманець активів та інтерактивний гаманець використовуються окремо:
Якщо у вас є велика сума активів, рекомендується помістити всі активи в холодний гаманець, а невелику суму коштів помістити в інтерактивний гаманець у ланцюжку, що може значно зменшити втрати у випадку фішингового шахрайства.
3 Не авторизуйте занадто велику суму, щоб;Дозволити;2;Укладати або скасовувати авторизацію:
Коли ви «Обмінюєте» на «Uniswap», ви авторизуєте лише ту суму, з якою хочете взаємодіяти, тому, хоча кожна взаємодія потребує повторної авторизації, будуть певні витрати на взаємодію, але ви можете уникнути страждань від «Дозвіл;2; Підписати». Риболовля. Якщо ви вже авторизували квоту, ви можете знайти відповідний плагін безпеки, щоб скасувати авторизацію.
**4 Визначте природу токена, чи він підтримує; дозволяє; функцію: **
У майбутньому все більше і більше токенів "ERC;20" можуть використовувати цей протокол розширення для реалізації функції "дозволу". Вам потрібно звернути увагу на те, чи підтримує цю функцію ваш токен. Якщо так, то для token Будьте особливо обережні в транзакціях або маніпуляціях і суворо перевіряйте, чи є кожен невідомий підпис підписом функції "дозвіл".
5 Якщо після обману на інших платформах зберігаються токени, необхідно сформулювати комплексний план порятунку:
Якщо ви виявите, що вас ошукали і ваші токени були передані хакерами, але у вас все ще є токени, які зберігаються на інших платформах за допомогою таких методів, як застава тощо, вам потрібно вилучити їх і перенести на безпечну адресу. цього разу вам потрібно знати, що хакери можуть стежити за вами весь час. Баланс маркерів адреси, оскільки він має ваш підпис, доки маркер відображається на вашій викраденій адресі, хакер може передавати його напряму. Наразі необхідно сформулювати повний процес відновлення токенів. Два процеси вилучення токенів і передачі токенів мають виконуватися разом. Хакерські транзакції не можуть бути вставлені в нього. Ви можете використовувати передачу "MEV", для якої потрібен певний блокчейн знання та навички програмування. Ви також можете шукати професійну охоронну компанію, таку як; Beosin; команда для використання сценарію випередження транзакцій для досягнення.
Я вважаю, що в майбутньому буде все більше і більше фішингу на основі "Permit;2;" під нею все більше і більше адрес. Я сподіваюся, що ви перед екраном зможете розповісти про це більшій кількості людей після прочитання цієї статті, щоб уникнути крадіжок інших людей. **
Посилання:
Переглянути оригінал
Контент має виключно довідковий характер і не є запрошенням до участі або пропозицією. Інвестиційні, податкові чи юридичні консультації не надаються. Перегляньте Відмову від відповідальності , щоб дізнатися більше про ризики.
Вкрали підпис? Будьте обережні з фішингом підпису Uniswap Permit2
**Цю статтю написав; Beosin; спеціальний запрошений незалежний дослідник Шпинат Шпинат! (twitter@wzxznl) Допис у співавторстві з: Beosin; дослідником безпеки; Sivan; *
Хакери, це існування, яке лякає всіх в екосистемі Web3. Для сторони проекту, коли хакери з усього світу можуть витріщатися на вас, природа коду з відкритим кодом змушує сторону проекту боятися написати неправильний рядок коду, коли розвиток Залишаючи лазівки, як тільки станеться інцидент безпеки, наслідки буде важко витримати.
**Що стосується окремих осіб, якщо ви не розумієте, що робите, кожна взаємодія в ланцюжку або підпис, який ви робите, потенційно може призвести до викрадення ваших активів. ** Таким чином, питання безпеки завжди були одними з найбільш неприємних питань у світі шифрування, і через особливості блокчейну, як тільки активи викрадено, їх майже неможливо відновити, тому особливо важливо мати знання безпеки у світі шифрування.
Нещодавно **хороший друг Беосіна; Шпинат виявив новий метод фішингу, який був активним протягом останніх двох місяців, поки підпис вкрадено, метод надзвичайно прихований і його важко запобігти і used;Uniswap; Усі інтерактивні адреси можуть бути піддані ризикам. Ця стаття; Beosin; і незалежний дослідник Pincai спільно проводять науково-популярні дослідження цієї технології фішингу та намагаються уникнути додаткових втрат активів для всіх. **
Нижче наведено переказ особистого досвіду шпинату:
процес
Нещодавно друг (попереднє ім’я Xiao;A) знайшов Spinach після викрадення активів у його гаманці. На відміну від звичайного способу крадіжки, Xiao;A; не розкривав закритий ключ і не взаємодіяв із контрактом фішингового веб-сайту. Тож Шпинат почав розслідувати розкрадання активів.
У браузері ланцюга блоків ви можете побачити, що маленький гаманець ;A; вкрадено; USDT; передається через ;Transfer From; Token; Під час переказу коштів насправді викликається функція «Transfer» смарт-контракту «Token». ;Transfer From; означає, що третя сторона передає ;Token; в адресі на іншу адресу. **Це також означає, що викрадений актив було передано з іншої адреси; токен; замість витоку приватного ключа гаманця.
Запитуючи деталі транзакції, ми можемо знайти деякі ключові підказки:
Адреса з кінцевим номером;f;d5;1; передає активи малого;A; на адресу з кінцевим номером;a;0;c;8;
Ця операція взаємодіє з;Дозволом;2;контрактом;Uniswap;
Отже, виникає сумнів, як адреса, що закінчується на ;f;d5;1;, отримала дозвіл цього активу? Чому це пов'язано з "Uniswap"?
Перш за все, нам потрібно знати, що для успішного виклику функції «Transfer From;» передумовою є те, що абонент повинен мати квотні повноваження «Token», тобто «схвалити». Я вірю, що кожен, хто має Коли ми використовуємо якийсь "Dapp", коли йдеться про передачу активів, нам потрібно спочатку виконати операцію авторизації (затвердження), щоб контракт "Dapp" мав право передати наші активи.
Щоб вирішити цю головоломку, нам потрібно продовжити копати, і відповідь знаходиться в записі взаємодії адреси, що закінчується на ;f;d5;1;, за цією адресою, ;Transfer From;transfer small;A; Перед активу, ви бачите, що адреса також виконала операцію «Дозвіл», а об’єктами взаємодії цих двох операцій є контракт «Дозвіл;2» Uniswap;, потім ця функція «Дозвол» і «Дозвіл Uniswap» ;2;Яка ситуація?
Uniswap Permit;2; контракт; Uniswap; наприкінці; 2022; новий смарт-контракт запущено, згідно з офіційною заявою, це контракт на затвердження токенів, який дозволяє спільно використовувати та керувати авторизацією токенів у різних програмах, Створити більш уніфікований, економічно ефективний і безпечний досвід користувача.
І в майбутньому, оскільки все більше і більше проектів буде інтегровано з Permit; 2, Permit; 2; може бути стандартизовано в усіх програмах; Token; затверджено. Permit;2 покращить взаємодію з користувачем за рахунок зниження транзакційних витрат і підвищення безпеки смарт-контрактів.
Давайте спочатку зрозуміємо, чому "Uniswap" хоче запустити "Permit;2;", давайте припустимо сценарій, коли ми хочемо "Swap" на певному "Dex", традиційний метод взаємодії полягає в тому, що нам потрібно авторизувати (схвалити) Дайте це «Dex, а потім «Swap», який зазвичай коштує нам дві комісії «Gas», а вартість тертя занадто висока для користувачів. Я думаю, кожен мав такий досвід.
Джерело зображення:
Запуск "Permit; 2" може повністю змінити правила екологічної гри "Dapp". Простіше кажучи, традиційний метод полягає в тому, що вам потрібно авторизуватися щоразу, коли ви взаємодієте з "Dapp" для передачі активів, і; Permit; 2; Цей крок можна пропустити, що може ефективно зменшити вартість взаємодії користувача та забезпечити кращий досвід користувача.
Рішенням є;Permit;2;як посередник між користувачем і;Dapp;, користувачеві потрібно лише авторизувати дозвіл;Token;на;Permit;2;контракт, усе інтегровано;Permit;2;контракт ;Dapp; Ця авторизована сума може бути спільною. Для користувачів це зменшує витрати на взаємодію та покращує взаємодію з користувачем. Для «Dapp» покращення взаємодії з користувачем приносить більше користувачів і коштів. Це безпрограшна ситуація, але водночас час, це також може бути палкою з двома кінцями, і проблема полягає в тому, як взаємодіє ;Permit;2;.
У традиційному режимі взаємодії, будь то авторизація чи переказ коштів, це взаємодія по ланцюжку для користувача операції. А ;Permit;2; перетворює операцію користувача на підпис поза ланцюжком, і всі операції в ланцюжку завершуються проміжною роллю (такою як;Permit;2;контракт і інтегрований;Permit;2; сторона проекту тощо). ) , перевага цієї схеми полягає в тому, що оскільки роль взаємодії в ланцюжку передається від користувача до проміжної ролі, навіть якщо користувач не має «ETH» у гаманці, він може використовувати інший «токен», щоб платити «Газ» або повністю компенсувати проміжну роль. Це залежить від вибору проміжної ролі.
Джерело зображення:
Незважаючи на те, що поява "Permit;2" може змінити майбутні правила гри "Dapp", можна побачити, що це сильна палиця з двома кінцями. Для користувачів підписи поза ланцюгом є найпростішим способом подолати свій захист Посилання , наприклад, коли ми входимо в якийсь "Dapp" за допомогою гаманця, нам потрібен підпис для підключення, і більшість людей не перевіряють уважно вміст підпису та не розуміють вміст підпису, і це найстрашніше місце.
Understound;Permit;2;Contract, повернемося до невеликої;A; події, ми розуміємо, чому активи викрадені та взаємодіємо з;Permit;2;Contract, тоді дозвольте Spinach відтворити це;Permit; 2. Метод фішингу підпису, перш за все , важливою передумовою є те, що гаманець, який підлягає фішингу, повинен мати «Token» авторизований для «Uniswap»; «Permit;2; ;Dapp; або ;Swap; на Uniswap;, усі вони повинні бути авторизовані для ;Permit; 2; договір (шпинат на малюнку нижче використовує плагін безпеки).
Інший страшний момент полягає в тому, що незалежно від суми, яку ви хочете «обмінити», контракт «Permit;2» Uniswap; дозволить вам авторизувати «Token» за замовчуванням, хоча «MetaMask» дозволить вам визначити введення кількість, але я вважаю, що більшість людей безпосередньо клацнуть максимальне значення або значення за замовчуванням, а значення за замовчуванням ;Permit;2; є необмеженою кількістю....
Це також означає, що якщо ви взаємодіяли з «Uniswap» і авторизували суму в контракті «Permit; 2» після 2023 року, ви будете наражатися на ризик цього фішингового шахрайства.
Оскільки фокус зосереджений на функції ;Permit;, яка взаємодіяла з контрактом ;Permit;2; в адресі, що закінчується на ;f;d5;1;, ця функція просто використовує ваш гаманець, щоб авторизувати вас ;Permit; 2; The " Токен» контракту передається на іншу адресу, тобто поки ви отримуєте свій підпис, хакер може отримати повноваження «Токен» у вашому гаманці та перенести ваші активи.
Детальний аналіз події
дозвіл; Функція:
При цьому вам також потрібно надати підпис (підпис), як і підписуючи паперовий договір, щоб підтвердити, що цей «договір» дійсно підписаний вами.
Отже, як працює ця функція?
Основна увага зосереджена на функціях ;verify; і _updateApproval;.
перевірити; функція:
Можна побачити, що функція verify; отримає три дані; v, r, s; з параметра інформації про підпис, v, r, s; це значення підпису транзакції, і їх можна використовувати для відновлення адреси підпису транзакції, як показано на малюнку вище. З коду видно, що після того, як контракт відновлює адресу підпису транзакції, він порівнює її з адресою власника вхідного токена. Якщо вони однакові, перевірка проходить, і виклик функції _updateApproval; продовжується. Якщо вони різні, транзакція відкочується.
_updateApproval; Функція:
Коли перевірку підпису пройдено, буде викликана функція _updateApproval; для оновлення значення авторизації, що означає, що ваші дозволи передано. У цей час зручно викликати функцію ;transferfrom;, щоб передати маркер на вказану адресу після авторизації, як показано в коді нижче.
Гаразд, після пояснення функції «дозвіл», давайте подивимося на реальну транзакцію в ланцюжку. Ми можемо дізнатися деталі цієї взаємодії:
власник; невеликий; адреса гаманця A; (записний номер; 308; a)
Подробиці; ви можете побачити авторизований; токен; адресу контракту (USDT), суму та іншу інформацію
Spender; це адреса хакера з хвостовим номером;f;d5;1;
sigDeadline; — ефективний час підпису, і;signature; — інформація підпису small;A;
І, озираючись на записи взаємодії xiao;A;, ми виявимо, що **xiao;A; раніше використовував «Uniswap» і натискав суму авторизації за замовчуванням, яка є майже необмеженою. **
Простий огляд полягає в тому, що ** невеликий; A; був авторизований "Uniswap Permit" у процесі використання "Uniswap" раніше; 2; необмежений; USDT; сума, але невелика; A; випадково під час виконання операцій гаманця Потрапляння в ;Permit;2; пастка для фішингу з підписом, розроблена хакерами, хакер отримав підпис small;A; і використав підпис small;A; у;Permit;2;contract;Permit;and;Transfer From; Дві операції передав активи малого;A;,** і Шпинат зауважив, що;Дозвіл;2;контракт «Uniswap;» став активним лише кілька місяців тому.
джерело:
І в записах взаємодії можна виявити, що майже більшість із них позначено фішинговими адресами (Fake_Phishing), і людей постійно обманюють.
джерело:;
Як запобігти?
Враховуючи, що контракт «Uniswap Permit; 2» може стати більш популярним у майбутньому, і буде більше контрактів «Permit; 2;» інтеграції проекту для авторизації та спільного використання, ми можемо подумати про ефективні методи запобігання таким чином:
1 Розуміти та розпізнавати вміст підпису:
Формат підпису Permit; зазвичай включає; Owner, Spender, value, nonce; і; Format. (Хорошим варіантом є завантаження плагіна безпеки)
Ми рекомендуємо всім читачам і друзям наступний плагін для захисту від фішингу «Beosin», який може ідентифікувати більшість фішингових веб-сайтів у полі Web3 і захистити гаманець і безпеку активів кожного.
Завантаження плагіна для захисту від фішингу:
2 Гаманець активів та інтерактивний гаманець використовуються окремо:
Якщо у вас є велика сума активів, рекомендується помістити всі активи в холодний гаманець, а невелику суму коштів помістити в інтерактивний гаманець у ланцюжку, що може значно зменшити втрати у випадку фішингового шахрайства.
3 Не авторизуйте занадто велику суму, щоб;Дозволити;2;Укладати або скасовувати авторизацію:
Коли ви «Обмінюєте» на «Uniswap», ви авторизуєте лише ту суму, з якою хочете взаємодіяти, тому, хоча кожна взаємодія потребує повторної авторизації, будуть певні витрати на взаємодію, але ви можете уникнути страждань від «Дозвіл;2; Підписати». Риболовля. Якщо ви вже авторизували квоту, ви можете знайти відповідний плагін безпеки, щоб скасувати авторизацію.
**4 Визначте природу токена, чи він підтримує; дозволяє; функцію: **
У майбутньому все більше і більше токенів "ERC;20" можуть використовувати цей протокол розширення для реалізації функції "дозволу". Вам потрібно звернути увагу на те, чи підтримує цю функцію ваш токен. Якщо так, то для token Будьте особливо обережні в транзакціях або маніпуляціях і суворо перевіряйте, чи є кожен невідомий підпис підписом функції "дозвіл".
5 Якщо після обману на інших платформах зберігаються токени, необхідно сформулювати комплексний план порятунку:
Якщо ви виявите, що вас ошукали і ваші токени були передані хакерами, але у вас все ще є токени, які зберігаються на інших платформах за допомогою таких методів, як застава тощо, вам потрібно вилучити їх і перенести на безпечну адресу. цього разу вам потрібно знати, що хакери можуть стежити за вами весь час. Баланс маркерів адреси, оскільки він має ваш підпис, доки маркер відображається на вашій викраденій адресі, хакер може передавати його напряму. Наразі необхідно сформулювати повний процес відновлення токенів. Два процеси вилучення токенів і передачі токенів мають виконуватися разом. Хакерські транзакції не можуть бути вставлені в нього. Ви можете використовувати передачу "MEV", для якої потрібен певний блокчейн знання та навички програмування. Ви також можете шукати професійну охоронну компанію, таку як; Beosin; команда для використання сценарію випередження транзакцій для досягнення.
Я вважаю, що в майбутньому буде все більше і більше фішингу на основі "Permit;2;" під нею все більше і більше адрес. Я сподіваюся, що ви перед екраном зможете розповісти про це більшій кількості людей після прочитання цієї статті, щоб уникнути крадіжок інших людей. **
Посилання: