Стаття 6 з 125 хв читання

Що показує вам телефон: аналіз транзакцій на підписувачі

Більшість крадіжок із гаманців стається за згодою власника. Сторінка показує одне, гаманець підписує інше, а власник натиснув Confirm (Підтвердити). Завдання телефону — подбати, щоб ви підписували саме те, що бачите.

Телефон декодує безлімітний дозвіл на списання (allowance) для невідомого розпорядника (spender), два попередження винесено у виноски, а маленька картка показує, що сторінка написала лише Swap
Запит таким, яким він є насправді, а не таким, яким його описала сторінка.
Зміст

Твердження і правда

Коли вебсторінка просить вас щось підписати, вона ще й каже, що це. «Обміняти 1 ETH на USDC». «Заберіть свою винагороду». «Підтвердьте свій гаманець». Цей опис — твердження сторінки, а шкідлива сторінка може стверджувати що завгодно. Байти, які вона передає гаманцю, — окрема річ, і тільки їх блокчейн колись побачить.

AirNox Vault ігнорує твердження. Він декодує запит із тих самих байтів, які збирається підписати, на телефоні, власним парсером, і показує вам результат. Те, що комп’ютер каже про запит, — твердження. Те, що показує телефон, — правда.

Ліворуч сторінка пише Swap 1 ETH to USDC; праворуч телефон декодує безлімітний дозвіл на списання для невідомого розпорядника
Один запит, два описи. Лише один із них узято з байтів.

Стандартні методи: розпізнано

Більшість того, що ви підписуєте, — звичайні речі. Переказ. Дозвіл на списання токена. Обмін через відомий роутер. Депозит у контракт. Телефон розпізнає стандартні операції кожного сімейства блокчейнів, яке підтримує, і показує їх простими словами: яка операція, який токен, скільки, кому, в якій мережі і яка максимальна комісія. Переказ виглядає як переказ. Дозвіл на списання виглядає як дозвіл на списання, з явно вказаними розпорядником (spender) і сумою.

Двійники: позначено

Небезпечні запити — ті, що виглядають звичайними, але такими не є. Метод, назва якого нагадує стандартний, але параметри не збігаються. Виклик, що делегує контроль іншому контракту так, що в заголовку цього не видно. Адресат, який не є тим контрактом, з яким, за словами сторінки, вона працює. Токен, символ якого імітує відомий. Адреса отримувача, яка має ті самі перші й останні символи, що й одна з ваших.

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

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

Попередження

Безлімітний дозвіл на списання — класичний хід дрейнера (drainer): один раз схвалили — і потім втратили все, що мали в цьому токені. Телефон пише «безлімітно» червоним і вважає це попередженням.

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

Метод-двійник, токен-самозванець, отримувач-двійник і приховане делегування — кожне з них назване своїм іменем. Для отримувачів і комп’ютер, і телефон показують детерміноване зображення адреси, тож двійник, який обманює око в hex-записі, не обманить його на зображенні.

Спершу відмітка, потім Accept

Попередження — не спливне вікно, яке можна закрити рефлекторно. Кнопка Accept (Прийняти) лишається неактивною, доки ви не відмітите кожне попередження. Відхилити запит можна будь-коли. Прийняти — лише після того, як ви відмітили все, що знайшов телефон. Це одне проєктне рішення перетворює «я проклікав» на «я прочитав і вирішив продовжити», а це і є різниця між спустошеним гаманцем і рішенням.

Спершу перевіряє комп’ютер

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

Читати — і далі ваша справа

Підписувач (signer), що показує правду, не може завадити вам на неї погодитися. Але він може зробити так, щоб правду неможливо було пропустити: декодовану з байтів, простими словами, з ризикованими частинами червоним і бар’єром, який треба пройти свідомо. Решта — за вами, і тепер у вас є все, щоб вирішити.

Уся серія

  1. Вважайте комп’ютер скомпрометованим
  2. Mass Adoption Security: підписувач — це телефон, який у вас уже є
  3. Три способи перетнути повітряний проміжок: QR-коди, Bluetooth LE і NFC
  4. Невидимий в ефірі: підписувач, якого не знайти скануванням
  5. Каналу передачі не довіряють ніколи
  6. Що показує вам телефон: аналіз транзакцій на підписувачі
  7. Телефон веде власний журнал
  8. Сховище на вашому комп’ютері: Argon2id і профіль, стійкий до підбору
  9. dApp без браузерного гаманця
  10. MCP-сервер із правилами: ШІ-агенти в межах лімітів
  11. Один захищений гаманець для всього
  12. Компактний і нативний: C++, без JavaScript-рантайму, від робочої станції до Raspberry Pi

Запишіться до списку очікування

Залиште електронну адресу, і ми надішлемо новини про реліз. Більше нічого.