Не только “банковская паника”: Iron Finance потерпел крах из-за взлома кода — исследования
Настоящая катастрофа разразилась в ночь, когда двухмиллиардный рынок стремительно обрушился и стал причиной, возможно, худшего дня в истории DeFi. Было бы неправильно, если бы люди не объединились против централизованных структур в мире DeFi, из-за которых произошло это фиаско.
Впрочем люди это сделали, и поскольку официальная группа телеграм постоянно пестрела ссылками на мое небольшое разоблачение на Medium, Iron Finance был вынужден отреагировать на ситуацию пару дней назад, ответив публикацией плана компенсации. IRON также приостановил для пользователей возможность отправки сообщений в телеграм группу, что неоднократно повторялось и раньше, когда токены проекта падали в цене. Я осмелюсь сказать, что это произошло потому, что они поняли, что не могут контролировать, желание неравнодушных сторон высказаться в неофициальной группе проекта.
Подводя итоги взлета и падения Iron Finance можно отметить, что общая стоимость заблокированных средств в протоколе, достигала 15 июня более 3 миллиардов долларов США, в то время как TITAN, залоговый токен протокола, вырос более чем в 100 раз с момента его запуска до 6 долларов США. Позже, 16 июня, несколько крупных распродаж вызвали банковскую панику, обвалив стоимость TITAN с $62 почти до нуля всего за 16 часов, в то время, как стейблкоин IRON, потерял свою привязку.
Сейчас сообщество все еще ищет ответы на некоторые вопросы, чтобы найти виновных в произошедшем. И некоторые участники утверждают, что нашли явные улики.
Вектор атаки повторного входа (Re-entrancy Vector)
Один из наших хак-активистов, инженер-программист, проводящий технический аудит безопасности блокчейнов раскрыл подробности произошедшего краха. Он выявил “гигантский вектор атаки повторного входа” в трех контрактах masterchef. Вы можете увидеть доказательства здесь, если поищите “emergency” в исходном коде:
0xa37dd1f62661eb18c338f18cf797cff8b5102d8e
0x65430393358e55a658bcde6ff69ab28cf1cbb77a
0xb444d596273c66ac269c33c30fbb245f4ba8a79d
Улики из кода Masterchefs
Структура кода похожа на структуру кросс-функциональных атак повторного входа, которые часто встречаются в эксплойтах DeFi. Под “похожим” я подразумеваю, что различаются только имена оперантов, а фактическая функциональность точно такая же.
Это открытие, основанное на доказательствах, ранее не было обнаружено в результате каких-либо аудитов, “посмертных анализах” или прочих вещах. Факты показывают, что код был написан таким образом, чтобы позволить любому выкачать наличные из протокола.
Вот что говорит наш инженер:
Это не может быть случайностью…
Итак, чтобы предоставить анализ высокого уровня: во всех контрактах MasterChef есть emergencyWithdraw [function], которая отображает атаку повторного входа в класс. Как правило, позволяя откачивать неограниченное количество средств.
В нескольких случаях вызов этой был отслежен до так называемых адресов “clearing house” (клиринговых домов), которые в основном, только и делают, что переводят весь баланс на другие адреса. Я думаю, что это действительно явные улики.
Это транзакция, в которой адрес успешно вызвал функцию emergencyWithdraw:
https://polygonscan.com/tx/0x05d5c121251cb7cea91a89aaa164451639acb328b4a0a8001470aea531d77a7a
Примерно 60 000 долларов США было отправлено с этого адреса.
Это лишь один пример. Возможно, есть и другие, кто злоупотреблял ошибкой повторного входа для получения прибыли. Что здесь важно, так это то, что любой мог вызвать функцию emergencyWithdraw и вывести средства из пулов — для этого не требуются права.
Тем не менее, хотя это лишь гипотеза, но очень маловероятно, что разработчики IRON не знали об этом, тем более, что они сделали комментарии по этому поводу в коде.
Исторически так сложилось, что DeFi страдал от трех видов эксплойта. Код миграции, который требует права на masterchef и является внутренним вызовом; функция reentrancy (повторный вход), которая не требует прав и является внешним вызовом и, следовательно, общедоступным для злоупотреблений; и третий вид вращается вокруг манипуляций, связанных с ценовыми оракулами, которые были подробно описаны в моей первой статье.
Крах Iron уже затронул два из трех видов эксплойтов. Довольно сомнительное “достижение”, как и то, когда они объявили, что их проект впервые подвергся “банковской панике” в мире криптовалют.
Отслеживание денежных переводов. Раунд второй
Предоставленные до сих пор доказательства дали достаточно оснований для проверки известных адресов разработчиков с помощью многопереходного анализа (multi-hop analysis).
На этот раз мы рассмотрим исходящие транзакции контракта treasuryFund, в рамках которого разработчики Iron получали выделенные им вознаграждения в размере $TITAN (30% от предложения $TITAN с вестингом для разработчиков в течение 36 месяцев).
Мы также заметили, что в контракте все еще содержится примерно 454 474 TITAN (стоимостью 0,00018 доллара США), что может показаться большим количеством, но на по сравнению с триллионами токенов TITAN на открытом рынке это мелочь.
Мы нашли одного адресата, который продавал весь свой TITAN по мере его получения; его последняя сделка принесла ему 220 тысяч долларов США. Средства с этого кошелька перемещались по крайней мере еще два раза. Поэтому нам пришлось просмотреть адреса получателей средств из treasuryFund с помощью многопереходного анализа, чтобы разобраться в ситуации.
К сожалению, только два кошелька показали какой-то результат (из 19 уникальных адресов) в используемом нами программном обеспечении (Bitquery пока не поддерживает анализ в сети Polygon): Вводим 0x06cc87f6e3ef5578ab3e7c88bc43bae8f05ab55c (“55c”).
”55c" содержит ту же запутанную схему распределения, которую я раскрыл в предыдущей статье. Много взаимодействий с несколькими промежуточными кошельками и несколькими путями, которые заканчиваются одним и тем же адресом назначения, например, с учетной записью Binance. Зачем кому-то понадобилось так много усилий, чтобы направить средства в нескольких направлениях на один и тот же счет?
Все начинается с того, что “55c” выводит свои средства из Polygon через мост ERC20.
Оттуда средства отправляются на несколько кошельков.
А как насчет второго кошелька? 0xd1d075db389919a6985ddc9b32b5f3ad6f0869cd — “69cd”. Вот как он выглядит на polygonscan:
Здесь нечего смотреть, всего 10,9 миллиардов USDT.
Почему в нем хранится десять миллиардов Tether USD? Волонтеры-сыщики считают, что на самом деле это может быть блокчейн-сервис анонимизации Tornado Cash. Это сигнализирует о том, что разработчики IRON, возможно, пытаются скрыть свои средства.
Конечно, вы не можете скрыть то, что не является анонимным, но вы можете скрыть средства, которые проходят через Tornado Cash для проектов в будущем.
Норвежская связь?
Затем сообщество взялось за самый старый трюк с доксингом в книге — запрос WHOIS. Вы можете сделать это сами, но вся информация “отредактирована в целях конфиденциальности”.
Однако ничего, что не могут решить небольшие деньги. Оплата исторического поиска " whois” дала полезную информацию (полная заслуга Майкла Ротермана). Полный текст пастебина представлен здесь для ознакомления всем желающим. Большая часть более свежей информации была отредактирована, но вам следует прокрутить ее до строки 1336, где вы можете найти сведения о первом зарегистрированном владельце домена.
“registrantContact”: {
“name”: “Bjarn Zachrisson”,
“organization”: “Norsk Hedge Fond AS”,
“street”: “Setra Vei 18”,
“city”: “Oslo”,
“state”: “”,
“postalCode”: “0786”,
“country”: “NORWAY”,
“email”: “bjornzachrisson@gmail.com”,
“telephone”: “4546290000”,
“telephoneExt”: “”,
“fax”: “”,
“faxExt”: “”,
“rawText”: “Registrant Name: Bjarn Zachrisson\nRegistrant Organization: Norsk Hedge Fond AS\nRegistrant Street: Setra Vei 18\nRegistrant City: Oslo\nRegistrant Postal Code: 0786\nRegistrant Country: NO\nRegistrant Phone: +45.46290000\nRegistrant Email: bjornzachrisson@gmail.com”
},
Технически, домен Iron.Finance был зарегистрирован в компании NORSK HEDGE-FOND AS, — компании с ограниченной ответственностью, находящейся в Осло, Норвегия. Прибыль до налогообложения в 2019 году составляет жалкие 326,30 доллара США, что в принципе ничего не значит.
Как буквально следует из его названия, предположительно это хедж-фонд, который занимается недвижимостью. Связанным контактным лицом был некто Бьерн Эрик Закриссон. На данный момент нет ничего, что указывало бы на связь Закриссона с известными нам Iron Finance; Закриссон ничего не мог знать и является просто контактным лицом для адреса домена.
Поэтому мы копали дальше, используя источники, которые не могут предоставить ложную информацию, такие как патентные ведомства и регулирующие органы хозяйствующих субъектов. Что еще более важно, они могут предоставить информацию о настоящем. Вот патентная заявка Закриссона, которую любой может найти в Норвежском ведомстве промышленной собственности, в которой раскрывается вторая коммерческая организация, с которой связан Закриссон, Harmonychain. Harmonychain - это скандинавская компания ($HMONY), находящаяся также в Осло, Норвегия. Они предлагают клиентам услуги посредника по добыче полезных ископаемых, которые являются экологически чистыми. Они также хотят построить суперкомпьютер для майнинга.
Сыщики сообщества также нашли кэшированный веб-сайт, которым был Iron.finance до того, как он стал Iron.finance, на котором мы потеряли деньги
Он представил “Mether”, предположительно крипто-синтетический актив, который был обеспечен Iron в качестве товарных фьючерсов. Сайт с этого снимка в августе 2018 года зачислен в Harmonychain AS; по совпадению, он имеет то же имя, что и тот, которым Закриссон управляет сейчас в 2021 году.
Новостной портал из Осло HegnarTV также брал интервью у Закриссона в 2017 году. Для тех, кто не владеет норвежским языком, Закриссон хотел создать криптографию, привязанную к 5% мирового товарного рынка, и заинтересован в стратегии, сочетающей в себе, в частности, железо и никель.
Кстати, блокчейн Harmony также был проверен Peckshield, тем же аудитором, которому было поручено провести аудит Iron Finance 18-го числа, через два дня после рокового краха. Многие в сообществе Телеграм, связавшись с Peckshield, и г-н Сюйсянь в значительной степени получили один и тот же ответ:
Что мы узнали, так это то, что домен Iron.Finance переходил из рук в руки от владельца к владельцу, и все они заплатили за то, чтобы их записи WHOIS были отредактированы в целях конфиденциальности. Тем временем его первоначальный владелец теперь управляет компанией, занимающейся майнингом криптовалют.
Когда члены сообщества начали задавать случайные вопросы в официальной Телеграм чате о Закриссоне: был ли он фанатом "Звездных войн" и является ли его настоящая личность пиратом по имени капитан Барнаклз, их забанили.
Еще одна вещь выделялась из метаданных в общедоступном репозитории github, который использует Iron.finance.
Author: Oramis <76583172+oramis1008@users.noreply.github.com>
Date: Mon Jun 14 15:39:44 2021 +0700
commit 9ad46beeca5dd97a826e7728933d2328eedb978b
Author: h3xag0nx <jem.dyke12@gmail.com>
Date: Mon Jun 14 15:14:59 2021 +0700
Вот список стран по UTC +0700: Россия, Монголия, Австралия, Камбоджа, Индонезия, Лаос, Таиланд, Вьетнам. Похоже, Iron использовал аутсорсинговые кодовые дома из-за рубежа. Конечно, в этом нет ничего плохого, но это касается того, приходилось ли вам будить разработчиков, которые спят, когда рынки рушатся и 2 миллиарда долларов обнуляются.
Призыв к действию
Еще многое предстоит выяснить. Например, никто не уделил должного тому, что произошло с другими криптосистемами Iron, такими как $DND, его мутантных производных и связанных с ними пулов. Они также столкнулись с таким же более коротким, чем за ночь, снижением стоимости за тот же период времени в другом блокчейне.
Эта история не просто об историческом беспорядке, которым являются Iron Finance, она о том, как будущее финансов становится зрелым благодаря выверенному саморегулированию, гражданской защите и работе со СМИ, что не является просто пустой сенсацией. Вы можете начать с предоставления информации в телеграм сообществах.
Потому что в противном случае мы все вернемся к 0,5% годовых.