1 січня о 4:00 ранку протокол Truebit Protocol був успішно атакований за допомогою раніше невідомої угоди, що призвело до втрати 8 535,36 ETH, що еквівалентно 26 мільйонам доларів США. Команда безпеки провела глибокий аналіз цієї події.



Розбір процесу атаки

Хеш основної транзакції атаки: 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014

Кроки дій зловмисника чітко визначені:

Спочатку викликається функція getPurchasePrice() для запиту цінової інформації. Потім переходять до основної вразливості — викликають функцію з дефектом 0xa0296215() з дуже низьким значенням msg.value. Оскільки вихідний код контракту не був оприлюднений, результати декомпіляції показують, що ця функція має арифметичну логічну вразливість, ймовірно, через неправильну обробку цілочисельного усічення. Саме через це зловмисник зміг безкоштовно створити велику кількість токенів TRU.

Далі йде етап конвертації в готівку. Зловмисник за допомогою функції burn "продає" створені токени назад контракту, отримуючи значну кількість ETH. Цей процес повторювався 4 рази, кожного разу збільшуючи значення msg.value, в результаті чого майже порожняв резерв ETH контракту.

Відстеження ланцюга фінансів

Згідно з даними на блокчейні, команда за допомогою інструментів розслідування та відстеження на блокчейні прослідкувала рух викрадених коштів… (оригінальний текст не містить подальшої інформації)
ETH-0,94%
TRU-2,94%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 10
  • Репост
  • Поділіться
Прокоментувати
0/400
BridgeJumpervip
· 14год тому
Знову ця ж стара пастка з контрактами, вихідний код навіть не публікують, а все одно намагаються вкласти стільки грошей...
Переглянути оригіналвідповісти на0
BrokeBeansvip
· 01-11 18:17
Ще одна контракт, код якого не опубліковано, цього разу справді зірвався... 26,4 мільйони доларів просто зникли, чи можна було уникнути такого низького рівня помилки, як цілочисельне усічення, під час аудиту?
Переглянути оригіналвідповісти на0
LiquidationWizardvip
· 01-11 11:45
Знову якісь хитрощі через закритий вихідний код, давно вже потрібно було зробити все відкритим.
Переглянути оригіналвідповісти на0
SerumDegenvip
· 01-09 12:03
ngl це просто переповнення цілого числа з додатковими кроками... неперевірені контракти залишаються неперевіреними, мабуть, лол
Переглянути оригіналвідповісти на0
ForkLibertarianvip
· 01-09 12:01
Чорт, знову цілочисельне усічення... Як ще хтось на це попадається з такими вразливостями
Переглянути оригіналвідповісти на0
QuorumVotervip
· 01-09 11:57
Ціле число знову зірвалося, як таке ще можна розгортати контракт, код якого не публікується?
Переглянути оригіналвідповісти на0
SchrodingerWalletvip
· 01-09 11:50
Знову пастка незакритих контрактів, цього разу 26,4 мільйонів доларів просто зникли... Уразливість цілочисельного усічення надто безжальна
Переглянути оригіналвідповісти на0
MetaMisfitvip
· 01-09 11:48
Знову через нерозкритий вихідний код, у ці часи приховування лише робить його легше виявити.
Переглянути оригіналвідповісти на0
BlockImpostervip
· 01-09 11:42
Знову несправжній контракт провалився, скільки ж разів потрібно це робити, щоб звикнути?
Переглянути оригіналвідповісти на0
Дізнатися більше
  • Закріпити