Дозвіл - це розширена функція для авторизації за стандартом ERC-20. Просто кажучи, ви можете підписати, щоб схвалити інші адреси для переміщення вашого токену. Принцип полягає в тому, що ви використовуєте підпис для вказівки, що авторизована адреса може використовувати ваші токени через цей підпис, а потім авторизована адреса бере ваш підпис, щоб виконати взаємодію з дозволу на ланцюжку та отримує дозвіл на виклик та може передавати вам активи. Зазвичай дозвіл на фішинговий підпис поза ланцюжком розділяється на три етапи:
(1) Атакувальник фальсифікує фішингові посилання або фішингові веб-сайти, щоб спонукати користувачів підписатися через гаманець (без взаємодії з контрактом, без ланцюжка).
Об'єкт підпису: DAI/USDC/WETH та інші токени ERC20 (ось DAI)
holder:// підпис адреса
spender:// адреса шахрая
nonce:0
закінчення:1988064000 // Час закінчення
дозволено:правда
Якщо підписано, атакувальник отримає підпис (період значень r, s, v), який використовується для крадіжки DAI/USDC/WETH та інших токенів ERC20 (тут DAI) від жертви. Коли атакувальник взаємодіє з функцією дозволу, потрібно використовувати).
(2) Зловмисник викликає функцію дозволу для завершення авторизації.
https://etherscan.io/tx/0x1fe75ad73f19cc4c3b658889dae552bb90cf5cef402789d256ff7c3e091bb662
(3) Зловмисник викликає функцію transferFrom для передачі активів жертви та завершення атаки.
Спочатку дозвольте пояснити різницю між переказом та переказом. Коли ми безпосередньо переказуємо ERC20, ми зазвичай викликаємо функцію переказу в контракті ERC20, а переказ використовується зазвичай тоді, коли дозволяємо третій стороні переносити ERC20 в нашому гаманці на інші адреси.
https://etherscan.io/tx/0x9c02340896e238fc667c1d84fec78af99b1642c986fe3a81602903af498eb938
Додаткове пояснення: Ця підпис є безкоштовним поза ланцюжковим підписом. Після того, як нападник його отримає, він виконає дозвіл та transferFrom взаємодії на ланцюжку, тому запис про авторизацію не може бути побачений в запису на ланцюжку адреси постраждалого. Його адреса нападника може бути побачена. Загалом, цей підпис призначений для одноразового використання і не створює повторних або тривалих ризиків для рибалки.
Permit2 - це смарт-контракт, запущений Uniswap наприкінець 2022 року для зручності користувачів. Це контракт на схвалення токенів, який дозволяє дозволи на токени бути обмінюваними та керованими в різних DApps. У майбутньому, оскільки все більше та більше проєктів будуть інтегровані з Permit2, контракт Permit2 зможе забезпечити більш узгоджений досвід управління дозволами в екосистемі DApp та зекономити витрати користувачів на транзакції.
Перед появою Permit2 обмін токенів на Uniswap вимагав авторизації (Approve), а потім обміну (Swap), що потребувало двох операцій і газових витрат за дві угоди. Після запуску Permit2, користувачі можуть авторизувати всі свої квоти для контракту Permit2 Uniswap одночасно, і для кожної наступної викупу потрібен лише поза ланцюжковий підпис.
Хоча Permit2 покращує користувацький досвід, його наступають фішингові атаки, спрямовані на підписи Permit2. Схоже на фішинг з Permit off-chain підписом, Permit2 також є фішингом з off-chain підписом. Ця атака головним чином поділяється на чотири кроки:
(1) Передумовою є те, що гаманець користувача використовував Uniswap до підловлення та авторизував обмеження токенів для контракту Permit2 Uniswap (Permit2 дозволить користувачу авторизувати весь баланс токенів за замовчуванням).
https://etherscan.io/tx/0xd8f0333b9e0db7175c38c37e490379bde5c83a916bdaa2b9d46ee6bff4412e8f
(2) Атакуючий підробляє фішингові посилання або сторінки фішингу, щоб змусити користувачів підписати. Фішинговий атакуючий отримує необхідну інформацію для підпису, яка схожа на фішинговий підпис в оффлайні.
(3) Атакувальник викликає функцію дозволу контракту Permit2, щоб завершити авторизацію.
https://etherscan.io/tx/0xd8c3f55dfbc8b368134e6236b296563f506827bd5dc4d6c0df39851fd219d658
(4) Атакувальник викликає функцію transferFrom контракту Permit2, щоб передати активи жертви та завершити атаку.
https://etherscan.io/tx/0xf6461e003a55f8ecbe919a47b3c0dc6d0f068e48a941658329e35dc703138486
Додаткова примітка: Зазвичай існує кілька адрес, на які атакувальники отримують активи. Зазвичай одним з отримувачів з найбільшою сумою є атакувальник, який реалізує виманювання даних, а інші - це чорні адреси, які надають послуги виманювання даних як сервіс (постачальники DaaS-послуг з виманювання даних). адреси, такі як PinkDrainer, InfernoDrainer, AngelDrainer, тощо).
eth_sign - це відкритий метод підпису, який може підписати будь-який хеш. Атакувальнику лише потрібно сконструювати будь-які зловмисні дані, які потрібно підписати (такі як передача токенів, виклик контракту, отримання авторизації тощо) та спонукати користувача підписати через eth_sign. Атака може бути завершена.
MetaMask надасть попередження про ризик під час підписання eth_sign. Веб-гаманці, такі як imToken та OneKey, вимкнули цю функцію або надали попередження про ризик. Рекомендується, щоб усі виробники гаманців вимкнули цей метод, щоб запобігти атакам на користувачів через відсутність усвідомлення про безпеку або необхідну технічну акумуляцію.
personal_sign та signTypedData - це загальновживані методи підпису. Зазвичай користувачам потрібно уважно перевірити, чи є ініціатор, доменне ім'я, вміст підпису тощо безпечними. Якщо вони є ризикованими, їм слід бути додатково обережними.
Крім того, якщо personal_sign та signTypedData використовуються як «сліпі підписи», як у вищезазначеному, користувач не може бачити чіткий текст, що ускладнює використання ними фішинговими бандами, що також збільшить ризик фішингу.
Шляхом штучної веб-сайту або вішання коня на офіційному веб-сайті проекту, зловмисники змушують користувачів підтверджувати операції, такі як setApprovalForAll, Approve, Increase Approval, та Increase Allowance, отримують дозвіл на операції з активами користувача та вчиняють крадіжку.
(1)setApprovalForAll
Беручи приклад зловмисного використання коней PREMINT, файл js(https://s3-redwood-labs.premint.xyz/theme/js/boomerang.min.js) на веб-сайт проекту був впроваджений зловісний код. Зловісний файл js (https://s3-redwood-labs-premint-xyz.com/cdn.min.js?v=1658050292559) буде створено динамічно. Атака ініціюється цим зловмисним скриптом.
Тому що користувач не вчасно виявив ризик, він підтвердив операцію setApprovalForAll та ненавмисно витікла авторизація операції для активу, в результаті чого актив було вкрадено.
(2)Схвалити
Схоже до setApprovalForAll, користувач підтвердив операцію Approve, витікаючи авторизацію операції для активу, внаслідок чого актив був вкрадений.
Схвалити помилковий доступ:
https://etherscan.io/tx/0x4b0655a5b75a9c078653939101fffc1d08ff7e5c89b0695ca6db5998214353fa
Атакувальник передає активи через transferFrom:
https://etherscan.io/tx/0x0dedf25777ff5483bf71e70e031aacbaf50124f7ebb6804beb17aee2c15c33e8
Принцип атаки функцій Increase Approval та Increase Allowance схожий на це. За замовчуванням верхній ліміт атакуючого на операції токенів адреси жертви становить 0. Проте після авторизації цими двома функціями атакуючий збільшує ліміт для токенів жертви, обмеження операцій, та потім можна переносити токени.
(3) Збільшити затвердження
Збільшення Недопущення Несанкціонованого Допуску:
https://etherscan.io/tx/0x7ae694080e2ad007fd6fa25f9a22ca0bbbff4358b9bc84cc0a5ba7872118a223
Атакувальник передає активи через transferFrom:
https://etherscan.io/tx/0x15bc5516ed7490041904f1a4c594c33740060e0f0271cb89fe9ed43c974a7a69
(4) Збільшити допомогу
Збільшення Дозволу Недопущення:
https://etherscan.io/tx/0xbb4fe89c03d8321c5bfed612fb76f0756ac7e99c1efaf7c4d99d99f850d4de53
Атакувальник передає активи через transferFrom:
https://etherscan.io/tx/0xb91d7b1440745aa07409be36666bc291ecc661e424b21b855698d488949b920f
Забруднення адреси шахрайства також є одним з останніх поширених методів шахрайства. Атакуючий моніторить транзакції на ланцюжку, а потім фальсифікує злочинні адреси на основі адреси опонента в історичних транзакціях цільового користувача. Зазвичай перші 4-6 цифр і останні 4-6 цифр пов'язані з правильним опонентом. Адреси обох сторін однакові, і потім ці злочинно фальшиві адреси використовуються для переказу невеликих сум або безцінних токенів на адресу цільового користувача.
Якщо цільовий користувач копіює адресу опонента з історичних транзакційних замовлень для перекладу у наступних транзакціях через особисті звички, дуже ймовірно, що активи будуть помилково переведені на зловмисну адресу через необережність.
3 травня 2024 року 1155WBTC на суму понад 70 мільйонів доларів США було вилучено через метод рибальства за адресою забруднення.
Правильна адреса: 0xd9A1b0B1e1aE382DbDc898Ea68012FfcB2853a91
Зловісна адреса: 0xd9A1C3788D81257612E2581A6ea0aDa244853a91
Звичайна транзакція:
https://etherscan.io/tx/0xb18ab131d251f7429c56a2ae2b1b75ce104fe9e83315a0c71ccf2b20267683ac
Забруднення адрес:
https://etherscan.io/tx/0x87c6e5d56fea35315ba283de8b6422ad390b6b9d8d399d9b93a9051a3e11bf73
Направлення транзакції не вірне:
https://etherscan.io/tx/0x3374abc5a9c766ba709651399b6e6162de97ca986abc23f423a9d893c8f5f570
На сьогодні різноманітні гаманці та безпечні додатки поступово впроваджують візуальні попередження про ризики для списків фішингу та загальних методів шахрайства, а також все частіше відображають інформацію про підписи, покращуючи здатність звичайних користувачів розпізнавати атаки фішингу. Однак офенсивні та оборонні технології завжди змагаються між собою і постійно розвиваються. Також постійно з'являються більш хитрі методи фішингу, тому нам потрібно бути більш бджолами. Використання CREATE2 для обходу виявлення чорного списку гаманців та безпечних додатків є досить поширеним методом останнього часу.
Create2 - це опкод, який був введений під час оновлення Ethereum 'Constantinople' і дозволяє користувачам створювати смарт-контракти на Ethereum. Оригінальний опкод Create генерує нову адресу на основі адреси та nonce створювача. Create2 дозволяє користувачам обчислити адресу перед розгортанням контракту. Create2 - дуже потужний інструмент для розробників Ethereum, що дозволяє розширену та гнучку взаємодію з контрактами, підготовку адреси контракту на основі параметрів, позаканальні транзакції та гнучке розгортання та адаптацію конкретних розподілених застосувань.
Хоча Create2 приносить користь, він також створює нові ризики безпеки. Create2 можна зловживати для генерації нових адрес зі збудженням історії зловмисних транзакцій, обійшовши виявлення чорного списку гаманців та попередження про безпеку. Коли жертва підписує зловісну транзакцію, атакуючий може розгорнути контракт за попередньо обчисленим адресом і передати активи жертви на цей адрес, і це є невідворотним процесом.
Особливості цього нападу:
(1) Дозволяє передбачуване створення адрес контрактів, що дозволяє зловмисникам обдурити користувачів, надаючи дозволи перед розгортанням контракту.
(2) Оскільки контракт ще не був розгорнутий на момент авторизації, адреса атаки є новою адресою, а засіб виявлення не може надати попередження на основі історичного чорного списку, що має вищий рівень приховування.
Ось приклад рибалки за допомогою CREATE2:
https://etherscan.io/tx/0x83f6bfde97f2fe60d2a4a1f55f9c4ea476c9d87fa0fcd0c1c3592ad6a539ed14
У цій транзакції жертва переказала sfrxETH на адресу зловмисника (0x4D9f77), яка є новою контрактною адресою без жодних записів транзакцій.
Проте, коли ви відкриваєте транзакцію створення цього контракту, ви можете виявити, що контракт завершив фішингову атаку у той же час, коли був створений, переказуючи активи з адреси жертви.
https://etherscan.io/tx/0x77c79f9c865c64f76dc7f9dff978a0b8081dce72cab7c256ac52a764376f8e52
Розглядаючи виконання цієї транзакції, ви можете побачити, що 0x4d9f7773deb9cc44b34066f5e36a5ec98ac92d40 був створений після виклику CREATE2.
Крім того, аналізуючи відповідні адреси PinkDrainer, можна виявити, що ця адреса щодня створює нові контрактні адреси для виманювання через CREATE2.
https://etherscan.io/address/0x5d775caa7a0a56cd2d56a480b0f92e3900fe9722#internaltx
Атаки фішингу стають все більш розповсюдженими, і через величезний незаконний прибуток почалася чорна ланцюжок промисловості на основі Drainer as a Service (DaaS). До найбільш активних відносяться Inferno/MS/Angel/Monkey/Venom/Pink/ Pussy/Medusa тощо, фішингові атакувальники придбають ці послуги DaaS, швидко і з низьким порогом, створюють тисячі сайтів фішингу, шахрайські облікові записи тощо, подібно до біди, що вторгається в цю галузь, загрожуючи безпеці активів користувачів.
Візьмемо на приклад Inferno Drainer, відому фішингову банду, яка вбудовує зловмисні скрипти на різних веб-сайтах. Наприклад, вони поширюють seaport.js, coinbase.js та wallet-connect.js, щоб приховатися під популярні функції протоколу Web3 (Seaport, WalletConnect і Coinbase) та спонукати користувачів інтегрувати або клікати. Після отримання підтвердження користувача вони автоматично перекладуть активи користувача на адресу атакувальника. Було виявлено понад 14 000 веб-сайтів, які містять зловмисні скрипти Seaport, понад 5 500 веб-сайтів, які містять зловмисні скрипти WalletConnect, понад 550 веб-сайтів, які містять зловмисні скрипти Coinbase, понад 16 000 зловмисних доменів, пов'язаних з Inferno Drainer, і більше 100 криптовалютних брендів постраждали. Нижче наведено фішинговий веб-сайт, пов'язаний з Inferno Drainer.
Секція заголовка веб-сайту містить два шкідливі скрипти, seaport.js і wallet-connect.js. Ще одна типова ознака фішингових веб-сайтів Inferno Drainer полягає в тому, що користувачі не можуть відкрити код веб-сайту, натиснувши праву кнопку миші, що робить ці фішингові веб-сайти більш прихованими.
У рамках фреймворку Phishing-as-a-Service, зазвичай 20% вкрадених активів автоматично переказуються на адресу організатора Inferno Drainer, а решта 80% залишаються у власності викрадача даних. Крім того, Inferno Drainer регулярно надає безкоштовні послуги з створення та розміщення фішингових веб-сайтів. Іноді фішингові послуги також потребують внесення плати в розмірі 30% від обманутих коштів. Ці фішингові веб-сайти призначені для тих, хто може привернути жертв до візиту, але не має можливості створити та розробити їх фішингові атакувальники, які мають технічні можливості для розміщення веб-сайту чи просто не хочуть виконувати це завдання самостійно.
Отже, як працює ця афера DaaS? Ось крок за кроком опис схеми криптозлочинної схеми Inferno Drainer:
(1) Inferno Drainer просуває свою послугу через канал Telegram під назвою Inferno Multichain Drainer, і іноді атакувальники також отримують доступ до послуги через веб-сайт Inferno Drainer.
(2) Атакувальник налаштовує та генерує свій власний веб-сайт для атаки шляхом функції служби DaaS та поширює його через X (Twitter), Discord та інші соціальні медіа.
(3) Жертви надаються на сканування QR-кодів або інших методів, що містяться на цих сайтах-шахраях, для підключення своїх гаманців.
(4) Дрейнер перевіряє найцінніші та легко перекладені активи потерпілого та ініціює зловмисні операції.
(5) Потерпілий підтвердив транзакцію.
(6) Активи переведені злочинцям. З украдених активів 20% було переведено розробникам Inferno Drainer, а 80% - рибальським атакам.
На зображенні нижче показана сторінка послуг DaaS, де Inferno Drainer показує клієнтам їх статистику: кількість з'єднань (якщо жертва підключила гаманець до сайту-шахрайства), успішні кліки (якщо жертва підтвердила транзакцію) та вартість викрадених активів.
Кожен клієнт сервісу DaaS може налаштувати власні функції Drainer:
(1) По-перше, користувачі не повинні клікати на невідомі посилання, які маскуються як хороші новини, такі як винагороди, airdrops, тощо;
(2) Випадки викрадення офіційних облікових записів у соціальних мережах зростають, і офіційна інформація також може бути фішинговою інформацією, а офіційна інформація не означає, що вона абсолютно безпечна;
(3) Під час використання гаманців, DApps та інших додатків слід уважно відноситися до відбору та бути обережними з приводу підроблених сайтів та фальшивих додатків;
(4) Будь-яка транзакція або підписове повідомлення, яке потребує підтвердження, повинно бути обережним, і спробуйте перепідтвердити ціль, вміст та іншу інформацію. Відмовтеся підписувати сліпо, будьте бджолами, сумнівайтеся у всьому, і переконайтесь, що кожен крок операції є чітким і безпечним.
(5) Крім того, користувачам потрібно розуміти загальні методи атаки фішингом, згадані в цій статті, і вчитися активно визначати ознаки фішингу. Володійте загальними підписами, функціями авторизації та їх ризиками, володійте інтерактивною (URL взаємодії), Власником (адреса авторизатора), Витратником (адреса авторизованої сторони), Значенням (авторизована кількість), Нонсом (випадковий номер), Кінцевим терміном (час закінчення), переказ/переказ з (передача) та іншими вмістами полів.
Дозвіл - це розширена функція для авторизації за стандартом ERC-20. Просто кажучи, ви можете підписати, щоб схвалити інші адреси для переміщення вашого токену. Принцип полягає в тому, що ви використовуєте підпис для вказівки, що авторизована адреса може використовувати ваші токени через цей підпис, а потім авторизована адреса бере ваш підпис, щоб виконати взаємодію з дозволу на ланцюжку та отримує дозвіл на виклик та може передавати вам активи. Зазвичай дозвіл на фішинговий підпис поза ланцюжком розділяється на три етапи:
(1) Атакувальник фальсифікує фішингові посилання або фішингові веб-сайти, щоб спонукати користувачів підписатися через гаманець (без взаємодії з контрактом, без ланцюжка).
Об'єкт підпису: DAI/USDC/WETH та інші токени ERC20 (ось DAI)
holder:// підпис адреса
spender:// адреса шахрая
nonce:0
закінчення:1988064000 // Час закінчення
дозволено:правда
Якщо підписано, атакувальник отримає підпис (період значень r, s, v), який використовується для крадіжки DAI/USDC/WETH та інших токенів ERC20 (тут DAI) від жертви. Коли атакувальник взаємодіє з функцією дозволу, потрібно використовувати).
(2) Зловмисник викликає функцію дозволу для завершення авторизації.
https://etherscan.io/tx/0x1fe75ad73f19cc4c3b658889dae552bb90cf5cef402789d256ff7c3e091bb662
(3) Зловмисник викликає функцію transferFrom для передачі активів жертви та завершення атаки.
Спочатку дозвольте пояснити різницю між переказом та переказом. Коли ми безпосередньо переказуємо ERC20, ми зазвичай викликаємо функцію переказу в контракті ERC20, а переказ використовується зазвичай тоді, коли дозволяємо третій стороні переносити ERC20 в нашому гаманці на інші адреси.
https://etherscan.io/tx/0x9c02340896e238fc667c1d84fec78af99b1642c986fe3a81602903af498eb938
Додаткове пояснення: Ця підпис є безкоштовним поза ланцюжковим підписом. Після того, як нападник його отримає, він виконає дозвіл та transferFrom взаємодії на ланцюжку, тому запис про авторизацію не може бути побачений в запису на ланцюжку адреси постраждалого. Його адреса нападника може бути побачена. Загалом, цей підпис призначений для одноразового використання і не створює повторних або тривалих ризиків для рибалки.
Permit2 - це смарт-контракт, запущений Uniswap наприкінець 2022 року для зручності користувачів. Це контракт на схвалення токенів, який дозволяє дозволи на токени бути обмінюваними та керованими в різних DApps. У майбутньому, оскільки все більше та більше проєктів будуть інтегровані з Permit2, контракт Permit2 зможе забезпечити більш узгоджений досвід управління дозволами в екосистемі DApp та зекономити витрати користувачів на транзакції.
Перед появою Permit2 обмін токенів на Uniswap вимагав авторизації (Approve), а потім обміну (Swap), що потребувало двох операцій і газових витрат за дві угоди. Після запуску Permit2, користувачі можуть авторизувати всі свої квоти для контракту Permit2 Uniswap одночасно, і для кожної наступної викупу потрібен лише поза ланцюжковий підпис.
Хоча Permit2 покращує користувацький досвід, його наступають фішингові атаки, спрямовані на підписи Permit2. Схоже на фішинг з Permit off-chain підписом, Permit2 також є фішингом з off-chain підписом. Ця атака головним чином поділяється на чотири кроки:
(1) Передумовою є те, що гаманець користувача використовував Uniswap до підловлення та авторизував обмеження токенів для контракту Permit2 Uniswap (Permit2 дозволить користувачу авторизувати весь баланс токенів за замовчуванням).
https://etherscan.io/tx/0xd8f0333b9e0db7175c38c37e490379bde5c83a916bdaa2b9d46ee6bff4412e8f
(2) Атакуючий підробляє фішингові посилання або сторінки фішингу, щоб змусити користувачів підписати. Фішинговий атакуючий отримує необхідну інформацію для підпису, яка схожа на фішинговий підпис в оффлайні.
(3) Атакувальник викликає функцію дозволу контракту Permit2, щоб завершити авторизацію.
https://etherscan.io/tx/0xd8c3f55dfbc8b368134e6236b296563f506827bd5dc4d6c0df39851fd219d658
(4) Атакувальник викликає функцію transferFrom контракту Permit2, щоб передати активи жертви та завершити атаку.
https://etherscan.io/tx/0xf6461e003a55f8ecbe919a47b3c0dc6d0f068e48a941658329e35dc703138486
Додаткова примітка: Зазвичай існує кілька адрес, на які атакувальники отримують активи. Зазвичай одним з отримувачів з найбільшою сумою є атакувальник, який реалізує виманювання даних, а інші - це чорні адреси, які надають послуги виманювання даних як сервіс (постачальники DaaS-послуг з виманювання даних). адреси, такі як PinkDrainer, InfernoDrainer, AngelDrainer, тощо).
eth_sign - це відкритий метод підпису, який може підписати будь-який хеш. Атакувальнику лише потрібно сконструювати будь-які зловмисні дані, які потрібно підписати (такі як передача токенів, виклик контракту, отримання авторизації тощо) та спонукати користувача підписати через eth_sign. Атака може бути завершена.
MetaMask надасть попередження про ризик під час підписання eth_sign. Веб-гаманці, такі як imToken та OneKey, вимкнули цю функцію або надали попередження про ризик. Рекомендується, щоб усі виробники гаманців вимкнули цей метод, щоб запобігти атакам на користувачів через відсутність усвідомлення про безпеку або необхідну технічну акумуляцію.
personal_sign та signTypedData - це загальновживані методи підпису. Зазвичай користувачам потрібно уважно перевірити, чи є ініціатор, доменне ім'я, вміст підпису тощо безпечними. Якщо вони є ризикованими, їм слід бути додатково обережними.
Крім того, якщо personal_sign та signTypedData використовуються як «сліпі підписи», як у вищезазначеному, користувач не може бачити чіткий текст, що ускладнює використання ними фішинговими бандами, що також збільшить ризик фішингу.
Шляхом штучної веб-сайту або вішання коня на офіційному веб-сайті проекту, зловмисники змушують користувачів підтверджувати операції, такі як setApprovalForAll, Approve, Increase Approval, та Increase Allowance, отримують дозвіл на операції з активами користувача та вчиняють крадіжку.
(1)setApprovalForAll
Беручи приклад зловмисного використання коней PREMINT, файл js(https://s3-redwood-labs.premint.xyz/theme/js/boomerang.min.js) на веб-сайт проекту був впроваджений зловісний код. Зловісний файл js (https://s3-redwood-labs-premint-xyz.com/cdn.min.js?v=1658050292559) буде створено динамічно. Атака ініціюється цим зловмисним скриптом.
Тому що користувач не вчасно виявив ризик, він підтвердив операцію setApprovalForAll та ненавмисно витікла авторизація операції для активу, в результаті чого актив було вкрадено.
(2)Схвалити
Схоже до setApprovalForAll, користувач підтвердив операцію Approve, витікаючи авторизацію операції для активу, внаслідок чого актив був вкрадений.
Схвалити помилковий доступ:
https://etherscan.io/tx/0x4b0655a5b75a9c078653939101fffc1d08ff7e5c89b0695ca6db5998214353fa
Атакувальник передає активи через transferFrom:
https://etherscan.io/tx/0x0dedf25777ff5483bf71e70e031aacbaf50124f7ebb6804beb17aee2c15c33e8
Принцип атаки функцій Increase Approval та Increase Allowance схожий на це. За замовчуванням верхній ліміт атакуючого на операції токенів адреси жертви становить 0. Проте після авторизації цими двома функціями атакуючий збільшує ліміт для токенів жертви, обмеження операцій, та потім можна переносити токени.
(3) Збільшити затвердження
Збільшення Недопущення Несанкціонованого Допуску:
https://etherscan.io/tx/0x7ae694080e2ad007fd6fa25f9a22ca0bbbff4358b9bc84cc0a5ba7872118a223
Атакувальник передає активи через transferFrom:
https://etherscan.io/tx/0x15bc5516ed7490041904f1a4c594c33740060e0f0271cb89fe9ed43c974a7a69
(4) Збільшити допомогу
Збільшення Дозволу Недопущення:
https://etherscan.io/tx/0xbb4fe89c03d8321c5bfed612fb76f0756ac7e99c1efaf7c4d99d99f850d4de53
Атакувальник передає активи через transferFrom:
https://etherscan.io/tx/0xb91d7b1440745aa07409be36666bc291ecc661e424b21b855698d488949b920f
Забруднення адреси шахрайства також є одним з останніх поширених методів шахрайства. Атакуючий моніторить транзакції на ланцюжку, а потім фальсифікує злочинні адреси на основі адреси опонента в історичних транзакціях цільового користувача. Зазвичай перші 4-6 цифр і останні 4-6 цифр пов'язані з правильним опонентом. Адреси обох сторін однакові, і потім ці злочинно фальшиві адреси використовуються для переказу невеликих сум або безцінних токенів на адресу цільового користувача.
Якщо цільовий користувач копіює адресу опонента з історичних транзакційних замовлень для перекладу у наступних транзакціях через особисті звички, дуже ймовірно, що активи будуть помилково переведені на зловмисну адресу через необережність.
3 травня 2024 року 1155WBTC на суму понад 70 мільйонів доларів США було вилучено через метод рибальства за адресою забруднення.
Правильна адреса: 0xd9A1b0B1e1aE382DbDc898Ea68012FfcB2853a91
Зловісна адреса: 0xd9A1C3788D81257612E2581A6ea0aDa244853a91
Звичайна транзакція:
https://etherscan.io/tx/0xb18ab131d251f7429c56a2ae2b1b75ce104fe9e83315a0c71ccf2b20267683ac
Забруднення адрес:
https://etherscan.io/tx/0x87c6e5d56fea35315ba283de8b6422ad390b6b9d8d399d9b93a9051a3e11bf73
Направлення транзакції не вірне:
https://etherscan.io/tx/0x3374abc5a9c766ba709651399b6e6162de97ca986abc23f423a9d893c8f5f570
На сьогодні різноманітні гаманці та безпечні додатки поступово впроваджують візуальні попередження про ризики для списків фішингу та загальних методів шахрайства, а також все частіше відображають інформацію про підписи, покращуючи здатність звичайних користувачів розпізнавати атаки фішингу. Однак офенсивні та оборонні технології завжди змагаються між собою і постійно розвиваються. Також постійно з'являються більш хитрі методи фішингу, тому нам потрібно бути більш бджолами. Використання CREATE2 для обходу виявлення чорного списку гаманців та безпечних додатків є досить поширеним методом останнього часу.
Create2 - це опкод, який був введений під час оновлення Ethereum 'Constantinople' і дозволяє користувачам створювати смарт-контракти на Ethereum. Оригінальний опкод Create генерує нову адресу на основі адреси та nonce створювача. Create2 дозволяє користувачам обчислити адресу перед розгортанням контракту. Create2 - дуже потужний інструмент для розробників Ethereum, що дозволяє розширену та гнучку взаємодію з контрактами, підготовку адреси контракту на основі параметрів, позаканальні транзакції та гнучке розгортання та адаптацію конкретних розподілених застосувань.
Хоча Create2 приносить користь, він також створює нові ризики безпеки. Create2 можна зловживати для генерації нових адрес зі збудженням історії зловмисних транзакцій, обійшовши виявлення чорного списку гаманців та попередження про безпеку. Коли жертва підписує зловісну транзакцію, атакуючий може розгорнути контракт за попередньо обчисленим адресом і передати активи жертви на цей адрес, і це є невідворотним процесом.
Особливості цього нападу:
(1) Дозволяє передбачуване створення адрес контрактів, що дозволяє зловмисникам обдурити користувачів, надаючи дозволи перед розгортанням контракту.
(2) Оскільки контракт ще не був розгорнутий на момент авторизації, адреса атаки є новою адресою, а засіб виявлення не може надати попередження на основі історичного чорного списку, що має вищий рівень приховування.
Ось приклад рибалки за допомогою CREATE2:
https://etherscan.io/tx/0x83f6bfde97f2fe60d2a4a1f55f9c4ea476c9d87fa0fcd0c1c3592ad6a539ed14
У цій транзакції жертва переказала sfrxETH на адресу зловмисника (0x4D9f77), яка є новою контрактною адресою без жодних записів транзакцій.
Проте, коли ви відкриваєте транзакцію створення цього контракту, ви можете виявити, що контракт завершив фішингову атаку у той же час, коли був створений, переказуючи активи з адреси жертви.
https://etherscan.io/tx/0x77c79f9c865c64f76dc7f9dff978a0b8081dce72cab7c256ac52a764376f8e52
Розглядаючи виконання цієї транзакції, ви можете побачити, що 0x4d9f7773deb9cc44b34066f5e36a5ec98ac92d40 був створений після виклику CREATE2.
Крім того, аналізуючи відповідні адреси PinkDrainer, можна виявити, що ця адреса щодня створює нові контрактні адреси для виманювання через CREATE2.
https://etherscan.io/address/0x5d775caa7a0a56cd2d56a480b0f92e3900fe9722#internaltx
Атаки фішингу стають все більш розповсюдженими, і через величезний незаконний прибуток почалася чорна ланцюжок промисловості на основі Drainer as a Service (DaaS). До найбільш активних відносяться Inferno/MS/Angel/Monkey/Venom/Pink/ Pussy/Medusa тощо, фішингові атакувальники придбають ці послуги DaaS, швидко і з низьким порогом, створюють тисячі сайтів фішингу, шахрайські облікові записи тощо, подібно до біди, що вторгається в цю галузь, загрожуючи безпеці активів користувачів.
Візьмемо на приклад Inferno Drainer, відому фішингову банду, яка вбудовує зловмисні скрипти на різних веб-сайтах. Наприклад, вони поширюють seaport.js, coinbase.js та wallet-connect.js, щоб приховатися під популярні функції протоколу Web3 (Seaport, WalletConnect і Coinbase) та спонукати користувачів інтегрувати або клікати. Після отримання підтвердження користувача вони автоматично перекладуть активи користувача на адресу атакувальника. Було виявлено понад 14 000 веб-сайтів, які містять зловмисні скрипти Seaport, понад 5 500 веб-сайтів, які містять зловмисні скрипти WalletConnect, понад 550 веб-сайтів, які містять зловмисні скрипти Coinbase, понад 16 000 зловмисних доменів, пов'язаних з Inferno Drainer, і більше 100 криптовалютних брендів постраждали. Нижче наведено фішинговий веб-сайт, пов'язаний з Inferno Drainer.
Секція заголовка веб-сайту містить два шкідливі скрипти, seaport.js і wallet-connect.js. Ще одна типова ознака фішингових веб-сайтів Inferno Drainer полягає в тому, що користувачі не можуть відкрити код веб-сайту, натиснувши праву кнопку миші, що робить ці фішингові веб-сайти більш прихованими.
У рамках фреймворку Phishing-as-a-Service, зазвичай 20% вкрадених активів автоматично переказуються на адресу організатора Inferno Drainer, а решта 80% залишаються у власності викрадача даних. Крім того, Inferno Drainer регулярно надає безкоштовні послуги з створення та розміщення фішингових веб-сайтів. Іноді фішингові послуги також потребують внесення плати в розмірі 30% від обманутих коштів. Ці фішингові веб-сайти призначені для тих, хто може привернути жертв до візиту, але не має можливості створити та розробити їх фішингові атакувальники, які мають технічні можливості для розміщення веб-сайту чи просто не хочуть виконувати це завдання самостійно.
Отже, як працює ця афера DaaS? Ось крок за кроком опис схеми криптозлочинної схеми Inferno Drainer:
(1) Inferno Drainer просуває свою послугу через канал Telegram під назвою Inferno Multichain Drainer, і іноді атакувальники також отримують доступ до послуги через веб-сайт Inferno Drainer.
(2) Атакувальник налаштовує та генерує свій власний веб-сайт для атаки шляхом функції служби DaaS та поширює його через X (Twitter), Discord та інші соціальні медіа.
(3) Жертви надаються на сканування QR-кодів або інших методів, що містяться на цих сайтах-шахраях, для підключення своїх гаманців.
(4) Дрейнер перевіряє найцінніші та легко перекладені активи потерпілого та ініціює зловмисні операції.
(5) Потерпілий підтвердив транзакцію.
(6) Активи переведені злочинцям. З украдених активів 20% було переведено розробникам Inferno Drainer, а 80% - рибальським атакам.
На зображенні нижче показана сторінка послуг DaaS, де Inferno Drainer показує клієнтам їх статистику: кількість з'єднань (якщо жертва підключила гаманець до сайту-шахрайства), успішні кліки (якщо жертва підтвердила транзакцію) та вартість викрадених активів.
Кожен клієнт сервісу DaaS може налаштувати власні функції Drainer:
(1) По-перше, користувачі не повинні клікати на невідомі посилання, які маскуються як хороші новини, такі як винагороди, airdrops, тощо;
(2) Випадки викрадення офіційних облікових записів у соціальних мережах зростають, і офіційна інформація також може бути фішинговою інформацією, а офіційна інформація не означає, що вона абсолютно безпечна;
(3) Під час використання гаманців, DApps та інших додатків слід уважно відноситися до відбору та бути обережними з приводу підроблених сайтів та фальшивих додатків;
(4) Будь-яка транзакція або підписове повідомлення, яке потребує підтвердження, повинно бути обережним, і спробуйте перепідтвердити ціль, вміст та іншу інформацію. Відмовтеся підписувати сліпо, будьте бджолами, сумнівайтеся у всьому, і переконайтесь, що кожен крок операції є чітким і безпечним.
(5) Крім того, користувачам потрібно розуміти загальні методи атаки фішингом, згадані в цій статті, і вчитися активно визначати ознаки фішингу. Володійте загальними підписами, функціями авторизації та їх ризиками, володійте інтерактивною (URL взаємодії), Власником (адреса авторизатора), Витратником (адреса авторизованої сторони), Значенням (авторизована кількість), Нонсом (випадковий номер), Кінцевим терміном (час закінчення), переказ/переказ з (передача) та іншими вмістами полів.