9 января ранним утром протокол Truebit Protocol был успешно атакован с использованием ранее нераскрытого контракта, развернутого в ранние годы, в результате чего было потеряно 8 535,36 ETH, что эквивалентно 26,4 миллионам долларов США. Команда безопасности провела глубокий анализ этого инцидента.
Разбор процесса атаки
Хэш основной транзакции атаки: 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
Шаги действий злоумышленника ясны:
Сначала вызывается функция getPurchasePrice() для получения информации о цене. Затем переходим к ключевой уязвимости — вызывается дефектная функция 0xa0296215() с установкой очень низкого значения msg.value. Поскольку исходный код контракта не опубликован, результаты декомпиляции показывают, что эта функция содержит арифметическую логическую уязвимость, скорее всего, связанная с неправильной обработкой целочисленного усечения. Именно поэтому злоумышленник смог произвольно создать большое количество токенов TRU.
Далее следует этап вывода средств. Злоумышленник с помощью функции burn "продает" созданные токены обратно контракту, извлекая большое количество ETH. Этот процесс повторялся 4 раза, каждый раз увеличивая значение msg.value, в итоге практически опустошая резерв ETH в контракте.
Отслеживание цепочки финансирования
Согласно данным на блокчейне, команда с помощью инструментов расследования и отслеживания по блокчейну проследила происхождение украденных средств… (оригинальный текст не содержит дальнейшей информации)
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
14 Лайков
Награда
14
10
Репост
Поделиться
комментарий
0/400
BridgeJumper
· 01-12 11:02
Опять эта старая ловушка с контрактами, исходный код даже не опубликован, а уже рискуют вложить так много денег...
Посмотреть ОригиналОтветить0
BrokeBeans
· 01-11 18:17
Еще один контракт с закрытым исходным кодом, на этот раз действительно взорвался... 26,4 миллиона долларов просто исчезли, как такое низкосортное баги с отсечкой целых чисел могли пройти аудит?
Посмотреть ОригиналОтветить0
LiquidationWizard
· 01-11 11:45
Опять какие-то хитрости из-за закрытого исходного кода, давно уже следовало полностью открыть исходный код
Посмотреть ОригиналОтветить0
SerumDegen
· 01-09 12:03
честно говоря, это просто переполнение целых чисел с дополнительными шагами... непроверенные контракты остаются непроверенными, я полагаю, лол
Посмотреть ОригиналОтветить0
ForkLibertarian
· 01-09 12:01
Черт возьми, снова целочисленное усечение... Как вообще могут быть такие уязвимости?
Посмотреть ОригиналОтветить0
QuorumVoter
· 01-09 11:57
Целочисленное усечение снова подвело, как вообще есть люди, которые развертывают контракты, исходный код которых не публикуется?
Посмотреть ОригиналОтветить0
SchrodingerWallet
· 01-09 11:50
Опять ловушка с непубличным контрактом, на этот раз 26,4 миллиона долларов просто исчезли... Уязвимость с усечением целых чисел просто невероятна
Посмотреть ОригиналОтветить0
MetaMisfit
· 01-09 11:48
Опять проблема из-за закрытого исходного кода, в наши дни скрытность только облегчает его изучение
Посмотреть ОригиналОтветить0
BlockImposter
· 01-09 11:42
Опять сбой в непубличном контракте, как же хорошо это знакомо.
9 января ранним утром протокол Truebit Protocol был успешно атакован с использованием ранее нераскрытого контракта, развернутого в ранние годы, в результате чего было потеряно 8 535,36 ETH, что эквивалентно 26,4 миллионам долларов США. Команда безопасности провела глубокий анализ этого инцидента.
Разбор процесса атаки
Хэш основной транзакции атаки: 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
Шаги действий злоумышленника ясны:
Сначала вызывается функция getPurchasePrice() для получения информации о цене. Затем переходим к ключевой уязвимости — вызывается дефектная функция 0xa0296215() с установкой очень низкого значения msg.value. Поскольку исходный код контракта не опубликован, результаты декомпиляции показывают, что эта функция содержит арифметическую логическую уязвимость, скорее всего, связанная с неправильной обработкой целочисленного усечения. Именно поэтому злоумышленник смог произвольно создать большое количество токенов TRU.
Далее следует этап вывода средств. Злоумышленник с помощью функции burn "продает" созданные токены обратно контракту, извлекая большое количество ETH. Этот процесс повторялся 4 раза, каждый раз увеличивая значение msg.value, в итоге практически опустошая резерв ETH в контракте.
Отслеживание цепочки финансирования
Согласно данным на блокчейне, команда с помощью инструментов расследования и отслеживания по блокчейну проследила происхождение украденных средств… (оригинальный текст не содержит дальнейшей информации)