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

Структура отчёта
| Раздел | Что в нём |
|---|---|
| Краткое описание | Суть проблемы в двух-трёх предложениях |
| Шаги воспроизведения | Последовательность действий, приводящая к проблеме |
| Оценка последствий | Что может потерять протокол или пользователи и в каком объёме |
| Доказательство | Код, транзакция в тестовой сети, запись экрана |
Куда отправлять
У большинства проектов есть площадка программы поиска уязвимостей или специальный адрес для таких сообщений. Публичные каналы и общие чаты для этого не подходят категорически: раскрытие уязвимости до исправления ставит под удар средства пользователей и лишает вас права на вознаграждение.
Если выделенного канала нет, пишите на официальный контакт с пометкой о характере сообщения. Детали передавайте только после подтверждения от команды.
Правила ответственного раскрытия
Стандартная практика предполагает, что вы сообщаете о проблеме, даёте команде разумный срок на исправление и публикуете детали только после устранения или по истечении согласованного периода. Нарушение этого порядка переводит исследование в другую категорию с совсем иными последствиями.
Чего делать нельзя
- Эксплуатировать уязвимость на реальных средствах для доказательства
- Публиковать детали до исправления или без согласования сроков
- Требовать вознаграждение как условие раскрытия информации
- Тестировать на основной сети, если возможна проверка в тестовой
Ко мне обращался разработчик, нашедший ошибку в контракте небольшого проекта, а он решил продемонстрировать проблему на основной сети и вывел часть средств, рассчитывая вернуть их после подтверждения. Команда расценила это как атаку, а не как исследование, и вместо вознаграждения он получил разбирательство, при этом демонстрация в тестовой сети дала бы тот же результат без последствий.
Дубликаты и приоритет подачи
Вознаграждение получает тот, кто сообщил первым, и если проблему уже нашли до вас, отчёт закроют как дубликат, и это нормальная практика, а не несправедливость. Отсюда простое правило: не откладывайте отправку ради более красивого оформления.
Черновик с рабочими шагами воспроизведения лучше вылизанного документа через неделю, а детали и предложения по исправлению дополняют отдельным сообщением в ту же заявку.
Оценка критичности
Проекты классифицируют уязвимости по тяжести, и от класса зависит размер вознаграждения, и критичные позволяют вывести средства или остановить протокол, высокие ведут к потерям при определённых условиях, средние и низкие затрагивают удобство или частные сценарии. Указывайте свою оценку, но обосновывайте её конкретными последствиями.
Сроки и ожидания
Первичный ответ обычно приходит в течение нескольких дней, рассмотрение по существу занимает недели, а крупные программы работают через посредников с формальной процедурой и предсказуемыми сроками, небольшие команды отвечают как получится. Напоминание раз в неделю уместно, ежедневные сообщения замедляют работу.
Что делать при отказе
Команда может не согласиться с вашей оценкой критичности или счесть сценарий нереалистичным, и спорить стоит фактами: уточнить, какое именно условие признано невыполнимым, и показать, как оно достигается на практике.
Если аргументы не приняты, остаётся соблюсти сроки раскрытия и сделать выводы для следующих отчётов. Публикация в обход договорённостей из мести вредит в первую очередь пользователям протокола.
Налоговая сторона вознаграждения
Полученная выплата является доходом и подлежит декларированию, при этом для российского резидента порядок зависит от формы выплаты и статуса плательщика, поэтому вопрос стоит прояснить до получения крупной суммы. Сохраняйте переписку и подтверждение операции как основание для расчёта.
Смежные темы разобраны у нас. Вот основные. Общий раздел — раздачи и активности. Шире — статьи про криптокошельки. Полезный отзыв разбирает материал как оставить полезный отзыв в сообществе, а чтение контракта — статья как читать данные смарт-контракта.
Вопросы и ответы
Что делать, если программы вознаграждений нет?
Сообщить всё равно стоит: ответственное раскрытие не зависит от наличия выплат, причём напишите на официальный контакт, опишите проблему и дайте время на исправление, и многие проекты вознаграждают исследователей и без формальной программы, хотя рассчитывать на это заранее не стоит.
Как доказать находку без эксплуатации?
Развернуть копию контракта в тестовой сети и продемонстрировать проблему там, а это стандартная практика: результат идентичен, реальные средства не затронуты, а команда получает воспроизводимый пример. Ссылку на тестовую транзакцию прикладывают к отчёту.
Можно ли сообщить анонимно?
Да, большинство программ это допускает, но для получения вознаграждения потребуются реквизиты, а иногда и верификация, при этом анонимное сообщение без выплаты принимается всегда — для проекта важна сама информация, а не личность отправителя.
Вердикт
Отчёт ценен воспроизводимостью: шаги, окружение, последствия, причём демонстрируйте находку в тестовой сети — эксплуатация на реальных средствах превращает исследование в атаку независимо от ваших намерений. Отправляйте только в выделенный канал, публичное раскрытие до исправления вредит пользователям и лишает вознаграждения. И предлагайте способ исправления: это сильно повышает вес отчёта.
Контракты и операции проверяйте напрямую. Блокчейн-обозреватель Etherscan и репозитории проектов с описанием программ раскрытия дают исходный код и правила подачи отчётов.
Обсуждение
Добавить комментарий