Инцидент с проектом R0AR
Компания по безопасности Web3 сообщила на платформе X, что проект R0AR подвергся атаке 16 апреля, в результате которой было украдено около $780,000. Инцидент стал возможен из-за наличия бэкдора в контракте проекта.
Отчет о происшествии
Команда проекта сегодня опубликовала отчет о происшествии, в котором указано, что украденные средства были возвращены, однако адреса и хеши транзакций пока не раскрыты.
Этот случай служит напоминанием для пользователей о необходимости быть бдительными к контрактам с бэкдорами, особенно в отношении взаимодействия с контрактом 0xBD2Cd7.
Детали атаки
Бэкдор в контракте R0ARStaking существовал с момента его развертывания. Зловредный адрес 0x8149f был заранее настроен с большим количеством токенов $1R0R, которые можно было извлечь. Нападающий сначала осуществлял небольшие депозиты и операции по сбору, чтобы подготовиться к злонамеренной операции EmergencyWithdraw.
Поскольку значение rewardAmount превышало r0arTokenBalance (баланс контракта), значение rewardAmount было установлено на баланс контракта. В результате все токены внутри контракта были переведены на зловредный адрес 0x8149f.
Аналогичным образом все LP токены из контракта LP Token также были переведены на тот же адрес. В итоге значение userInfo.amount было установлено на ноль. userInfo в контракте представляет собой структуру отображения, адрес которой динамически вычисляется на основе хеша ключа (uid и msg.sender).
Это свидетельствует о том, что бэкдор был тщательно спланирован заранее, и зловредный адрес был рассчитан даже до развертывания контракта.