Блог про Экосистему Телеграм

Как мы превратили белое хакерство в онлайн-игру: теперь багхантеров не вытащить с работы

Как мы превратили белое хакерство в онлайн-игру: теперь багхантеров не вытащить с работы

Привет! Сегодня хотим поделиться с вами одним интересным проектом, с которым нам удалось поработать, в сфере кибербезопасности. На практике мы часто сталкиваемся с тем, что деньги не достаточно для мотивации продуктивно работать. В таких случаях часто помогают игровые механики, они пробуждают у сотрудников азарт и стремление быть лучшим! В статье мы разберем наш кейс для сервиса хакеров, в котором мы очень успешно реализовали геймификацию.
Как мы превратили белое хакерство в онлайн-игру: теперь багхантеров не вытащить с работы

Кто стал нашим полем для экспериментов

Нашим клиентом стала платформа Standoff-365 от компании «Positive Technologies», площадка «белых хакеров», которые ищут уязвимости в системах, продуктах и приложениях. Для этого партнеры Standoff-365 формируют заказ, белые хакеры находят баги и пишут отчеты, за которые им выплачивается вознаграждение.
Платформа уже имела игровой ориентир. Когда мы приступили к работе, история была такой:
«Багхантеры» — охотники за багами, зарегистрированные пользователи платформы. «Багбаунти» — заказ, который дают багхантерам партнеры Standoff-365. За успешно сданный багбаунти багхантер получает материальное вознаграждение.
Пример одной из программ на платформе
Standoff-365 работает с такими гигантами, как Ozon, Wildberries, VK, Одноклассники, Т-Банк. Работа эта очень ответственная, так как подобные ресурсы имеют многоуровневую и сложную защиту. Отыскать уязвимости у них непросто, но и за найденные баги платят очень хорошо. Для Standoff-365 работа с такими партнерами — вопрос репутации и чести.
Кроме того, компания представляет собой удобную площадку для общения белых хакеров, многие из которых еще вчера были на другой стороне. Другими словами Standoff-365 создает полезных специалистов из тех, кто мог бы вредить системам безопасности.
На площадке есть онлайн-полигон, где можно отточить свои хакерские навыки, проводятся кибербитвы для выявления сильнейших. Также есть оффлайн-тусовки, на которых белые хакеры могут пообщаться в среде единомышленников, нарастить знания и, опять же, поиграть. К примеру, проводятся офлайн-киберобучения, где хакеры ломают системы защиты виртуальных государств.
Как мы превратили белое хакерство в онлайн-игру: теперь багхантеров не вытащить с работы
В общем, это масштабное сообщество, которое насчитывает тысячи пользователей и которое постоянно развивается.

Какие задачи перед нами стояли

Конечно, элемент игры у Standoff-365 заложен уже изначально: багхантер ищет баги, наиболее успешные багхантеры получают лучшие заказы и деньги. Есть яркий соревновательный элемент, цели для роста рейтинга, достижения, награда.
Но нужно учесть следующее: игра без четких правил может превратиться в балаган, где много читерства и мало продуктивности. Как раз с подобной проблемой столкнулась платформа: большинство участников активно соревновались за рейтинг и денежные заказы, но для высоких результатов часто сдавали невалидные отчеты. Тогда было решено геймифицировать сервис.
Ключевые проблемы, которые требовалось решить: некачественные отчеты о багах, спам, неактивность пользователей.
Внедрение геймификацией должно было:
  • отсортировать пользователей — четко разделять на активных и пассивных;
  • подчеркнуть компетентность багхантеров и их опыт;
  • снизить число невалидных отчетов, повысить качество;
  • убрать спам;
  • простимулировать багхантеров к активности на платформе;
  • привлечь новых пользователей и дать им удобный старт.
Для этого мы создали игровое наполнение, которое позволило четко обозначить требования к багхантерам, оценить их квалификацию и работу. А также простимулировало пользователей улучшать свои навыки и вести себя корректно на платформе.
Давайте подробно рассмотрим что мы сделали.

1. Система рейтинга

Как мы превратили белое хакерство в онлайн-игру: теперь багхантеров не вытащить с работы
Система рейтинга показывает успешность багхантера, разделяет всех на ранги, показывающие их эффективность и компетенцию. Мы решили начислять баллы не только за выполнение заданий, но и за различные достижения при работе с платформой, активность в сообществах и событиях Standoff-365.
Мы создали «систему глобального ускорения», в ней активный и эффективный багхантер может быстро подняться в рейтинге. Активность будет давать бонусы к баллам, полученным за отчет. Но также баллы можно потерять, если сдавать невалидные отчеты или долго не проявлять активность.
График отражает не только готовность багхантера к работе, но и его активность на платформе, в том числе в мероприятиях офлайн.
График отражает не только готовность багхантера к работе, но и его активность на платформе, в том числе в мероприятиях офлайн.
Отчеты — основной метод увеличения рейтинга. Конечно активность на платформе сама по себе не будет повышать рейтинг, ведь тогда можно было бы поднять рейтинг не за профессиональные качества. Данный подход позволяет поощрять именно работу с багбаунти.

Валидным считается отчет, который содержит полезную информацию о баге, даже если эту информацию уже прислал другой пользователь. Невалидным — отчет, который содержит ошибочную информацию.
Остается проблема, что отчеты часто невалидны,партнеры Standoff-365 теряют время и ресурсы на их проверку. И конечно же, большое количество таких отчетов портит клиентский опыт компаний-партнеров. Вот почему было важно ввести такое наказание за невалидный отчет, которое не отпугнет пользователей. Иногда невалидные отчеты создаются новичками, да и у опытных багхантеров бывают ситуации, когда отчет не принят. Поэтому было принято решение начислять за валидный отчет баллы к рейтингу и умножать их на коэффициент выявленной угрозы.
Для маркировки важности мы выделили 6 уровней опасности
  1. отсутствует - коэффициент 0,2;
  2. низкий - коэффициент 1;
  3. средний - коэффициент 2;
  4. высокий - коэффициент 6;
  5. критический - коэффициент 12;
  6. недопустимое событие - коэффициент 18.
С такой системой чем выше выявленный уровень уязвимости, тем больше баллов к рейтингу получит багхантер. Подобное начисление стимулирует хакеров искать самые серьезные баги, а компании, которые обращаются к платформе, получают информацию о самых слабых местах своей системы.
Невалидный отчет в свою очередь отнимает очки рейтинга. Спам или заведомо сфабрикованный отчет несут за собой страйки или бан.
Глобальное ускорение. Эта механика позволяет получить бонусные баллы рейтинга за достижения или активность, они добавляются к баллам за отчет. Пример достижения, за которое багхантер поощряется бонусом: «5 сданных валидных отчетов подряд». В этом случае на шестой отчет будет добавлен бонус. Глобальное ускорение позволяет быстро набирать рейтинг активным и компетентным новичкам.
Как мы превратили белое хакерство в онлайн-игру: теперь багхантеров не вытащить с работы
Система качества отчетов. Она нужна чтобы дополнительно простимулировать багхантеров быть внимательнее и ответственнее. Оценки качества отмечаются в лидербордах и делятся на четыре категории, которые мы выделили цветом:
Серый — 0
Красный — 5
Желтый — 6
Зеленый — 8
Чтобы цвет был зеленым, оценка должна быть не ниже 8.
Вот как это выглядит на лидерборде:
Как мы превратили белое хакерство в онлайн-игру: теперь багхантеров не вытащить с работы

2. Ранги

Ранги — это один из основных способов геймификации. У рангов есть определенные достоинства, которые делают их эффективными:
Наглядность - их видно в профиле, в сообществах, в таблицах лидеров. Высокоранговые пользователи имеют вес, к ним прислушиваются, обращаются за советами или помощью. Новичку также удобно получать поддержку и несложные заказы, имея более низкий ранг.
Также ранги отражают реальную активность пользователя на сегодняшний день, так как если даже багхантер продвинутый профи с опытом на площадке и качественными отчетами, но уже давно не активен - его ранг снизится.
Эффектные ранги являются мощным стимулом. Это как цифровая одежда, которую игрок надевает на себя. В Standoff-365 пользователи будут прилагать массу усилий, чтобы выделиться рангом, сдавая отчеты и участвуя на платформе.
Нашей задачей было разработать систему рангов и назначить их багхантерам, опираясь на результаты их деятельности. В сфере белого хакерства такие ранги — фактически единственный критерий, показывающий профессионализм. К тому же с введением рангов партнеры Standoff-365 получают возможность делегировать наиболее сложные задачи пользователям с высоким рангом.
Система рангов, которую мы разработали:
  1. Common User
  2. Noob Hacker
  3. Script Kiddie
  4. Curious
  5. Hacker
  6. Cyber Ninja
  7. Elite Hacker
  8. Supreme
Движение по шкале рангов достаточно затратное. К примеру, от первого до восьмого уровня можно подняться в идеальном раскладе за 7 месяцев: для этого надо сдавать 100% одобряемые отчеты раз в три недели с обнаруженными угрозами критического уровня. Такая трудность не позволит рангам быстро девальвироваться и сохранит топ-верхушку самых продвинутых багхантеров.
Полная линейка:
Как мы превратили белое хакерство в онлайн-игру: теперь багхантеров не вытащить с работы

3. Баланс системы

Несмотря на тысячи пользователей на платформе, лишь немногие из них действительно продуктивны. Поэтому нужно выделить активных юзеров и обеспечить им «социальный лифт», а неактивных багхантеров понижать по шкале, освобождая место тем, кто действует. Для этого мы сбалансировали систему.
За каждые 2 месяца, багхантер теряет % своих очков при неактивности. Чем выше ранг — тем больше итоговая потеря. Но при таких условиях важно не напугать пользователей: потеря ранга при неактивности может восприниматься как «наказание ни за что». Поэтому при первом периоде неактивности пользователь не теряет очков больше, чем нужно для сохранения ранга. Но если и в следующий период пользователь ничего не предпримет, потеря ранга все же произойдет.
Как видно из примеров, количество потерянных очков разное, в зависимости от ранга

4. Штрафы, страйки и баны

Чтобы снизить количество невалидных отчетов и наказать прямые нарушения, мы разработали систему штрафов и страйков.
Штрафы начисляются:
  • за отправку невалидного отчета;
  • за несоблюдение NDA;
  • за нарушение правил сообщества и сайта;
  • за ущерб, нанесенный компании-партнеру Standoff-365.
Страйки получают за грубые нарушения. У каждого пользователя есть «3 жизни» на платформе Standoff-365. Если пользователь получает страйк, одна жизнь сгорает. Если сгорят все, юзер получит бан.
Как мы превратили белое хакерство в онлайн-игру: теперь багхантеров не вытащить с работы

5. Таблица лидеров

Лидерборд — таблица лидеров, предназначенная для багхантеров, которым нравится соревноваться. Также это очень удобный инструмент для партнеров Standoff-365, который дает исчерпывающую информацию о деятельности багхантера.
Лидерборд включает:
  1. никнейм;
  2. место в лидерборде;
  3. ранг банхантера;
  4. звание;
  5. сданные отчеты;
  6. оценку отчетов.
Мы сделали три лидерборда:
  1. глобальный: доступен всем пользователям;
  2. персональный: доступный только самому юзеру;
  3. турнирный: функционирует для турниров и других мероприятий.

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 уровень компетентности и ответственности исполнителей.
Будем рады услышать комментарии о нашей работе. Какие нововведения вам понравились, а какие считаете несправедливыми?