Back to Blog

Как мы вернули украденные средства для TransitSwap (и BabySwap)

Code Auditing
October 10, 2022
3 min read

1 октября протоколы BabySwap и TransitSwap в сети BSC подверглись атаке. Некоторые транзакции злоумышленников были опережены (front-run) с помощью бота. Примечательно, что этот бот оказался уязвим к известной ошибке инструмента profanity, благодаря чему нам удалось восстановить его закрытый ключ. Мы также провели обратную разработку контракта бота и вывели средства с него на наш защищенный аккаунт. В настоящий момент мы уже перевели средства в TransitSwap и находимся в процессе налаживания связи с BabySwap.

Обнаружение атаки на BabySwap

01.10.2022 в 14:47 (UTC) наша внутренняя система зафиксировала транзакцию атаки. Наш дальнейший анализ показал, что это произошло из-за контролируемых фабрик в контракте смарт-роутера. Однако на тот момент мы не раскрывали подробности, так как проект всё еще оставался уязвимым. Мы пытались связаться с BabySwap через личные сообщения в Twitter и Telegram, но не получили ответа.

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

Восстановление закрытого ключа бота

01.10.2022 в 16:10 (UTC) наш инструмент успешно восстановил закрытый ключ этого бота примерно за 20 минут. Используя восстановленный ключ, мы перевели средства на защищенный аккаунт (это стандартный процесс нашего спасения активов). В противном случае кто-то другой мог бы также восстановить ключ, перехватить контроль над аккаунтом, и средства оказались бы под угрозой.

Вывод средств из бота

Сложность заключалась в том, что средства находились не на самом EOA-аккаунте бота, а в контракте, развернутом этим ботом. Задача состояла в том, чтобы безопасно их вывести.

Мы декомпилировали контракт и обнаружили в нем функцию withdraw (как показано на рисунке ниже).

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

Мы отправили транзакцию, успешно вывели средства из контракта на кошелек бота, а затем перевели их на наш защищенный аккаунт.

Очередная атака!

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

Возврат средств

После внутреннего обсуждения мы решили вернуть средства атакованным проектам (а не боту) по следующим причинам:

  • Во-первых, средства были получены ботом в результате атаки на уязвимые контракты. Хотя бот лишь опередил транзакцию основной атаки, мы считаем, что фронтраннинг транзакции атаки сам по себе также является атакой.
  • Во-вторых, средства принадлежат жертвам атаки, то есть пользователям пострадавших DeFi-протоколов. Пользователи сильно пострадали из-за уязвимости в протоколе, поэтому они должны получить эти средства обратно.

Мы уже перевели средства на официальный адрес получателя активов TransitFinance и продолжаем попытки связаться с BabySwap.

Обновление по процессу спасения

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

  • Сколько адресов является уязвимыми?
  • Каков масштаб уязвимости, т. е. сколько активов находится под угрозой?
  • Какова общая картина атак с использованием данной уязвимости?

Оставайтесь с нами и будьте в безопасности.

О компании BlockSec

BlockSec — передовая компания в сфере блокчейн-безопасности, основанная в 2021 году группой всемирно признанных экспертов по безопасности. Компания стремится повысить уровень безопасности и удобства использования в развивающемся мире Web3, чтобы способствовать его массовому внедрению. Для этого BlockSec предоставляет услуги аудита безопасности смарт-контрактов и EVM-цепочек, платформу Phalcon для разработки безопасности и проактивной блокировки угроз, платформу MetaSleuth для отслеживания и расследования транзакций, а также расширение MetaSuites для эффективной работы в криптомире.

На сегодняшний день компания обслужила более 300 уважаемых клиентов, таких как MetaMask, Uniswap Foundation, Compound, Forta и PancakeSwap, и привлекла десятки миллионов долларов США в ходе двух раундов финансирования от ведущих инвесторов, включая Matrix Partners, Vitalbridge Capital и Fenbushi Capital.

Официальный веб-сайт: https://blocksec.com/

Официальный аккаунт в Twitter: https://twitter.com/BlockSecTeam

Sign up for the latest updates
Мост Harmony Cross-Shard ONE Mint + потеря ключей на ~$47М | BlockSec
Security Insights

Мост Harmony Cross-Shard ONE Mint + потеря ключей на ~$47М | BlockSec

10-16 авг 2026: 5 инцидентов, ~$47М убытков. Анализ — уязвимость Harmony: replay чеков между шардами создал 3.01Т ONE (не учтено в убытках). $47М — кражи ключей (Whale ~$25М, Kite ~$14М, Coinsbuy ~$7.9М) и ошибка Fox (~$117K).

~$1.6M потеряно: эксплойты токена Moke и LpdFi | BlockSec Weekly
Security Insights

~$1.6M потеряно: эксплойты токена Moke и LpdFi | BlockSec Weekly

За неделю 3-9 августа 2026 года в BNB Chain произошло 2 инцидента с общими потерями ~$1,6 млн из-за манипуляций с ценами. LpdFi (~$697K): атакующий использовал резервы PancakeSwap для завышения позиции. Moke Token (~$906K): манипуляция ценой и дублирование дивидендов LP.

Инцидент с COLDCARD: когда «случайная» сид-фраза кошелька оказалась не случайной
Security Insights

Инцидент с COLDCARD: когда «случайная» сид-фраза кошелька оказалась не случайной

Ошибка в прошивке COLDCARD направляла генерацию seed на слабый программный ГСЧ, делая кошельки восстановимыми офлайн. Обновление не устраняет проблему. К 7 августа 2026 г. подтверждённые потери — 1 405 BTC (~$91 млн), оценки до 2 055 BTC.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit
Как мы вернули украденные средства для TransitSwap (и BabySwap)