Остаточный риск по отчёту об аудите смарт-контракта считают не по числу находок, а по разделу методологии. Он отвечает на вопрос, какими приёмами работали: автоматические проверки, ручной обзор, фаззинг, формальная верификация. У каждого приёма свои слепые зоны, и они складываются с тем, что осталось за границами проверки, и с находками, которые решили не исправлять. Сумма этих трёх частей и есть ваш риск. Считать её придётся самому.
Как выглядит схема со стороны жертвы
Ожидание у читателя одно, и оно неверное. Человек считает, что аудит проверяет контракт целиком и даёт ответ «да» или «нет». Отчёт же устроен иначе: он описывает проделанную работу и её пределы. Пределы написаны в начале и в конце документа. Читают обычно середину.
Второй сюжет — несовпадение приёма и ожидания. Проект заказал автоматическую проверку на типовые ошибки, а пользователь прочитал слово «аудит» и решил, что логика выплат разобрана человеком. Между этими двумя работами разница в недели труда. И в классах находок.
Третий сюжет — зависимость, оставленная вне периметра. Контракт проверен, а источник цены, мост или управляющая роль в границы работ не входили. Потеря приходит оттуда. В отчёте о ней есть одна строка: «вне предмета проверки». В обращениях читателей именно эта строка оказывается самой дорогой.
Признаки, по которым распознаётся подмена
Смотрите на уровень работ. Отраслевой ориентир задан спецификацией EEA EthTrust Security Levels, третья версия которой опубликована в марте 2025 года: уровень [S] означает автоматические проверки базовой безопасности кода, уровень [M] — ручной аудит набора контрактов, уровень [Q] — разбор заявленной логики вместе с документацией на внутреннюю согласованность.
Второй признак — честность о пределах проверки. Хороший отчёт перечисляет, что не проверялось. И не стесняется этого. Отчёт, где раздел ограничений отсутствует, оценить по остаточному риску нельзя: неизвестно даже, где кончается проверка.
| Приём проверки | Что находит хорошо | Чего не находит по своей природе | Как это отражается на остаточном риске |
|---|---|---|---|
| Автоматические проверки инструментами анализа | Типовые ошибки кода: переполнения, небезопасные вызовы, устаревшие конструкции | Нарушения замысла: правильный код, реализующий неверное правило выплаты | Риск экономической логики остаётся полностью на пользователе |
| Ручной обзор кода аудитором | Расхождения логики и документации, ошибки в правах и последовательностях вызовов | Редкие состояния, возникающие при нетипичных комбинациях входных данных | Риск сохраняется в сценариях, которые человек не представил при чтении |
| Фаззинг и проверка инвариантов | Состояния, нарушающие заданные свойства системы при случайных входных данных | Нарушения свойств, которые в набор инвариантов не включили | Риск равен полноте списка инвариантов, а список составляют люди |
| Формальная верификация | Математическое доказательство соответствия кода заданной спецификации | Ошибки в самой спецификации: доказано то, что сформулировано, а не то, что задумано | Риск переносится с кода на постановку задачи и на границы модели |
Третий признак — покрытие тестами кода. Доля покрытия в отчёте полезна как ориентир, но ключевое — какие именно пути остались непокрытыми. Непокрытая ветвь аварийного вывода средств опаснее десяти непокрытых вспомогательных функций.
Проверка за 60 секунд: что открыть и на что смотреть
- Откройте раздел методологии и выпишите применённые приёмы. Их перечень определяет слепые зоны по таблице выше.
- Найдите раздел ограничений и допущений. Выпишите каждую фразу о том, что не проверялось.
- Соберите список внешних зависимостей: источник цены, мост, управляющие роли, сторонние контракты.
- Сопоставьте перечень зависимостей с границами проверки. Всё, что не попало внутрь, идёт в остаточный риск.
- Переведите итог в сумму. Запишите предельную долю капитала для этого контракта и срок пересмотра решения.

Перевод риска в сумму пропускают чаще всего. Схему расчёта по доле капитала и срокам разбирает материал о том, как проследить движение украденных средств и оценить остаточный риск: арифметика там та же, меняется только источник угрозы.
Пошаговые действия, если деньги уже ушли
После контрактной потери порядок отличается от действий при краже ключа. Ключ при вас. Подпись была вашей, механика сработала по правилам кода.
- Зафиксируйте идентификатор своей операции, адрес контракта, номер блока и время в UTC.
- Сохраните копию отчёта об аудите, страницу проекта и описание условий продукта. Сайты редактируют в первые часы.
- Выпишите, какая именно часть остаточного риска сработала: вне периметра, слепая зона метода или неустранённая находка.
- Отзовите выданные контракту разрешения на расход токенов. Дальнейший расход закрывается, уже списанное — нет.
- Подайте заявление в орган внутренних дел. По статье 144 Уголовно-процессуального кодекса решение принимается в срок до трёх суток, с продлением до десяти, а при документальных проверках — до тридцати суток.
Если инциденту предшествовал перевод с карты, сообщите банку: признаки операции без добровольного согласия клиента перечислены в аналитических материалах Банка России и закреплены приказом регулятора от 5 ноября 2025 года № ОД-2506.
Как закрыть дыру, чтобы не повторилось
Первое — предельная доля капитала. На один контракт. Цифра записывается до знакомства с доходностью и не пересматривается в день входа.
Второе — перечень зависимостей как часть решения. Если контракт опирается на внешний источник цены, вопрос «а что при сбое источника» задают до перевода, а не после. Ответ ищут в отчёте. Его отсутствие — тоже ответ.
Третье — раздельные адреса под взаимодействие и под хранение, чтобы чужая слепая зона не достала до резерва; подход описан в разборе о том, как выделить отдельное устройство под криптооперации и настроить уведомления. Четвёртое — дисциплина подписи: объём выдаваемых прав важнее названия контракта, и как распознать вредоносную подпись транзакции стоит знать до первой операции. Пятое — привычка сверять адрес получателя вручную: как распознать отравление истории адресов остаётся актуальным и для контрактных операций.
Чек-лист
- Раздел методологии прочитан, применённые приёмы выписаны
- Объявленный уровень работ сопоставлен с отраслевыми уровнями безопасности
- Раздел ограничений и допущений найден и разобран построчно
- Список внешних зависимостей составлен: цена, мосты, роли, сторонние контракты
- Зависимости вне границ проверки отнесены к остаточному риску
- Непокрытые тестами пути оценены по значимости, а не по количеству
- Предельная доля капитала на контракт записана до входа
- Срок пересмотра решения назначен и внесён в календарь
Материалы по теме:
- Как проследить движение украденных средств и оценить остаточный риск — арифметика доли капитала и сроков
- Как выделить отдельное устройство под криптооперации и настроить уведомления — разделение взаимодействия и хранения
- Как распознать вредоносную подпись транзакции — объём прав, который вы отдаёте контракту
- Как распознать отравление истории адресов и подготовиться к худшему сценарию — сверка получателя перед операцией
Частые вопросы
Формальная верификация снимает остаточный риск?
Она закрывает один слой и открывает другой. Доказательство подтверждает, что код соответствует написанной спецификации, но не проверяет, верна ли сама спецификация. Если в постановке задачи заложено неверное правило выплаты, доказательство будет корректным, а поведение системы — нежелательным для пользователя.
Как понять, что аудит был автоматическим?
По разделу методологии и по срокам работ. Автоматические проверки занимают часы и дают находки типовых классов: небезопасные вызовы, устаревшие конструкции, отсутствующие проверки входных данных. Ручной обзор и разбор логики занимают недели и приносят находки о правах, последовательностях вызовов и расхождениях с документацией.
Что делать с зависимостью от внешнего источника цены?
Выяснить, что происходит при его сбое или манипуляции. Отчёт либо описывает поведение контракта в этом случае, либо прямо выносит источник за границы проверки. Второй вариант означает, что риск целиком ваш, и разумный ответ — сократить долю капитала и назначить срок пересмотра решения.
Сколько капитала допустимо держать в одном контракте?
Универсального числа нет, и предел каждый задаёт сам. Рабочий подход — исходить из того, что контракт может перестать работать целиком, и выбирать долю, потеря которой не меняет ваших планов. Главное требование к этой цифре одно: она записана до знакомства с обещанной доходностью.
Вердикт
Остаточный риск живёт в двух разделах, которые читают реже всего: методология и ограничения. Первый говорит, какие классы ошибок были доступны выбранным приёмам; второй — что в проверку не входило вовсе. Сложите это с находками без исправления, и получите честную картину, по которой уже считают сумму. Отчёт безопасности не обещает. Он сообщает, что известно, и этого достаточно для расчёта.
Разборы методологий аудита и свежие инциденты публикуем в нашем Telegram-канале.
Обсуждение
Добавить комментарий