Колонки

Геймдев и безопасность: рекомендации по защите от хакерских атак

Колонки
Юрий Шабалин
Юрий Шабалин

Сооснователь компании Stingray Technologies (ГК Swordfish Security)

Ольга Тройникова

Согласно данным закрытого отчёта Statista, в 2023 году на вирусы-вымогатели в игровой индустрии пришлось более $184 млн официально зарегистрированных убытков. Наиболее громкие из них: атаки на польскую компанию-разработчика CD Projekt Red (автора Cyberpunk 2077, Witcher 3 и других), а также на Insomniac Games, создающую игры для вселенной Marvel. Здесь хакеры зашифровали доступ к полным версиям исходных кодов новых версий игр, платёжным данным клиентов, информации по персоналу и инвесторам.

В России подобные инциденты скрываются. Однако благодаря исследованию ГК «Солар» известно, что игровая индустрия — один из трёх лидеров по количеству утечек данных в 2023 году. На неё пришлось около 10% из общих 91,8 терабайт утекших данных.

Есть все основания полагать, что ситуация с безопасностью будет ухудшаться. Огромной доли инцидентов удастся избежать, если заниматься безопасностью игрового ПО ещё на этапе разработки. О том, как лучше всего это делать, рассказал Юрий Шабалин, ведущий архитектор Swordfish Security.

Геймдев и безопасность: рекомендации по защите от хакерских атак

 

Почему и как атакуют игры

На российском рынке игрового ПО 70% разработки занимает сегмент мобильных устройств, 20% — компьютерные игры и около 10% — игры для консолей. Есть мнение, что у наших программистов получаются лучшие в мире мобильные хиты, а для более комплексных и глубоких компьютерных игр не хватает опыта и денег.

Сейчас всё стало ещё сложнее из-за политической обстановки: рынок уменьшился в разы. Но нужно понимать, что безопасность — не то, на чём стоит экономить. Тем более что потери при инцидентах могут быть впечатляющими.

Оценивая защищённость ПО, эксперты по безопасности учитывают несколько направлений: 

  • инфраструктура;
  • сетевое взаимодействие;
  • код программного обеспечения;
  • логика взаимодействия с пользователем.

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

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

Прочитайте по ссылке, что должна включать партнерская программа

 

Виды атак на игровое ПО

Существует два основных вида атак на игровое ПО:

Первый нацелен на производителей и владельцев. Злоумышленники получают доступ к конфиденциальной информации, платёжным и инвестиционным данным, а также исходному коду разрабатываемых игр. И перед ними открываются возможности: начиная от перепродажи данных конкурентам, заканчивая банальным шантажом компании. Аналогично и при доступе к серверной инфраструктуре: когда злоумышленник атакует компанию, он может внести хаос в процесс игры, модифицировав что-то на серверах, и устроить игровой «простой». В каждом из случаев больше всего страдает компания-владелец.

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

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


По теме: Diablo IV стала самой быстро продаваемой игрой Blizzard


 

Типы уязвимостей игрового ПО

Наше исследование по анализу защищённости мобильных приложений показало, что 60,3% российских приложений содержат уязвимости критического и высокого уровня. Приложения в категории Entertainment — 78,9%, Gambling — 76,5%. Разберём подробно, какие типы уязвимостей существуют:

Читерские «приёмы». Это целый кластер эксплойтов уязвимостей в направлении логического взаимодействия. Они основаны на встраивании в игровой процесс для получения выгоды: преимуществ перед соперниками, выигрыша, бонусов и т.д. Жизнеспособность таких атак (каждая оценивается в среднем в $50–200, а в одной игре их может быть сотни и даже тысячи) связана с проблемами безопасности, и от них страдают и пользователи, и производители игр.

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

Уязвимости программного кода, которые вызывают технические проблемы. В мае 2023 исследователи безопасности из мальтийской консалтинговой фирмы ReVuln обнаружили критические уязвимости с повреждением памяти и переполнением буфера в CryEngine 3, Unreal Engine 3, Hydrogen Engine и id Tech 4. Это игровые движки, которые используются в видеоиграх: Quake 4, Crysis 2, Homefront, Brink, Monday Night Combat,«Enemy Territory: Quake Wars, «Sanctum», Breach, Nexuiz и др.

Такие уязвимости используют для запуска удалённого выполнения кода или атак типа «отказ в обслуживании» против игровых клиентов и серверов путём отправки им вредоносных пакетов данных.

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


По теме: Премии по страхованию от кибератак за год выросли на 80%


 

Как обезопасить игровое ПО

Помимо вопроса затрат, важный критерий успешности проекта — выручка компании, которая базируется на показателе Time-to-Market (ТТМ, готовность к выходу на рынок). Многие производители жертвуют мерами по защищённости продукта в пользу скорости разработки, чтобы оперативнее «отбить» вложения.

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

Принять решение помогают подсчёты. Возьмём, например, команду разработки игры из 21 человека. Представим, что показатель TTM у игры 180 дней, а бюджета на безопасность нет. 

Допустим, что стоимость одной хакерской атаки — 18,5 млн рублей (в более сложных случаях — около 50 млн). Учитываем, что пока разработчик закроет «дыры» нападений может быть несколько. Кроме того, во время взлома могут разойтись бесплатные версии игры, а это миллионы недополученной прибыли.

С хорошим сканером безопасности, где лицензия на год обойдётся в 3–3,5 млн рублей, решить основные проблемы с ИБ можно, сдвинув TTM всего на 30 дней. Подсчитать сложно, всё зависит от масштабов проблемы. Но в среднем расходы с приобретённой лицензией будут ниже — примерно 8–12 млн рублей за одну хакерскую атаку.


По теме: Разработчик удаленных рабочих столов AnyDesk сообщил
о взломе серверов


 

Основные правила защиты ПО в сфере gamedev

Эти правила сведут к минимуму вероятность возникновения инцидентов:

  1. Следите за тем, какие данные хранит приложение. Это касается как серверной стороны, так и клиентской части. Особое внимание уделяйте аутентификационным данным и персональной информации пользователей.
  2. Тестируйте игру перед релизом и анализируйте защищённость. Если уязвимости будут выявлены, потратьте время на анализ их критичности, прежде чем делать релиз. Если будут найдены критичные, отложите релиз до исправления.
  3. Используйте безопасные протоколы для передачи данных между устройствами. Для безопасной передачи данных подходят протоколы HTTPS/TLS с версией не ниже 1.3.
  4. Контролируйте доступ. Игрок не должен иметь возможность добраться до настроек сервера, к примеру или видеть данные других игроков (которые ему видеть не положено).
  5. Пристально оценивайте инфраструктурную безопасность. Игровой сервер должен быть надёжным и защищенным от атак снаружи. 
  6. Настройте и используйте фильтрацию и модерацию в игре. Это сократит время на устранение вредоносного контента, если он появится.

 

Лайфхаки для разработчиков

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

  • Процесс создания игр не сильно отличается от процесса разработки Web-приложений (исключая специфику, конечно). Поэтому к ним можно применять практически все те же практики, что и для другого ПО. Посмотрите на примеры выстроенных процессов и подумайте, что из этого можно относительно беспроблемно включить в процесс разработки.
  • Как правило, первыми выбирают практики анализа компонент с открытым исходным кодом (SCA) и статического анализа (SAST). Сюда же можно добавить поиск секретов: как от внутренних сервисов, так и от внешних. Часто это позволяет избежать большого количества проблем.
  • Хорошим стартом, чтобы понять текущий уровень защищённости, может стать проведение внешнего тестирования на проникновение. Причём как для инфраструктурной части (настройка и безопасность серверов, периметр компании и т.д.), так и для анализа самого приложения. Это позволит понять, какие проблемы существуют и что с ними делать.
  • Не приобретайте сразу энтерпрайз-инструменты для безопасности. Начните с open source-решений. Они помогут понять, как выстроить процесс и устранить проблемы.
  • Подключите мониторинг: собирайте обратную связь от игроков и внимательно читайте комментарии о появлении читов, подозрительной активности пользователей и других негативных реакций. Если в комментариях несколько раз упоминается чей-то ник, рекомендуем проанализировать этого игрока.

Фото на обложке: Freepik

Подписывайтесь на наш Telegram-канал, чтобы быть в курсе последних новостей и событий!

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 «Я верю в Play2Earn»: что может дать новая модель криптомиру
  2. 2 «Обожаю, когда большая часть компании состоит из геймеров»
  3. 3 Мобильное тестирование: что это и как меняет IT-индустрию
  4. 4 Партнерская программа: что учесть при ее составлении
  5. 5 Как взаимодействовать с партнерами
ЛАНИТ
Как вендору найти партнеров
Подробнее