Как мы превратили белое хакерство в онлайн-игру: теперь багхантеров не вытащить с работы
Привет! Меня зовут Илья Белов, и я основатель компании Abistep. Мы разрабатываем игры и игровые механики для различных продуктов. В своей практике часто сталкиваемся с тем, что деньги — это лишь одна из мотиваций в работе и ее может быть недостаточно. Тогда мы вводим игровую механику и у сотрудников появляется азарт и стремление быть лучшим! В статье я описал концепт, который мы предложили для сервиса хакеров.
Кто стал нашим полем для экспериментов
Нашим клиентом стала платформа Standoff-365 от компании «Positive Technologies», площадка «белых хакеров», которые ищут уязвимости в системах, продуктах и приложениях. Для этого партнеры Standoff-365 формируют заказ, белые хакеры находят баги и пишут отчеты, за которые им выплачивается вознаграждение.
Платформа уже имела игровой ориентир. Когда мы приступили к работе, история была такой:
«Багхантеры» — охотники за багами, зарегистрированные пользователи платформы. «Багбаунти» — заказ, который дают багхантерам партнеры Standoff-365. За успешно сданный багбаунти багхантер получает материальное вознаграждение.
Standoff-365 работает с такими гигантами, как Ozon, Wildberries, VK, Одноклассники, Т-Банк. Работа эта очень ответственна, поскольку такие ресурсы уже умеют прекрасно защищаться. Найти уязвимости у них непросто, однако и баги тут стоят очень дорого, поскольку пользователей много. Для Standoff-365 работа с такими партнерами — вопрос репутации и чести.
Кроме того, Standoff-365 — представляет собой удобную площадку для общения белых хакеров, повышающая их компетентность. Белое хакерство — сложная область. Многие из тех, кто обратился в белые хакеры, еще вчера были совсем не белыми. Можно сказать, что Standoff-365 кует полезных специалистов из тех, кто мог бы вредить системам безопасности, но решил пойти по светлому пути и, наоборот, помогать строить крепкие заслоны от вредителей. Тут есть онлайн-полигон, где можно отточить свои хакерские навыки, проводятся кибербитвы для выявления сильнейших. Есть и оффлайн-тусовки, на которых белые хакеры могут пообщаться в среде единомышленников, нарастить знания и, опять же, поиграть. Например, проводятся офлайн-киберобучения, где хакеры ломают системы защиты виртуальных государств.
В общем, это масштабное сообщество, которое насчитывает тысячи пользователей и которое постоянно развивается.
Какие задачи перед нами стояли
Казалось бы, элемент игры у Standoff-365 заложен уже изначально: багхантер ищет баги, наиболее успешные багхантеры получают лучшие заказы и деньги. Есть яркий соревновательный элемент, цели для роста рейтинга, достижения, награда.
Однако надо иметь в виду: игра без четких правил может превратиться в невнятную конкуренцию, где будет много читерства и мало продуктива. Именно с этой проблемой столкнулась платформа Standoff-365: участники активно конкурировали друг с другом за рейтинг и денежные заказы, но для этого часто сдавали невалидные отчеты. Тогда было решено геймифицировать сервис.
Главные проблемы площадки: некачественные отчеты о багах, спам, неактивность пользователей.
Какие задачи планировалось решить геймификацией:
отсортировать пользователей — выделить активных и убрать в тень неактивных;
подчеркнуть компетентность багхантеров и их опыт;
снизить число невалидных отчетов, повысить качество;
убрать спам;
простимулировать багхантеров к активности на платформе;
привлечь новых пользователей и дать им удобный старт.
Для этого нами было создано игровое наполнение, которое позволило четко обозначить требования к багхантерам, оценить их квалификацию и работу. Ну и, конечно, простимулировать пользователей улучшать свои навыки и вести себя корректно на платформе.
Что мы сделали? Рассказываем подробно.
1. Разработали систему рейтинга
Система рейтинга показывает успешность багхантера. Было решено начислять баллы не только за сданные отчеты, но и поощрить различные достижения при работе с платформой, активность в сообществах и событиях Standoff-365. Для этого мы создали «систему глобального ускорения», в которой активный и эффективный багхантер может быстрее подняться в рейтинге. Такая активность будет давать бонусы к баллам, полученным за отчет. При этом, баллы можно потерять, если сдавать невалидные отчеты или долгое время не проявлять активность.
Отчеты — основной метод увеличения рейтинга. Активность на платформе сама по себе не будет повышать рейтинг. Данный подход позволяет поощрять именно работу с багбаунти и пользователь не забывает, для чего он пришел на площадку.
Остается проблема, что нередко такие отчеты невалидны, и партнеры Standoff-365 впустую тратят время и ресурсы на их проверку. Большое количество невалидных отчетов негативно влияет на клиентский опыт компаний-партнеров. Поэтому, с одной стороны, было важно ввести действенное наказание за невалидный отчет, с другой — не отпугнуть пользователей. Иногда невалидные отчеты создаются новичками и даже у опытных багхантеров бывают ситуации, когда отчет не принят.
Было решено начислять за валидный отчет баллы к рейтингу, умноженные на коэффициент выявленной угрозы.
Валидным считается отчет, который содержит полезную информацию о баге, даже если эту информацию уже прислал другой пользователь. Невалидным — отчет, который содержит ошибочную информацию.
Для маркировки важности отчета выделено 6 уровней опасности
- отсутствует (0,2);
- низкий (1);
- средний (2);
- высокий (6);
- критический (12);
- недопустимое событие (18).
Чем выше выявленный уровень уязвимости, тем больше баллов к рейтингу получает багхантер. Такое начисление позволяет простимулировать пользователей искать наиболее серьезные баги, поскольку для компаний, которые обращаются к платформе, именно они представляют угрозу.
За невалидный отчет очки рейтинга снимаются. За спам и заведомо сфабрикованные отчеты пользователи получают страйки или бан.
Глобальное ускорение. Это возможность получить бонусные баллы рейтинга за достижения и активность, которые добавляются к баллам за отчет. Пример достижения, за которое багхантер поощряется бонусом: «5 сданных валидных отчетов подряд». В этом случае на шестой отчет будет добавлен бонус.
Глобальное ускорение позволяет быстро подняться активным и компетентным новичкам. При этом не позволяет подниматься в рейтинге багхантерам, которые, несмотря на активность, сдают невалидные отчеты.
Система качества отчетов. Чтобы дополнительно простимулировать пользователей быть внимательнее и ответственнее, мы добавили систему качества отчетов.
Оценки качества отмечаются в лидербордах и делятся на четыре категории, которые мы выделили цветом:
Серый — 0
Красный — 5
Желтый — 6
Зеленый — 8
Чтобы цвет был зеленым, оценка должна быть не ниже 8.
Вот как это выглядит на лидерборде:
Такая система пенализирует недобросовестных исполнителей. В то же время, дело можно поправить, если сдавать качественные отчеты.
2. Добавили ранги
Ранги — это один из главных элементов геймификации. Если пользователи ценят свои ранги, игровая система работает эффективно. У рангов есть несколько достоинств:
Они наглядны: в профиле, в сообществах, в таблицах лидеров. К высокоранговым пользователям прислушиваются, поскольку они уже доказали свой уровень. Новичку же удобнее получать поддержку и несложные заказы, имея более низкий ранг, который он будет постепенно прокачивать.
Ранги показывают реальную активность пользователя на сегодняшний день. Например, если багхантер является продвинутым профи с опытом на площадке и качественными отчетами, но уже год не активен, ранг понижается.
Эффектные ранги являются мощным стимулом. Это своего рода цифровая одежда, которую игрок надевает на себя. В мире онлайн-игр люди тратят сотни и даже тысячи долларов, чтобы «одеться в лучшее». В Standoff-365 пользователи, как мы надеемся, тоже будут прилагать массу усилий, чтобы выделиться рангом, сдавая отчеты и участвуя на платформе.
На Standoff-365 рангов не было, был только рейтинг. Поэтому наша задача была разработать систему и назначить ранги багхантерам исходя из результатов их деятельности.
Для той работы, которую делают белые хакеры на платформе, ранг будет иметь первостепенное значение. С введением рангов партнеры Standoff-365 получают возможность делегировать наиболее сложные задачи багхантерам высокого ранга. Для сферы белого хакерства такие ранги — фактически единственный критерий, потому что исполнитель в данной услуге не может предъявить «диплом хакера», чтобы показать, что он профессионал.
Система рангов, которую мы разработали:
- Common User
- Noob Hacker
- Script Kiddie
- Curious
- Hacker
- Cyber Ninja
- Elite Hacker
- Supreme
Движение по шкале рангов достаточно затратное. Например, от первого уровня до Supreme можно подняться за 7 месяцев при самом оптимистичном сценарии: для этого надо сдавать 100% одобряемые отчеты раз в три недели с обнаруженными угрозами критического уровня. Такая трудность не позволит рангам быстро девальвироваться и сохранит топ-верхушку самых продвинутых багхантеров.
Для оформления ранга мы использовали фирменный знак Standoff-365, взяв за основу зеркальную букву F, которую достроили до контуров Ethernet-разъема. Это будет подчеркивать сетевой характер работы белых хакеров и стилистически связывает с платформой.
Полная линейка:
3. Проработали балансирование системы
Хотя на платформе тысячи багхантеров, немногие из них действительно продуктивны.
Чтобы выделить активных юзеров и обеспечить им «социальный лифт», требовалось сделать так, чтобы неактивные багхантеры понижались на шкале, освобождая место тем, кто действует. Для этого мы позаботились о балансировании системы.
За каждый период, условно 2 месяца, багхантер теряет % своих очков при неактивности. Чем выше ранг — тем больше потеря. При этом важно и не напугать пользователей: потеря ранга при неактивности может восприниматься как «наказание ни за что». Поэтому мы сделали так, чтобы количество потерянных очков не превышало необходимого для сохранения текущего ранга. Правда, если и в следующий период пользователь ничего не предпримет, потеря ранга все же произойдет.
4. Ввели штрафы, страйки и баны
Чтобы снизить количество невалидных отчетов и наказать прямые нарушения, мы разработали систему штрафов и страйков.
Штрафы начисляются:
- за отправку невалидного отчета;
- за несоблюдение NDA;
- за нарушение правил сообщества и сайта;
- за ущерб, нанесенный компании-партнеру Standoff-365.
Страйки получают за грубые нарушения. У каждого пользователя есть «3 жизни» на платформе Standoff-365. Если пользователь получает страйк, одна жизнь сгорает. Если сгорят все, юзер получит бан.
5. Сформировали таблицу лидеров
Лидерборд — таблица лидеров, предназначенная для багхантеров, которым нравится соревноваться. А еще это очень удобный инструмент для партнеров Standoff-365, который дает исчерпывающую информацию о деятельности багхантера.
Лидерборд включает:
- никнейм;
- место в лидерборде;
- ранг банхантера;
- звание;
- сданные отчеты;
- оценку отчетов.
Мы сделали три лидерборда:
- глобальный: доступен всем пользователям;
- персональный: доступный только самому юзеру;
- турнирный: функционирует для турниров и других мероприятий.
6. Добавили достижения
Достижения — это особые награды, состоящие из картинки, заголовка и текста, которые приходят пользователю за какие-то позитивные действия.
Главное поощряемое действие на Standoff-365 — это отчет. Однако на него уходит много времени, порой больше месяца. Поэтому важно, чтобы пользователи получали другие подкрепления — это поднимает мотивацию и стимулирует к дальнейшей активности.
Кроме того, с помощью моментальных поощрений можно:
- обучать пользователя работать с платформой;
- подсказывать верные действия;
- побуждать возвращаться;
- задавать общий тон профи сообщества и уровень ожидания;
- создавать новичкам «дорожную карту» для движения в рейтинге;
- актуализировать какие-то задачи: например, если много невалидных отчетов, ввести достижение «5 валидных отчетов подряд», «10 отчетов» и так далее.
Для Standoff-365 мы разработали систему достижений, которые нацелены на разные группы задач:
1. Базовые достижения
Знакомят пользователя с функционалом платформы.
Например: пройти регистрацию — достижение «Вход в матрицу»; отправить первый отчет — достижение «Первый пошел».
За базовые достижения не даются бонусные баллы, но они приятны пользователям и подсказывают, что нужно делать.
2. Продвинутые достижения
Нацелены на повышение активности у продвинутых пользователей.
Например: вступил в команду по киберполигону — достижение «Часть команды — часть коробля»; получил коммьюнити-бонус — достижение «Они зовут тебя… Сенсей»; получил коммьюнити-бонус три раза подряд — достижение «Учитель».
За продвинутые достижения начисляются бонусные баллы, которые потом можно использовать при начислении награды за отчет.
3. Экспертные достижения
Достижения для тех, кто хочет продемонстрировать вершины своего мастерства.
Например: найдено недопустимое событие — достижение «Мастер разоблачений»; найдено 5 уязвимостей критического уровня — достижение «Агент Смит 2»; найдено 10 уязвимостей критического уровня — достижение «Агент Смит 3».
За экспертные достижения пользователи получают более высокий бонус к своему рейтингу, чем в продвинутом достижении.
4. Достижения для улучшения качества отчетов
Невалидные отчеты, дубликаты и спам — одна из главных проблем партнеров, размещающих бигбаунти на Standoff-365. Достижения этой категории призваны решать проблему не только методами наказаний, но и дополнительным поощрением за валидные отчеты.
Примеры: отправил подряд 5 отчетов и их приняли — достижение «Стремительный старт»; получил рейтинг качества отчетов больше 8 — достижение «Ни шагу назад»; приняты отчеты для 10 разных компаний — достижение «Широкий охват».
За данную категорию достижений багхантер получает больше бонусов, чем за экспертные.
5. Уникальные достижения
Достижения за особые действия дают большие бонусы к отчетам и специальные бейджи, которые добавляются в профиль пользователя.
6. Звания
Звания — это титулы багхантера, который можно получить за некоторые достижения и разместить для отображения в профиле и в лидербордах.
Например, за достижение «Часть команды — часть корабля», багхантер получает звание «Командный игрок», за достижение «Они зовут тебя… Сенсей» — звание «Сенсей» и т.д.
7. Сделали перерасчет рейтинга
На Standoff-365 уже была система рейтинга, мы не стали ее удалять, а сделали перерасчет по новой формуле. Ее же мы применили для формирования рангов. Для этого мы взяли сведения о сданных отчетах за весь период и применили формулу награды, умножив каждый отчет на коэффициент уровня выявленной угрозы.
Пересчет по новой формуле:
R = (nones*0,2 + lows*1 + meds*2 + highs*6 + crits *12) * BaseBugCost
Где R — новый рейтинг БагХантера.
Что касается рангов, то мы постарались распределить их так, чтобы высшие уровни оставались пока недоступными: для их получения пользователям придется усердно поработать.
Изначально мы пытались распределить ранги так, чтобы самые продвинутые багхантеры оказались в ранге Supreme. Однако результат не показался нам эффективным и даже наглядным. И это неудивительно, поскольку никто из багхантеров еще не пытался получить самый высокий ранг. И если так оставить, то пользователям топа будет просто нечего достигать, это сразу уменьшает ценность ранга.
Поэтому мы применили метод сжатия диапазона рейтинга. В результате наверху у нас оказались не Supreme, а Cyber Ninja. Теперь, чтобы получить ранг Elite или Supreme, багхантерам придется потрудиться. И картинка сразу стала наглядней!
Первый график — распределение вплоть до Supreme:
В первом варианте большинство пользователей оказались нубами, что демотивирует. Середнячки играют важную функцию, выполняя несложные заказы и оттачивая навыки для продвижения. Это будущая база для платформы.
Второй график — после сжатия диапазона рейтинга:
Теперь середнячки у нас в Curious и Script Kiddie, что гораздо лучше соответствует действительности. В то же время увеличилось количество Hacker и Cyber Ninja — это багхантеры, которым можно делегировать сложные задачи.
Результат
В результате геймификации платформа Standoff-365 получила концепт, который позволяет решить главные задачи.
- Обозначение рейтинга. Показывают компетентность, активность и эффективность каждого багхантера. Мотивируют пользователей внимательно относиться к качеству работы и репутации.
- Предупреждения. Невалидный отчет — это плохо. Сбалансированная система штрафов и поощрений убирает поведение в стиле «Ну, не получилось в этот раз, попробую снова».
- Требование качества. Благодаря оценке качества, которая видна в лидербордах и профилях, багхантеры вынуждены придерживаться высоких стандартов.
- Отсев неактивных профилей. Даже очень успешные багхантеры понижаются в рейтинге, если они неактивны, что освобождает дорогу к топу активным юзерам.
- Четкие критерии бана. При этом каждый имеет право на ошибку и есть «три жизни», чтобы войти в рамки правил.
- Понятная схема. Система подсказывает новичкам, как можно прокачаться на платформе с самых первых шагов.
Несмотря на то, что наполнение мы делали классическое игровое, главной выполненной задачей стало повышение качества работы багхантеров и поощрение тех, кто к этому стремится. Также наш концепт помогает сделать очевидными для партнеров Standoff-365 уровень компетентности и ответственности исполнителей.
С введением игровой механики в выигрыше останутся все: Standoff-365, компании-партнеры и сами багхантеры.
Буду рад услышать комментарии о нашей работе. С какими нововведениями согласны, а какие считаете несправедливыми? Что бы добавили еще?
В Abistep мы каждый день работаем с игровыми механиками: разрабатываем системы рейтингов, создаем игры, увеличиваем вовлеченность пользователей и результативность разных платформ. Заглядывайте к нам на сайт, чтобы узнать о геймификации больше.
Геймеры заценят))
Да ваще, такой интерфейс классный!
Да, среди хакеров их точно не мало)
Ого, а сколько времени ушло на разработку?
7 месяцев
Понравился ваш подход к работе, да и чувствуется забота о клиенте. Молодцы❤️🔥❤️🔥
Спасибо большое! Работа была большая сделана, да