Новый античит Epic на Linux обходится 20-долларовым переходником

· Безопасность
Мэттью Гарретт разобрал готовящуюся вторую версию Easy Anti-Cheat для Linux и показал, что её защита на основе TPM и удалённой аттестации обходится несколькими простыми приёмами с доступом к железу.

cover.svg

Epic анонсировала вторую версию своей Linux-реализации Easy Anti-Cheat. В её основе — модуль безопасности eBPF, который следит за происходящим в системе, плюс обвязка, призванная не дать этот контроль обойти. Схема опирается на три столпа: обязательный Secure Boot (чтобы нельзя было запустить изменённое ядро), measured boot (чтобы подтвердить, что Secure Boot включён и используются нужные ключи) и удалённую аттестацию — TPM подписывает слепок загрузочных измерений, а сервер проверяет, что он пришёл от настоящего TPM с правильными ключами, и пускает в игру.

Вся схема держится на одном допущении: предъявленные измерения подлинные. Доказать это, как показывает Мэттью Гарретт, куда сложнее, чем кажется.

Сбросить TPM на ходу

Подделать подпись своим ключом не выйдет: у каждого TPM есть Endorsement Key с сертификатом, подписанным производителем, и по списку доверенных вендоров сервер отличает настоящий чип от самодельного. Значит, измерения должны прийти от реального TPM. Но на многих десктопных платах TPM сидит на съёмном модуле со стандартной распиновкой, где есть и пин сброса. Достаточно на мгновение замкнуть его на землю — и чип возвращается в исходное состояние, после чего пользовательское окружение записывает в него любые нужные значения. Загружаем изменённое ядро, которое лжёт коду eBPF, а в TPM «проигрываем» ожидаемый журнал от честной загрузки — и он выдаёт вполне легитимный набор измерений.

Чужой TPM через USB

А если чип припаян к плате или спрятан в процессоре? Сложнее, но не намного. Квота должна прийти от TPM — но не обязательно от того, что стоит в вашей машине. Современные TPM подключаются по шине SPI, а Microchip выпускает мост USB-SPI с драйвером для Linux. Подключаем через него обычный съёмный TPM-модуль, велим ядру игнорировать штатный чип и направляем /dev/tpmrm0 на USB-устройство с заранее записанными «доверенными» измерениями — и снова всё выглядит безупречно.

Почему так получается

Удалённая аттестация на ПК плохо работает там, где нельзя жёстко связать конкретный TPM с конкретной системой, — то есть почти везде, кроме корпоративной среды. Возможно, на практике этого и достаточно: вряд ли многие захотят тратить два десятка долларов на такой переходник, а сервер при срабатывании детектора может заблокировать конкретный TPM, вынудив искать новый. Этого барьера может хватить, чтобы отбить охоту. Но технически, заключает Гарретт, защита оставляет желать лучшего.


Источник: Lobsters

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.