Злом протоколу Truebit виявляє ризики переповнення цілого числа: збитки на суму 26,4 млн доларів у ETH

robot
Генерація анотацій у процесі

12 січня компанія з безпеки SlowMist повідомила про критичний інцидент, пов’язаний з протоколом Truebit, підкреслюючи, як уразливості через переповнення цілочисельних значень можуть призвести до катастрофічних фінансових втрат у децентралізованих системах. Атака, яка сталася 8 січня, призвела до крадіжки 8 535 ETH (вартістю приблизно 26,44 мільйонів доларів США) шляхом складної експлуатації логіки смарт-контракту протоколу.

Як переповнення цілочисельних значень дозволило здійснити атаку

Основна вразливість виникла через контракт Purchase протоколу Truebit, який не мав належних заходів захисту від умов переповнення цілочисельних значень. Зловмисник використав цю слабкість для маніпуляцій з розрахунками ціни у контракті, що дозволило йому створювати токени (TRU за фактично нульовою вартістю. Це класичний приклад того, як переповнення цілочисельних значень — коли арифметичні операції перевищують максимальне значення, яке може зберігати тип даних, спричиняючи обертання значення — може бути використане для витоку коштів протоколу.

Розуміння технічного аналізу

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

Запобігання переповненню цілочисельних значень: найкращі практики для смарт-контрактів

SlowMist наголошує, що розробники, які використовують Solidity версій до 0.8.0, повинні впроваджувати бібліотеку SafeMath у всі арифметичні операції. SafeMath забезпечує вбудовані захисти, які автоматично скасовують транзакції при виявленні переповнення або недоповнення, запобігаючи зловмисникам використанню таких уразливостей. Для контрактів, створених з використанням новіших версій Solidity (0.8.0 і вище), мова вже включає перевірену арифметику за замовчуванням, що зменшує багато — але не всі — ризики переповнення цілочисельних значень. Цей інцидент підкреслює критичну важливість застосування захисних практик програмування та ретельних аудитів безпеки перед розгортанням будь-якого смарт-контракту у виробниче середовище.

ETH2,83%
TRU1,8%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити