Автор: Beosin
9 січня о першій годині ночі протокол Truebit Protocol, який 5 років тому вдіяв не відкритий контракт, став жертвою атаки, в результаті якої було втрачено 8 535,36 ETH (приблизно 26,4 мільйона доларів США). Безпекова команда Beosin провела аналіз уразливостей та витіків коштів у цій безпековій події і поділилася результатами нижче:

Аналіз методів атак
У цьому інциденті ми аналізуємо найважливішу атакувальну транзакцію, хеш транзакції: 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
1. Зловмисник викликає getPurchasePrice() для отримання ціни

2. Потім викликається помилкову функцію 0xa0296215() з дуже малим значенням msg.value

Функція, ймовірно, має арифметичну логічну помилку, оскільки контракт не є відкритим джерелом, і код, отриманий шляхом розпакування, припускає, що виникає проблема з обрізанням цілих чисел, що призводить до успішного виготовлення атакувальником великої кількості монет TRU.
3. Зловмисник використовує функцію burn, щоб "повернути назад" виготовлені монети у контракт, витягнувши таким чином велику кількість ETH з резервів контракту.

Цей процес повторюється ще 4 рази, при цьому значення msg.value збільшується, доки з контракту майже весь ETH не буде витягнуто.
Відстеження вкрадених кошт
На підставі даних транзакцій у блокчейні Beosin детально відстежила кошти за допомогою платформи BeosinTrace для дослідження та відстеження у блокчейні, що належить Beosin, і поділилася результатами нижче:
Наразі 8 535,36 ETH, які були вкрадені, перекинуто, і більшість з них зберігається відповідно на гаманцях 0xd12f6e0fa7fbf4e3a1c7996e3f0dd26ab9031a60 та 0x273589ca3713e7becf42069f9fb3f0c164ce850a.
Адрес 0xd12f містить 4 267,09 ETH, а адреса 0x2735 містить 4 001 ETH. Атака була виконана з адреси (0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50), яка також містить 267,71 ETH. Подальших фінансових операцій з цих трьох адрес не виявлено.

Схема аналізу маршруту викрадених коштів, Beosin Trace
Всі вищевказані адреси вже були позначені Beosin KYT як високоризикові адреси. Наприклад, адреса атакувальника:

Beosin KYT
Висновок
Вкрадені кошти торкнулися смарт-контракту, який не був відкритим для громадськості 5 років тому. Для таких контрактів команда проекту має виконати оновлення контракту, ввівши в нього екстрене призупинення, обмеження параметрів та нові функції безпеки Solidity. Крім того, безпека залишається обов'язковим елементом контрактів. Пройшовши перевірку безпеки, компанії Web3 можуть максимально повно перевірити код смарт-контрактів, виявити та виправити потенційні уразливості, підвищити безпеку контрактів.
*Beosin надаст звіт з повного аналізу всіх потоків коштів та ризиків адрес, вітаємо, щоб отримати його, звертайтеся за офіційною електронною поштою support@beosin.com.


