Що таке «атака червоної пігулки»?

Фото - Що таке «атака червоної пігулки»?
Команда криптовалютного гаманця ZenGo виявила вразливість у моделюванні транзакцій Web3 у кількох популярних рішеннях для зберігання активів. Розробники оперативно усунули її, а незабаром було опубліковано звіт про цю проблему.
Перш ніж з’ясовувати деталі цієї вразливості, варто визначитись, що таке моделювання транзакцій. До появи смартконтрактів криптовалюти використовувалися лише для приватних переказів. Але тепер вони стали частиною децентралізованих застосунків, кількість яких зростає з кожним днем. 

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

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

Атака червоної пігулки

Суть полягає в тому, що деякий шкідливий код може розпізнавати симуляцію та демонструвати позитивний результат для користувача. Але при відправленні в блокчейн він не буде виконаний. Для атаки код використовує певні показники транзакції, які мовою програмування Solidity називаються «спеціальні змінні». 

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

Вразливі розширення, гаманці та виробники симуляцій. Джерело: офіційний блог ZenGo

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