Poolz зазнав атаки через вразливість арифметичного переповнення, втрати склали майже 670 000 доларів США
Нещодавно інцидент атаки на багатоланцюговий проект Poolz привернув широке увагу в галузі. Згідно з даними моніторингу в режимі реального часу, атака відбулася 15 березня 2023 року і охопила кілька публічних ланцюгів, зокрема Ethereum, BNB Chain та Polygon.
Ця атака призвела до викрадення великої кількості токенів, включаючи токени багатьох проєктів, таких як MEE, ESNC, DON, ASW, KMON, POOLZ. Попередні оцінки вказують, що загальна вартість вкрадених активів становить приблизно 665,000 доларів США. Наразі частину вкрадених токенів було обміняно зловмисниками на BNB, але вони ще не були переведені з адреси, контрольованої нападниками.
Аналіз показує, що ця атака в основному використовувала вразливість арифметичного переповнення в смарт-контракті проекту Poolz. Зловмисники, використовуючи майстерно сконструйовані вхідні параметри, спровокували переповнення цілих чисел під час масового створення ліквідних пулів, що дозволило їм отримати велику ліквідність за дуже незначну кількість токенів.
Конкретно, зловмисник спочатку обміняв невелику кількість токенів MNZ на певній децентралізованій біржі. Потім зловмисник викликав функцію CreateMassPools у контракті Poolz, яка дозволяє користувачам масово створювати ліквідні пули та надавати початкову ліквідність. Проблема полягає у функції getArraySum, яка використовується для обчислення загальної кількості початкової ліквідності, наданої користувачем.
Зловмисник ретельно сконструював масив із надвеликими значеннями як вхідні параметри. Коли ці значення були складені, сталося переповнення цілого числа, що призвело до величезної різниці між фактичною кількістю токенів, яка була переведена, та зафіксованою кількістю. Врешті-решт, зловмисник перевів лише 1 токен, але в контракті було зафіксовано величезне значення ліквідності.
Після виконання вищезазначених дій, зловмисник негайно викликав функцію withdraw для вилучення коштів, легко завершивши весь процес атаки.
Ця подія знову підкреслила небезпеку проблеми переповнення арифметичних операцій у смарт-контрактах. Щоб запобігти схожим ризикам, експерти галузі радять розробникам використовувати новіші версії мови програмування Solidity, які автоматично виконують перевірку переповнення під час компіляції. Для проектів, що використовують старі версії Solidity, можна розглянути можливість впровадження перевірених бібліотек безпеки, таких як OpenZeppelin, для вирішення проблеми переповнення цілих чисел.
Ця подія нагадує нам, що безпека контрактів завжди є ключовою проблемою, яку не слід ігнорувати в екосистемі блокчейну. Команди проектів повинні постійно посилювати аудит коду та тестування безпеки, а користувачі, беручи участь у нових проектах, також повинні залишатися насторожі та обережно оцінювати відповідні ризики.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
18 лайків
Нагородити
18
5
Поділіться
Прокоментувати
0/400
PositionPhobia
· 19год тому
Втратив усе, стоп-лос навіть не спрацьовує.
Переглянути оригіналвідповісти на0
StrawberryIce
· 19год тому
І знову дірки, і знову дірки, який контракт надійний!
Переглянути оригіналвідповісти на0
InscriptionGriller
· 19год тому
Ще один яскравий приклад нулявання щодня обдурювати людей, як лохів
Переглянути оригіналвідповісти на0
SeasonedInvestor
· 19год тому
Знову обікрали! Який контракт тестують?
Переглянути оригіналвідповісти на0
SchrodingersPaper
· 20год тому
Знову обдерли? Грати в контракти ще не вистачає тесту! Так погано!
Poolz зазнав атаки переповнення арифметики, багато ланцюгів втратили майже 67 тисяч доларів США.
Poolz зазнав атаки через вразливість арифметичного переповнення, втрати склали майже 670 000 доларів США
Нещодавно інцидент атаки на багатоланцюговий проект Poolz привернув широке увагу в галузі. Згідно з даними моніторингу в режимі реального часу, атака відбулася 15 березня 2023 року і охопила кілька публічних ланцюгів, зокрема Ethereum, BNB Chain та Polygon.
Ця атака призвела до викрадення великої кількості токенів, включаючи токени багатьох проєктів, таких як MEE, ESNC, DON, ASW, KMON, POOLZ. Попередні оцінки вказують, що загальна вартість вкрадених активів становить приблизно 665,000 доларів США. Наразі частину вкрадених токенів було обміняно зловмисниками на BNB, але вони ще не були переведені з адреси, контрольованої нападниками.
Аналіз показує, що ця атака в основному використовувала вразливість арифметичного переповнення в смарт-контракті проекту Poolz. Зловмисники, використовуючи майстерно сконструйовані вхідні параметри, спровокували переповнення цілих чисел під час масового створення ліквідних пулів, що дозволило їм отримати велику ліквідність за дуже незначну кількість токенів.
Конкретно, зловмисник спочатку обміняв невелику кількість токенів MNZ на певній децентралізованій біржі. Потім зловмисник викликав функцію CreateMassPools у контракті Poolz, яка дозволяє користувачам масово створювати ліквідні пули та надавати початкову ліквідність. Проблема полягає у функції getArraySum, яка використовується для обчислення загальної кількості початкової ліквідності, наданої користувачем.
Зловмисник ретельно сконструював масив із надвеликими значеннями як вхідні параметри. Коли ці значення були складені, сталося переповнення цілого числа, що призвело до величезної різниці між фактичною кількістю токенів, яка була переведена, та зафіксованою кількістю. Врешті-решт, зловмисник перевів лише 1 токен, але в контракті було зафіксовано величезне значення ліквідності.
Після виконання вищезазначених дій, зловмисник негайно викликав функцію withdraw для вилучення коштів, легко завершивши весь процес атаки.
Ця подія знову підкреслила небезпеку проблеми переповнення арифметичних операцій у смарт-контрактах. Щоб запобігти схожим ризикам, експерти галузі радять розробникам використовувати новіші версії мови програмування Solidity, які автоматично виконують перевірку переповнення під час компіляції. Для проектів, що використовують старі версії Solidity, можна розглянути можливість впровадження перевірених бібліотек безпеки, таких як OpenZeppelin, для вирішення проблеми переповнення цілих чисел.
Ця подія нагадує нам, що безпека контрактів завжди є ключовою проблемою, яку не слід ігнорувати в екосистемі блокчейну. Команди проектів повинні постійно посилювати аудит коду та тестування безпеки, а користувачі, беручи участь у нових проектах, також повинні залишатися насторожі та обережно оцінювати відповідні ризики.