Почему аудит смарт-контрактов имеет решающее значение для успеха вашего бизнеса

Почему аудит смарт-контрактов имеет решающее значение для успеха вашего бизнеса

12 апреля 2023 г.

Что такое аудит смарт-контрактов?

<цитата>

Аудит смарт-контрактов – это ограниченная по времени проверка кода на основе безопасности в вашей системе смарт-контрактов/web3. Цель аудитора – найти как можно больше уязвимостей и рассказать клиенту, как можно улучшить безопасность его кодовой базы в будущем.

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

Почему аудит смарт-контрактов так важен?

Согласно исследованию, проведенному Chainalysis, 2022 год был год, когда из смарт-контрактов было украдено наибольшая стоимость. Из-за неизменяемости блокчейна после развертывания смарт-контракта вы не можете изменить его, так что лучше поправляйся. Блокчейн — это враждебная среда, и ваш протокол должен быть подготовлен для злоумышленников.

Аудит может не только защитить ваш протокол от взлома, но и улучшить понимание кода разработчиками, повысить их скорость и эффективность будущих функций.

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

Преимущества аудита смарт-контрактов

  • Найти уязвимости
  • Повышение уровня разработчиков
  • Обучать передовым методам и самым современным инструментам.

Часто одного аудита недостаточно. Многие протоколы проходят путь безопасности, который включает несколько аудитов и сервисов, таких как:

* Официальная проверка * Конкурсный аудит * Программы Bug Bounty

Мы разберем их в следующем посте.

Аудиторы смарт-контрактов

Многие компании предлагают услуги по аудиту смарт-контрактов, например

  • След битов
  • Консенсус усердие
  • Открытый цеппелин
  • Сигма Прайм
  • SpearbitDAO
  • Смешать байты
  • ВатчПаг
  • Доверять
  • И, конечно же, Цифрин!

Вы можете увидеть более подробный список 7 лучших аудиторов смарт-контрактов здесь. р>

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

Процесс аудита смарт-контракта

Типичный аудит выглядит следующим образом:

1. Цена & усилитель; Хронология

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

После того, как они свяжутся, команды обсудят, сколько времени займет аудит в зависимости от объема и сложности кода.

Сколько времени займет аудит, зависит от того, из скольких строк кода состоит смарт-контракт. Очень приблизительное представление о том, сколько времени занимает аудит в зависимости от того, сколько строк исходного кода у вас есть, можно найти здесь:

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

На момент записи недельный аудит может проходить где угодно:

Duration: Price

- 1 week: $5,000 - $100,000

Ассортимент огромен, но я видел цены где-то в этом диапазоне.

2. Фиксированный хэш, авансовый платеж, дата начала

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

3. Аудит начинается

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

4. Первоначальный отчет

По истечении периода аудиторы предоставят вам первоначальный отчет, который выглядит вот так.

Все их выводы перечислены по серьезности, обычно в следующем формате:

* Высокий * Середина * Низкий * Информационные / Некритические / Газовые

Высокий, средний и низкий уровень представляют серьезность воздействия и вероятность каждой уязвимости. Информационное, Газовое и Некритическое – результаты, которые не указывают на уязвимости, а вместо этого указывают на возможности для повышения эффективности и структуры вашего кода

5. Начинается смягчение последствий

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

6. Заключительный отчет

После того, как протокол внесет изменения, аудиторская группа подготовит окончательный аудиторский отчет исключительно об исправлениях, внесенных для устранения проблем, поднятых в первоначальном отчете. И тогда, надеюсь, аудиторы и протоколы получили большой опыт и будут работать вместе, чтобы оставаться в безопасности в будущем!

Как получить максимальную отдачу от аудита смарт-контрактов

Чтобы получить максимальную отдачу от аудита, необходимо:

  1. Имейте четкую документацию
  2. Надежный набор тестов
  3. В идеале, включая нечеткие тесты.
  4. Код должен быть прокомментирован & читаемый
  5. Соблюдение современных передовых практик.
  6. Хорошие каналы связи между разработчиками и аудиторами
  7. Проведите начальный видеообзор кода.

Однако самая важная часть процесса происходит во время аудита.

Вы хотите думать о себе и своем аудиторе как о команде, чтобы получить наилучшие результаты от аудита. Один из лучших способов сделать это — создать специальный канал, где аудиторы могут задавать вопросы разработчикам.

Кроме того, чем больше контекста, документации и информации они могут прочитать, тем лучше. Убедитесь, что любой может легко просмотреть ваш код и понять, что он должен делать.

Breakdown of bugs between machine auditable and unauditable

80% всех ошибок возникают из-за проблем с бизнес-логикой, поэтому аудиторам нужно больше понимать, что должен делать протокол, чем им следует понимать настоящий код!

Разбивка ошибок между машинными и непроверяемыми сетями

Наличие современного набора тестов & инструментарий также позволяет аудиторам тратить меньше времени на возню с вашими инструментами и больше времени на поиск проблем. Первое, что вы и аудиторы сделаете вместе, — видеообзор вашего кода на высоком уровне.

После аудита

Actual Video of me smart contract auditing live

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

Кроме того, если вы измените свою кодовую базу, то теперь это будет неаудированный код, и его не следует продвигать, независимо от того, насколько малым может быть изменение. Если вы измените свой код, рассмотрите возможность аудита этого фрагмента кода.

И часто, в зависимости от того, сколько денег принесет ваш протокол, вам все равно следует подумать о проведении еще одного аудита!

Чем аудит не является

Один аудит не означает, что ваш код не содержит ошибок. Это путешествие по безопасности, в котором ваша команда должна повысить уровень безопасности. Независимо от того, насколько опытен аудитор или аудиторская фирма, люди с любым уровнем опыта что-то упустят. В тот печальный день, когда это случится, соберитесь со своими аудиторами по экстренному каналу связи и придумайте, как быстро исправить ситуацию.

Страхование часто является хорошей идеей даже для наиболее проверенных протоколов.

Заключительные мысли

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

И, как всегда, берегите себя!


Также опубликовано здесь.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE