В 2021 году только в криптопространстве было осуществлено взломов почти на 2 миллиарда долларов. Это сумма, которую, как сообщалось, протоколы DeFi потеряли за 365 дней 2021 года из–за кибератак и других уязвимостей. Ошеломляющий рост составил более чем 1300% по сравнению с относительно “небольшими” 134 миллионами долларов, потерянными годом ранее, в 2020 году. И для еще большего понимания контекста – крупнейшим взломом DeFi в 2020 году, является ущерб в размере 34 миллионов долларов. Этот ущерб понесла компания Harvest Finance, в результате внезапной кредитной атаки. Как происходят такие хакерские атаки и что они из себя представляют? – Давайте узнаем на примере самых дорогих взломов DeFi 2021 года.
Ниже мы перечислили 10 крупнейших взломов DeFi в 2021 году, включая крупнейший в истории эксплойт безопасности DeFi стоимостью более 600 миллионов долларов, который, как ни удивительно, закончился довольно хорошо для всех вовлеченных сторон! Эксплойт – это вредоносный код, который использует ошибки или недостатки системы безопасности для распространения киберугроз.
Все десять “лучших” взломов прошлого года привели к утечке средств на сумму не менее 45 миллионов долларов. Итак, давайте подсчитаем худшие крипто-взломы 2021 года и посмотрим, в чем заключался каждый из этих печально известных эксплойтов.
10 место: PancakeBunny – потеряны $45 миллионов
19 мая 2021 года, протокол PancakeBunny стал жертвой атаки на мгновенный кредит (flash loan attack). Злоумышленник смог манипулировать разницей в ценах, чтобы украсть 114 631 WBNB на сумму около 45 миллионов долларов.
Об атаке
Как и многие предыдущие атаки на протоколы DeFi, эта атака на протокол PancakeBunny стала возможной, благодаря флэш-кредиту и возможности злоумышленников манипулировать обменными курсами определенных токенов на бирже.
В этом случае злоумышленник манипулировал ценой USDT/BNB и BUNNY/BNB в своих интересах.
Манипулирование стоимостью обмена состоит из нескольких основных шагов:
- Минт токенов поставщика ликвидности монетного двора (LP) путем внесения пары токенов (т.е. BNB и USDT);
- Изменение обменного курса: обмен большого количество одного токена на другой (например, WBNB на USDT) в пуле;
- Обмен токена LP на долю инвестированных токенов, используя преимущества несбалансированной стоимости.
В этом случае, злоумышленник манипулировал ценами как USDT / BNB, так и BUNNY / BNB в своей атаке. Это означало, что при извлечении ценности или обмене BUNNY на BNB злоумышленник получал больше токенов, чем он “должен был” иметь. В результате, после погашения флэш-кредита у злоумышленника осталось 114 631 WBNB, что и является прибылью от атаки.
Смягчение последствий атаки
Команда PancakeBunny предприняла шаги для предотвращения будущих атак такого типа. В основном это связано с обеспечением того, чтобы злоумышленник не мог манипулировать обменным курсом между различными токенами в протоколе.
Чтобы предотвратить это, протокол Bunny больше не будет вычислять значение обменов внутри компании. Вместо этого они используют контракт Chainlink, чтобы определить “справедливую” цену для каждого актива. Это не позволяет злоумышленникам изменить цену настолько сильно, чтобы они могли получить прибыль.
9 место: Uranium Finance – потеряны $50 миллионов
28 апреля 2021 года, проект Uranium Finance в смарт-цепочке
О взломе
Взлом Uranium Finance стал возможен из-за ошибки в вычислении функции обмена в версии 2 контрактов проекта.
4/10
What was the exploit?
Pair contracts in Uranium v2 had a bug due to which anyone could interact with them and withdraw almost all tokens due to a calculation error.
The balances of pair contracts during sanity checks were a hundred times larger than the real ones. pic.twitter.com/OwBkcrhP8f
— Igor Igamberdiev (@FrankResearcher) April 28, 2021
На изображении выше, опубликованном в Твиттере Игоря Игамбердиева, проблема отмечена красным и зеленым. Код “проверки работоспособности” для корректировки баланса использует значение 1000**2 = 1 000 000; однако, фактические корректировки баланса составили 10 000, что в 100 раз меньше.
Это несоответствие позволило злоумышленнику отправить небольшую сумму стоимости в контракт и извлечь гораздо большую сумму с помощью функции swap, истощив резервы стоимости контракта.
Uranium опубликовали подробное описание взлома на своей странице Medium, с которым можно ознакомиться здесь.
Уроки, извлеченные из взлома
Уязвимость, используемая в смарт-контрактах Uranium, была известна команде еще до взлома. Проект заказал аудит безопасности, который выявил уязвимость низкой степени серьезности в коде. После дальнейшего расследования, разработчики проекта определили, что это действительно серьезная проблема, и исправили уязвимость. Однако, в момент взлома, код в версии v2.0 уже был запущен и использовался злоумышленником за 2 часа до того, как был выполнен переход.
8 место: Belt Finance – потеряны $50 миллионов
Belt Finance – это проект DeFi, основанный на смарт-цепочке
Об атаке
Взлом Belt Finance – еще один пример атаки на мгновенный кредит, которая становится все более распространенной в пространстве DeFi. Как мы уже описывали, злоумышленник заимствует криптовалюту, используя флэш-кредит, манипулирует стоимостью токена в пуле ликвидности, извлекает больше стоимости, чем они вкладывают в пул, и выплачивает кредит, сохраняя при этом приличную прибыль.
Belt Finance got hacked today, losses worth ~$13mm. Withdrawals have been paused to prevent further losses. The exploit happened due to an incorrect valuation of 3eps shares. This was one of the more complex hacks in recent times🧵👇 pic.twitter.com/WCFDoDFyh0
— Mudit Gupta (@Mudit__Gupta) May 30, 2021
В случае взлома Belt Finance, злоумышленник использовал стратегию Ellipsis в Belt и воспользовался ошибкой в интеграции со стратегией Venus. Belt реализовал хранилище с несколькими стратегиями для BUSD, которое имело целевой баланс для каждой стратегии в хранилище. Депозиты в хранилище размещались по стратегии с наибольшим количеством подписчиков, в то время как снятие средств осуществлялось по стратегии с наибольшим количеством подписчиков.
Во время атаки на стратегию Venus было больше всего подписчиков, поэтому злоумышленник внес в нее огромный депозит, в результате чего она стала пулом с наибольшим количеством подписчиков. Затем злоумышленник разбалансировал пул 3eps, заменив BUSD на USDT с помощью многоточия.
Этот дисбаланс был значительным, поскольку Belt Finance рассчитывала стоимость своих акций на основе стоимости пула 3eps и основывалась на предположении о том, что все его стратегии сбалансированы. Этот расчет завысил стоимость акций хранилища. Когда злоумышленники вывели BUSD из стратегии Venus, они получили больше токенов, чем должны были иметь, обеспечив прибыль.
Каждая итерация атаки приносила прибыль в размере около 1 миллиона долларов. Повторив это семь раз, злоумышленник заработал около 6,3 миллиона долларов гонораров.
Уроки, извлеченные из взлома
Взлом Belt Finance – еще один пример атаки на мгновенный кредит, которая, как утверждала команда Belt, была невозможна с их протоколом. В данном конкретном случае, атака стала возможной благодаря ошибочному предположению о том, что все стратегии в рамках мультистратегического хранилища Belt будут сбалансированы, а это означает, что вычисления значения стратегии многоточия будет достаточно для оценки стоимости всех стратегий в хранилище и каждого общего ресурса хранилища.
7 место: BZX – потеряны $55 миллионов
5 ноября 2021 года, SlowMist сообщил о взломе протокола bZx. Злоумышленник украл токены на сумму более 55 миллионов долларов у платформы, разработчика и некоторых пользователей bZx.
Суть взлома
Взлом bZx начался с фишингового электронного письма, отправленного на компьютер разработчика bZx. Это электронное письмо содержало вредоносный документ Word, который включал вредоносные макросы. Эти макросы запустили скрипт на персональном компьютере разработчика, который украл личную мнемоническую начальную фразу сотрудника и закрытые ключи, используемые для развертывания протокола bZx в Polygon и Binance Smart Chain (BSC).
Мнемонические ключи предназначены для облегчения запоминания закрытых ключей, и на основе этой информации можно получить закрытый ключ. В результате, скомпрометированная начальная фраза использовалась для слива личного кошелька разработчика, а скомпрометированные ключи bZx использовались для кражи средств платформы и вывода средств из кошельков пользователей, которые разрешали неограниченные операции с токенами на платформе.
Уроки, извлеченные из взлома
Взлом bZx произошел из-за скомпрометированного закрытого ключа, который предоставил злоумышленнику полный контроль над связанной учетной записью. Еще один недавний крупный взлом биржи BXH также был связан со скомпрометированным закрытым ключом.
6 место: EASYFI – потеряны $59 миллионов
19 апреля 2021 года, EasyFi (сетевой протокол DeFi Polygon), стал жертвой взлома. Злоумышленник смог извлечь 2,98 миллиона токенов EASY и 6 миллионов долларов в долларах США, DAI и USDT на общую сумму около 81 миллиона долларов.
Суть взлома
Атака EasyFi очень похожа на взлом Nexus, который был осуществлен в декабре 2020 года. В обоих случаях злоумышленник внедрил вредоносную версию Metamask на целевой компьютер. Поступая таким образом, злоумышленник смог украсть мнемонические / секретные ключи и использовать их для выполнения транзакций.
Скомпрометированная машина во время взлома EasyFi была машиной, используемой исключительно для выполнения официальных переводов от имени проекта, и в остальное время находилась в автономном режиме.
Во время атаки, машина была отключена более недели. Это показывает, что злоумышленник ранее скомпрометировал ключи и ждал, чтобы выполнить атаку.
Поскольку в то время машина активно не использовалась, ответ был отложен, что позволило злоумышленнику вывести ликвидность из протокола.
Уроки, извлеченные из взлома EASYFI
Взлом EasyFi, очевидно, был целенаправленной атакой, выполненной изощренным злоумышленником. Компьютер, скомпрометированный в результате атаки, большую часть времени находится в автономном режиме. Злоумышленнику удалось получить доступ к системе и оттуда изменить двоичный файл MetaMask.
Проект EasyFi принял соответствующие меры предосторожности для защиты от этой угрозы (т.е. использовал выделенный компьютер, подключенный к сети только при необходимости).
Без дополнительной информации о векторе атаки, используемом для компрометации машины, трудно сказать, как другие проекты могут защититься от подобных угроз в будущем.
5 место: BadgerDAO – потеряны $120 миллионов
В декабре 2021 года, приложение DeFi – BadgerDAO, стало жертвой взлома. Злоумышленники украли токены на сумму около 120 миллионов долларов, что делает это одним из пяти крупнейших взломов DeFi.
Суть атаки
В отличие от многих взломов DeFi, взлом BadgerDAO не был связан с атакой на флэш-кредит или использованием уязвимости в смарт-контрактах проекта. Вместо этого, злоумышленник воспользовался проблемами безопасности во внешнем интерфейсе протокола.
Взлом, скорее всего, начался с взломанного ключа API для учетной записи Cloudflare проекта. Это позволило злоумышленнику внедрить вредоносный скрипт в пользовательские маршруты.
Вредоносный скрипт злоумышленника был запущен, когда пользователи пытались выполнить транзакции на BadgerDAO. Сценарий включал дополнительные разрешения на неограниченные расходы для адреса злоумышленника. Как только эти утверждения были получены, злоумышленник мог выполнять транзакции, которые отправляли токены со своего кошелька на учетную запись злоумышленника.
Злоумышленнику удалось получить 500 кошельков для создания этих неограниченных разрешений и украсть у пользователей около 120 миллионов долларов в токенах. Атака была остановлена командой Badger, которая воспользовалась возможностью заморозить все вызовы функции transferFrom, блокируя дальнейшие кражи.
Уроки
Взлом BadgerDao демонстрирует важность комплексного подхода к обеспечению безопасности DeFi. С точки зрения смарт-контрактов проекта, ничего не пошло не так, и злоумышленник просто использовал разрешения, предоставленные пользователями. Настоящая проблема заключалась во внешнем интерфейсе, где злоумышленник смог вставить вредоносную функциональность на сайт Badger.
DeFi нуждается в аудитах безопасности, которые выходят за рамки кода смарт-контракта, а политики безопасности проекта должны включать защиту критически важных данных, таких как ключи API. На стороне пользователя важно никогда не разрешать бесконечные утверждения, особенно для неизвестных адресов.
4 место: Paid Network – потеряны $127 миллионов
5 марта 2021 года, смарт-контракт Paid Network был скомпрометирован злоумышленником. Используя недостатки в защите и управлении смарт-контрактом, злоумышленник смог извлечь оплаченные токены на сумму около 100 миллионов долларов и конвертировал из них около 3 миллионов долларов в Эфир, прежде чем был заблокирован командой Paid Network.
Суть атаки
Злоумышленник воспользовался методами управления ключами в Paid Network, а не уязвимостью в смарт-контракте. Paid Network полагались на один закрытый ключ для управления контролем над смарт-контрактом; скомпрометировав этот закрытый ключ, злоумышленник смог получить контроль над функциональностью обновления контракта.
С помощью этого элемента управления, злоумышленник смог обновить и заменить оригинальный смарт-контракт вредоносной версией, которая позволяла сжигать и чеканить токены. Сжигание токенов было необходимо, потому что максимальный запас токена, оплаченного в размере $, уже был достигнут.
Уничтожая существующие токены и чеканя новые, этот злоумышленник смог создать совершенно новые токены под своим контролем. В общей сложности злоумышленнику удалось отчеканить 59 471 745,571 $PAID токенов. Из них, 2 501 203 были конвертированы в ETH до того, как команда Paid Network смогла заблокировать обмены PAID / ETH на Uniswap. Произведенные 2040,4339 ETH имеют стоимость более 3 миллионов долларов.
Уроки
Смарт-контракт Paid Network ранее прошел успешный аудит безопасности, и этот взлом не использовал никаких уязвимостей смарт-контракта. Однако, слабость, которой он воспользовался, – использование одного закрытого ключа для управления жизненно важными функциями – могла быть выявлена и передана как точка риска, когда один пользователь будет иметь полный контроль над функциями контракта.
В результате взлома, Paid Network внедрили лучшие практики управления ключами, включая использование нескольких подписей для критически важных функций (например, процесс обновления смарт-контракта). Команда, также, провела аудит своих процессов, чтобы повысить безопасность своих закрытых ключей и ИТ-систем.
3 место: CREAM Finance – потеряны $130 миллионов
30 августа 2021 года, децентрализованный протокол кредитования CREAM Finance стал жертвой взлома флэш-займа. Злоумышленники украли 2804,96 ETH и 462 079 976 токенов AMP из хранилищ протокола.
Суть атаки
Злоумышленник воспользовался уязвимостью повторного входа, которая возникла из-за того, что CREAM интегрировал AMP в свой протокол. Протокол AMP реализует стандарт токенов ERC-777, который создает потенциал для повторного входа. В рамках контракта AMP, перехват _callPostTransfersHook предназначен для вызова резервной функции tokensreceived() в рамках вызывающего смарт-контракта. Этот перехват выполняется как часть процесса заимствования из протокола и позволил злоумышленнику выполнить код до завершения этого первоначального заимствования.
Функция tokensReceived смарт-контракта злоумышленника включает в себя второй вызов функции заимствования(). Поскольку этот вызов происходит до того, как контракт AMP обновит свое состояние по сравнению с первоначальным заимствованием, злоумышленник может заимствовать больше активов, чем у него было бы в противном случае. Многократно используя уязвимость повторного входа, можно разорвать контракт.
Двое злоумышленников совершили нападение на CREAM. После первоначального эксплойта, злоумышленник-подражатель использовал те же методы, чтобы украсть меньшую сумму из протокола.
Уроки
Взлом CREAM Finance необычен тем, что он не использовал ошибку в контрактах AMP. AMP реализует ERC-777, и контракты проектов работали точно так, как было задумано. ERC-777 предназначен для уведомления контрактов о том, что им отправляются токены в форме обратного вызова. В этом случае, злоумышленник воспользовался этим обратным вызовом для выполнения атаки повторного входа.
Этот взлом демонстрирует важность выполнения полной оценки рисков для всего кода в рамках проекта DeFi. Интеграция AMP с CREAM сделала эту атаку возможной, и атака не произошла раньше, только потому, что в протоколе было недостаточно AMP, чтобы сделать ее целесообразной.
2 место: Compound Finance – потеряны $147 миллионов
Compound Finance, протокол кредитования и заимствования на основе Ethereum, входит в число крупнейших проектов DeFi, общая стоимость которых на момент написания статьи составляла около 10 миллиардов долларов.
30 сентября 2021 года, протокол ошибочно выплатил огромные суммы в своей собственной криптовалюте некоторым пользователям, которые предоставили лишь незначительные уровни обеспечения в ETH, USDC и DAI. В качестве причины сбоя, подозревалась ошибка в смарт-контракте протокола.
До сих пор неясно, было ли ошибочное распространение токенов COMP спланированной атакой или случайной ошибкой разработчиков протокола. Однако, генеральный директор Compound Роберт Лешнер не слишком долго размышлял над этим.
Через несколько часов после инцидента он написал в Твиттере, попросив получателей средств вернуть их. Лешнер пообещал 10% от суммы в качестве вознаграждения за возвращение и в том же твите пригрозил сообщить в Налоговую службу о тех, кто не ответил. Неизвестно точно, какая часть общей потерянной суммы была восстановлена.
1 место: PolyNetwork – потеряны $610 миллионов
10 августа 2021 года сеть Poly стала жертвой крупнейшего на сегодняшний день взлома DeFi. Злоумышленник украл, по оценкам, 600,3 миллиона долларов в различных токенах, воспользовавшись уязвимостью в смарт-контрактах протокола.
Суть атаки
Взлом сети Poly стал возможным, благодаря взаимодействию между несколькими смарт-контрактами проекта. Используя эти отношения, злоумышленник смог настроить роль хранителя так, чтобы она указывала на их адрес, позволяя им выполнять транзакции по своему усмотрению и извлекать выгоду из проекта.
Функция PutCurEpochConPubKeyBytes в контракте Ethcrosschaindata может обновлять роль хранителя. Эта функция может быть выполнена с помощью вызова verifyHeaderAndExecuteTx в контракте Ethcrosschainmanager.
Злоумышленник отправил специально отформатированную команду verifyHeaderAndExecuteTx, которая переназначила ему роль хранителя.
Средства были выведены из всех трех цепочек, используемых Poly Network: Ethereum, BSC и Polygon. Убытки на Ethereum составили 273 миллиона долларов, в то время как операции платформы BSC и Polygon потеряли 253 миллиона долларов и 85 миллионов долларов соответственно.
Poly Network обратилась к хакеру с просьбой вернуть средства. На следующий день после инцидента, 11 августа, хакер вернул около 260 миллионов долларов.
12 августа хакер вступил в онлайн-беседу с Poly Network, представившись как “Мистер Уайтхат.” День спустя, Уайтхат заверил платформу, что вернет все оставшиеся средства, обосновав это тем, что его действия стали результатом демонстрации уязвимости криптоплатформ.
К 23 августа мистер Уайтхат вернул все взломанные средства. В ходе его публичной онлайн-беседы с Poly Network, хакеру сначала предложили 500 000 долларов, а затем должность главного советника по безопасности (CSA) на платформе. Оба предложения были отклонены таинственным автором крупнейшего взлома DeFi в истории.
Ключевая информация о крупнейших взломах DeFi в 2021 году
Совокупно, 10 “лучших” взломов DeFi в 2021 году, составили более 1,5 миллиарда долларов общей украденной стоимости. Эта цифра включает средства, возвращенные на платформу, как это было в случае взлома Poly Network.
В то время как, в 2020 году было произведено всего 16 взломов DeFi, в результате которых были понесены какие-либо денежные потери, в 2021 году таких взломов было уже 55.
Средний размер взлома DeFi в 2021 году, также, существенно увеличился по сравнению с показателем 2020 года. В то время как в 2020 году взлом DeFi привел к потере в среднем 8,3 миллиона долларов, соответствующий показатель на 2021 год составляет почти 36 миллионов долларов.
В 2021 году наблюдался значительный рост числа взломов DeFi по сравнению с 2020 годом. В 2021 году мы стали свидетелями крупнейшего на сегодняшний день взлома DeFi, и, к счастью, эти средства были возвращены. К сожалению, у большинства других топовых взломов не было достаточно добрых хакеров, и средства возвращены не были. Все это является суровым напоминанием любому пользователю, разработчику или оператору DeFi о том, что крипто-киберпреступники всегда ищут уязвимости платформы для использования.