Только по паспорту и с Secure Boot: разбираем возможности, требования и споры вокруг новых античитов

Статьи 0
20 авг 18:00

Несколько недель назад игровое сообщество Battlefield столкнулось с новой непонятной преградой, блокирующей доступ к игре. Тем самым ограждением к бета-тесту стал новый античит от Electronic Arts – Javelin. Он имеет куда больше требований, чем банальная установка вместе с игрой. Кроме повышенных системных требований, античит подобной архитектуры заинтересован в получении полного доступа к компьютеру игрока.

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

История появления kernel-античитов

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

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

  • Ring 3 — пользовательский режим (user-mode). Здесь запускаются обычные программы — браузеры, игры, офисные приложения. У них ограниченный доступ к ресурсам: они не могут напрямую обращаться к оборудованию или вносить изменения в ядро. Для работы с системными функциями они обращаются к ядру через системные вызовы. 
  • Ring 2 — среда для работы драйверов или сетевых стеков с повышенными правами, но без доступа ко всему ядру. В этом секторе читов никогда не существовало. 
  • Ring 1 предназначен для кода операционной системы, не требующий полного доступа к ядру, но взаимодействующий с оборудованием и управляет его ресурсами. До 2013 года читы работали исключительно на этом уровне.
  • Ring 0 — режим ядра (kernel-mode). Здесь работают сама операционная система и драйверы. Программы в этом режиме имеют полный доступ к памяти, процессору и оборудованию, могут изменять работу любых процессов и взаимодействовать с устройствами напрямую.

Изображение было взято с сайта 

Ситуация изменилась в 2010 году, когда разработчики читов начали использовать среду разработки Windows и делать читы, замаскированные под драйверы. Это позволило им работать на уровне Ring 1. А в 2013 году читеры представили первые читы на уровне Ring 0. Это позволило хакерам перехватывать системные вызовы, скрывать процессы и напрямую изменять память игр, оставаясь незамеченными для user-mode античитов. Появление драйверных читов фактически обесценило традиционные методы защиты.

Ответом разработчиков стала разработка собственных драйверов защиты, работающих в режиме ядра. Первыми kernel-античитами стали модифицированные BattlEye и Easy Anti-Cheat. Их работа на нулевом уровне позволяла выявлять драйверы-читы, контролировать целостность системных структур и блокировать опасные вызовы на низких уровнях.

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

Другой метод — использование второго компьютера: основной ПК запускает игру, а второй обрабатывает вывод изображения (например, через карту захвата) и передаёт обратно скорректированные данные для наведения или обнаружения врагов. Поскольку второй компьютер не взаимодействует напрямую с игрой, обнаружить вмешательство становится крайне сложно.

Изображение было сделано ИИ Sora

Самым сложным способом принято считать использование гипервизоров, работающих на так называемом уровне Ring -1. Это программный слой, находящийся «ниже» операционной системы и способный управлять её работой, подменяя данные ещё до того, как они попадут в саму ОС. Но работа в такой среде крайне опасна. Неотлаженный код может спровоцировать «синий экран смерти» (BSOD) с последующей утечкой памяти и повреждением компьютера. 

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

Важной вехой противостояния стал запуск в 2016 году FaceIt Anti-Cheat для своих серверов по Counter-Strike: Global Offensive. Он стал одним из первых kernel-античитов, требующих постоянной работы в фоне. FaceIt активно использовал как анализ памяти на уровне ядра, так и собственные изобретения, ориентированные на выявление нестандартных паттернов ввода и поведения игрока. Благодаря этому новые способы обхода kernel-античитов на серверах FaceIt почти перестали работать. Потому сервера FaceIt принято считать одними из самых безопасных для игры в Counter-Strike.

Однако полностью избавиться от читеров не удалось: специалисты системы выявляли только те программы, ранее упоминавшиеся на публичных и закрытых форумах. Даже FaceIt AC не в состоянии обнаружить полностью приватные и персонализированные читы. К счастью, таких разработок крайне мало, они стоят очень дорого, и потому встречаются в реальных матчах крайне редко.

Чтобы понять, насколько эти системы эффективны и требовательны, необходимо подробнее рассмотреть их принцип работы и то, какие условия они предъявляют к аппаратному и программному обеспечению игрока.

Как работают Kernel-античиты?

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

Изображение было сделано ИИ Sora

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

Для современных kernel-античитов требуются актуальные версии операционных систем и функции аппаратной защиты. В их число входят следующее:

  • Secure Boot — технология защиты, встроенная в BIOS. Она проверяет цифровые подписи загрузочных файлов, драйверов и компонентов системы. А также предотвращает запуск изменённых или неподписанных элементов, защищая от руткитов и вредоносных загрузчиков.
  • TPM 2.0 (Trusted Platform Module) — специальный чип в материнской плате. Хранит ключи шифрования, пароли и сертификаты, а также проверяет целостность системы при запуске, предотвращая её загрузку, если она была модифицирована. 
  • VBS (Virtualization-Based Security) — технология Windows, использующая аппаратную виртуализацию для изоляции критически важных процессов и хранения секретных данных в защищённой среде, недоступной даже при компрометации основной операционной системы.

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

Риски для античита и игроков

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

Такие античиты собирают большой объём информации: уникальные аппаратные идентификаторы, список запущенных процессов и драйверов, сетевые параметры, технические данные о конфигурации системы и даже историю нажатия клавиш. Компании вроде BattlEye и Easy Anti-Cheat в своей политике конфиденциальности прямо указывают, какие данные они собирают и как их используют, подчёркивая, что обработка ведётся с соблюдением Европейского Закона, регулирующего обработку и защиту персональных данных физических лиц в Европейском Союзе и Европейской экономической зоне. 

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

Права на изображение принадлежат Riot Games

Проблемы проявились и в самой архитектуре программы: несмотря на работу в Ring 0, Vanguard не использует весь потенциал режима ядра и не способен корректно выявлять сложные методы обхода. Для его разработки применялась библиотека Driver Device Kit — набор инструментов для создания драйверов, предназначенный исключительно для Windows. В результате игры с Vanguard либо не запускаются на других операционных системах, либо работают без защиты. А пользователи Windows сталкивались с BSOD'ами, так как античит влиял на стабильность и производительность ядра.

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

«Because we don't know how PE files work».

Portable Executable (PE) —  формат файлов, используемый в Windows для хранения .exe, .dll, .sys и других типов, загружаемых и выполняемых операционной системой.

Кроме того, античит выполняет сбор информации о «железе» игрока только один раз. Если после этого пользователь что-либо поменяет, то во время игры почти гарантированно случится BSOD, утечка памяти, и, возможно, потребуется переустановка Windows.

Риски безопасности усиливаются тем, что уязвимости в kernel-античите могут быть использованы для кибератак. Характерный пример — инцидент с драйвером mhyprot2.sys от kernel-античита в Genshin Impact. Подписанный легитимным сертификатом драйвер позволял злоумышленникам завершать процессы антивирусов и выполнять произвольный код в Ring 0. Это приводило к отключению защиты, установке вируса-вымогателя и заражению корпоративных сетей. Причём наличие самой игры на устройстве не требовалось — достаточно было установленного клиента или драйвера.

Изображение было сделано ИИ Sora

Потому требования kernel-античита к пользователю на предоставление полного доступа к системе и передачу большого объёма данных разработчику чревато серьёзными рисками. Любая ошибка в реализации или уязвимость превращает инструмент борьбы с нарушителями в потенциальное место для атаки с максимальным уровнем привилегий.

Иные способы защиты игроков

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

Аналогичным методом является верификация игроков. Привязка аккаунта уникальному идентификатору затрудняет создание множества учётных записей и повторный вход в игру после бана. Этот способ активно используется на серверах FaceIt, где доступ к рейтинговым матчам возможен только после подтверждения своей личности при помощи официального документа, что снижает количество «свежих» аккаунтов читеров. Однако такой метод требует доверия к разработчику в вопросах хранения личных данных.

Изображение было взято с сайта FaceIt. Права принадлежат ESL и Savvy Games Group.

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

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

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

Готовы на всё ради честной игры

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

Недавнее исследование организации PlaySafe ID, проведённое среди более двух тысяч геймеров из Великобритании и США, показало, что проблема читерства в онлайн-играх достигла масштабов, напрямую влияющих на поведение игроков и их отношение к играм. Согласно результатам опроса, большинство участников заявили, что сталкивались с читерами и это стало причиной частичного или полного сокращения трат на внутриигровые покупки. А некоторые вовсе задумывались об уходе из игры, где обитают читеры.

Несмотря на риски потери приватности, 73% респондентов заявили в готовности пройти верификацию личности, например через паспорт, если это обеспечит честную игру. А 83% опрошенных отметили, что с большей вероятностью будут играть в проекты, открыто заявляющих о своей защите от читеров. Ещё один важный вывод исследования — 79% опрошенных считают, что наказание за читерство должно распространяться на все игры, а не ограничиваться лишь конкретным тайтлом, в котором был зафиксирован факт нарушения.

Изображение было взято с сайта PlaySafe ID.

Хотя исследование PlaySafe ID и демонстрирует чёткий запрос игроков на честную игру и готовность жертвовать приватностью ради безопасности, его результаты нельзя считать полностью объективными. Выборка всего из двух стран и ограниченное количество респондентов не позволяют экстраполировать выводы на всё мировое игровое сообщество. Более того, вся методология исследования заключалась только в поверхностном опросе добровольцев. В ряде важных метрик нет дополнительных вопросов, что могут проверить утверждения респондентов на достоверность. Например, организаторы не выясняли как игроки поняли, что противостояли читеру, в какой игре с ним сталкивались и был ли нарушитель наказан. Поэтому такие исследования стоит воспринимать не как подробную аналитику, а часть информационной кампании, продвигающей идею обмена приватности на безопасность.

И в качестве опровержения, наш главный редактор Виталий Казунов в Telegram-канале провёл аналогичный опрос подписчиков на готовность предоставить паспортные данные ради борьбы с читерами. В исследовании приняло участие более 10 500 человек и 67% оказались «Решительно против» подобной инициативы.

Изображение было взято с Telegram-канала «iXBT без комментариев».

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

Analysis

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

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

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