криптосвіт версія обману? Звіт про інцидент з Slow Mist: як хакери використали вразливість коду для пограбування 2,2 мільйона доларів Cetus

Крадіжка 220 мільйонів доларів протоколу Cetus, яка шокувала криптовалютне коло кілька днів тому, викликала обговорення з усіх верств суспільства. Команда інформаційної безпеки Slow Fog також опублікувала повний звіт про весь інцидент, а команда Slow Fog заявила, що атака продемонструвала силу вразливості математичного переповнення. Зловмисник вибирає конкретні параметри за допомогою точних розрахунків і використовує недоліки в функції, що перевіряється_shlw для отримання ліквідності на мільярди за ціною 1 токена. Це надзвичайно складна математична атака, яка радить розробникам суворо перевіряти граничні умови всіх математичних функцій при розробці смарт-контрактів.

Медленний туман: Основна подія - це вразливість перевірки переповнення.

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

(Від вразливості протоколу до декомунізації: детальний аналіз подій Cetus, чи похитнулася безпечність MOVE мови?)

Зловмисник спочатку за допомогою闪电借ків отримав 10,020,000 монет haSUI, швидко знизивши ціну в пулі haSUI/SUI на 99.9%. Потім додав ліквідність у діапазоні значень tick 300000~300200, ширина якого складає лише 1%.

Далі йдеться про ключову уразливість події, зловмисник стверджує, що додав величезну ліквідність ( більше ніж 10 в 27-му ступені ), але через помилку кодування функції checked_shlw, контракт стягує лише 1 монету haSUI.

Формула для розрахунку необхідної ліквідності ( Джерело: Slow Mist Technology )

Атака Slow Mist стала можливою завдяки тому, що за 1 Токен можна отримати величезну Ліквідність. Основна причина цього полягає в тому, що в функції get_delta_a є вразливість через відсутність перевірки переповнення в checked_shlw. Атакуючий скористався цим, що призвело до серйозного відхилення в розрахунках того, скільки haSUI насправді потрібно додати. Через те, що переповнення не було виявлено, система неправильно оцінила кількість необхідного haSUI, що дозволило атакуючому обміняти лише невелику кількість монет на велику кількість ліквідних активів.

Будь-яке вхідне значення менше 0xffffffffffffffff << 192 обійде перевірку на переповнення. Проте, коли ці значення зсуваються вліво на 64 біти, результат перевищує діапазон представлення u256, у такому випадку старші біти даних відкидаються, що призводить до отриманого результату, що значно менший за теоретичне значення. Таким чином, система в подальших обчисленнях недооцінює необхідну кількість haSUI.

Виникла проблема з кодом (, джерело: Slow Mist Technology )

Зловмисник тричі вилучав ліквідність, отримавши в загальному 20,040,000 токенів haSUI та понад 5,760,000 монет SUI. Врешті-решт зловмисник повернув блискавичний кредит, а його чистий прибуток перевищив 230 мільйонів доларів.

Cetus виправив код

Після цього Cetus виправив код, що містить:

Змініть 0xffffffffffffffff << 192 на правильне порогове значення 1 << 192.

Виправити умову судження з n > mask на n >= mask.

Переконайтеся, що при зсуві вліво на 64 біти, що може призвести до переповнення, переповнення правильно виявляється та повертається позначка переповнення.

Відновлена функція checked_shlw ( Джерело: Slow Mist Technology ) Команда Slow Mist: Розробники повинні суворо перевіряти всі граничні умови математичних функцій.

Медленний туман повідомляє, що зловмисник підготував gas fee ще два дні тому, і перед атакою було ще одне спроба, але вона зазнала невдачі. Наразі кошти з адреси Sui зловмисника були заморожені, а адреса EVM також була занесена в чорний список для відстеження.

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

Ця стаття у криптосвіті: звіт про інцидент з Slow Mist: як хакери використали вразливість у коді, щоб вкрасти 2,2 мільйона доларів з Cetus. Спочатку з'явилася на Chain News ABMedia.

Переглянути оригінал
Контент має виключно довідковий характер і не є запрошенням до участі або пропозицією. Інвестиційні, податкові чи юридичні консультації не надаються. Перегляньте Відмову від відповідальності , щоб дізнатися більше про ризики.
  • Нагородити
  • Прокоментувати
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити