Правила Bug Bounty как конкурс

🖨️
текст первоначально был опубликован в журнале "Хакер"

Сегодня мы продолжим обсуждение программ Bug Bounty: на что следует обращать внимание в их условиях и что можно попробовать сделать, чтобы они стали выгоднее. Предыдущий материал был посвящен общей информации про Bug Bounty и изучению нюансов российского законодательства, которые относятся к BB по модели оферты. В этот раз мы рассмотрим вопросы, связанные с конкурсным вариантом Bug Bounty.

The Complete List of Bug Bounty Programs 2024
Many companies challenge hackers – or anyone else who wants to give it a try – to find security bugs in their systems and break in. Not only that, but they reward anyone who can

Перечень действующих программ Bug Bounty смотрите, например, здесь

Что представляет собой Bug Bounty как конкурс?

Вначале, как всегда, разберемся с терминологией. Что такое конкурс с точки зрения действующего законодательства? Смотрим статью 1057 Гражданского кодекса РФ:

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

То есть конкурс — это модель, по которой любое желающее того лицо (назовем его организатором конкурса) вправе публично пообещать выдать награду тому участнику, кто лучше других выполнит определенную работу (конкурсное задание) или достигнет определенных результатов. Организатором конкурса может быть любое дееспособное лицо — физическое или юридическое. Однако правила конкурса могут задавать дополнительные требования к участникам. Смотри пример Bug Bounty компании Badoo по модели конкурса:

Участвовать в конкурсе могут все желающие, кроме сотрудников Badoo.

И еще пример — BB «Газинформсервиса»:

Участниками конкурса могут быть только физические лица, граждане Российской Федерации.

Вот и все условия допуска желающих к участию в конкурсе. Иногда в них пишут не про граждан, а про резидентов. Пример из условий Bug Bounty компании PayQR:

Участвовать могут физлица, являющиеся резидентами РФ.

Резидент РФ — пожалуйста, можешь участвовать. Не резидент — награда тебя не ждет. Правда, для полной ясности хорошо бы разобраться, кого организаторы конкурса понимают под резидентами РФ. Речь может идти как о гражданах РФ, так и о налоговых резидентах. В части 2 статьи 207 Налогового кодекса РФ (НК РФ) есть пояснение, кто считается налоговым резидентом:

Налоговыми резидентами признаются физические лица, фактически находящиеся в Российской Федерации не менее 183 календарных дней в течение 12 следующих подряд месяцев. Период нахождения физического лица в Российской Федерации не прерывается на периоды его выезда за пределы территории Российской Федерации для краткосрочного (менее шести месяцев) лечения или обучения, а также для исполнения трудовых или иных обязанностей, связанных с выполнением работ (оказанием услуг) на морских месторождениях углеводородного сырья.

Получается, что налоговый резидент — это гражданин любого государства (равно как и лицо без какого-либо гражданства вообще), который находится на территории России не менее полугода за последний год. Более подробно про это можно почитать здесь. Юридические лица также могут быть налоговыми резидентами РФ, подробнее про это см. там же и в статье 246.2 НК РФ.

Вернемся от налогов к конкурсу. Конкурс может быть как открытым для участников, так и закрытым (пункт 3 статьи 1057 ГК РФ):

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

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

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

Приведенные выше примеры — это открытые конкурсы. Несмотря на то что сайты, на которых они опубликованы, могут не быть СМИ, это не должно ввергать в сомнения. Вполне возможно, что правила этих конкурсов доступны и на других сайтах, которые считаются СМИ (то есть имеют соответствующую лицензию Роскомнадзора).

Какую информацию должны содержать правила конкурса?

Конкурс обязательно должен иметь свои правила проведения. Нет правил — нет конкурса. В законодательстве требования к правилам конкурса изложены следующим образом (см. пункт 4 все той же статьи 1057 ГК РФ):

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

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

Возможно, кому-то это может показаться странным, но конкурс должен быть направлен на достижение каких-либо общественно полезных целей (см. пункт 2 статьи 1057 ГК РФ). Если их нет — мероприятие конкурсом признать нельзя.

Вот пример правил конкурса, которые подходят под необходимые условия (все условия читай по ссылке):

ООО «Газинформсервис» объявляет конкурс «Поиск уязвимостей в техническом решении по защищенному удаленному доступу» в целях привлечения внимания IT-сообщества и потребителей к вопросам информационной безопасности, поиску новых профессиональных решений.
Победитель получит приз в размере 100 000 рублей.
Искать уязвимости можно с 31 октября по 12 ноября 2012 (включительно), победитель будет объявлен на конференции ZeroNights.

Таким образом, перечисленные условия следует считать обязательными. Организатор должен довести их до сведения потенциальных участников, как это предусмотрено законом. Если подобных условий нет, значит, конкурс не соответствует положениям действующего законодательства и легальность его проведения — под вопросом. В то же время все остальные условия конкурса (раз они не предусмотрены законом) следует считать факультативными: они могут присутствовать или не присутствовать в правилах — на усмотрение организатора.

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

В качестве примера удачного оформления конкурсной документации могу привести положения конкурса Яндекса «Охота за ошибками». Хорошим тоном считается оформлять правила не только в виде юридического текста (порой трудного для восприятия), но и в виде более простых и понятных пояснений. У «Охоты за ошибками» такие пояснения есть, они изложены на отдельном сайте yandex.ru/bugbounty.

Можно ли менять правила конкурса?

Если вкратце, то организатор их может менять, а вот участник — нет. И даже организатор может вносить изменения только в определенном случае. За разъяснениями обратимся к статье 1058 ГК РФ:

  1. Лицо, объявившее публичный конкурс, вправе изменить его условия или отменить конкурс только в течение первой половины установленного для представления работ срока.
  2. Извещение об изменении условий или отмене конкурса должно быть сделано тем же способом, каким конкурс был объявлен.
  3. В случае изменения условий конкурса или его отмены лицо, объявившее о конкурсе, должно возместить расходы, понесенные любым лицом, которое выполнило предусмотренную в объявлении работу до того, как ему стало или должно было стать известно об изменении условий конкурса и о его отмене. Лицо, объявившее конкурс, освобождается от обязанности возмещения расходов, если докажет, что указанная работа была выполнена не в связи с конкурсом, в частности до объявления о конкурсе, либо заведомо не соответствовала условиям конкурса.
  4. Если при изменении условий конкурса или при его отмене были нарушены требования, указанные в пунктах 1 или 2 настоящей статьи, лицо, объявившее конкурс, должно выплатить награду тем, кто выполнил работу, удовлетворяющую указанным в объявлении условиям.

Как видишь, организатор может поменять правила только в первой половине срока проведения конкурса. Если на момент таких изменений участник уже успел понести какие-то расходы (например, закупил необходимое для участия ПО), то организатор будет обязан возместить их. Но сначала придется доказать, что эти расходы действительно связаны с участием в конкурсе.

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

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

Что надо знать про награду?

Награда должна быть в любом случае (на то он и конкурс). Как ты уже прочел в пункте 1 статьи 1057 ГК РФ, организатор конкурса должен сообщить, какая именно награда полагается победителям. Нередко в условиях конкурса можно встретить обещание награды в виде ценных призов и подарков. В целом это нормально, но, если организатор конкурсной Bug Bounty хочет большего доверия к себе и своему конкурсу, ему стоит быть более прозрачным и открыто сообщить, что именно будет ждать победителей. Это позволит избежать возможных споров и общественного порицания, когда участники узнают, что за трудоемкое решение задач по обнаружению уязвимостей им достанутся какие-нибудь бюджетные смартфоны.

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

Еще конкурс может быть признан несостоявшимся, если ни одному из участников не удалось достигнуть такого результата, который по правилам конкурса может быть признан успешным. Такие случаи тоже известны. Ниже приведен пример того, как никто не смог взломать шифрование Telegram, несмотря на возможность перехватывать сообщения и обещание награды в 300 тысяч долларов. Заметим, что этот конкурс проводился в соответствии с законодательством другой страны, а не российским.

Crypto Contest Ends
The current round of our contest to crack Telegram’s encryption ends with no winners. Despite the $300,000 bounty and the fact that contestants could act as the Telegram server passing info between the users (i.e. use any kinds of active attacks, manipulate traffic etc.) no one could decipher their Secret Chats by the beginning of February.

Не забудь и о том, что награда может подлежать налогообложению. Если стоимость награды или ее размер не превышает 4000 рублей, то налог выплачивать не потребуется; если конкурс проводился в связи с рекламой каких-либо товаров, работ или услуг, то налог составит 35%; в остальных случаях нужно уплатить 13%. Совсем не лишним будет уточнить у организатора, кому следует платить налог, — заплатит ли его организатор за победителя, или об этом придется заботиться самостоятельно. Подробнее об этом читай на сайте ФНС.

В случае с командными конкурсами стоит обговорить еще и то, как награда будет распределена между членами команды-победителя. Здесь следует руководствоваться пунктом 2 статьи 1059 ГК РФ:

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

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

Могу ли я публиковать информацию, полученную в ходе конкурса?

Это напрямую зависит от правил конкурса. Поскольку Bug Bounty касается уязвимостей, на устранение которых порой уходит немало времени, в правилах конкурса могут встречаться требования к участникам временно воздержаться от раскрытия обнаруженной ими информации. Такие примеры нередки — можно посмотреть программы Mail.Ru и Яндекса:

С момента сообщения об уязвимости должно пройти не менее 3 месяцев, прежде чем вы сможете опубликовать её детали. Мы просим вас об этом, потому что нам нужно иметь достаточное количество времени, чтобы ответить вам и исправить уязвимость.

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

Какие риски у Bug Bounty как конкурса?

Думаю, ты уже понял, что в отличие от модели с офертой участник конкурса не может просто так взять и заслать организатору свой вариант правил. Ты можешь попытаться, но это будет лишь пожеланием, которое организатор может (но не обязан) принять во внимание.

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

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

Не стоит забывать и о налогах. Если тебе удалось выиграть в конкурсе, выясни у организатора, облагается ли приз налогом, какого он размера и надо ли будет тебе выплачивать его самостоятельно. Иначе есть риск после победы получить не только приз, но и через какое-то время уведомление от налоговой о штрафе.

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

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