Отчёт отвечает только за свой scope
- Название проекта не задаёт scope: ищите точный commit, файлы, компоненты и exclusions.
- Resolved или fixed относится к описанному исправлению и review-процедуре отчёта, а не ко всем будущим версиям.
- Нулевое число Critical не означает нулевой риск: важны методология, открытые findings, архитектурные допущения и совпадение deployment.
Scope определяет, что именно проверяли
Scope — граница работы аудитора: repository, commit hash, директории или контракты, период проверки и явно исключённые части. Отчёт одного смарт-контракта не переносится автоматически на frontend, oracle, bridge, governance, deployment scripts и более новый commit. Даже соседний файл могли просмотреть только для контекста, но не включить в security assessment.
| Поле | Что выписать | Стоп-сигнал |
|---|---|---|
| Report | Аудитор, дата, версия документа | Файл без издателя или неизменяемой ссылки |
| Scope | Repository, commit, файлы, exclusions | Только название проекта |
| Method | Ручная проверка, тесты, допущения, severity model | Маркетинговое слово audited без метода |
| Findings | ID, severity, impact, status, response | Скрыт полный список или нет статусов |
| Fix review | PR/commit и что аудитор перепроверил | Resolved только со слов проекта |
| Deployment | Chain, address, bytecode, implementation | Нельзя связать onchain code с reviewed commit |
- Поле
- Report
- Что выписать
- Аудитор, дата, версия документа
- Стоп-сигнал
- Файл без издателя или неизменяемой ссылки
- Поле
- Scope
- Что выписать
- Repository, commit, файлы, exclusions
- Стоп-сигнал
- Только название проекта
- Поле
- Method
- Что выписать
- Ручная проверка, тесты, допущения, severity model
- Стоп-сигнал
- Маркетинговое слово audited без метода
- Поле
- Findings
- Что выписать
- ID, severity, impact, status, response
- Стоп-сигнал
- Скрыт полный список или нет статусов
- Поле
- Fix review
- Что выписать
- PR/commit и что аудитор перепроверил
- Стоп-сигнал
- Resolved только со слов проекта
- Поле
- Deployment
- Что выписать
- Chain, address, bytecode, implementation
- Стоп-сигнал
- Нельзя связать onchain code с reviewed commit
Severity описывает модель отчёта, status — судьбу конкретного finding
Как прочитать один finding
- ID и заголовок: стабильная ссылка внутри отчёта;
- условия: какие роли, state и последовательность нужны;
- impact и likelihood: как аудитор получил severity;
- recommendation: предложенная мера, а не единственный допустимый fix;
- response: согласился ли проект и что изменил;
- status: open, acknowledged, resolved или другой термин именно этого отчёта;
- fix evidence: commit/PR и границы повторной проверки.
Severity нельзя механически сравнивать между фирмами: матрицы likelihood/impact и названия уровней различаются. Informational не означает бесполезный — там бывают privileged roles, centralization assumptions и эксплуатационные ограничения. Acknowledged обычно означает принятие риска без полного исправления, но точное значение следует брать из легенды конкретного report.
| Статус | Осторожный вывод | Чего не утверждать |
|---|---|---|
| Open | Описанная проблема остаётся без принятого fix | Что exploit уже произошёл |
| Acknowledged | Команда знает и сохранила риск/компромисс | Что риск устранён |
| Resolved/Fixed | Указанное изменение прошло заявленный review | Что любая deployment использует этот fix |
| Partially resolved | Часть условия изменена, остаточный риск указан отдельно | Что finding можно вычеркнуть |
| Not applicable | Контекст или design изменился по объяснению отчёта | Что исходный анализ был ошибочным |
- Статус
- Open
- Осторожный вывод
- Описанная проблема остаётся без принятого fix
- Чего не утверждать
- Что exploit уже произошёл
- Статус
- Acknowledged
- Осторожный вывод
- Команда знает и сохранила риск/компромисс
- Чего не утверждать
- Что риск устранён
- Статус
- Resolved/Fixed
- Осторожный вывод
- Указанное изменение прошло заявленный review
- Чего не утверждать
- Что любая deployment использует этот fix
- Статус
- Partially resolved
- Осторожный вывод
- Часть условия изменена, остаточный риск указан отдельно
- Чего не утверждать
- Что finding можно вычеркнуть
- Статус
- Not applicable
- Осторожный вывод
- Контекст или design изменился по объяснению отчёта
- Чего не утверждать
- Что исходный анализ был ошибочным
Reviewed commit нужно дотянуть до onchain bytecode
Source code verification отвечает на узкий вопрос: компилируется ли опубликованный source в bytecode, связанный с contract address. Она не доказывает корректность логики. Сопоставьте audit commit с verified source, compiler settings и deployed bytecode. Если используется прокси-контракт, отдельно найдите текущий implementation и upgrade authority на выбранном block: аудит старой реализации не покрывает новый target.
Путь от PDF до проверяемого deployment
- 1Зафиксировать документ
Сохраните URL, автора, дату, версию и полный scope, а не только badge на сайте проекта.
- 2Проверить commit
Откройте repository и убедитесь, что hash существует, а нужные contracts входят в scope.
- 3Собрать findings
Выпишите High/Critical и важные Medium, privileged-role notes и все open/acknowledged статусы.
- 4Проверить fixes
Сопоставьте каждый claimed fix с PR/commit и формулировкой fix review аудитора.
- 5Связать с сетью
Установите chain, production address, verified bytecode и proxy implementation на текущем block.
Решение строится по остаточным рискам, а не по числу логотипов
| Наблюдение | Решение | Что запросить |
|---|---|---|
| Scope и deployment совпадают, material findings закрыты | Продолжить собственную оценку ролей и операции | Актуальный block/address и параметры подписи |
| Есть open High/Critical | Остановиться до объяснения и mitigation | План исправления, ограничение exposure, новый review |
| Commit новее audited version | Считать diff непроверенным | Diff audit либо независимый анализ изменений |
| Proxy target сменился | Старый report не описывает текущую логику полностью | Новый implementation, upgrade event и audit scope |
| Отчёт недоступен, есть только badge | Не учитывать badge как evidence | Полный report с publisher и scope |
- Наблюдение
- Scope и deployment совпадают, material findings закрыты
- Решение
- Продолжить собственную оценку ролей и операции
- Что запросить
- Актуальный block/address и параметры подписи
- Наблюдение
- Есть open High/Critical
- Решение
- Остановиться до объяснения и mitigation
- Что запросить
- План исправления, ограничение exposure, новый review
- Наблюдение
- Commit новее audited version
- Решение
- Считать diff непроверенным
- Что запросить
- Diff audit либо независимый анализ изменений
- Наблюдение
- Proxy target сменился
- Решение
- Старый report не описывает текущую логику полностью
- Что запросить
- Новый implementation, upgrade event и audit scope
- Наблюдение
- Отчёт недоступен, есть только badge
- Решение
- Не учитывать badge как evidence
- Что запросить
- Полный report с publisher и scope
Перед операцией отдельно проверьте, что подписывает кошелёк: audited code не исправляет подменённый frontend, неверный chain или опасный approval. Если после инцидента проект ссылается на аудит, сохраните transaction hashes, addresses, implementation, report version и статус findings. Аудитор не становится службой возврата средств; recovery начинается с остановки новых подписей и точной фиксации расхождения между scope, fix и deployment.
Источники
Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.
- OpenZeppelin — What is a Smart Contract Audit OpenZeppelin · Проверено 20 августа 2026 г. в 09:21 GMT+5
- OpenZeppelin — Panoptic Audit OpenZeppelin · Проверено 20 августа 2026 г. в 09:21 GMT+5
- OpenZeppelin — Primitive Audit OpenZeppelin · Проверено 20 августа 2026 г. в 09:21 GMT+5
- Ethereum Foundation — Pectra System Contracts Bytecode Audit Ethereum Foundation / Sigma Prime · Проверено 20 августа 2026 г. в 09:21 GMT+5
- ethereum.org — Verifying smart contracts Ethereum Foundation community documentation · Проверено 20 августа 2026 г. в 09:21 GMT+5
