Я пам’ятаю, як один друг у групі раніше поділився реченням: якщо ви не знаєте, хто надає переваги, тоді ви надаєте переваги. Я думаю, що це речення має сенс. Те саме стосується аспекту безпеки використання крипто-гаманця. Якщо ви не впевнені, що означають операції, які ви робите, кожна ваша взаємодія в ланцюжку або підпис ризикує втратою активів у гаманці.
Деякий час тому Scam Sniffer опублікував фішинговий звіт за середину 2024 року: у першій половині цього року 260 000 жертв були піддані фішингу тільки в ланцюжку EVM (тобто в ланцюжку Tether Ethereum), із сукупними збитками в 314 мільйонів доларів. Порівняно з 295 мільйонами доларів, викраденими фішинговими атаками минулого року (2023), цього року знадобилося лише 6 місяців, щоб досягти цієї цифри. Як показано нижче.
Відповідно до звіту, більшість поточних крадіжок токенів ERC20 відбувається через підписання фішингових підписів, таких як Permit (метод підпису офлайн-авторизації), Increase Allowance (метод збільшення ліміту авторизації) і Uniswap Permit2, безсумнівно, є основною проблемою безпеки в ланцюжку .зона лиха.
Кілька днів тому партнер повідомив про проблему. Цей партнер переказав 3 суми грошей з Coinbase Wallet два місяці тому (14 червня) (перший переказ був успішним, але наступні два). Перекази не надходили. Цікаво, що пішло не так?
Отже, я переглянув записи про транзакції токенів поза мережею через Etherscan, але побачив лише один відповідний переказ (Transfer) і не бачив записів двох інших. Як показано нижче.
14 червня я додатково перевірив усі записи транзакцій у ланцюжку та виявив, що справді було 3 записи про переказ, але останні два показали, що транзакції не вдалися. Як показано нижче.
Потім я натиснув на одну із невдалих (статус помилки) записів транзакцій і подивився повідомлення про помилку: «Під час виконання контракту сталася помилка». Теоретично такі помилки не призведуть до втрати активів у гаманці ., оскільки згідно з офіційною документацією Etherscan, активи (токени), надіслані відправником під такими помилками, не залишать адресу гаманця відправника, буде вираховано лише комісію за газ. Як показано нижче.
Отже, для вирішення такої проблеми необхідно підтвердити:
- Визначте, чи дійсно кошти в гаманці були переведені або втрачені того дня (тобто вони не були повернуті в гаманець після невдачі транзакції)
- Якщо буде підтверджено, що активи було передано або втрачено, вам може знадобитися зв’язатися з персоналом служби підтримки відповідного веб-сайту для підтримки (у цьому випадку вам, головним чином, потрібно зв’язатися з відправником або платформою для виведення валюти, тобто , джерело переказу для подальшого підтвердження, отримання Платформа сторони або платіжна адреса не можуть це обробити)
Виходячи з цієї проблеми, моя загальна пропозиція така: під час щоденних транзакцій найкраще створювати аркуш обліку транзакцій. Наприклад, ви можете використовувати Excel та інші інструменти для запису щоденних транзакцій (купівля/продаж) і грошових витрат (запис на рахунки. )./Бухгалтерські записи тощо. Тоді, якщо ви зіткнетеся з деякими проблемами, цю таблицю також можна порівняти та перевірити із записами транзакцій у ланцюжку. Фактично, у мене є така форма кожного разу, коли я роблю транзакцію, я буду детально записувати її (деякі записи також включатимуть деякий досвід торгівлі тощо).
На цьому етапі вищевказане питання здається в основному зрозумілим. Але в процесі запиту записів транзакцій у ланцюжку я виявив, що гаманець цього партнера мав серйознішу проблему: він став мішенню хакерів!
що відбувається Давайте подивимося вниз (як показано на малюнку нижче):
Спочатку подивіться на червоне поле на зображенні вище (справжня транзакція):
Власник гаманця щойно виконав операцію Swap на 10 000 доларів США та перевів конвертований USDT у гаманець, починаючи з 0x8F (закінчуючи f103).
Подивіться на зелене поле на зображенні вище (транзакція риболовлі)
Відразу після цього хакер створив кілька підроблених транзакцій, і слід зазначити, що адресний гаманець, створений хакером, також починався з 0x8F (закінчувався на f103).
Давайте далі порівняємо ці адреси гаманців:
Нижче вказана справжня адреса власника гаманця:
0x8F773C2E1bF81cbA8ee71CBb8d33249Be6e5f103
Ось адреса гаманця хакера:
0x8F7cCF79d497feDa14eD09F55d2c511001E5f103
0x8F776d5623F778Ea061efcA240912f9643fdf103
На цьому етапі кожен повинен побачити проблему. Перші 4 цифри та останні 4 цифри цих гаманців збігаються, якщо ви не будете дивитися уважно, ви можете цього не помітити. Якщо ви скопіюєте адресу гаманця безпосередньо із запису транзакцій і перекажете гроші, це фактично означає, що гроші будуть перераховані безпосередньо хакеру.
Таким чином, є впевненість, що гаманець цього партнера справді став мішенню хакерів, які сподівалися позбавити цього партнера його активів за допомогою фішингу. Крім того, через відображення даних на сторінці хешу транзакції ми також можемо виявити, що відповідна дія транзакції також позначена як Fake_Phishing, що на 100% є адресою хакера. Як показано нижче.
Додаткові знання: чому я не бачу недійсних транзакцій або нульових записів переказів під час використання Etherscan? Як налаштувати браузер Ethereum на спрощений китайський інтерфейс?
Це пояснюється тим, що офіційний браузер Ethereum за замовчуванням приховує недійсні транзакції та нульові записи про перекази. Якщо вам потрібно переглянути такі дані, ви можете ввімкнути розширені функції на сторінці налаштувань Etherscan. Так само, якщо ви віддаєте перевагу інтерфейсу спрощеної китайської мови, ви також можете вибрати його на сторінці налаштувань. Як показано нижче. Крім того, ви також можете розглянути можливість використання багатоканального браузера стороннього виробника, наприклад Oklink (який також підтримує спрощену китайську мову).
Проблема безпеки використання гаманця справді потребує особливої уваги, особливо для гаманців із великими активами (понад 1 мільйон доларів). Рекомендується розподіляти активи по різним гаманцям відповідно до використання, щоб покращити безпеку. Наприклад, мій власний гаманець розділений на такі рівні:
Перший рівень — це холодний гаманець, створений за допомогою iPhone, який використовується для зберігання монет. Він відключений від Інтернету і не виконуватиме жодних транзакцій/операцій переказу протягом принаймні 10 років . Звичайно, якщо ви хочете проводити транзакції через холодні гаманці, ви можете придбати відомі апаратні гаманці (наприклад, Trezor, Ledger тощо) через офіційні канали.
Другий рівень — це гарячий гаманець для відносно великих сум. Я використовую Trust Wallet і не виконую жодної авторизації в додатку. Я лише переказую кошти з інших своїх гаманців, включаючи зняття коштів або перекази через Binance.
Третій рівень складається з десятків невеликих гаманців, деякі з яких використовуються для тестування (наприклад, для участі в різних нових проектах, щоб випробувати продукт або до речі, для гри в airdrops), а деякі з них раніше використовувалися для покупки монет копіювання або доджів. (але в останні кілька років я вже рідко роблю транзакції в цій сфері), і кожен гаманець містить невеликі суми коштів, від кількох сотень до кількох тисяч доларів. Я більш випадково ставлюся до щоденної авторизації/підпису такого гаманця, і це не має значення, навіть якщо його вкрадуть. Хоча ці гаманці можуть здатися трохи складними у використанні та керуванні, вони в основному призначені для безпеки ~
Коротше кажучи, різні люди можуть мати різні переваги, коли мова заходить про використання гаманців, і все залежить від їхніх особистих обставин. Старий лук-порей може віддавати перевагу зберіганню активів у ланцюжку, але для більшості новачків у цій сфері насправді безпечніше безпосередньо використовувати великі біржі, такі як Binance та OKX, для зберігання активів (не більше 100 000 доларів США).
Далі ми продовжимо сортувати деякі з найпоширеніших методів риболовлі на даний момент:
1. Дозволити фішингову атаку
Перш за все, нам потрібно популяризувати базові знання: коли ми передаємо токен на Ethereum, це зазвичай виконується шляхом виклику функції Transfer або функції Transfer From смарт-контракту Token. Серед них «Передача» означає, що власник активу виконує авторизовану операцію та передає токен на інші адреси, тоді як «Передача від» означає, що третя сторона безпосередньо передає токен в адресі на інші адреси.
Процес атаки під час фішингової атаки Permit виглядає наступним чином:
По-перше, зловмисник спонукає користувачів підписати через гаманець (без завантаження в ланцюг), підробляючи фішингові посилання або фішингові веб-сайти.
По-друге, зловмисник викликає функцію дозволу для завершення авторизації.
Потім зловмисник передає активи жертви, викликаючи функцію Transfer From, щоб завершити фішингову атаку.
Однією з особливостей цього методу фішингу є те, що зловмисник виконує операції дозволу та передачі після отримання авторизації підпису. За замовчуванням запис авторизації не можна побачити в записі транзакції в ланцюжку адреси жертви, але його можна побачити в адреса нападника.
Загалом кажучи, цей тип атаки авторизації підпису є одноразовим і не створює повторних або постійних ризиків фішингу. Просте пояснення таке: фішинг підпису не може викрасти мнемонічну фразу (або закритий ключ) вашого гаманця. Фішинг підпису можна використовувати лише один раз і лише для відповідної валюти відповідного ланцюжка облікового запису (наприклад, якщо ви авторизуєтеся). USDT, тоді хакер може вкрасти лише ваш USDT). Простіше кажучи, якщо вас фішингують і ви підписані один раз, хакер може використати це лише один раз, якщо ви не продовжите підписувати помилково пізніше і піддастеся використанню хакером.
(Зображення вище надіслано bocaibocai@wzxznl)
2. Фішинг-атака Uniswap Permit2
Цей метод фішингу подібний до дозволу, згаданого вище, і обидва належать до фішингу підпису поза мережею. Так званий Uniswap Permit2 — це смарт-контракт, запущений Uniswap у 2022 році. Згідно з офіційною заявою, це контракт на затвердження токенів, який дозволяє спільно використовувати та керувати авторизацією токенів у різних програмах, створюючи більш уніфіковані та економічно ефективні переваги. і більш безпечний досвід користувача. Зараз багато проектів інтегровано з Permit2.
Нещодавно я також прочитав кілька статей, написаних bocaibocai (X@wzxznl), щоб дізнатися більше про метод фішингової атаки Uniswap Permit2. Тут я дам вам короткий підсумок:
Коли ми хочемо виконати операції обміну на певному DEX, традиційний метод взаємодії полягає в тому, що нам потрібно спершу підтвердити авторизацію для DEX, а потім виконати транзакції обміну. Це зазвичай коштує нам двох комісій за газ, а вартість тертя надто висока Big, і Permit2 може заощадити цей крок, що може дуже ефективно зменшити вартість взаємодії користувача та забезпечити кращий досвід користувача.
Іншими словами, Permit2 діє як посередник між користувачами та dApps. Усі Dapps, які інтегрують контракт Permit2, можуть поділитися цією сумою авторизації для користувачів dApps, покращення взаємодії з користувачем приносить більше користувачів і коштів.
Це безпрограшна ситуація, але вона також може бути палкою з двома кінцями. У традиційному методі взаємодії, будь то авторизація чи переказ коштів, це взаємодія в ланцюжку для операційного користувача. Permit2 перетворює операції користувачів на підписи поза мережею, а всі операції в ланцюжку виконуються проміжними учасниками (наприклад, контракти Permit2 та сторони проекту, які інтегрують Permit2 тощо). Роль користувача була передана проміжній ролі, але для користувачів підписи поза мережею є найлегшим посиланням, щоб підвести їх. Наприклад, коли ми використовуємо гаманець для входу в деякі dApps, ми потрібно буде підписати, щоб підключитися, а переважна більшість людей цього не робить. Вони ретельно перевірятимуть вміст підпису, але не розумітимуть вмісту підпису (для звичайних користувачів інтерфейс підпису виглядає як купа коду). і це найстрашніше.
Інший страшний момент полягає в тому, що незалежно від того, скільки ви хочете обміняти, контракт Permit2 від Uniswap дозволить вам авторизувати весь баланс токена за замовчуванням. Хоча такі гаманці, як MetaMask, дозволять вам налаштувати суму введення, за оцінками, більшість людей Ви клацнете максимальне значення або значення за замовчуванням, а значення за замовчуванням Permit2 необмежене. Як показано нижче.
А це означає, що поки ви взаємодієте з Uniswap і авторизуєте квоту для контракту Permit2, ви будете наражатися на ризик цього фішингового шахрайства.
Наприклад, коли Сяо Лі раніше використовував Uniswap, він дозволив Uniswap Permit2 мати необмежену квоту USDT, однак, коли Сяо Лі виконував щоденні операції з гаманцем, він випадково потрапив у пастку для підпису Permit2, розроблену хакером Після підпису Лі, підпис Сяо Лі можна використовувати для виконання операцій «Дозвіл» і «Передача з» у контракті «Дозвіл2» для передачі активів Сяо Лі.
Конкретні кроки цього методу фішингової атаки приблизно такі:
Перш за все, гаманець користувача використовував Uniswap перед фішингом і авторизував ліміт токенів для контракту Uniswap Permit2 (як згадувалося вище, значенням за замовчуванням Permit2 є необмежений ліміт авторизації).
По-друге, зловмисник підробляє фішингові посилання або сторінки фішингового веб-сайту, щоб спонукати користувачів підписувати гаманці через фішингові посилання або веб-сайти, а потім зловмисник може отримати необхідну інформацію для підпису (цей крок подібний до дозволу на фішинг).
Потім зловмисник викликає функцію Permit контракту Permit2, щоб завершити авторизацію.
Нарешті зловмисник викликає функцію Transfer From контракту Permit2, щоб передати активи жертви, завершуючи фішингову атаку.
За звичайних обставин цей метод атаки отримуватиме більше активів з адрес, деякі з яких спеціально використовуються для фішингу (навіть підробка адреси, яка закінчується так само, як адреса гаманця жертви), а деякі з них є чорними продуктами, які спеціалізуються на наданні фішингу адреси (наприклад, адреси деяких постачальників DaaS, поточний фішинг для зашифрованих гаманців, здається, сформував повний ланцюжок чорної індустрії). Як показано нижче.
Отже, як запобігти таким проблемам, як Permit і Permit2?
По-перше, ви можете розглянути можливість використання плагіна безпеки веб-переглядача, наприклад Scamsniffer (я використовував цей плагін для свого власного Google Chrome), щоб запобігти фішинговим посиланням. По-друге, ви можете скористатися таким інструментом, як Revoke Cash, щоб регулярно перевіряти та скасувати незнайомі або непотрібні авторизації або підпис. Як показано нижче.
Крім того, ви також можете розглянути можливість безпосереднього використання інструменту керування авторизацією, запущеного Scamsniffer спеціально для Uniswap Permit2, щоб проводити регулярні перевірки, якщо є нестандартна авторизація, рекомендовано вчасно скасувати авторизацію. Як показано нижче.
Звичайно, найважливіше — це ваша власна обізнаність про безпеку. Не переходьте випадково до посилань або веб-сайтів із невідомих джерел. Ви повинні проводити додаткові перевірки під час авторизації dApp.
(Зображення вище надійшло з bocaibocai@wzxznl)
Додаткові знання: як визначити, чи належить підпис гаманця Permit чи Permit2?
Виконуючи різні підписи щодня, ми побачимо деякі коди, що з’являються в інтерфейсі підтвердження авторизації. Нам потрібно ідентифікувати їх за допомогою цих кодів, як показано на малюнку нижче.
На наведеному вище малюнку Власник (адреса уповноваженого), Виконавець (адреса уповноваженої сторони), Вартість (авторизована кількість), Nonce (випадкове число) і Кінцевий термін (термін дії).
3. Заявка на фішингову атаку
Цей вид фішингового методу також дуже поширений, наприклад, якщо ми часто переглядаємо Там може бути адреса доменного імені).
І якщо ви клацнете, щоб увійти на призначений фішинговий веб-сайт і виконати операцію «Претензія», активи у вашому гаманці можуть бути безпосередньо передані хакерами.
Отже, як запобігти такій проблемі?
По-перше, не вірте в банальні речі (тобто не натискайте навмання посилання на безкоштовні NFT, airdrops тощо невідомого походження), будьте переконайтеся, що адреса, яку ви відвідуєте, справжня. Не ставтеся до цього легковажно.
4. Фішинг подібної передачі адреси
Такий випадок стався 3 травня цього року гігантський кит зіткнувся з фішинговою атакою з тим же номером адреси, і йому було викрадено 1155 WBTC (на той час вартістю приблизно 70 мільйонів доларів).
Slow Mist вже детально проаналізував цей інцидент, тому я не буду вдаватися в деталі. Зацікавлені друзі можуть шукати та переглядати його.
Цей спосіб риболовлі насправді здається відносно простим:
По-перше, хакери заздалегідь генеруватимуть велику кількість фішингових адрес. Наприклад, перші 4 цифри та останні 6 цифр збігаються з цільовою адресою передачі.
По-друге, після розподіленого розгортання пакетних програм, заснованих на динаміці користувачів у ланцюжку, на цільову адресу передачі запускається фішингова атака з однаковими першою та останньою адресами.
Після того, як цільовий користувач (жертва) здійснить переказ, хакер негайно використовує зіткнуту фішингову адресу, щоб стежити за транзакцією, так що фішингова адреса з’являється в записі транзакції користувача. Як показано нижче.
Потім, оскільки користувач звик копіювати інформацію про нещодавні перекази з історії гаманця, він побачив цю кінцеву фішингову транзакцію і не ретельно перевірив, чи була скопійована адреса правильною. У результаті 1155 WBTC були помилково переведені на фішингову адресу.
Отже, як запобігти такій проблемі?
Перш за все, ви можете зберегти адреси, які часто використовуються, в адресну книгу гаманця (або додати їх до білого списку) Наступна передача може знайти цільову адресу з адресної книги гаманця. По-друге, ви повинні ретельно перевірити, чи правильна адреса. Не перевіряйте лише перші чи останні цифри перед тим, як здійснювати переказ.
5. Авторизований фішинг підпису
Фактично, дозвіл, дозвіл Uniswap2 і претензія, про які ми згадували вище, також належать до категорії авторизованого фішингу. Що стосується авторизації, існує багато способів, якими можуть скористатися хакери, наприклад більш поширений Approve (тобто авторизація, яка еквівалентна повідомленню контракту USDT про те, що Uniswap може незаконно привласнити USDT у моєму гаманці), Increase Allowance (збільшення ліміт авторизації) тощо.
Основний метод атаки такий: зловмисник використовує фішингові посилання або фішингові веб-сайти або безпосередньо зламує офіційний веб-сайт проекту для встановлення троянських програм, а потім спонукає користувачів натиснути та авторизувати гаманець.
Звичайно, вище ми перерахували лише 5 відносно поширених методів фішингової атаки, і поточні методи атаки хакерів також різноманітні та нескінченні. Як то кажуть, хакеру не прийде в голову тільки те, про що ви не можете придумати. Безпеку використання гаманця не можна ігнорувати.
Більше статей можна переглянути на домашній сторінці Hua Li Hua Wai.
Застереження: наведений вище вміст є лише особистою точкою зору та аналізом. Він використовується лише для записів і спілкування та не є інвестиційною порадою. Сфера шифрування є надзвичайно ризикованим ринком, і багато проектів мають ризик повернутися до нуля в будь-який момент.