В минувшие выходные злоумышленники атаковали децентрализованную биржу Uniswap и платформу Lendf.me. Хотя расследование случившегося еще далеко от завершения, уже известно, что хакеры похитили примерно 25 млн долларов в криптовалюте, эти два нападения были связаны между собой, и, вероятно, осуществлялись одной и той же группой или человеком.

По словам следователей, для этой атаки злоумышленники объединили уязвимости и различные легитимные возможности блокчейн-технологий, в итоге осуществив сложную reentrancy-атаку (атака повторного входа или рекурсивный вызов). Такие атаки позволяют хакерам выводить средства в цикле, пока их исходная транзакция не будет одобрена или отклонена.

Сообщается, что Uniswap и Lendf.me имели много общего. В частности, обе платформы использовали:

протокол Lendf.me— протокол децентрализованного финансирования (decentralized finance, DeFi), разработанный dForce Foundation для поддержки кредитных операций на платформе Ethereum;
imBTC— токен The Tokenized Bitcoin, который работает на платформе Ethereum и привязан к Bitcoin и его стоимости в соотношении 1:1;
ERC-777— одна из базовых технологий блокчейна Ethereum, предназначенная для поддержки смарт-контрактов (и Lendf.me, и imBTC работают как смарт-контракты на платформе Ethereum).
«Как известно, стандарт ERC-777 не имеет уязвимостей, однако комбинация использования ERC777 и контрактов Uniswap/Lendf.Me делает возможными reentrancy-атаки», — пишут эксперты разработчики Tokenlon, компании, стоящей за разработкой imBTC.

imBTC @tokenlon pool on @Uniswap has been attacked & drained

Simple attack vector on ERC777 (with arbitrary code execution during transfer fct) on Uniswap to steal >$300k (#ETH+#BTC)

The vulnerability was described 16mths ago: ConsenSys/Uniswap-audit-report-2018-12 | The Tokenized Bitcoin (imBTC) Token Tracker | Etherscan | pic.twitter.com/cXOVu6le3P

— Julien Bouteloup (@bneiluj) April 18, 2020
В компании считают, что хакеры использовали публично доступный эксплоит, опубликованный на GitHub в июле 2019 года компанией OpenZeppelin, которая проводит аудит безопасности для криптовалютных платформ.

По предварительным оценкам, на данный момент Uniswap лишилась от 300 000 до 1 100 000 долларов США, тогда как у Lendf.me было похищено более 24 500 000 долларов США, то есть практически все активы платформы. Хакеры использовали атаку повторного входа, чтобы перевести средства с каждой платформы на свой кошелек, а затем сразу же вывели украденное на другие счета.

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