Безопасная загрузка¶
Безопасная загрузка (англ. Secure Boot) — это технология, входящая в состав спецификации UEFI (Unified Extensible Firmware Interface), которая предназначена для проверки подлинности и целостности загружаемого программного обеспечения на этапе запуска компьютера. Основная цель Secure Boot — предотвращение выполнения вредоносного кода (например, руткитов и буткитов) до загрузки операционной системы, путём верификации цифровых подписей загрузчиков, драйверов и других компонентов, участвующих в процессе загрузки.
¶История
Концепция безопасной загрузки возникла как ответ на рост числа атак, направленных на загрузочный сектор и ранние этапы запуска операционной системы. В середине 2000-х годов такие угрозы, как руткиты, способные перехватывать управление до загрузки ОС, стали серьёзной проблемой. Традиционная система BIOS (Basic Input/Output System) не имела механизмов проверки подлинности загружаемого кода, что делало уязвимыми миллионы устройств.
Разработка Secure Boot началась в рамках спецификации UEFI, которая пришла на смену BIOS. UEFI Forum, консорциум, включающий такие компании, как Intel, Microsoft, AMD и другие, впервые включил Secure Boot в спецификацию UEFI 2.2 в 2005 году. Однако широкое внедрение технологии началось с выходом операционной системы Windows 8 в 2012 году. Microsoft сделала Secure Boot обязательным требованием для сертификации устройств на совместимость с Windows 8 и последующими версиями. Это решение вызвало широкую дискуссию в сообществе разработчиков свободного программного обеспечения, так как Secure Boot мог препятствовать загрузке альтернативных ОС, таких как Linux.
¶Принцип работы
Secure Boot основан на криптографической верификации. Процесс загрузки включает несколько этапов:
- Хранение ключей. В энергонезависимой памяти UEFI (NVRAM) хранятся базы данных ключей: KEK (Key Exchange Key), db (база данных разрешённых подписей) и dbx (база данных отозванных подписей). KEK используется для подписи обновлений баз данных, а db и dbx содержат сертификаты, хеши или подписи доверенных и недоверенных загрузчиков.
- Верификация загрузчика. При включении питания UEFI-прошивка проверяет цифровую подпись загрузчика операционной системы (например, bootmgfw.efi для Windows или shim.efi для Linux) по базе db. Если подпись действительна и не находится в списке отозванных (dbx), загрузка продолжается.
- Цепочка доверия. После верификации загрузчика он, в свою очередь, проверяет подписи последующих компонентов: ядра ОС, драйверов и модулей. Этот процесс называется «цепочкой доверия» (chain of trust). Если на любом этапе подпись отсутствует или недействительна, загрузка прерывается, и система выводит сообщение об ошибке.
Secure Boot не защищает от всех видов атак — например, он не предотвращает эксплуатацию уязвимостей в самой прошивке UEFI. Однако он эффективно блокирует выполнение неподписанного кода на ранних этапах загрузки.
¶Классификация и варианты реализации
Secure Boot может быть реализован в различных режимах:
- Включённый (Enabled). Полная проверка подписей всех загружаемых компонентов. Это стандартный режим для большинства потребительских устройств с предустановленной Windows.
- Выключенный (Disabled). Проверка подписей не выполняется. Этот режим используется для загрузки неподписанных ОС (например, некоторых дистрибутивов Linux без поддержки Secure Boot) или для отладки.
- Настраиваемый (Custom). Пользователь может вручную добавлять или удалять ключи в базах db и dbx, а также отключать проверку для отдельных компонентов. Этот режим доступен в большинстве прошивок UEFI, но требует технических знаний.
В некоторых реализациях, например, в прошивках от Intel и AMD, Secure Boot может быть дополнен технологией Measured Boot, которая записывает хеши загруженных компонентов в TPM (Trusted Platform Module) для последующей проверки удалёнными сервисами (например, Windows Defender System Guard).
¶Применение
Secure Boot используется в следующих сценариях:
- Операционные системы. Windows (начиная с версии 8), большинство дистрибутивов Linux (через загрузчик shim, подписанный Microsoft) и некоторые версии macOS (на устройствах с процессорами Intel) поддерживают Secure Boot.
- Встроенные системы. Secure Boot применяется в промышленных контроллерах, сетевых устройствах и IoT-устройствах для защиты от несанкционированной прошивки.
- Виртуализация. В гипервизорах (например, Hyper-V) Secure Boot может использоваться для защиты виртуальных машин.
¶Критика и ограничения
Secure Boot неоднократно подвергался критике по нескольким причинам:
- Ограничение выбора ОС. На ранних этапах внедрения Secure Boot на устройствах с Windows 8 блокировал загрузку Linux и других свободных ОС. Позднее Microsoft разрешила добавление ключей для Linux, но процесс остаётся сложным для рядового пользователя.
- Контроль производителя. В некоторых реализациях (например, на устройствах с ARM-процессорами) Secure Boot может быть настроен так, что пользователь не может отключить его или добавить собственные ключи, что ограничивает свободу использования устройства.
- Уязвимости. В 2016 году была обнаружена уязвимость в реализации Secure Boot на некоторых материнских платах (BadUSB), позволяющая обходить проверку подписей. В 2023 году исследователи нашли способ обхода Secure Boot через уязвимость в загрузчике GRUB (CVE-2023-40547).
- Сложность настройки. Для добавления собственных ключей или отключения Secure Boot требуется вход в меню UEFI, что может быть неочевидно для неподготовленных пользователей.
¶Влияние на экосистему
Secure Boot стал важным элементом безопасности современных компьютеров. Он входит в требования для сертификации Windows Hardware Compatibility Program, что стимулирует производителей внедрять его на всех новых устройствах. В России Secure Boot поддерживается на большинстве ПК, поставляемых с предустановленной Windows, а также на некоторых устройствах с отечественными операционными системами, такими как Astra Linux, которые используют собственные ключи для подписи загрузчиков.
В 2024 году Secure Boot остаётся стандартной функцией для всех новых компьютеров на базе x86-64 и ARM, хотя его настройка может варьироваться в зависимости от производителя материнской платы или прошивки.
¶См. также
- UEFI
- Trusted Platform Module (TPM)
- Загрузчик операционной системы
- Руткит
¶Источники
- UEFI Forum. «UEFI Specification, Version 2.10». 2023.
- Microsoft. «Secure Boot». Документация Windows Hardware Developer Center.
- Linux Foundation. «Secure Boot and Linux». 2012.
- CVE-2023-40547. «GRUB2 Secure Boot Bypass Vulnerability». 2023.
- Федеральная служба по техническому и экспортному контролю России. «Методические рекомендации по защите информации с использованием Secure Boot». 2021.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


