Перейти к содержимому

Аудит смарт-контракта: ручной разбор логики, тесты и отчёт с исправлениями

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

от 39 900 ₽

стоимость пакетов

2–3 недели

срок типового проекта

3

отраслевых модуля в калькуляторе

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

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

Наша проверка — внутренний аудит студии, полезный перед запуском небольшого проекта или как подготовка к внешнему аудиту. Если в контракте будут храниться значительные средства пользователей, рекомендуем дополнительно независимую аудиторскую команду; через партнёров организуем и это. Ни одна проверка не доказывает отсутствие уязвимостей, поэтому в отчёте отдельно описываем, какие меры ограничат ущерб.

Кто что делает во время аудита

Заказчик

Замораживает коммит, даёт описание механики и отвечает на вопросы о задуманном поведении.

Ведущий аудитор

Строит модель угроз, разбирает логику вручную и отвечает за итоговые формулировки отчёта.

Второй инженер

Независимо проходит критичные функции и пишет инвариантные тесты, чтобы не опираться на одну точку зрения.

Разработчики заказчика

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

Классы ошибок и защитные приёмы

Описываем концептуально: что проверяем и как это закрывается в коде.

КлассВ чём сутьКак защищаются
Повторный входВнешний вызов происходит до обновления состоянияПорядок «проверки — изменения — взаимодействия», защита ReentrancyGuard
Права доступаАдминистративная функция доступна не тому адресуЯвные роли, мультиподпись, тесты вызовов без прав
Манипуляция оракуломЦена берётся из источника, который легко сдвинуть одной сделкойУсреднённые цены, несколько источников, проверка свежести
Повтор подписиОдна подпись принимается несколько раз или в другой сетиСчётчик nonce, идентификатор сети и домен EIP-712
Нестандартные токеныТокен с комиссией или без возвращаемого значения ломает учётSafeERC20, сверка фактически полученной суммы

Калькулятор

Аудит смарт-контракта — расчёт стоимости

Отраслевые модули уже отмечены. Уберите лишнее или добавьте нужное — сумма в счёте будет та же, что в смете.

1

Выберите пакет

2

Добавьте нужное

+ 17 900 ₽
+ 24 900 ₽
+ 7 900 ₽
+ 144 900 ₽
+ 29 900 ₽
+ 12 900 ₽
+ 9 900 ₽/мес
+ 74 900 ₽
от 14 900 ₽ за сеть
+ 24 900 ₽
3

Ваша смета

  • Пакет «Спутник»39 900 ₽
  • Повторная проверка исправлений17 900 ₽

Стоимость работ

57 800 ₽

Срок: 2–3 недели

Счёт сейчас: 28 900 ₽ — предоплата 50%, остаток после приёмки

Без регистрации. Счёт и анкета придут на почту сразу. Гарантия 3 месяца после запуска.

Что передать до начала проверки

Чем полнее пакет, тем больше времени уходит на поиск ошибок, а не на выяснение замысла.

  • Ссылку на репозиторий и номер коммита.
  • Описание механики и ролей.
  • Существующие тесты и инструкции по запуску.
  • Список внешних контрактов и оракулов.
  • Известные компромиссы, которые вы сознательно приняли.
  • Сеть и планируемую дату развёртывания.

Процесс

Порядок работ

  1. 1

    Спецификация

    Описываем механику, роли, лимиты и то, что запрещено менять после запуска.

  2. 2

    Архитектура

    Сеть, стандарты, схема обновления, кто держит ключи администратора.

  3. 3

    Код и тесты

    Контракты на проверенных библиотеках, тесты граничных случаев и инвариантов.

  4. 4

    Тестовая сеть

    Вы проверяете сценарии своими кошельками до выхода в основную сеть.

  5. 5

    Запуск

    Деплой, верификация исходников, передача прав на мультиподпись.

  6. 6

    Сопровождение

    Мониторинг, разбор обращений пользователей, обновления по процедуре.

Вопросы и ответы

Вопросы об аудите смарт-контрактов

После аудита контракт точно безопасен?

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

Чем ваш аудит отличается от внешнего?

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

Проверяете чужие развёрнутые контракты?

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

Что будет в отчёте?

Объём проверки с указанием коммита, описание каждой находки с уровнем риска, местом в коде, последствиями и рекомендацией, а также раздел о том, что проверено не было. После исправлений обновляем статус: исправлено, частично исправлено или принято заказчиком как известный риск.

Источники и проверка сведений

Помощник по заказуЦены, сроки, оплата, договор — отвечает сразу

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