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

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

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

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

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

Категории

Все категории
Loading categories
shim-review — Обзоры shim | Kitploit
Инструменты/GitHubGitHub/rhboot/shim-review
Анализ уязвимостейАнализ КодаБезопасность Цепочки ПоставокОбучение и ОбразованиеПодобранные РесурсыАнализ Прошивок
GitHubrhboot/shim-review

shim-review

Обзоры shim

Репозиторий
89171410 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

Этот репозиторий предназначен для рассмотрения запросов на подписание shim. Чтобы создать запрос на рассмотрение:

  • клонируйте этот репозиторий (желательно сделайте форк)
  • отредактируйте шаблон ниже
  • добавьте shim.efi для подписания
  • добавьте журналы сборки
  • добавьте любые дополнительные двоичные файлы/сертификаты/SHA256-хэши, которые могут потребоваться
  • закоммитьте всё это
  • добавьте тег вида "myorg-shim-arch-YYYYMMDD"
  • отправьте в GitHub
  • создайте issue на https://github.com/rhboot/shim-review/issues со ссылкой на ваш тег
  • одобрение готово, когда к вашему issue будет добавлена метка "accepted"

Обратите внимание, что у нас есть опыт работы только с GRUB2 или systemd-boot в Linux, так что убедить нас одобрить что-либо ещё для подписания потребует от вас убедительных аргументов.

С 20 октября 2025 года shim-файлы, отправляемые в Microsoft, будут подписываться ключами 2011 и 2023 годов. За каждый отправленный shim вы получите обратно две копии, каждая подписанная разным ключом. Вот последняя информация от Microsoft: https://techcommunity.microsoft.com/blog/hardware-dev-center/signing-with-the-new-2023-microsoft-uefi-certificates-what-submitters-need-to-kn/4455787

Новые требования к подписанию также вступили в силу и доступны здесь: https://techcommunity.microsoft.com/blog/hardware-dev-center/updated-microsoft-uefi-signing-requirements/1062916 Обратите внимание, что прохождение этого рассмотрения shim освобождает вас от ежегодных аудитов безопасности, если ваш shim передаёт управление только загрузчикам с открытым исходным кодом.

Подсказка: загляните в каталог docs в этом репозитории, чтобы узнать, как подать заявку и подписать ваш shim.

Вот шаблон:


Какая организация или какие люди запрашивают подписание?


Название организации и веб-сайт:
[ваш текст здесь]


Какие юридические данные подтверждают подлинность организации?

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

Рецензенты должны иметь возможность легко проверить, что ваша организация является юридическим лицом, чтобы предотвратить злоупотребления. Предоставьте информацию, которая может с уверенностью подтвердить подлинность.


Записи в реестре компаний/налоговом реестре или эквивалент:
(подойдёт ссылка на запись об организации в реестре вашей юрисдикции)

[ваш текст здесь]

Публичные данные как вашей организации, так и эмитента в EV-сертификате, используемом для подписания .cab-файлов в службах подписания файлов Microsoft Hardware Dev Center.
(не сертификат CA, встроенный в ваш бинарный файл shim)

Пример:``` Issuer: O=MyIssuer, Ltd., CN=MyIssuer EV Code Signing CA Subject: C=XX, O=MyCompany, Inc., CN=MyCompany, Inc.

root@kitploit:~
*******************************************************************************
### Для какого продукта или услуги это предназначено?
*******************************************************************************
[ваш текст здесь]

*******************************************************************************
### Каково обоснование того, что это действительно должно быть подписано, чтобы весь мир мог загрузить его?
*******************************************************************************
[ваш текст здесь]

*******************************************************************************
### Почему вы не можете использовать shim из другого дистрибутива, который уже подписан?
*******************************************************************************
[ваш текст здесь]

*******************************************************************************
### Кто является основным контактным лицом для обновлений безопасности и т. д.?
Контакты службы безопасности должны быть проверены до того, как shim будет принят. При последующих запросах проверка контактов необходима только в том случае, если контакты службы безопасности или их PGP-ключи изменились с момента последней успешной проверки.

Уполномоченный рецензент начнёт проверку контактов, отправив каждому контакту службы безопасности PGP-зашифрованное письмо, содержащее случайные слова.
Вас попросят опубликовать содержимое этих писем в вашем issue `shim-review`, чтобы подтвердить владение адресами электронной почты и PGP-ключами.
Загрузите PGP-ключи на известный сервер ключей, например keyserver.ubuntu.com, и/или включите их в рецензию в виде .asc-файла, и укажите на них здесь.

*******************************************************************************
- Имя:
- Должность:
- Адрес электронной почты:
- Отпечаток PGP-ключа:
- Расположение файла/сервера ключей:

*******************************************************************************
### Кто является дополнительным контактным лицом для обновлений безопасности и т. д.?
*******************************************************************************
- Имя:
- Должность:
- Адрес электронной почты:
- Отпечаток PGP-ключа:
- Расположение файла/сервера ключей:

*******************************************************************************
### Были ли эти двоичные файлы созданы из tar-архива релиза shim 16.1?
Пожалуйста, создавайте свои двоичные файлы shim, начиная с tar-файла релиза shim 16.1: https://github.com/rhboot/shim/releases/download/16.1/shim-16.1.tar.bz2

Это соответствует https://github.com/rhboot/shim/releases/tag/16.1 и содержит соответствующий исходный код gnu-efi.

Убедитесь, что tar-архив корректен, проверив контрольную сумму вашей загрузки
(SHA256, SHA512) со следующими:```
46319cd228d8f2c06c744241c0f342412329a7c630436fce7f82cf6936b1d603  shim-16.1.tar.bz2
ca5f80e82f3b80b622028f03ef23105c98ee1b6a25f52a59c823080a3202dd4b9962266489296e99f955eb92e36ce13e0b1d57f688350006bba45f2718f159fb  shim-16.1.tar.bz2

Убедитесь, что ваш процесс сборки использует этот файл как источник истины (за исключением внешних патчей) и что его контрольная сумма совпадает. Вы также можете дополнительно проверить релиз, проверив PGP-подпись: есть откреплённая подпись

Релиз подписан мейнтейнером Питером Джонсом (Peter Jones) — его мастер-ключ имеет отпечаток B00B48BC731AA8840FED9FB0EED266B70F4FEF10, а подписывающий суб-ключ в данной подписи имеет отпечаток 02093E0D19DDE0F7DFFBB53C1FD3F540256A1372. Копия его открытого ключа включена сюда для справки: pjones.asc

Как только вы убедитесь, что используемый вами tar-архив корректен и подлинен, подтвердите это здесь простым да.

Краткое руководство по проверке открытых ключей и подписей должно быть доступно в каталоге docs.


[ваш текст здесь]


URL репозитория, содержащего точный код, который был собран для получения вашего бинарного файла:

Подсказка: если вы прикрепите все патчи и модификации, используемые в вашем приложении, вы можете указать здесь URL вашего приложения (https://github.com/YOUR_ORGANIZATION/shim-review).

Вы также можете указать свои собственные git-серверы, где размещён код.


[ваш URL здесь]


Какие патчи применяются и почему:

Укажите все внешние патчи и модификации процесса сборки, которые используются при вашей сборке и делают ваш shim-бинарный файл именно тем, который вы приложили к данной заявке.


[ваш текст здесь]


Установлен ли бит NX в вашем shim? Если да, то является ли весь ваш загрузочный стек NX-совместимым и какое тестирование вы провели для обеспечения такой совместимости?

См. https://techcommunity.microsoft.com/t5/hardware-dev-center/nx-exception-for-shim-community/ba-p/3976522 для получения дополнительных сведений о подписании shim без бита NX.


[ваш текст здесь]


Какую именно реализацию Secure Boot в GRUB2 вы используете? (Либо вышестоящий (upstream) верификатор shim_lock GRUB2, либо нижестоящая (downstream) реализация, подобная RHEL/Fedora/Debian/Canonical)

Пропустите этот пункт, если вы не используете GRUB2.


[ваш текст здесь]


Применены ли исправления для всех следующих CVE в GRUB2?

Пропустите этот пункт, если вы не используете GRUB2; в противном случае убедитесь, что они присутствуют, и подтвердите ответом да.

  • Июль 2020 — BootHole
    • Подробности: https://lists.gnu.org/archive/html/grub-devel/2020-07/msg00034.html
    • CVE-2020-10713
    • CVE-2020-14308
    • CVE-2020-14309
    • CVE-2020-14310
    • CVE-2020-14311
    • CVE-2020-15705
    • CVE-2020-15706
    • CVE-2020-15707
  • Март 2021
    • Подробности: https://lists.gnu.org/archive/html/grub-devel/2021-03/msg00007.html
    • CVE-2020-14372
    • CVE-2020-25632
    • CVE-2020-25647
    • CVE-2020-27749
    • CVE-2020-27779
    • CVE-2021-3418 (если вы поставляете модуль shim_lock)
    • CVE-2021-20225
    • CVE-2021-20233
  • Июнь 2022
    • Подробности: https://lists.gnu.org/archive/html/grub-devel/2022-06/msg00035.html, увеличение SBAT до 2
    • CVE-2021-3695
    • CVE-2021-3696
    • CVE-2021-3697
    • CVE-2022-28733
    • CVE-2022-28734
    • CVE-2022-28735
    • CVE-2022-28736
    • CVE-2022-28737
  • Ноябрь 2022
    • Подробности: https://lists.gnu.org/archive/html/grub-devel/2022-11/msg00059.html, увеличение SBAT до 3
    • CVE-2022-2601
    • CVE-2022-3775
  • Октябрь 2023 — уязвимости NTFS
    • Подробности: https://lists.gnu.org/archive/html/grub-devel/2023-10/msg00028.html, увеличение SBAT до 4
    • CVE-2023-4693
    • CVE-2023-4692
  • Февраль 2025
    • Подробности: https://lists.gnu.org/archive/html/grub-devel/2025-02/msg00024.html, увеличение SBAT до 5
    • CVE-2024-45774
    • CVE-2024-45775
    • CVE-2024-45776
    • CVE-2024-45777
    • CVE-2024-45778
    • CVE-2024-45779
    • CVE-2024-45780
    • CVE-2024-45781
    • CVE-2024-45782
    • CVE-2024-45783
    • CVE-2025-0622
    • CVE-2025-0624
    • CVE-2025-0677
    • CVE-2025-0678
    • CVE-2025-0684
    • CVE-2025-0685
    • CVE-2025-0686
    • CVE-2025-0689
    • CVE-2025-0690
    • CVE-2025-1118
    • CVE-2025-1125

[ваш текст здесь]


Если shim загружает загрузчик GRUB2, и если эти исправления были применены, установлено ли глобальное поколение SBAT из upstream в вашем бинарном файле GRUB2 равным 5?

Пропустите этот пункт, если вы не используете GRUB2; в противном случае есть ли в вашем бинарном файле GRUB2 запись, аналогичная:
grub,5,Free Software Foundation,grub,GRUB_UPSTREAM_VERSION,https://www.gnu.org/software/grub/?


[ваш текст здесь]


Были ли хэши старых shim предоставлены Microsoft для проверки и добавления в будущие обновления DBX?

Запрещает ли ваша новая цепочка доверия загрузку старых сборок GRUB2, затронутых указанными CVE?

Если у вас не было ранее подписанного shim, укажите это здесь. В противном случае достаточно простого да.


[ваш текст здесь]


Если ваша цепочка доверия загрузки включает ядро Linux:

Применён ли вышестоящий коммит 1957a85b0032a81e6482ca4aab883643b8dae06e "efi: Restrict efivar_ssdt_load when the kernel is locked down"?

Применён ли вышестоящий коммит 75b0cea7bf307f362057cc778efe89af4c615354 "ACPI: configfs: Disallow loading ACPI tables when locked down"?

Применён ли вышестоящий коммит eadb2f47a3ced5c64b23b90fd2a3463f63726066 "lockdown: also lock down previous kgdb use"?

Подсказка: в вышестоящих ядрах все эти коммиты должны быть применены, но если вы поставляете собственную сильно модифицированную старую версию ядра, поддерживаемую отдельно от upstream, это может быть не так.
Если вы поставляете старое ядро, перепроверьте свои источники; возможно, у вас есть не все патчи, но вы поставляете конфигурацию, которая не раскрывает указанные проблемы.


[ваш текст здесь]


Как ваше подписанное ядро обеспечивает lockdown, когда ваша система работает с включённым Secure Boot?

Подсказка: если это не так, мы вряд ли подпишем ваш shim.


[ваш текст здесь]


Собираете ли вы своё подписанное ядро с дополнительными локальными патчами? Что они делают?


[ваш текст здесь]


Используете ли вы эфемерный ключ для подписи модулей ядра?

Если нет, опишите, как вы обеспечиваете, чтобы одна сборка ядра не загружала модули, собранные для другого ядра.


[ваш текст здесь]


Если вы используете функциональность vendor_db для предоставления нескольких сертификатов и/или хэшей, кратко опишите вашу настройку сертификатов.

Если есть хэши из списка разрешённых, предоставьте точные бинарные файлы, для которых созданы хэши, через сервис обмена файлами, доступный публично с анонимным доступом для проверки.


[ваш текст здесь]


Если вы повторно используете сертификат CA из вашего последнего shim-бинарного файла, вам необходимо добавить хэши предыдущих бинарных файлов GRUB2, подверженных упомянутым ранее CVE, в vendor_dbx в shim. Опишите вашу стратегию.

Это гарантирует, что ваши новые shim+GRUB2 больше не смогут выполнять цепочную загрузку (chainload) тех старых бинарных файлов GRUB2 с проблемами.

Если это ваша первая заявка или вы используете новый сертификат CA, сообщите об этом здесь.


[ваш текст здесь]


Является ли Dockerfile в вашем репозитории рецептом для воспроизведения сборки вашего shim-бинарного файла?

Рецензент всегда должен иметь возможность запустить docker build ., чтобы получить точный бинарный файл, который вы приложили к своей заявке.

Подсказка: предпочтительно использовать замороженные пакеты для вашего тулчейна, поскольку обновление GCC, binutils, gnu-efi может привести к сборке shim-бинарного файла с другой контрольной суммой.

Если ваши shim-бинарные файлы не могут быть воспроизведены с помощью предоставленного Dockerfile, объясните, почему это так, какими будут различия и какое окружение сборки (ОС и тулчейн) используется для воспроизведения этой сборки? В этом случае напишите подробное руководство, как настроить это окружение сборки с нуля.


[ваш текст здесь]


Какие файлы в этом репозитории являются журналами вашей сборки?

Это должно включать журналы создания корневых каталогов сборки (buildroots), применения патчей, выполнения сборки, создания архивов и т.д.


[ваш текст здесь]


Какие изменения были внесены в цепочку безопасной загрузки дистрибутива с момента последнего подписания вашего SHIM?

Например, подписание новых вариантов ядра, UKI, systemd-boot, новых сертификатов, нового CA и т.д.

Пропустите этот пункт, если это ваша первая заявка на подписание shim.


[ваш текст здесь]


Каков SHA256-хэш вашего окончательного shim-бинарного файла?


[ваш текст здесь]


Как вы управляете ключами, используемыми в вашем shim, и защищаете их?

Опишите стратегию безопасности, используемую для защиты ключей. Это может варьироваться от использования аппаратных токенов, таких как HSM или смарт-карты, изолированных от сети хранилищ (air-gapped), физических сейфов, до других хороших практик.


[ваш текст здесь]


Используете ли вы EV-сертификаты в качестве встроенных сертификатов в shim?

Достаточно ответа да или нет. За последний вариант никаких штрафов нет.


[ваш текст здесь]


Встраиваете ли вы сертификат CA в свой shim?

Достаточно ответа да или нет. За последний вариант никаких штрафов нет. Однако если да: включает ли этот сертификат X509v3 Basic Constraints, указывающие, что это CA? См. docs для получения дополнительных рекомендаций по этому вопросу.


[ваш текст здесь]


Добавляете ли вы специфичную для вендора запись SBAT в раздел SBAT каждого бинарного файла, поддерживающего метаданные SBAT (GRUB2, fwupd, fwupdate, systemd-boot, systemd-stub, shim + все дочерние shim-бинарные файлы)?

Предоставьте точные записи SBAT для всех бинарных файлов, которые вы загружаете напрямую через shim.

Подсказка: история SBAT и дополнительная информация о том, как это работает, доступны здесь. Этот документ объёмный, поэтому для некоторых примеров обратитесь к SBAT.example.md

Если вы используете нижестоящую (downstream) реализацию GRUB2 (например, из Fedora или Debian), убедитесь, что их записи SBAT сохранены, и что вы добавляете свои собственные (не заменяя их), чтобы упростить отзыв.

Не забудьте опубликовать записи всех бинарных файлов. Помимо вашего загрузчика, вы также можете поставлять, например, обновлятель прошивки, у которого они тоже будут.

Подсказка: выполните objcopy --dump-section .sbat=/dev/stdout YOUR_EFI_BINARY, чтобы получить эти записи. Вставьте их сюда. Желательно обрамлять каждый список тремя обратными кавычками (```), чтобы они корректно отображались.


[ваш текст здесь]


Если shim загружает загрузчик GRUB2, какие модули встроены в ваш подписанный образ GRUB2?

Пропустите этот пункт, если вы не используете GRUB2.

Подсказка: речь идёт о тех модулях, которые находятся в самом бинарном файле, а не о файлах .mod в вашей файловой системе.


[ваш текст здесь]


Если вы используете systemd-boot на arm64 или riscv, включено ли исправление для непроверенной загрузки Devicetree Blob?


[ваш текст здесь]


Каково происхождение и полный номер версии вашего загрузчика (GRUB2, systemd-boot или другого)?


[ваш текст здесь]


Если ваш shim запускает какие-либо другие компоненты, помимо вашего загрузчика, предоставьте дополнительные сведения о том, что запускается.

Подсказка: наиболее распространённым случаем здесь будет обновлятель прошивки, например fwupd.


[ваш текст здесь]


Если ваш GRUB2 или systemd-boot запускает какие-либо другие бинарные файлы, не являющиеся ядром Linux, в режиме Secure Boot, предоставьте дополнительные сведения о том, что запускается и как это обеспечивает lockdown Secure Boot.

Пропустите этот пункт, если вы не используете GRUB2 или systemd-boot.


[ваш текст здесь]


Как запускаемые компоненты предотвращают выполнение неаутентифицированного кода?

Обобщите в одном-двух предложениях, как работает ваша безопасная цепочка загрузки на высоком уровне.


[ваш текст здесь]


Загружает ли ваш shim какие-либо загрузчики, поддерживающие загрузку неподписанных ядер (например, некоторые конфигурации GRUB2)?


[ваш текст здесь]


Какое ядро вы используете? Какие патчи и конфигурация включены в него для обеспечения Secure Boot?


[ваш текст здесь]


Какой вклад вы внесли, чтобы помочь нам проверять заявки других кандидатов?

Процесс проверки задуман как коллегиальная (peer-review) работа, и лучший способ ускорить рассмотрение вашей заявки — помочь с проверкой заявок других. В большинстве случаев мы — волонтёры, работающие на этой площадке в свободное время, а не наёмные сотрудники, которым платят за проверку заявок в рабочее время.

Разумный срок ожидания проверки может достигать 2–3 месяцев. Помощь нам — лучший способ сократить этот период. Чем больше помощи мы получим, тем быстрее и глаже пойдут дела.

Новичкам для начала процесса участия рекомендуются заявки, помеченные как easy to review.


[ваш текст здесь]


Добавьте любую дополнительную информацию, которая, по вашему мнению, может понадобиться для проверки этой заявки на подписание shim.


[ваш текст здесь]