Від рішення до ризику: як дозвіл став новою вразливістю?

Середній10/22/2024, 6:32:20 AM
Ця стаття заглиблюється в механізми схвалення Approve та Permit на Ethereum, досліджуючи їх практичні відмінності та вплив. Вона аналізує, як механізм Permit допомагає зменшити витрати користувача в умовах високої комісії за газ, а також обговорює потенційні ризики безпеки та пропонує практичні поради з безпеки.

1. Огляд дозволу

Давайте почнемо зі простої історії про позичання грошей:
Я планую позичити один мільйон від мого доброго друга Джека Ма. Без вагань, Джек Ма піднімає телефон, дзвонить в банк, і після перевірки своєї особи каже банку: "Я авторизую такого-то зняти один мільйон". Банк підтверджує цю авторизацію та реєструє її.

Наступний крок - це піти до банку і сказати касиру, що я прийшов зняти один мільйон, на який має дозвіл Джек Ма. Банк перевіряє запис про дозвіл і, після підтвердження, що я правильна особа, видає один мільйон.

Ця історія є хорошою аналогією того, як працює схвалення авторизації в Ethereum. В цьому процесі тільки Джек Ма (власник активу) може зателефонувати в банк, щоб надати авторизацію (на ланцюжку), а банк (контракт токена) керує цими авторизаціями. Тільки після цього я (авторизована сторона) можу зняти суму, яка не перевищує авторизацію. Якщо банк не знайде жодного запису про авторизацію, мій запит на зняття безумовно буде відхилений.

А що станеться, якщо ми використаємо інший метод авторизації - Дозвіл? Як тоді працюватиме позичання грошей у Джека Ма?

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

До цього часу ви, ймовірно, можете побачити різницю в процесах. Затвердження, як основна функція ERC-20, широко використовувалася вже незабаром після запуску Ethereum. То чому метод Permit був введений в ERC-2612 для досягнення подібного результату?

2. Чому потрібен дозвіл?

Пропозиція ERC-2612 була представлена в березні 2019 року та завершила остаточний огляд у жовтні 2022 року. Її розгортання тісно пов'язано з різкими стрибками вартості газу, які досвіджувала головна мережа Ethereum протягом цього періоду.


Зображення: Ціни на газ в основній мережі ETH залишались високими з 2020 по 2022 рік

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

Однак це призвело до зворотного боку: коли користувачі хотіли торгувати токенами ончейн, їм часто доводилося терпіти непомірні комісії за газ. Згідно з методом Aprov, для здійснення одного свопу токенів потрібно дві транзакції (TX). Для користувачів з меншими коштами комісія за транзакцію може стати кошмаром.

Введення дозволу ERC-2612 змінило цей процес, замінивши ончейн-схвалення офлайн-підписами, які не потрібно подавати негайно. Користувачам потрібно лише надати авторизацію при переказі токенів, подібно до того, як в історії з позиками, мені потрібно було лише показати чек Джека Ма при виведенні грошей з банку.

Зайнятий Джек Ма врятує себе від телефонного дзвінка, і здається, що користувачі також економлять одну TX. Коли ціни на газ високі, заощадження на комісіях можуть бути значними, що здається виграшною ситуацією для всіх. Однак ніхто не усвідомлював, що скринька Пандори тихо відчинялася...

3. Вибуховий ріст, як вулканічний вивержок

Перед появою Permit однією з поширених тактик зловмисників, які використовують для фішингу криптокористувачів, було обманути їх на підпис Approve-транзакції. Оскільки ці транзакції вимагали витрати газу, це часто викликало підозру, що ускладнювало завдання зловмисникам. Навіть якщо користувачі випадково клацнули на транзакцію, те, що вона потребувала часу для підтвердження на ланцюжку, давало їм можливість подати іншу транзакцію з тим самим nonce, щоб її скасувати - це робило відносно складним завдання для зловмисників втілити свої замовлення.

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

Це призвело до помітного зростання кількості жертв шахрайства та обсягу викрадених коштів. Згідно зі статистикою з @ScamSniffer"">@ScamSniffer:

  • У 2023 році жертви фішингу втратили загалом $295 мільйонів.
  • У першій половині 2024 року ця цифра вже перевищила 314 мільйонів доларів.
  • До кінця третього кварталу 2024 року стався серйозний інцидент: адреса гаманця високопосадової особи, підозрюваної в тому, що це Шенью, стала жертвою фішингу з дозволом, що призвело до втрати 12 000 spWETH на суму приблизно 200 мільйонів юанів.


Зображення: Звіт про фішингову атаку ScamSniffer за перше півріччя 2024 року

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

Дозвіл - це не єдиний метод авторизації на основі підписів. Наприклад, Uniswap пізніше запровадив Permit2, що дозволяє всім токенам ERC-20 підтримувати автономні підписи. Як No. 1 DEX, крок Uniswap додатково збільшив залежність користувачів від автономних підписів, що, в свою чергу, збільшило ризик фішингових атак.

4. Як уникнути ризику?

Як звичайні користувачі, які кроки ми можемо вжити, щоб уникнути втрат і захистити себе від цього меча Дамокла—гострого клинка—що нависає над нами?

1⃣ Підвищення уваги

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

  • Уникайте сліпого підписування
    Якщо ви випадково потрапили на фішинговий веб-сайт і не усвідомлюєте цього, візьміть собі хвилинку, щоб уважно переглянути транзакцію, коли ваш гаманець попросить вас підписати. Якщо з'являються терміни такі, як Permit, Permit2, Approve або IncreaseAllowance, це означає, що транзакція просить авторизації токенів. На цьому етапі вам слід бути обережним, оскільки законні роздачі токенів не вимагають цього процесу. Апаратні гаманці Keystone реалізували розбір транзакцій та функції відображення, що дозволяють користувачам краще розуміти деталі транзакції та уникати сліпого підписання, що може призвести до серйозних наслідків від поспішних рішень.


Зображення: Keystone апаратний гаманець, Rabby Wallet розбір та відображення дозволу на підпис транзакцій Permit2

2⃣ Ефективно використовуй інструменти

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

  • Скасувати
    Revoke.cashдозволяє переглядати авторизації токенів у вашому гаманці. Ми рекомендуємо відкликати будь-які підозрілі або необмежені авторизації. Корисно регулярно прибирати авторизації та обмежувати їх лише до необхідних сум.

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

Для тих, хто має вимоги до вищої безпеки, використання гаманців з багато-підписами (multi-sig) може подальше покращити захист. Активи під багато-підписом можуть бути переміщені лише тоді, коли досягнуто певного порогу схвалень гаманця. Якщо один гаманець постраждає, але поріг не буде досягнуто, хакери не матимуть доступу до ваших активів.

5. Висновок

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

Оскільки ми зосереджуємося на дозволі, чи ми не також опинились на розі шляху, схожій на ту, з якою стикається ethsign? Чи покращувати й модернізувати, чи зовсім відмовитися - це питання, над яким розробники ETH повинні витратити час на обговорення й розгляд.

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

  • Сильні попередження про операції Permit/Permit2
  • Перемикач для вимкнення функціоналу Permit/Permit2

Відмова від відповідальності:

  1. Ця стаття відтворена з [ KeystoneCN], і авторське право належить оригінальному автору [KeystoneCN], якщо у вас є заперечення проти передруку, будь ласка, зв'яжіться з нами Gate Learn Team , команда обробить його якомога швидше згідно з відповідними процедурами.
  2. Відмова від відповідальності: Погляди та думки, висловлені в цій статті, відображають лише особисті погляди автора і не є жодним інвестиційним порадою.
  3. Переклади статей на інші мови виконуються командою Gate Learn. Якщо не зазначено інше, заборонено копіювання, розповсюдження або плагіат перекладених статей.

Від рішення до ризику: як дозвіл став новою вразливістю?

Середній10/22/2024, 6:32:20 AM
Ця стаття заглиблюється в механізми схвалення Approve та Permit на Ethereum, досліджуючи їх практичні відмінності та вплив. Вона аналізує, як механізм Permit допомагає зменшити витрати користувача в умовах високої комісії за газ, а також обговорює потенційні ризики безпеки та пропонує практичні поради з безпеки.

1. Огляд дозволу

Давайте почнемо зі простої історії про позичання грошей:
Я планую позичити один мільйон від мого доброго друга Джека Ма. Без вагань, Джек Ма піднімає телефон, дзвонить в банк, і після перевірки своєї особи каже банку: "Я авторизую такого-то зняти один мільйон". Банк підтверджує цю авторизацію та реєструє її.

Наступний крок - це піти до банку і сказати касиру, що я прийшов зняти один мільйон, на який має дозвіл Джек Ма. Банк перевіряє запис про дозвіл і, після підтвердження, що я правильна особа, видає один мільйон.

Ця історія є хорошою аналогією того, як працює схвалення авторизації в Ethereum. В цьому процесі тільки Джек Ма (власник активу) може зателефонувати в банк, щоб надати авторизацію (на ланцюжку), а банк (контракт токена) керує цими авторизаціями. Тільки після цього я (авторизована сторона) можу зняти суму, яка не перевищує авторизацію. Якщо банк не знайде жодного запису про авторизацію, мій запит на зняття безумовно буде відхилений.

А що станеться, якщо ми використаємо інший метод авторизації - Дозвіл? Як тоді працюватиме позичання грошей у Джека Ма?

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

До цього часу ви, ймовірно, можете побачити різницю в процесах. Затвердження, як основна функція ERC-20, широко використовувалася вже незабаром після запуску Ethereum. То чому метод Permit був введений в ERC-2612 для досягнення подібного результату?

2. Чому потрібен дозвіл?

Пропозиція ERC-2612 була представлена в березні 2019 року та завершила остаточний огляд у жовтні 2022 року. Її розгортання тісно пов'язано з різкими стрибками вартості газу, які досвіджувала головна мережа Ethereum протягом цього періоду.


Зображення: Ціни на газ в основній мережі ETH залишались високими з 2020 по 2022 рік

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

Однак це призвело до зворотного боку: коли користувачі хотіли торгувати токенами ончейн, їм часто доводилося терпіти непомірні комісії за газ. Згідно з методом Aprov, для здійснення одного свопу токенів потрібно дві транзакції (TX). Для користувачів з меншими коштами комісія за транзакцію може стати кошмаром.

Введення дозволу ERC-2612 змінило цей процес, замінивши ончейн-схвалення офлайн-підписами, які не потрібно подавати негайно. Користувачам потрібно лише надати авторизацію при переказі токенів, подібно до того, як в історії з позиками, мені потрібно було лише показати чек Джека Ма при виведенні грошей з банку.

Зайнятий Джек Ма врятує себе від телефонного дзвінка, і здається, що користувачі також економлять одну TX. Коли ціни на газ високі, заощадження на комісіях можуть бути значними, що здається виграшною ситуацією для всіх. Однак ніхто не усвідомлював, що скринька Пандори тихо відчинялася...

3. Вибуховий ріст, як вулканічний вивержок

Перед появою Permit однією з поширених тактик зловмисників, які використовують для фішингу криптокористувачів, було обманути їх на підпис Approve-транзакції. Оскільки ці транзакції вимагали витрати газу, це часто викликало підозру, що ускладнювало завдання зловмисникам. Навіть якщо користувачі випадково клацнули на транзакцію, те, що вона потребувала часу для підтвердження на ланцюжку, давало їм можливість подати іншу транзакцію з тим самим nonce, щоб її скасувати - це робило відносно складним завдання для зловмисників втілити свої замовлення.

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

Це призвело до помітного зростання кількості жертв шахрайства та обсягу викрадених коштів. Згідно зі статистикою з @ScamSniffer"">@ScamSniffer:

  • У 2023 році жертви фішингу втратили загалом $295 мільйонів.
  • У першій половині 2024 року ця цифра вже перевищила 314 мільйонів доларів.
  • До кінця третього кварталу 2024 року стався серйозний інцидент: адреса гаманця високопосадової особи, підозрюваної в тому, що це Шенью, стала жертвою фішингу з дозволом, що призвело до втрати 12 000 spWETH на суму приблизно 200 мільйонів юанів.


Зображення: Звіт про фішингову атаку ScamSniffer за перше півріччя 2024 року

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

Дозвіл - це не єдиний метод авторизації на основі підписів. Наприклад, Uniswap пізніше запровадив Permit2, що дозволяє всім токенам ERC-20 підтримувати автономні підписи. Як No. 1 DEX, крок Uniswap додатково збільшив залежність користувачів від автономних підписів, що, в свою чергу, збільшило ризик фішингових атак.

4. Як уникнути ризику?

Як звичайні користувачі, які кроки ми можемо вжити, щоб уникнути втрат і захистити себе від цього меча Дамокла—гострого клинка—що нависає над нами?

1⃣ Підвищення уваги

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

  • Уникайте сліпого підписування
    Якщо ви випадково потрапили на фішинговий веб-сайт і не усвідомлюєте цього, візьміть собі хвилинку, щоб уважно переглянути транзакцію, коли ваш гаманець попросить вас підписати. Якщо з'являються терміни такі, як Permit, Permit2, Approve або IncreaseAllowance, це означає, що транзакція просить авторизації токенів. На цьому етапі вам слід бути обережним, оскільки законні роздачі токенів не вимагають цього процесу. Апаратні гаманці Keystone реалізували розбір транзакцій та функції відображення, що дозволяють користувачам краще розуміти деталі транзакції та уникати сліпого підписання, що може призвести до серйозних наслідків від поспішних рішень.


Зображення: Keystone апаратний гаманець, Rabby Wallet розбір та відображення дозволу на підпис транзакцій Permit2

2⃣ Ефективно використовуй інструменти

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

  • Скасувати
    Revoke.cashдозволяє переглядати авторизації токенів у вашому гаманці. Ми рекомендуємо відкликати будь-які підозрілі або необмежені авторизації. Корисно регулярно прибирати авторизації та обмежувати їх лише до необхідних сум.

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

Для тих, хто має вимоги до вищої безпеки, використання гаманців з багато-підписами (multi-sig) може подальше покращити захист. Активи під багато-підписом можуть бути переміщені лише тоді, коли досягнуто певного порогу схвалень гаманця. Якщо один гаманець постраждає, але поріг не буде досягнуто, хакери не матимуть доступу до ваших активів.

5. Висновок

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

Оскільки ми зосереджуємося на дозволі, чи ми не також опинились на розі шляху, схожій на ту, з якою стикається ethsign? Чи покращувати й модернізувати, чи зовсім відмовитися - це питання, над яким розробники ETH повинні витратити час на обговорення й розгляд.

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

  • Сильні попередження про операції Permit/Permit2
  • Перемикач для вимкнення функціоналу Permit/Permit2

Відмова від відповідальності:

  1. Ця стаття відтворена з [ KeystoneCN], і авторське право належить оригінальному автору [KeystoneCN], якщо у вас є заперечення проти передруку, будь ласка, зв'яжіться з нами Gate Learn Team , команда обробить його якомога швидше згідно з відповідними процедурами.
  2. Відмова від відповідальності: Погляди та думки, висловлені в цій статті, відображають лише особисті погляди автора і не є жодним інвестиційним порадою.
  3. Переклади статей на інші мови виконуються командою Gate Learn. Якщо не зазначено інше, заборонено копіювання, розповсюдження або плагіат перекладених статей.
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!