Epic Games принесёт Fortnite на Linux с новой версией Easy Anti-Cheat, но её уже раскритиковали за обход через TPM
Компания Epic Games представила предварительную версию своего лаунчера с долгожданной поддержкой Linux. Помимо обновлённого оформления и ускоренного запуска, в него добавили встроенный голосовой чат, единую страницу управления играми, возможность закреплять свои приложения на панели, расширенный поиск и мониторинг скорости загрузок. Главная же новость — подготовка к выпуску Fortnite на Linux, ради которой полностью перерабатывается система защиты Easy Anti-Cheat.
Старая реализация EAC для Linux не обеспечивала нужного уровня защиты, из-за чего многие разработчики просто отказывались от поддержки платформы. В новом подходе отказались от собственного модуля ядра: теперь античит работает как сервис systemd и опирается на штатные механизмы безопасности самого Linux. Это должно упростить интеграцию и сделать защиту более прозрачной для дистрибутивов.
Вторая версия EAC задействует загрузку в режиме Secure Boot, лог Measured Boot и удалённую аттестацию через TPM-чип для подтверждения целостности компонентов. Также используется eBPF-программа для мониторинга процессов. Среди обязательных требований к дистрибутивам — верифицированная загрузка ядра и модулей, подписанных одобренными ключами.
Такой уровень уже обеспечен в Ubuntu, Fedora, Debian, openSUSE, Rocky Linux и AlmaLinux. В BIOS должен быть активирован TPM 2.0 для создания верифицируемого лога загрузки, а загрузчики вроде systemd-boot и GRUB обязаны поддерживать режим measured boot. Это позволяет подтвердить достоверность конфигурации и загружаемых компонентов перед тем, как античит допустит игрока к сессии.
Дополнительно требуется активация технологии IOMMU, которая предотвращает доступ читерских аппаратных устройств к памяти игры. В ядре должен быть включён режим Lockdown, ограничивающий доступ даже для root: он блокирует /dev/mem, /dev/kmem, debugfs, kprobes, BPF и другие интерфейсы, способные обойти UEFI Secure Boot. Также запрещаются вызовы kexec_file и kexec_load, импорт кода ACPI из переменных EFI и манипуляции с портами ввода-вывода.
Механизм Kexec, позволяющий запустить новое ядро из старого без полной перезагрузки, должен быть отключён. Обязательна и поддержка LSM-хуков в BPF для подключения eBPF-программ, которые контролируют доступ и отслеживают работу процессов. Именно они будут блокировать чтение и модификацию памяти игры, а также проверять активность самой античит-системы.
Разработчики Ubuntu уже начали обсуждать опубликованные требования, вспоминая негативный опыт пользователей Windows. Ранее EAC скрыто выполнял код в нулевом кольце защиты, передавал данные на внешние серверы без явного согласия и оставался в системе после удаления игры. Высказываются опасения насчёт увеличения поверхности атак со стороны вредоносного ПО, а также упоминается связь Epic Games с китайской Tencent, владеющей 40% акций компании, которая может быть заинтересована в слежке.
Звучат предложения не распространять пакеты с EAC через основные репозитории и предоставить отдельную загрузочную конфигурацию. Известный разработчик ядра Linux Мэтью Гаррет раскритиковал новый подход и заявил, что античит можно будет легко обойти. Защита привязывается к аттестации через TPM, но на многих материнских платах чип не распаян, а выполнен в виде подключаемого модуля с pin-контактом для сброса состояния.
Замкнув его, можно обнулить TPM, после чего модифицированное ядро запишет туда поддельные, но ожидаемые античитом значения измерений, и чип заверит их корректной цифровой подписью. Другой вектор атаки — подключение через USB-to-SPI-адаптер внешнего модуля TPM и использование модифицированного ядра для перенаправления запросов к этому подконтрольному устройству. Таким образом, вся цепочка доверия, построенная на аппаратной аттестации, оказывается под угрозой ещё до того, как Fortnite доберётся до массового пользователя Linux.