Web3 фронтенд атака: Хакерів новий рай

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

Ми забули захистити невидимий шар

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

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

Інтерфейс довіри означає довіру до нападника

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

Кнопка «Swap» може викликати затвердження. Інтерфейс ставлення може передавати делегований виклик. Якщо гаманець не декодує дані у зрозумілому для людини форматі, а багато гаманців все ще цього не роблять, користувачі не можуть перевірити, що вони роблять.

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

Як ці атаки відбуваються

Способи реалізації цих атак не мають нічого особливого. Іноді це так само просто, як DNS-угон, коли зловмисник може отримати доступ до записів домену проекту та надіслати їх на шкідливий сервер. В інших випадках зловмисники вводять код через заражені залежності, замінюючи шкідливу логіку, змінюючи дані транзакцій перед їх передачею гаманцю. Існують також випадки, коли фронт-енд безпосередньо зазнає атаки через доступ до хмарних панелей управління або налаштувань CDN, що дозволяє зловмисникам в режимі реального часу змінювати UI-скрипти.

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

Нещодавні події, що підтверджують це

Ми вже бачили кілька болісних прикладів у цьому відношенні. Один з найвідоміших прикладів - це інцидент Curve Finance 2022 року, коли зловмисник контролював DNS Curve і надавав користувачам фальшивий інтерфейс. Сайт виглядав абсолютно так само. Підказки гаманця також виглядали цілком нормально. Але за лаштунками кожна транзакція перенаправлялася до гаманця зловмисника. Лише за кілька годин було втрачено майже 600 тисяч доларів.

Іншим прикладом є BadgerDAO, який зазнав збитків понад 100 мільйонів доларів після того, як зловмисник вставив шкідливий JavaScript у його інтерфейс. Цей код тихо змінив корисне навантаження транзакцій певних користувачів (зокрема, китів), змусивши їх самих натискати на руйнівні посилання.

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

Чому це питання не зникне

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

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

Що потрібно змінити

Щоб Web3 безпечно розвивався, безпека повинна виходити за межі смарт-контрактів. Розробники повинні ставитися до фронтенду з такою ж ретельністю і педантичністю, як і до бекенду. Це означає блокування залежностей, уникнення непотрібних сторонніх скриптів, захист конфігурації DNS і розгляд аудиту фронтенду як частини кожного важливого релізу.

Постачальники гаманців також повинні відігравати роль. Користувачам потрібно краще розуміти, що саме вони підписують. Це може означати покращення декодування, кращі попередження, або навіть перевірку автентичності на фронтенді. Зараз люди надто довіряють інтерфейсам, тоді як зусилля для перевірки їх цілісності недостатні.

З точки зору користувача, порада є суворою, але чесною: не слід сліпо довіряти жодному інтерфейсу. Якщо ви взаємодієте з високовартісним протоколом, не обмежуйтеся лише перевіркою домену. Перевірте вихідний код. Використовуйте розширення браузера для відстеження шкідливих контрактів. Якщо щось здається підозрілим, не підписуйте.

Висновок

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

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

CRV-2.36%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити