Помимо этого объявлено о подготовке версии online-игры Fortnite для Linux. В рамках этого проекта ведётся модернизация системы защиты EAC (Easy Anti-Cheat) для Linux-дистрибутивов и налаживаются контакты с сопровождающими для реализации необходимых для античит-систем возможностей в Linux.
Отмечается, что старая реализация EAC для Linux не обеспечивает должный уровень античит-защиты, из-за чего многие разработчики игр не добавляют поддержку Linux. В новой редакции EAC вместо собственного модуля ядра задействованы штатные механизмы обеспечения безопасности, предоставляемые ядром Linux, а сам античит запускается как сервис systemd. Во второй версии EAC задействованы загрузка в режиме Secure Boot, лог Measured Boot и удалённая аттестация через TPM-чип для подтверждения целостности загруженных компонентов, а также eBPF-программа для монтиринга за процессами.
Среди требований, которые должны быть выполнены в дистрибутивах для использования EAC:
- Загрузка в режиме Secure Boot ядра, драйверов и модулей ядра, подписанных одобренными ключами. Должный уровень верифицированной загрузки уже обеспечен в Ubuntu, Fedora, Bazzite, Bluefin, Debian, openSUSE, SUSE, Rocky Linux и AlmaLinux.
- Активация TPM 2.0 в BIOS для создания верифицируемого лога загрузки (Measured Boot).
- Применение загрузчиков, таких как systemd-boot и GRUB, поддерживающих режим измеряемой загрузки (measured boot), позволяющий подтвердить достоверность конфигурации и загружаемых компонентов.
- Активация в BIOS и ядре технологии IOMMU, предотвращающей доступ читерских аппаратных устройств к памяти игры.
- Включение в ядре режима Lockdown, который ограничивает доступ пользователя root к ядру и блокирует пути обхода UEFI Secure Boot (ограничивается доступ к /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, отладочному режиму kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), некоторым интерфейсам ACPI и MSR-регистрам CPU, блокируются вызовы kexec_file и kexec_load, запрещается переход в спящий режим, лимитируется использование DMA для PCI-устройств, запрещается импорт кода ACPI из переменных EFI, не допускаются манипуляции с портами ввода/вывода).
- Отключение в ядре механизма Kexec, применяемого для запуска нового ядра из старого без полной перезагрузки системы.
- Поддержка LSM-хуков (Linux Security Module) в BPF для подключения eBPF-программ, контролирующих доступ и отслеживающих работу процессов (для блокирования чтения и модификации памяти игры, а также проверки активности античит-системы).
Разработчики Ubuntu уже начали обсуждение опубликованных требований, с учётом прошлого негативного опыта нарушений конфиденциальности Windows-пользователей (EAC скрыто выполнял код в нулевом кольце защиты, передавал данные на внешние серверы без явного согласия пользователя и оставался в системе после удаления игры). Из опасений также упоминается увеличение поверхности атак со стороны вредоносного ПО и связь с китайской компанией Tencent (владеет 40% акций Epic Games), которая может быть заинтересована в слежке за пользователями. Предлагается не распространять пакеты c EAC через основные репозитории, информировать пользователей о возможных рисках и предоставить отдельную загрузочную конфигурацию для запуска EAC.
Дополнение: Мэтью Гаррет (Matthew Garrett), известный разработчик ядра Linux, в своё время получивший от Фонда СПО премию за достижения в области обеспечения загрузки Linux на системах с UEFI Secure Boot,
раскритиковал подход, применяемый в новом Easy Anti-Cheat, и заявил, что античит можно будет легко обойти. Реализованная в EAC защита привязывается к аттестации через TPM, но
на многих материнских платах TPM-чип не распаян, а подключается в форме модуля, имеющего pin для сброса состояния, замкнув который можно обнулить TPM. После этого модифицированное ядро может записать в обнулённый TPM поддельные, но ожидаемые античитом значения измерений, и TPM их заверит корректной цифровой подписью. Также можно подключить через USB-to-SPI-адаптер внешний модуль TPM и использовать модифицированное ядро для перенаправления запросов к этому модулю.
Источник: https://www.opennet.ru/opennews/art.shtml?num=66477
(opennet.ru, основная лента)
