Взлом мостов

Мосты TL;DR играют все более важную роль, позволяя различным блокчейнам взаимодействовать друг с другом. Братья и основатели Sayfer Нир Дуан (генеральный директор) и Ор Дуан (технический директор) поделились опытом практического хакерства в белых шляпах и своим новым лидерством в области аудита web3. 22 о том, почему мосты так подвержены атакам, как их взламывают и каковы наилучшие подходы для успешного аудита смарт-контрактов моста.

Почему мост должен проходить аудит?

Мосты — чрезвычайно прибыльная цель для крипто-хакеров. Более 1.6 млрд долларов были украдены только в 2022 году. Это в сочетании со сложностью, присущей кодированию моста, делает аудит незаменимой частью процесса развертывания. Сайфер помогает другим компаниям стать более безопасными, выполняя тесты на проникновение, которые являются важной частью полного аудита безопасности. Аудит смарт-контрактов — это специализированная часть аудита безопасности, разработанная для кода современного web3, децентрализованного приложения или децентрализованного приложения, работающего с блокчейном. Процесс аудита направлен на то, чтобы после развертывания неизменяемого контракта в блокчейне он мог делать только то, для чего предназначен. Мосты представляют собой еще более специализированный случай для аудиторов, поскольку они содержат компоненты кода в обеих цепочках, а также компонент вне цепочки. Если правильно мышление безопасности и аудит не будет реализован в этой области веб-разработки, очень вероятно, что миллионы долларов в токенах будут по-прежнему утекать из плохо спроектированных мостов.

Пошаговое руководство по аудиту моста

Узнайте об архитектуре

Естественно, аудит требует использования мышления белого хакера для поиска уязвимостей и способов атаки на контракт так же, как это сделал бы хакер в черной шляпе. Прежде чем решить, как подойти к атаке на мост, наиболее важной частью является понимание его модели безопасности. В самом общем смысле мосты могут быть надежныхили ненадежный. Модель доверия, или централизованная мост, опирается на один управляющий компонент, который в конечном итоге может решить, сколько денег перемещается из одной цепи в другую. В недоверчивом или децентрализованная bridge существует отдельный механизм консенсуса, который проверяет каждый запрос на перевод денег между цепочками. Эта часть чрезвычайно важна, когда мы решаем, как мы собираемся взломать или для наших целей провести аудит этого моста. В то время как централизованный мост может показаться многим в криптосообществе недостойным из-за его зависимости от единственного объекта, сложности безопасности, связанные с поддержанием целого отдельного механизма консенсуса, не оставляют ненадежные мосты без своих собственных предостережений.

Ключевой менеджмент

Кто управляет ключами? Потому что, если это не безопасно, ничто не является безопасным, как мы видели с Ронин взломать. Даже если консенсус распределяется между несколькими различными субъектами, мы должны учитывать, насколько легко было бы взять на себя управление и насколько далеко кто-то готов зайти для этого.

Архитектура валидатора

Когда дело доходит до децентрализованных мостов, у них нет одного или нескольких управляющих органов, поэтому основное внимание уделяется качеству валидаторов, кто они, каков механизм консенсуса, кто может к нему присоединиться, как одноранговая коммуникация между валидаторами и т.д.

Понимание базы кода

Изучив базовую архитектуру, независимо от того, доверенная она или нет, и кто контролирует ключи к протоколу, мы можем изучить компоненты базы кода. Первый шаг — прочитать документацию, предоставленную разработчиками. Хорошая команда разработчиков моста должна документировать каждое изменение из-за присущей задаче сложности. Если возможно, поговорите с командой и постарайтесь уменьшить цикл обратной связи позже, получая ответы на вопросы в прямом эфире.

Сценарии развертывания контрактов, пожалуй, одна из самых важных частей аудита; прочитайте их внимательно, потому что иногда уязвимости возникают только из сценариев развертывания, а не непосредственно из смарт-контракта. Если у вас есть инструменты, запустите сценарии локально на вашем компьютере, но не развернуть что-либо в общедоступной основной сети или тестовой сети во время аудита.

Затем посмотрите на тесты, предоставленные разработчиками. Они могут помочь вам лучше понять кодовую базу, а также позже попробовать свои собственные эксплойты и тестирование уязвимостей. Вам не нужно изобретать велосипед! Если у вас есть тесты с настройками и разборками, вы можете просто скопировать тест, изменить его и составить свой собственный.

И наконец, что наиболее важно при рассмотрении моста, следует рассмотреть сквозной поток транзакций — понимание того, как именно деньги перетекают из цепочки А в цепочку Б. Вот где кроются настоящие уязвимые места в мостах, и где глаза хакера наиболее важны. Что ж. Это, конечно, требует более глубокого изучения кода самих контрактов, а также начала использования различных инструментов с открытым исходным кодом для помощи в перечислении кода и поиске уязвимостей.

Инструменты аудита

Построение график вызовов функций может быть большим подспорьем в понимании структуры контрактов и функций внутри них. сурйа от ConsenSys предлагает эту функциональность.

Инструменты, предлагающие дифференциальный анализ, также очень полезны для аудита контрактов, поскольку многие из самых популярных и надежных блокчейн-проектов основывают свой код на других проектах с открытым исходным кодом. Если в другом проекте используется крупная база кода, неоднократно проверенная лидерами отрасли, хотя это не означает, что ее нельзя взломать, мы можем предположить, что она относительно безопасна, и сосредоточить наши усилия по аудиту на тех частях кода, которые действительно изменилось между двумя проектами. Все чаще Сайфер видит клиентов, где они находят серьезные уязвимости только в диф. Вот почему они разработали собственный инструмент под названием умный дифференциал, который сравнивает исходный код смарт-контрактов и опирается на API Etherscan и Diffchecker.

Автоматические сканеры — наши друзья в качестве аудиторов для поиска «низко висящих фруктов». Наиболее часто используемым инструментом является скользить. Или подчеркивает важность подхода к запуску сканера уязвимостей: не стоит просто запускать инструмент и надеяться на отсутствие красных предупреждений. Относитесь к нему именно как к инструменту. Чтобы уменьшить шум на выходе, используйте флаги, чтобы исключить из сканирования определенные пути, зависимости или детекторы. Вы также можете использовать параметр вывода в формате .json, который позволяет относительно легко затем фильтровать и составлять конкретный список дел для вашего аудита.

Еще одна область, которую нужно проверить, — это события и ошибки в цепочке. Анализ этих журналов событий в обозревателе блоков, например Etherscan — отличный способ понять крайние случаи в коде смарт-контракта. Часто один код ошибки не является причиной для беспокойства, но если одна и та же ошибка повторяется снова и снова, вы должны начать исследовать закономерность и понять, почему она ведет себя неправильно.

Последним этапом процесса является ручной аудит. Просмотрите все свои заметки и всю собранную информацию. Рассматривая большую систему контрактов, такую ​​как мост, старайтесь не слишком углубляться в анализ конкретных путей, потому что вы можете потратить дни на поиск уязвимостей в том, что в конечном итоге окажется тупиком. Постарайтесь пойти дальше и найти все возможные эксплойты в отведенные вам сроки, а не углубляться.

Даже после этапа аудита важно отслеживать контракты на наличие событий после развертывания, чтобы обнаруживать любые атаки и реагировать на них, а также убедиться, что события в целом соответствуют ожидаемому поведению.

После того, как вы изучите эти методологии, посмотрите часть, где Нир и Ор продемонстрировали живое испытание в ICC о том, как на самом деле найти уязвимость в коде:

Обзор

Мы надеемся, что этот пост даст вам лучшее представление о том, почему мосты подвергаются атакам в первую очередь, некоторое представление о нашей методологии и о том, как мы проверяем смарт-контракт конкретного моста, а также предоставит вам реальный пример эксплойта. Смотрите финальную часть видео с вопросами и ответами:

Автор: Зои Ронен


Написано
Анна Шредер

Анна — исследователь безопасности в Sayfer. Она увлечена пониманием и исследованием векторов атаки и защиты, которые появляются в новых появляющихся технологиях.

перейти к содержанию