Game Over: 3 точки входа DDoS-атак в игровых сервисах

Обложка статьи: DDoS-атаки на игровые сервисы

Число хакерских атак на игровые ресурсы в России стремительно растет год от года. В 2022-м только за первые 6 месяцев игровой сегмент атаковали на 300% чаще, чем за весь 2021-й год. Сейчас эта динамика пошла на спад, но вероятность подвергнуться атаке остается по-прежнему высокой для участников игрового сектора. Цель DDoS-атак на игровые сервисы может быть разной — создание нечестного преимущества при игре, намеренное уничтожение репутации сервера как стабильного, кража данных пользователей. Рассмотрим три наиболее уязвимые точки входа для хакеров и расскажем, какая нужна защита для игровых сервисов от DDoS-атак.

1. Серверное оборудование

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

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

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

Зная эту особенность, конкуренты по бизнесу перетягивают игровую аудиторию себе. Нередко DDoS-атаки организуются в важные для игрового сервера моменты, например, выхода обновления или проведения ограниченного по времени внутриигрового события.

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

Масштабная DDoS-атака может вывести из строя даже самое мощное оборудование при отсутствии надлежащей защиты. Поэтому, независимо от того, находится ли игровой сервис на выделенном сервере или в облаке, ему необходима надежная защита от DDoS.

 

2. Игровое лобби

Лобби — нейтральное пространство, где «встречаются» игроки при подключении к серверу. Там они ожидают начала игры, которая стартует после соответствия определенным требованиям (например, количеству участников). В случае разных игр лобби может быть устроено по-своему.

Скриншот лобби онлайн-игры Fortnite (Epic Games)
Лобби онлайн-игры Fortnite (Epic Games) — скриншот игрока под ником Macanaka.

Обеспечить эффективную защиту игрового лобби от UDP- и TCP-флуда проблематично. Добавляет трудностей и тот факт, что аутентификация и вход в систему происходит, как правило, в зашифрованном режиме.

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

Снизить потенциальный урон от атаки поможет разделение всех сервисов:

  • сервер авторизации;
  • сервер лобби;
  • серверы непосредственно игрового процесса.

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

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

 

3. Игровой сеанс

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

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

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

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

Скриншот экрана с сообщением об ошибке подключения в игре World of Warcraft
Вариант экрана с сообщением об ошибке подключения в игре World of Warcraft (Blizzard Entertainment)

Как защитить игровой сервис

Чаще всего игровые сервисы атакуют тремя способами — это либо волюметрический тип DDoS (бомбардировка трафиком для забивания каналов), либо пакетная — для перегрузки сетевого и серверного оборудования, либо атака на уровне L7 (по системе OSI). Итог один — вывод из строя сервера и нарушение нормального игрового процесса.

Защита игрового сервера — многоступенчатый и сложный процесс, который сложнее защиты веб-ресурсов.

Для достижения максимальной устойчивости игрового проекта, а также эффективности защиты от DDoS-атаки, следует предпринять меры как на уровне архитектуры игрового сервера, так и в процессе эксплуатации.

По архитектуре, если разработка сервера ведется своими силами или на заказ, следует:

  • Разделить различный функционал в различные серверы: авторизация, лобби, игровые сеансы, чат, голосовой чат.  Это позволит более точно настраивать системы защиты от DDoS, так как значительно упрощается определение ожидаемых паттернов трафика к определенным серверам, и трафика, который не должен поступать на конкретные серверы. Это приводит к усложнению атаки на ваш проект, что может заставить злоумышленника поискать другую цель.
  • Не допускать механик, приводящих к утечкам реальных IP-адресов пользователей. Даже если сами игровые серверы останутся незатронутыми, в этом будет немного смысла, если ваши игроки не могут попасть на сервер, так как они сами находятся под DDoS-атакой.
  • Добавить метрики, которые смогут отслеживать администраторы позже, в процессе эксплуатации.

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

UDP можно использовать для уменьшения задержек, но он подвержен потерям пакетов, особенно при проблемах на сети.

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

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

Что может сделать ваш системный администратор для обнаружения и минимизации урона от потенциальной атаки:

  • Заранее определить, трафик с какими характеристиками можно пропускать через систему, а какой — стоит отсекать на стадии защиты от DDoS/фаервола.
  • Аномальные скачки могут свидетельствовать о начавшейся DDoS-атаке. Отметить уровни трафика, которые явно не могут быть достигнуты при работе игровых серверов в штатном режиме.
  • Следить за процессорным временем, использованием памяти и сетевых ресурсов игрового сервера. Если он внезапно замедляет работу, начинает терять пакеты или отвечает с задержками, это также может быть результатом DDoS-атаки.
  • Рассмотреть возможность использования облачных сервисов для хостинга игрового лобби. Крупные провайдеры таких услуг зачастую предоставляют защиту от DDoS-атак на уровне инфраструктуры.
  • Активировать антибот-механизмы авторизации вроде CAPTCHA для подключающихся игроков.
  • Ограничить количество подключений/число пакетов от одного IP-адреса.

Существует ряд и других мер, которые можно принять для защиты игровых серверов от DDoS-атак — однако только комплексный подход — грамотное планирование архитектуры при разработке, тщательная настройка сервера, использование профессиональной защиты — может гарантировать безопасность игрового сервера.