Cryptonews

Раскрыто огромное ограбление: удобный инструмент стал фатальным, поскольку хакеры выкачали 270 миллионов долларов из дрейфа на блокчейне Solana

Источник
cryptonewstrend.com
Опубликовано
Раскрыто огромное ограбление: удобный инструмент стал фатальным, поскольку хакеры выкачали 270 миллионов долларов из дрейфа на блокчейне Solana

Атака на Drift Protocol не была взломом в традиционном понимании.

Никто не нашел ошибку и не взломал закрытый ключ. Не было также эксплойта с быстрым кредитом или манипулирования оракулом.

Вместо этого злоумышленник использовал законную функцию Solana, «устойчивые одноразовые номера», чтобы обманом заставить совет безопасности Drift предварительно одобрить транзакции, которые будут выполнены через несколько недель, в то время и в контексте, который подписанты никогда не планировали.

В результате было потрачено не менее 270 миллионов долларов, на выполнение которых ушло меньше минуты, а на настройку — больше недели.

Что такое долговечные одноразовые номера и почему они существуют

В Solana каждая транзакция включает в себя «недавний хэш блока», по сути, временную метку, подтверждающую, что транзакция была создана недавно. Срок действия этого хеш-блока истекает примерно через 60–90 секунд. Если транзакция не отправлена ​​в сеть в течение этого окна, она становится недействительной. Это функция безопасности, которая помогает предотвратить повторное воспроизведение старых, устаревших транзакций.

Устойчивые одноразовые номера игнорируют эту функцию безопасности. Они заменяют истекающий хеш-блок фиксированным «nonce», одноразовым кодом, хранящимся в специальной учетной записи в цепочке, который сохраняет транзакцию в силе на неопределенный срок, пока кто-то не решит ее отправить.

Эта функция существует по законным причинам. Аппаратные кошельки, настройки автономной подписи и решения для институционального хранения — все они нуждаются в возможности готовить и утверждать транзакции без необходимости отправлять их в течение 90 секунд.

Но неопределенно действительные транзакции создают проблему. Если сегодня удастся заставить кого-то подписать транзакцию, она может быть выполнена на следующей неделе или в следующем месяце, в соответствии с жестко запрограммированными правилами системы. Подписавшая сторона не имеет возможности отозвать свое одобрение после его предоставления, если только учетная запись nonce не будет расширена вручную, что большинство пользователей не отслеживают.

Как злоумышленник их использовал

Протокол Дрифта регулировался «мультиподписью Совета Безопасности», системой, в которой несколько человек (в данном случае пять) разделяют контроль, и любое действие требует одобрения как минимум двух из них. Мультиподписи — это стандартная практика безопасности в DeFi, идея которой состоит в том, что компрометации одного человека недостаточно для кражи средств.

Но злоумышленнику не нужно было компрометировать чьи-либо ключи. Все, что им было нужно, — это две подписи, и, судя по всему, они получили их посредством того, что Дрифт описывает как «несанкционированное или искаженное одобрение транзакции», то есть подписавшиеся, вероятно, думали, что одобряют обычную транзакцию.

Вот временная шкала Drift, опубликованная в четверг X.

23 марта были созданы четыре долговременных одноразовых аккаунта. Двое были связаны с законными членами Совета Безопасности Дрифта. Двое находились под контролем злоумышленника. Это означает, что злоумышленник уже получил действительные подписи от двух из пяти членов совета, заблокированные в устойчивых одноразовых транзакциях, срок действия которых не истекает.

27 марта Дрифт осуществил запланированную миграцию Совета Безопасности, чтобы заменить члена совета. Нападавший адаптировался. К 30 марта появилась новая учетная запись с постоянным одноразовым идентификатором, привязанная к члену обновленной мультиподписи, что указывало на то, что злоумышленник повторно получил необходимый порог одобрения два из пяти в соответствии с новой конфигурацией.

1 апреля нападавший казнён.

Во-первых, Drift провел законное тестовое изъятие средств из своего страхового фонда. Примерно через минуту злоумышленник отправил предварительно подписанные транзакции устойчивого одноразового номера. Двух транзакций, разделенных четырьмя слотами в блокчейне Solana, было достаточно, чтобы создать и одобрить вредоносную передачу администратора, а затем одобрить и выполнить ее.

Через несколько минут злоумышленник получил полный контроль над разрешениями Drift на уровне протокола. Они использовали этот контроль, чтобы внедрить мошеннический механизм вывода средств и опустошить хранилища.

Что было взято и куда оно пошло

Исследователи Onchain отслеживали потоки средств в режиме реального времени. Общая сумма украденных активов, составленная исследователем безопасности Владимиром С., составила около 270 миллионов долларов США по десяткам токенов.

Самая крупная отдельная категория составила 155,6 миллиона долларов в токенах JPL, за ней следовали 60,4 миллиона долларов в долларах США, 11,3 миллиона долларов в CBBTC (биткойн, обернутый Coinbase), 5,65 миллиона долларов в USDT, 4,7 миллиона долларов в обернутом эфире, 4,5 миллиона долларов в DSOL, 4,4 миллиона долларов в WBTC, 4,1 миллиона долларов в FARTCOIN и меньшие суммы в JUP, JITOSOL, MSOL. BSOL, EURC и другие.

Основной кошелек-сливщик был профинансирован за восемь дней до атаки через протокол NEAR, но оставался неактивным до дня исполнения. Украденные средства были переведены на промежуточные кошельки, которые были профинансированы накануне через Backpack, децентрализованную криптобиржу, требующую проверки личности, что потенциально может дать следователям зацепку.

Оттуда средства перемещались на адреса Ethereum через червоточину, перекрестный мост. Эти адреса Ethereum были предварительно профинансированы с помощью Tornado Cash, санкционированного миксера конфиденциальности.

ZachXBT, известный исследователь ончейн, отметил, что более 230 миллионов долларов США в долларах США были переброшены из Solana в Ethereum через CCTP (протокол межцепной передачи) Circle в рамках более чем 100 транзакций.

Он раскритиковал Circle, централизованного эмитента $USDC.