Back to Blog

Как BlockSec вернула украденные средства DeFi: 3 примера из практики

Phalcon
February 20, 2023
4 min read

Хакерские атаки в DeFi продолжаются. Вернуть украденные средства из DeFi-проектов обычно бывает сложно. Некоторые проекты ведут переговоры с хакерами, предлагая вознаграждение (bounty) и обещая отказаться от судебного преследования. Иногда это работает, но создает плохой прецедент. Это скорее поощряет людей совершать взломы ради получения вознаграждения, вместо того чтобы вести конструктивный диалог.

Компания BlockSec применила иной подход, чтобы помочь различным проектам вернуть украденные средства. Помимо стандартных методов, таких как отслеживание потоков средств и сотрудничество с централизованными организациями (например, криптобиржами), мы хотим поделиться тремя успешными историями возврата украденных средств исключительно техническими методами, включая недавние случаи с Platypus Finance, TransitSwap и Saddle Finance.

Platypus Finance: спасено 2,4 миллиона долларов США

The Block опубликовал хорошую статью о том, как мы помогли Platypusdefi вернуть средства. По сути, злоумышленник допустил ошибку: у него не было возможности вывести средства из контракта атаки. Это произошло потому, что хакер забыл написать программную логику для перевода токенов из этого контракта.

Однако наша команда обнаружила, что можно использовать существующий код в контракте атаки, чтобы перевести USDC из этого контракта в смарт-контракт проекта. В контракте злоумышленника была функция, при вызове которой он одобрял (approve) фиксированное количество USDC для контракта проекта. Этот код использовался для целей атаки. Мы смогли переиспользовать эту логику, чтобы одобрить перевод USDC на контракт проекта, а затем обновили контракт проекта (это был прокси-контракт), чтобы вывести USDC со счета злоумышленника.

Мы проверили эту идею с помощью PoC (доказательства концепции) и поделились информацией с Platypusdefi. Мы тесно сотрудничали с ними, и этот метод сработал! 2,4 миллиона USDC были возвращены в ходе следующей транзакции:

TransitSwap: спасено 246 тысяч долларов США

TransitSwap в BSC был атакован 1 октября 2022 года. Некоторые транзакции атаки были опережены (фронтран) ботом.

Однако мы обнаружили, что этот бот был уязвим к уязвимости инструмента profanity. Уязвимость связана с недостаточной случайностью при генерации приватного ключа. Мы разработали инструмент, способный восстановить приватный ключ для таких уязвимых адресов.

Мы успешно восстановили приватный ключ бота. Однако средства находились в контракте бота, а не на обычном адресе (EoA). Нам удалось декомпилировать контракт и найти функцию, которую можно было использовать для перевода средств.

Мы перевели средства на официальный адрес приема средств TransitFinance.

Подробнее читайте в статье Как мы вернули украденные средства для TransitSwap (и BabySwap)

Saddle Finance: спасено 3,8 миллиона долларов США

В случае с Saddle Finance мы применили другой способ спасения. Основная идея заключается в мониторинге пула ожидающих транзакций (mempool) Ethereum, обнаружении атаки с помощью нашей системы предварительного выполнения транзакций Mopsus и блокировке атаки путем автоматического синтеза спасательной транзакции, которая переводит уязвимые активы на наш безопасный счет, опережая транзакцию хакера с помощью FlashBot. На рисунке ниже показана архитектура системы.

На временной шкале ниже показано, как наша система спасла 3,8 миллиона долларов США для Saddle Finance в конце апреля 2022 года. В частности, наша система завершила весь процесс обнаружения транзакции атаки и автоматического синтеза спасательной транзакции менее чем за одну секунду. Мы вернули все спасенные средства Saddle Finance. Ссылки на оригинальную транзакцию взлома и нашу спасательную транзакцию.

Подробнее: Обеспечение безопасности Web3 посредством проактивного предотвращения угроз

Резюме

Вышеперечисленные три случая — лишь репрезентативные примеры. На самом деле у нас есть и другие успешные кейсы по спасению средств.

Мы всегда считали, что безопасность DeFi нельзя обеспечить с помощью какой-то одной методики. Универсального решения не существует. BlockSec разработала ряд инструментов (и продолжает разрабатывать новые) и сервисов для защиты всей экосистемы. У нас есть Phalconобозреватель транзакций для блокчейна, сервис аудита безопасности кода (поддерживающий Solidity, Rust, Go и Move) и сервисы проактивного смягчения атак. Мы создали несколько инструментов для пользователей криптовалют для борьбы с фишинговыми атаками, включая MetaSleuth (инструмент анализа криптовалютных фондов) и MetaSuites (расширение для браузера для работы с блокчейн-проводниками). Мы регулярно сообщаем о фишинговых URL-адресах и кошельках в MetaMask и Etherscan. BlockSec сотрудничает с такими партнерами, как Cronos, Forta, Tokenlon, KeyStone, Goplus и другими, чтобы обеспечить безопасность всей криптоэкосистемы.

Не стесняйтесь обращаться к нам, если у вас возникнут вопросы.

Узнайте больше о BlockSec: Сайт | Документация | Twitter | Блог | TG-группа