Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
attestos — Bazzite плюс уровень аттестации загрузки TPM. В разработке: сборки не проверены, механизм UKI не решён. Спецификация: github.com/plunder707/attested-gaming | Kitploit
Инструменты/GitHubGitHub/plunder707/attestos
Оборонительные ИнструментыКриптографияАппаратная БезопасностьАутентификацияАнализ Прошивок
GitHubplunder707/attestos

attestos

Bazzite плюс уровень аттестации загрузки TPM. В разработке: сборки не проверены, механизм UKI не решён. Спецификация: github.com/plunder707/attested-gaming

Репозиторий
2302 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

attestos

Экспериментальный образ аттестации загрузки Linux и стенд для сбора свидетельств, предназначенный для проверки того, что вендор античита мог бы верифицировать вместо опоры на белый список имён дистрибутивов.

Механизм, модель угроз и спецификация для вендора находятся в plunder707/attested-gaming. Этот репозиторий — образ, который производит свидетельства.


СТАТУС: ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР МЕХАНИКИ ИСХОДНОГО КОДА. НЕ УСТАНАВЛИВАЕМЫЙ И НЕ ДОВЕРЕННЫЙ ДЛЯ ПРОДАКШЕНА.

Запуски GitHub Actions 31157890393 и 31159951490 собрали QCOW2 на основе Bazzite, загрузили его в QEMU/OVMF с swtpm и без гостевой сети, подготовили постоянные дескрипторы EK/AK и проверили raw quote по SHA-256 PCR 7, 11, 12 и 15 изнутри гостя. Его ограниченная квитанция имеет SHA-256 ad5ef12592cb5f4d1dfa8f0da88148931d48f0e6018924b2de4c766e1523ddaf. Отдельный workflow верификатора 31160003873 проверил финальный коммит агента b918392 этого репозитория на изолированном программном TPM и прошёл регистрацию AK, проверку raw quote, отклонение повторов, отклонение подделки подписи и подключение TPM в QEMU/OVMF.

Загруженный результат также подтверждает блокер политики Bazzite: не было ни файла UKI, ни признаков systemd-stub, предусмотренные аргументы lockdown отсутствовали, а PCR 11 и 15 остались нулевыми. PCR 12 тоже был нулевым, но это не самостоятельный отказ: встроенная командная строка UKI относится к PCR 11, тогда как PCR 12 фиксирует внешние входные параметры командной строки и может корректно оставаться нулевым, если таковые не передаются. Регистрация ключей Secure Boot, измерение командной строки через UKI, аппаратное происхождение, воспроизведение журнала событий, привязка к транспорту и допуск по политике загрузки остаются нерешёнными. Ни один из «зелёных» запусков не создаёт функционирующую продакшен-систему аттестации.

Отдельный положительный контроль Fedora с запечатанным образом прошёл дважды в запуске 31218059725 и ещё раз на голове объединённого исходного кода в запуске 31219745053. Он доказывает, что стенд может загрузить неизменяемый UKI, подписанный вышестоящим проектом, связать выбранный прошивкой путь и хэш загруженного файла с проверкой до загрузки, наблюдать ненулевой PCR 11 и отклонять неподписанную модификацию .cmdline. Это только контроль стенда: все флаги доверия производителя, политики и продакшена остаются ложными, и он не делает предварительную версию Bazzite устанавливаемой.

Отдельная дорожка с подписанным policy-addon для PCR 12 затем прошла дважды в запуске 31234464516. Вышестоящий UKI и PCR 11 остались побайтово идентичными; обе подписанные загрузки применили lockdown=confidentiality module.sig_enforce=1 ровно один раз и воспроизвели PCR 12 ca62dd5f...a8f5; подделка после подписания была отклонена, и система вернулась к базовому нулевому PCR 12. Это доказывает ограниченный механизм, а не развёртываемую иерархию ключей или политику доверия операционной системы.

Этот исходный код доступен для рецензирования и воспроизводимой эмуляции. Никакой GHCR-образ не опубликован, и это не устанавливаемый доверенный дистрибутив.

Завершённый эксперимент с Bazzite описан в BOOTED_IMAGE_CANARY.md. Инструкции по воспроизведению и сборке из исходников — в BUILDING.md. Базовые свидетельства UKI и его независимые критерии допуска зафиксированы в UKI_BASE_DECISION.md. Эксперимент с подписанным policy-addon для PCR 12 описан отдельно в FEDORA_PCR12_ADDON_CANARY.md. Порядок вех и правила остановки отслеживаются в ROADMAP.md. Отдельный контроль стенда с загруженным UKI описан в FEDORA_SEALED_POSITIVE_CONTROL.md.


Что это добавляет к Bazzite

Ничего не удаляется и не пропатчивается. Поверх добавляются четыре вещи:

  1. tpm2-tools и tpm2-tss, которые нужны агенту во время выполнения.
  2. Командная строка ядра в /usr/lib/attestos/cmdline с lockdown=confidentiality и module.sig_enforce=1.
  3. attestos-provision, одноразовый unit, который создаёт отдельные постоянные идентичности RSA EK и AK внутри TPM и читает сертификат подтверждения (endorsement certificate) из NV-памяти, если он существует.
  4. attestos-agent, активируемый через сокет на loopback, который отвечает на строгий запрос attestos.tpm/v1 на идентичность, активацию или котировку сырыми свидетельствами TPM. Агент никогда не выносит вердикт о доверии.

Почему в качестве основы выбран Bazzite

Bazzite основан на Fedora, а семейство Fedora — это то, что белые списки античитов сейчас блокируют. Доказать, что аттестация работает именно здесь, — это и есть тот случай, который стоит доказать. Сборка на SteamOS ничего бы не доказала, потому что SteamOS уже пропускается, и успешная демонстрация там дала бы доступ, который у неё уже есть.

Bazzite также рассчитан на наслаивание. Это OCI-образ, поэтому этот репозиторий — это Containerfile и GitHub Action, а не дистрибутив с зеркалами и установщиками.

Политика должна быть аутентифицирована и измерена до запуска ядра

Именно эта часть определяет, имеет ли всё это хоть какой-то смысл. lockdown=confidentiality блокирует /dev/mem, kprobes против работающего ядра и загрузку неподписанных модулей. Эта гарантия ничего не стоит, если политика живёт только в конфиге загрузчика, который пользователь может редактировать. В противном случае пользователь может удалить аргументы, загрузиться с тем же измерением ядра и предъявить котировку, которая ничего не говорит об отсутствующей политике.

Unified Kernel Image связывает ядро, initrd и встроенную командную строку в один подписанный PE-бинарник, измеряемый в PCR 11. Отдельно подписанный systemd add-on для командной строки может расширять дополнительную политику в PCR 12, не изменяя вышестоящий UKI. Любой из путей должен быть привязан к точно загруженному артефакту и воспроизведён верификатором; наличие файла или ненулевой PCR недостаточно.

Bazzite не использует UKI, и теперь это подтверждено, а не предполагается. Его Containerfile активно исключает пакеты ядра UKI:

dnf5 -y config-manager setopt "*fedora*".exclude="mesa-* kernel-core-* \
    kernel-modules-* kernel-uki-virt-* steam"

systemd-ukify нигде в репозитории не встречается. Таким образом, файл cmdline, поставляемый этим образом, сейчас — не более чем декларация о намерениях: без UKI его нечем запечатать, пользователь может отредактировать его в загрузчике, и PCR 11 не измеряет то, что, как предполагает дизайн, он измеряет.

Исправление Bazzite — это не строка в build.sh. Требуется доверенный путь измерения до запуска ядра — либо изменив способ загрузки образа, либо взяв основу, которая уже загружается через systemd-stub.

Эксперименты сужают практические варианты:

Скачать инструмент