Объяснение 4 рисков безопасности DeFi: общие сведения о уязвимостях
25 февраля 2023 г.Уязвимости в контрактах DeFi привели к 44 отдельным случаям невероятных убытков в 2022 году. Самая крупная атака была network-suffers-625m-exploit/">против сети Ronin Network за 6 240 000 000 долларов США, в то время как наименьшая из них была против Curve Finance за 575 000 долларов. Эти взломы продолжают дестабилизировать экосистему DeFi и удерживают более традиционных и склонных к риску инвесторов, а также способствуют продолжающейся зиме DeFi.
В этой статье я суммирую уязвимости, которые привели к некоторым из крупнейших ограблений в истории Defi. Большая часть данных и сведений об атаках поступает с rekt.news.
Уязвимости ключей и кошельков для контрактов DeFi
Как и BitCoin, контракты DeFi основаны на системе закрытых и открытых ключей для идентификации права собственности на монеты. Эти ключи затем хранятся в цифровых кошельках. Полномочия тратить токены или выполнять любые контракты основаны исключительно на владении закрытым ключом; и проверка этого владения с помощью открытого ключа владельца. Передовые методы управления ключами были изучены на собственном горьком опыте — в 2011 году их всех взломал дедушка — Mt Gox, — и это показало опасность бессистемного управления.
В топ-25 Rekt пять разных сетей — Easyfi, Ascendex, Harmony, Vulcan и Ronin — понесли убытки из-за потери ключей или кошельков. Некоторые из них были простыми, когда не использовалось даже несколько подписей — мультиподпись. Хакеры атаковали подозреваемых хранителей ключей DeFi с помощью хакерских и фишинговых атак, поэтому любые уязвимости в этой области безжалостно используются.
Давайте напомним о передовых методах управления ключами DeFi:
* Multisig — изменения в основной логике контракта и активы контракта должны быть защищены с помощью нескольких ключей и привязаны к нескольким людям. Это предотвращает компрометацию одного человека или ключа, что может привести к огромным потерям.
* Холодное хранение: закрытые ключи должны быть отделены от общедоступного Интернета и храниться на безопасном носителе, подходящем для ключа, привязанного к активам на миллионы долларов.
Цены и цены Уязвимости управления в контрактах DeFi
Приложения DeFi используют коды контрактов для изменения своих собственных контрактов, ценовых активов и торговых активов. Когда этот код контракта зависит от цены другого актива или основан на активах одного пользователя, контракт становится уязвимым для манипулирования лежащей в его основе экономической составляющей.
Один пример связан с экспресс-кредитами. Флэш-кредиты — это кредиты, которые выдаются на очень короткий период времени, а затем возвращаются в том же блоке. Риска дефолта нет, потому что, если кредит не будет возвращен вовремя, блок никогда не будет записан, и транзакция как будто никогда не происходила. Затем злоумышленник может занять огромные суммы в криптовалюте, чтобы затем манипулировать ценами, привязанными к контракту или привязанными к структуре управления контрактом DeFi. Это приводит к тому, что злоумышленник либо получает доступ к внутренней части контракта, либо получает ценные активы по сниженной цене.
PancakeBunny, Cream и Beanstalk стали жертвами атак с использованием флэш-кредитов. Разработчикам следует рассмотреть возможность использования нескольких цен вместо одной биржи или средних цен в нескольких блоках для защиты от этой атаки. Подробнее о экспресс-кредитах здесь.
Второй пример — атака на оракула. Оракул — это способ передачи данных вне сети, таких как цена традиционных ценных бумаг или других активов, в сеть. Если самим оракулом легко манипулировать, это может привести к неправильной оценке и позволить злоумышленнику дешево получить активы. Этот стиль атаки был замечен на протоколе Bonq, когда ценовой оракул манипулировался для снижения первоначальную цену покупки, а затем повысить цену ликвидации. Защита от манипуляций с оракулом включает отказ от использования мгновенной цены, а также проверку структуры самого оракула.
Поскольку решения DeFi продолжают становиться все более изощренными и сложными, разработчикам придется быть очень осторожными, чтобы понять и проверить экономические предположения своих контрактов.
Алгоритмическая слабость и логические ошибки
Контракты DeFi по-прежнему сложно обосновать с помощью новых алгоритмов и подводных камней. В первые дни существования смарт-контрактов Ethereum часто возникали ошибки целочисленного переполнения и простые проблемы с разрешениями. С появлением языка Vyper и более качественных готовых библиотек этих ошибок стало меньше. Ошибка повторного входа, которая привела к атаке Дао, все еще присутствует, хотя Фей Рарии потерял 80 миллионов долларов из-за более сложной логики повторного входа.
В другом примере Соединение потеряло более 80 миллионов из-за разбавления из-за неправильного знака меньше или равно в его логике вознаграждения. Wintermute потерял 160 миллионов долларов из-за переработанного закрытого ключа. Wintermute использовала генератор тщеславных ключей, который в конечном итоге позволил злоумышленнику угадать закрытые ключи.
Защита от слабости алгоритмов является сложной задачей, и, следовательно, это самый большой класс атак.
Вот несколько ключевых инструментов:
- Разработка через тестирование с проверкой высокого уровня покрытия кода.
- Создание более совершенных инструментов для разработки с помощью контрактов, утверждений и исключений, подобных тем, которые встроены в язык Eiffel.
- Использование стандартных библиотек, прошедших боевые испытания
- Использование статических анализаторов и внимание к их результатам.
- Проверка контракта красной командой.
Кроссчейн DeFi-атаки
Рассуждать о контрактах DeFi в одной цепочке сложно, особенно когда модели программирования все еще такие новые, а лучшие практики все еще развиваются. Рассуждать о контрактах DeFi в нескольких цепочках гораздо сложнее. Управление авторизацией кроссчейн-транзакций сложно и, как правило, является главным виновником. Разработчики, кажется, изо всех сил пытаются управлять тем, какая функция должна иметь возможность выполнять какую транзакцию, а какая является привилегированной, а какая нет. Сложное взаимодействие между цепными различиями приводит к минному полю. В рейтинге Rekt Top 25 Qubit, Nomad, Wormhole и Poly являются мостами между несколькими цепями, которые понесли убытки в размере пятидесяти миллионов долларов или более.
Предотвращение кроссчейн-атак требует от разработчика тщательного учета привилегированных транзакций и влияния между ними. Я ничего не знаю о них, но инструменты, отображающие взаимозависимость функций в графе, дадут хорошее представление о том, где могут происходить атаки между цепочками.
Выводы
Фирмы DeFi продолжают внедрять инновации и заключать более сложные контракты. К сожалению, фирмы DeFi и их клиенты продолжают нести огромные убытки из-за инцидентов, связанных с безопасностью. Чтобы DeFi росла и становилась все более популярной, эти проблемы безопасности должны стать менее распространенными.
Также опубликовано здесь
Оригинал