Cайт программиста Ruby, веб-разработчика Ruby on Rails ESV Corp. Екатеринбург, Москва, Санкт-Петербург, Новосибирск, Первоуральск

Вход только по паспорту от Microsoft: Fortnite превращает открытый Linux в закрытую клетку

Epic Games готовит выход Fortnite на Linux, но ради борьбы с читерами потребует от игроков серьёзно ограничить контроль над собственной системой. Новый античит Easy Anti-Cheat Linux v2 будет проверять загрузку ОС, цифровые подписи ядра и настройки безопасности. Владельцы Steam Deck пока остаются за бортом.

Компания 14 октября представила архитектуру EAC Linux v2, которая должна приблизить защиту многопользовательских игр на Linux к уровню Windows. Первым испытательным полигоном станет Fortnite, до сих пор официально недоступная для Linux. После проверки эффективности новой системы Epic намерена предложить античит другим разработчикам. Дату выхода Fortnite компания пока не назвала.

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

Разработчики отказались от собственного драйвера античита внутри ядра Linux. На Windows Easy Anti-Cheat использует такой драйвер для контроля защищённых процессов, а Linux-версия будет полагаться на встроенные механизмы безопасности операционной системы, службу systemd и программы eBPF. Последние позволяют проверять действия процессов и ограничивать доступ к памяти игры без установки отдельного модуля античита.

Для запуска защищённых игр компьютер должен поддерживать TPM 2.0, Secure Boot и Measured Boot. TPM представляет собой аппаратный модуль безопасности, который помогает проверить состояние компьютера. Secure Boot контролирует цифровые подписи компонентов загрузки, а Measured Boot фиксирует сведения о запущенном коде. Вместе механизмы позволяют античиту обнаруживать признаки подмены загрузчика или ядра ещё до запуска игры.

Epic также потребует, чтобы ядро Linux и загружаемые модули имели цифровые подписи, выпущенные организациями из доверенного списка компании. Самостоятельно собранное ядро с пользовательской подписью не подойдёт для игровой конфигурации, пока соответствующий ключ не получит необходимое доверие. Требование распространяется и на сторонние драйверы, включая проприетарные модули NVIDIA, которые распространяются отдельно от основного дерева исходного кода Linux.

В первоначальный список доверенных ключей вошли сертификаты Canonical, Fedora, Universal Blue, Debian, openSUSE, SUSE, Rocky Linux, AlmaLinux и Microsoft UEFI CA. Таким образом, поддержку смогут получить Ubuntu, Linux Mint, Fedora, Bazzite и другие системы, использующие перечисленные ключи. Однако наличие подходящего дистрибутива само по себе не гарантирует совместимость. Компьютер должен выполнять остальные требования античита, а все необходимые модули должны иметь допустимые подписи.

Отдельное ограничение касается IOMMU, аппаратного механизма управления доступом устройств к оперативной памяти. Epic требует включить IOMMU в настройках прошивки и ядра, а также отключить режим passthrough на обычных компьютерах. Такая конфигурация должна затруднить работу читерских устройств, которые подключаются через PCIe и получают прямой доступ к памяти игры, обходя обычные программные проверки. Для портативных устройств Epic предусмотрела исключение из требования к IOMMU.

Ещё одним обязательным условием станет Kernel Lockdown в режиме integrity. Механизм запрещает потенциально опасные операции с ядром даже пользователю root, включая загрузку неподписанных модулей и прямую запись в физическую память. Epic также требует отключить kexec, который позволяет загрузить другое ядро без обычной перезагрузки компьютера. Иначе злоумышленник мог бы заменить работающую систему, не оставив соответствующих записей в журнале проверяемой загрузки.

Для контроля запущенной игры античит задействует BPF LSM, подсистему Linux, которая позволяет программам eBPF применять правила безопасности на уровне ядра. С её помощью EAC Linux v2 сможет ограничивать чтение и изменение памяти защищённого процесса другими приложениями, а также отслеживать подозрительную активность. Поддержка BPF LSM должна быть включена в ядре и активирована при загрузке операционной системы.

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

Однако альтернативная загрузочная запись не устраняет все ограничения. Во время игровой сессии пользователь должен доверять признанным Epic ключам подписи и соблюдать требования к конфигурации ядра. Компания отдельно предупреждает, что при использовании загрузчика shim все зарегистрированные ключи MOK также должны входить в доверенный список. Владельцам собственных ключей предлагается хранить их в базе подписей Secure Boot для других вариантов загрузки, не предназначенных для защищённых игр.

Особенно сложная ситуация складывается со Steam Deck. Epic прямо признала, что портативная консоль Valve в нынешнем виде не поддерживает необходимый набор функций EAC Linux v2. Разработчики обсуждают возможные изменения с Valve, но пока не обещают ни совместимости, ни конкретных сроков. Получается, что одна из наиболее известных игровых платформ на Linux не сможет воспользоваться античитом, который разрабатывают специально для расширения поддержки Linux-игр.

Уже существующий Easy Anti-Cheat поддерживает нативные Linux-игры с 2014 года, а с 2021 года позволяет разработчикам разрешать запуск Windows-версий через Wine и Proton. Однако поддержка требует отдельного решения со стороны создателей каждой игры. Epic признаёт, что многие студии отказываются включать такую возможность из-за недостаточного уровня защиты от читерства по сравнению с Windows. Именно по такой причине Fortnite до сих пор отсутствует на Linux.

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

В перспективе Epic хотела бы перейти к другой модели, при которой операционная система гарантирует целостность игры без необходимости предоставлять разработчику античита избыточный доступ к пользовательским данным. Среди возможных направлений компания упоминает технологии виртуализации, однако практического решения пока нет. EAC Linux v2 представляет собой компромисс между борьбой с читерами и свободой владельца компьютера. Ради доступа к Fortnite пользователям Linux придётся временно отказаться от части возможностей, за которые многие и выбирают операционную систему с открытым исходным кодом.

SecurityLab