
Как‑то раз мы делали кликер для запуска нашего межсетевого экрана нового поколения (PT NGFW) — простую игру, где игроки‑хакеры атакуют разные поколения файрволов. Задумка была классная: на последнем уровне пользователей ждал наш главный защитник — PT NGFW, и все их мощные инструменты против него внезапно становились бесполезными. Так мы хотели показать, что PT NGFW — это реальный инструмент для отражения кибератак, а проходимость трафика 300 Гбит/с — это не просто цифра, а реальный технологический прорыв.
Но в процессе разработки игры профессионалы из команды Phygital.Team так увлеклись геймдизайном, визуалом и механиками, что не учли, что кибербез‑компания привлечет особое внимание кибервзломщиков. Результат? В первые дни релиза бета‑версии мы увидели:
Читеров с накруткой очков
Хакеров, прыгающих по таблице лидеров
Слив данных из публичного репозитория на GitHub
Благодаря тому, что к игре был прикручен Telegram‑бот, мы вышли на связь с самыми активными «взломщиками» — оказалось, это были талантливые ребята! Кого‑то пригласили на стажировку, с другими просто классно пообщались. В итоге набили шишек на целый чек‑лист по безопасности.
Ниже — вся эта эпичная история со взломами, патчами на коленке и неожиданными поворотами.
Киберхомяк, или Наша история переката в геймдев

Началось все с того, что мы хотели сделать игру, которая могла бы показать возможности нашего PT NGFW широкому кругу пользователей. За основу была взята механика кликеров — игр, в которых основной процесс завязан на повторяющиеся клики по экрану, что идеально подходило для задач команды. Как итог, мы создали игру, в которую мог влететь кто угодно без сложного обучения, но с чувством «я что‑то сейчас взломаю». Читатель явно знаком с бывшим популярным в то время «Хомяком», в котором игрок тапами зарабатывал монеты. Так и у нас, только вместо зарабатывания монет он наносил урон.
Один тап по экрану — и на сервер летит абстрактный «пакет» атаки. Чем быстрее жмешь, тем больше пакетов и выше нагрузка. Чтобы удержать интерес, мы добавили прокачку: игрок мог открывать апгрейды и подключать разные автоматизированные атаки, которые сами генерировали пакеты и помогали взвинтить нагрузку до максимума.
Игровую валюту для покупки и улучшения этих «инструментов хакинга» можно было зарабатывать не только кликами. Мы спрятали ее по всей игре: на вкладках с информацией о продуктах, в квестах и заданиях — например, в задании ответить на вопросы о технологиях. Так игроки одновременно нагружали серверы и невольно прокачивали свои знания в области кибербезопасности.
Была даже суперигра, в которой можно было выиграть АААААВТОМОБИЛЬ реальные призы и получить их в день релиза нашего PT NGFW.

Мы сделали пять уровней, каждый из которых символизировал эволюцию межсетевых экранов. На первых четырех серверы постепенно сдавались под натиском кликов и апгрейдов, но на пятом был наш новый PT NGFW — и вот тут привычные приемы переставали работать.
Правда, многие игроки восприняли эту механику как настоящий вызов: вместо того чтобы просто докликать до конца, они начали искать обходные пути, придумывать свои хаки и заходить дальше, чем мы ожидали. К такому напору мы, признаться, были не совсем готовы — с этого и началось самое интересное.

Легким движением руки кликер превращается… в элегантный полигон для пентестеров
Но что это мы все о себе. Конечно, мы не сами разрабатывали игру с нуля, вот еще! Мы доверились профессионалам, а именно компании Phygital.Team, которая давно специализируется на создании такого рода игрушек. Оказалось, что в процессе разработки ребята сами немного заигрались — хотели сделать по‑настоящему крутой геймдизайн, продуманный интерфейс, увлекательный геймплей и стильный визуал. Как всегда. И так увлеклись созданием идеальной игры, что совершенно упустили из виду один важный момент: игра предназначалась для компании, которая специализируется на кибербезопасности. А это значит, что среди пользователей обязательно найдутся те, кто захочет устроить такой штуке полноценный пентест.
И понеслась…
В день запуска игроки развлекались как могли! Кто‑то просто накручивал себе очки, кто‑то использовал багоюз, чтобы продвигаться выше по списку лидеров, а один пользователь исхитрился сменить ники всем участникам топа.
Дошло до того, что нас выследили среди игроков и по Telegram‑идентификатору нашли GitHub, где лежал публичный репозиторий проекта. Некоторые данные там были в открытом доступе — ничего личного, но все равно было неприятно. С тех пор поняли, что вообще все, что можно, лучше держать на сервере.
Конечно же, разрабы пытались пресекать эту активность. С помощью ChatGPT быстро прикрутили пару простых проверок на количество очков в минуту и за один клик, что позволило отслеживать и переносить подозрительных игроков в отдельную таблицу, где они автоматически получали теневой бан на получение призов. Один игрок это заметил и даже написал нам в поддержку.
И вот тут свою роль сыграл наш бот, в задачи которого также входил сбор обратной связи. Поскольку при регистрации пользователи оставляли свои учетные данные, мы начали связываться с участниками нашего незапланированного флешмоба. Со многими из них у нас получилось наладить диалог: с кем‑то просто конструктивно поговорили и обсудили баги, а кого‑то даже позвали на стажировку! Ну и поскольку мы запускали игру сильно заранее, у нас появилась отличная возможность изучить все уязвимости и исправить их.
В процессе мы решили, что такой опыт не должен кануть в Лету, поэтому собрали из допущенных ошибок чек‑лист, который поможет другим разработчикам избежать подобных сюрпризов.
Чек-лист для разработчиков на собственных шишках
Этот чек‑лист — результат нашего аудита безопасности игры, разработанной на Unity с Telegram‑ботом. Он пригодится как инди‑разработчикам, так и командам, делающим веб‑приложения с серверной логикой.
? 1. Не сливай исходный код в прод!
Проверить, что сервер не отдает исходники по прямым URL (например, /server.js, /script.js)
Закрыть доступ к служебным или чувствительным скриптам через настройки сервера
Не оставлять токены (особенно TG‑ботов) в клиентской части: их просто украдут и подменят webhook
? Если ваш сервер позволяет скачать server.js и в нем лежит токен Telegram — игра закончилась.
? 2. Аутентификация должна быть настоящей
Убедиться, что все критичные маршруты требуют валидной аутентификации
Удалить заглушки вроде if (!user) return 401 — и вставить реальную проверку пользователя
Генерировать JWT только после верификации ID пользователя (а не просто по факту его наличия)
Не хранить чувствительные данные в JWT без нужды
? Если игрок может получить полноценный токен доступа, просто указав любой Telegram ID, — значит у вас не аутентификация, а фантазия на ее тему.
⚠️ 3. Используй актуальные версии зависимостей
Регулярно запускать npm audit и проверять наличие критических уязвимостей
Обновлять библиотеки вроде mongoose и path‑to‑regexp, особенно если они старше динозавров
Удалять неиспользуемые зависимости и файлы (чем меньше — тем лучше)
-
Сверять версии с базами уязвимостей:
? Если вы пишете игру про безопасность, а у вас в сборке уязвимости CVE 2014 года, — аудитория обязательно это заметит.
? 4. Следи за своим следом в интернете
Не публиковать публичный репозиторий проекта, пока он не очищен от конфиденциальной информации
Избегать привязки личных аккаунтов к игровым данным (по Telegram ID могут найти GitHub и ваш проект)
Вынести все ключи, конфиги и чувствительные данные в.env или на сервер
? Игроки любопытные, они найдут все: GitHub, ваш ник и даже старый readme.
? 5. Игроки умнее, чем кажется
Предусмотреть возможность читерства — например, подсчет очков за минуту и за один клик
Отправлять подозрительных игроков в теневой бан‑лист — не наказывать сразу, а исключать из наград
Объяснить странности как фичи (если все совсем плохо, это может сработать)
? Когда у вас нашли дыру в безопасности, но подумали, что это интерактив от компании, — это и успех, и провал одновременно.
Краткие выводы
Всё, что потенциально может быть прочитано, будет прочитано. А всё, что можно взломать, обязательно попробуют взломать. Особенно если на кону призы! И тем более если разрабатываешь игру для безопасников! Safety first, получается.
А поштурмовать нашего бота, если желаете, можно хоть сейчас: @pt_ngfw_game_bot.
Закидывайте пакетами сколько душе угодно!
Ratenti
Подумал, что про NSFW