Back to Blog

Кейс об оттоке нелегальных средств: атака на LI.FI

MetaSleuth
October 24, 2024
4 min read

Анализ случая перемещения незаконных средств: Атака на LI.FI

Предыстория дела

16 июля 2024 года Li.Fi, кросс-чейн мост и DEX-агрегатор, столкнулся с серьезным нарушением безопасности, в ходе которого был использован уязвимый контракт Li.Fi Diamond. У пользователей было похищено различных стейблкоинов и других активов на сумму около 11,6 млн долларов США. Злоумышленник смог вывести средства тех пользователей, которые предоставили бесконечные разрешения (infinite approvals) атакованному контракту.

Уязвимость находилась в функции depositToGasZipERC20() контракта GasZipFacet. Контракт GasZipFacet был развернут командой LI.FI за пять дней до атаки для обеспечения заправки газом в транзакциях моста. Функция depositToGasZipERC20() включала контролируемый пользователем аргумент _swapData, который затем передавался в вызов функции LibSwap.swap(). К сожалению, LibSwap.swap содержал низкоуровневый вызов, который может исполнять произвольные функции с адресом цели и данными вызова, указанными в аргументе _swapData, контролируемом атакующим. Злоумышленник воспользовался этой "уязвимостью произвольного вызова" для осуществления несанкционированных переводов от пользователей, предоставивших бесконечное разрешение контракту Li.Fi Diamond.

Анализ движения денежных средств

16 июля 2024 года злоумышленник инициировал почти сто транзакций, используя уязвимость произвольного вызова, и в течение 30 минут перевел стейблкоины (USDT, USDC, DAI) на сумму около 11 миллионов долларов на адрес 0x8b3c. Почти все украденные стейблкоины были быстро обменяны на нативный токен сети Ethereum — ETH. DEX, использованные хакером, включали Uniswap, Metamask Swap и другие. Примеры транзакций обмена: 0xdf9b, 0x11d, 0xb4a4.

Пример потока средств внутри транзакции обмена 0x8e27 при взаимодействии с Metamask Swap Spender. Злоумышленник обменял незаконно полученные 333 258 USDT на 97,16 ETH. Все пулы и прокси четко отображаются с помощью MetaSleuth.

В течение двух часов после атаки все украденные активы были переведены на последующие адреса, контролируемые хакером, и на исходном адресе атаки ничего не осталось. Всего существует 32 последующих адреса, напрямую связанных с адресом 0x8b3c (то есть в одном переходе от первоначального адреса атаки). Среди них 15 адресов получили только по 0,1 ETH с адреса атаки. По состоянию на 22 октября 2024 года, ETH, удерживаемый на этих 15 адресах, не был выведен. Остальные адреса обработали остальную часть крупных сумм незаконных средств.

Часть потоков средств от адресов жертв к последующим адресам, контролируемым злоумышленником:

После перевода незаконных средств на последующие адреса (в один переход от адреса 0x8b3c) злоумышленник начал дальнейшее перемещение средств траншами. Процесс перевода (отмывания) длился почти три месяца. Почти все незаконные средства в итоге были переведены в Tornado Cash (99,9%), а небольшая часть была отправлена на биржу eXch для прямого обналичивания. Всего было совершено 114 транзакций, с помощью которых злоумышленник взаимодействовал с Tornado Cash Router. Примеры транзакций, перемещающих незаконные доходы в Tornado Cash: 0x07de, 0xfe82, 0x6a47, 0x8ea6. Примеры транзакций, перемещающих незаконные доходы в eXch: 0xaa89, 0x7e65, 0x8572, 0x625c, 0x2dd2, 0xda71.

Часть потоков средств от адресов layer2 (в 2 переходах от исходного адреса атаки 0x8b3c) к адресам layer4:

Первая крупномасштабная серия переводов произошла в течение первой недели после атаки, в период с 16 по 22 июля. Злоумышленник перевел незаконные активы на сумму около 500 000 долларов США с адреса 0x6a6d в Tornado Cash. Переводы незаконных средств хакером имели отличительные характеристики: он перемещал средства на последующие адреса, которые находились далеко от адреса атаки (адрес с высоким риском), постепенно перенаправляя часть в Tornado Cash. В первой партии самый длинный путь перевода достигал 20 переходов. Злоумышленник использовал чрезвычайно глубокий путь отмывания, чтобы скрыть потоки незаконных денег. В период с августа по октябрь оставшиеся незаконные средства постепенно переводились в Tornado Cash партиями с теми же характеристиками.

Пример партии переводов, перемещающей средства с адреса 0x8e85 (один переход от 0x8b3c) к Tornado Cash Router:

Как показывает рисунок, в период с 13 по 16 августа 2024 года злоумышленник постепенно перевел 206 ETH в Tornado Cash по пути из 12 переходов. На адресе 0xe9f7 хакер разделил 204 ETH на две транзакции: 100 ETH было отправлено в Tornado Cash, а 104 ETH направлено на дальнейшие адреса отмывания. Эта модель дробления была последовательной на протяжении всего процесса переводов. То есть с каждым взаимодействием с Tornado Cash злоумышленник использовал новый, более глубокий адрес.

Меры противодействия

Через два дня после атаки LI.FI официально опубликовала отчет об инциденте, заявив, что они успешно отключили уязвимый фасет контракта во всех сетях и предотвратили любой дальнейший несанкционированный доступ. LI.FI инициировала план компенсации и полностью возместила средства пострадавшим пользователям. Что касается возврата похищенных активов, они заявили, что продолжат взаимодействовать с правоохранительными органами и соответствующими третьими сторонами, включая команды безопасности из индустрии, для отслеживания и попыток возврата выведенных средств. По состоянию на 22 октября 2024 года почти все незаконные средства были переведены в Tornado Cash, а Li.Fi еще не опубликовала отчеты об отслеживании.

Некоторые релевантные адреса и транзакции

Адреса Транзакции Потоки незаконных средств
0x8e85eace2fa757c1d97c5ebfb8b0622e5f23c5a1 0xe237, 0x0d23 206,49 ETH
0xcb7c341dc6172b642dcf4a14015be70a27e5b31e 0x050c, 0x37d4 873 568 USDT + 36,48 ETH
0x7b93fa16c04cdcf91949d4f5f893f740992ae57e 0x57ea, 0x52ac 332,02 ETH
0x3462d2523cded523ad47c14111aa1dcbe7773675 0xc66d, 0xc0ff 120,55 ETH
0xd0be9c4c84068a9964c3781f540f703c300db268 0x0c3b, 0x1670 275,38 ETH

Обзор движения средств:

Подробнее в MetaSleuth: https://metasleuth.io/result/eth/0x14c1597cc833783ed8ac08ecc9b704b0a398201d?source=c8cd3609-0402-45eb-bb9e-2f710bd66554

Sign up for the latest updates

Go Deeper with MetaSleuth Investigation

Extend your crypto compliance capabilities with Blocksec's MetaSleuth Investigation, the first platform for tracing funds, mapping transaction networks and revealing hidden on-chain relationships.

Move from detection to resolution faster with clear visual insights and evidence-ready workflows across the digital assets ecosystem.

MetaSleuth Investigation