Протокол Furucombo - REKT
Лучше потерять время, чем упустить возможность.
До нас дошли слухи о Furucombo, но у нас были связаны руки. Небольшие команды не могут везде успевать, особенно если хакеры работают без выходных. Если у вас есть опыт в DeFi-расследованиях, свяжитесь с нами и расскажите о себе. Возможно, у нас найдется для вас местечко в rekt.news.
Хакер пошел в контратаку, взломал Furucombo и унес $14 миллионов из разных кошельков. Все они предоставляли протоколу “полный доступ”.
Полный доступ значит безграничное доверие. А мы знаем, что в DeFi этого делать нельзя.
“Не доверяй, проверяй”, но у кого есть время или деньги, чтобы подтверждать предустановленные суммы для каждой транзакции?
Люди, использовавшие протокол Furucombo, оказывали ему определенное доверие. Но многие, похоже, слишком доверились, и получили взамен горький жизненный урок.
Из того, что нам известно об этом эксплоите с помощью “поддельного контракта”, хакер заставил прокси-контракт Furucombo думать, что это была имплементация протокола Aave V2.
Новая “имплементация” была, конечно же, вредоносной и имела возможность пересылать все авторизованные токены на контролируемые хакером адреса. Это стало возможным потому, что пользователи ранее предоставили контрактам Furucombo разрешение на перевод своих токенов.
Kurt Barry проанализировал атаку:
Одну из транзакций в краже средств хакер отправил прокси Furucombo, чтобы обозначить лендинг-пул AAVE v2 как “обработчик” для одной единственной транзакции.
Вы можете проследить за ходом выполнения ниже, данные взяты с ethtx.info. Обратите внимание на встроенные команды delegatecalls.
Обработчики должны быть утверждены в журнале; в момент транзакции (но не в настоящий момент), этот прокси был действительным обработчиком.
Прокси FC дает прокси Aave v2 команду delegatecall, и тот выбрасывает адрес имплементации из специального слота-хранилища. Но, так как это delegatecall, он его читает из хранилища прокси FC, и полученный адрес - это контракт эксплоита хакера.
Если мы рассмотрим предыдущую транзакцию хакера:
То мы увидим, что хакер использовал свой поддельный контракт, чтобы дать прокси FC команду delegatecall прокси AAVE v2, вызвав функцию инициализации и установив слот имплементации.
Как только delegatecall выполнила код хакера в контексте прокси FC, уже ничего нельзя было сделать. Жертва разрешила прокси FC перемещать свои stETH, и эксплоит-код перевел их все хакеру.
Взять те же исходные и повторить со всеми остальными.
Итог:
- прокси FC выполнил caller-specified delegatecalls в отношении проверенных обработчиков, позволив изменить свою память
- обработчик выполнил caller-specified delegatecalls на адрес в памяти
- обработчик предоставил функцию для установки этого адреса
Что мы из этого вынесли:
- “trust list” полезны, но не дают гарантию
- разработчики должны проводить аудит того, как функция delegatecall может взаимодействовать с памятью caller
- предусматривать ограничивающие команды или параметры для caller
- проявлять осторожность с инпутами пользователей
Не только частные пользователи понесли убытки. Cream Finance тоже пострадал, потому что атаковавший напрямую “позаимствовал” из их казны.
Igor Igamberdiev выдал список украденных активов.
- 3,9k stETH
- 2.4M USDC
- 649k USDT
- 257k DAI
- 26 aWBTC
- 270 aWETH
- 296 aETH
- 2.3k aAAVE
- 4 WBTC
- 90k CRV
- 43k LINK
- 7.3k cETH
- 17.2M cUSDC
- 69 cWBTC
- 142.2M BAO
- 38.6k PERP
- 30.4k COMBO
- 75k PAID
- 225k UNIDX
- 342 GRO
- 19k NDX
Мы поговорили с DeFi-энтузиастом (@pleyuh) после того, как узнали, что он был одним из тех, кого это затронуло больше всего.
rekt:
Как ситуация разыгрывалась для тебя?
Как ты понял, что Furucombo атакуют и в какой момент ты начал действовать?
Limzero:
Я был дома с друзьями. Я открыл Телеграм, чтобы посмотреть уведомления и увидел новость на канале Darren - "The daily ape", что Furucombo подвергся эксплоиту.
Я проверил один из адресов, который я использовал на furucombo и заметил трансферы моих aAAVE и нескольких aETH.
Я испугался, потому что у меня были активные займы, и я не хотел, чтобы мои депозиты ликвидировали. Мой health factor упал до 1.5, поэтому я быстро выплатил займы.
Когда я заметил, что хакер вывел все мои aAAVE и только треть aETH, я заподозрил, что мой низкий HF помешал ему вывести больше. Наверное, мне повезло, что у меня были активные займы.
После того, как я выплатил займы, чтобы защитить депозиты, я отозвал все разрешения, которые давал этому адресу.
Я неделями откладывал это (ждал, что комиссия упадет). Похоже, что это промедление мне дорого обошлось.
Я заметил, что хакер сделал трансферы моих фондов через 90 минут после атаки.
rekt:
Для тебя это была большая потеря?
Каково это психологически, ты чувствуешь себя более осторожным или менее уверенным в DeFi после атаки?
Limzero:
Сама по себе потеря большая, но мое портфолио это выдержит.
На несколько минут мне стало очень страшно, потому что я испугался, что все мои а-токены были ликвидированы. Но, когда я увидел, что мой health factor был выше 1.1, я почувствовал облегчение.
Я рассматриваю весь этот опыт как дорогостоящий урок безопасности. Давать неограниченные разрешения одному адресу с большой суммой на счету было очень глупой ошибкой с моей стороны. Если хорошо присмотреться, мне в итоге пришлось заплатить обезьяний налог. После стольких лет в этой сфере это первая хакерская атака / эксплоит, который меня настиг. Мне повезло, что меня еще не коснулись ситуации посерьезнее.
Вообще-то первый эксплоит после эксплоита COVER, но я о нем забыл :P
Я не чувствую себя менее уверенным в DeFi. Я знал об этих рисках.
Тем не менее, я предпринял меры, чтобы усилить свою кибербезопасность.
rekt:
Что ты можешь нам рассказать об этих мерах?
Limzero:
Я лучше ничего не буду говорить, простите.
Это тоже часть этих мер 😋
rekt:
Какие шаги ты бы рекомендовал предпринять нашим читателям, чтобы улучшить их безопасность?
Limzero:
- использовать физические кошельки
- избегать windows
- использовать отдельную машину для web 3 и взаимодействия с контрактами
- одноразовые пароли или менеджеры паролей + VPN
- не светиться в соцсетях
- использовать много адресов, чтобы распределить риск
- заводить новые адреса для новых фармов
- отзывать разрешения у часто используемых адресов
В любом случае я не эксперт по безопасности. Это стандартные советы, предлагаемые более знающими людьми в крипто-сфере.
- читайте REKT xD
rekt: Скажешь что-нибудь напоследок нашим читателям?
Limzero:
“Пожалуйста, не взламывайте меня больше”
Еще, даже если вы очень уверены в вашей безопасности, храните небольшую часть ваших сбережений на больших централизованных биржах типа Kraken, Coinbase, Gemini, Binance - на тот случай, если ваш персональный кошелек взломают.
У меня все.
rekt:
Спасибо, что побеседовал с нами.
Limzero:
Спасибо вам! Надеюсь, что никогда больше не придется с вами беседовать лол.
Стандартная атака со стандартным решением - не пользуйтесь “полным доступом”, если не доверяете полностью. Индивидуальное разрешение стоит немало, но не урезайте бюджет, когда речь идет о безопасности.
На таких сайтах как Debank или Etherscan можно отслеживать и отзывать разрешения в своем кошельке. Как верно заметил Limzero, это дело лучше не откладывать на потом.
Никогда не теряйте бдительность, хакеры всегда ищут лазейки, и атаки происходят гораздо чаще, чем вы думаете.
На этом ринге нет рефери; вы несете ответственность за свою безопасность. Но, как только вы разберетесь, что к чему, игра будет стоить свеч.
ПОПРАВКА: 18 июля 2021
Haechi связался с нами и заявил следующее:
Несмотря на то, что проверка их сontract(proxy) входила в программу нашего аудита, проведенный нами аудит не связан с эксплоитом, который затронул прокси. Команда furucombo предоставила нам всего лишь два контракта: furucombo proxy и compound adapter. Они предоставили сценарий, по которому команда furucombo получает доступ к протоколу compound с использованием адаптера compound с proxy, вои и все. Но, как вам известно, эксплоит случился по причине сценария использования AAVE. У нас не было возможности обнаружить эту проблему, потому что у них уже была функция включения в белый список, которая должна была выступить защитой в подобной ситуации.
REKT представляет собой общественную площадку для анонимных авторов. Мы не несём ответственность за выражаемые точки зрения или контент на этом веб-сайте.
Пожертвование (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C
Дисклеймер:
REKT не несет никакой ответственности за любое содержание, размещенное на нашем Веб-сайте или имеющее какое-либо отношение к оказываемым нами Услугам, независимо от того, было ли оно опубликовано или создано Анонимным Автором нашего Веб-сайта или REKT. Не смотря на то, что мы устанавливаем правила поведения и нормы публикаций для Анонимных Авторов, мы не контролируем и не несем ответственность за содержание публикаций Анонимных Авторов, а также за то, чем делятся и что передают Авторы с помощью нашего Сайта и наших Сервисов, и не несем ответственность за любое оскорбительное, неуместное, непристойное, незаконное или спорное содержание, с которым вы можете столкнуться на нашем Веб-сайте и на наших Сервисах. REKT не несет ответственность за поведение, будь то онлайн или офлайн, любого пользователя нашего Веб-сайта или наших Сервисов.
Вам также понравится...
Протокол Raydium - REKT
В пятницу АММ-протокол Raydium на базе Solana потерял в общей сложности $4.4 миллиона в виде комиссий из пулов ликвидности. Будущее Solana пост-FTX кажется неопределенным...
Протокол Lodestar Finance - REKT
Протокол Lodestar Finance пополнил список жертв массовых рыночных манипуляций, от которых пострадали не только отдельные пользователи, но и протоколы во всей индустрии. Слив из займовых пулов 6.5 миллионов долларов вывел Lodestar на 77 строчку рейтинга.
Протоколы Ankr и Helio - REKT
18 квадриллионов долларов. Такова теоретическая стоимость 60 триллионов aBNBc, которые были вполне законно отчеканены в протоколе Ankr. К сожалению, это больше, чем ВВП всей планеты, и ликвидности aBNBc на столько не хватило бы, поэтому хакер скрылся с $5M.