Защита процесса загрузки Windows

Windows имеет множество функций, которые помогают защитить вас от вредоносных программ, и она делает удивительно хорошую работу. За исключением приложений, разрабатываемых организациями самостоятельно для внутреннего использования, все приложения Microsoft Store должны соответствовать ряду требований, чтобы пройти сертификацию и быть представленными в Microsoft Store. В процессе сертификации проверяется несколько критериев, включая безопасность. Этот процесс является эффективным средством защиты Microsoft Store от вредоносных программ. Даже если вредоносное приложение все же проходит, Windows включает ряд функций безопасности, которые могут смягчить этот эффект. Например, приложения Microsoft Store изолированы и не имеют разрешений, необходимых для доступа к данным пользователя или изменения параметров системы.

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

Эти компоненты — это лишь некоторые из способов защиты Windows от вредоносных программ. Однако эти функции безопасности защищают вас только после запуска Windows. Современные вредоносные программы и, в частности, буткиты, могут запускаться до Windows, полностью обходя безопасность ОС и оставаясь скрытыми.

Запуск Windows 10 или Windows 11 на компьютере с поддержкой UEFI гарантирует, что Trusted Boot защищает компьютер от вредоносных программ с момента включения. Эта защита продолжается до тех пор, пока не возьмет на себя защита от вредоносных программ. Если по какой-либо случайности вредоносные программы заразят ваш компьютер, он не сможет оставаться скрытым. Доверенная загрузка может проверить целостность системы в инфраструктуре таким образом, что вредоносная программа не может маскировать. Даже для компьютеров без UEFI Windows обеспечивает повышенную безопасность при запуске по сравнению с более ранними версиями Windows.

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

Угроза: программы rootkit

Rootkits — это сложный и опасный тип вредоносных программ. Они выполняются в режиме ядра с теми же привилегиями, что и у ОС. Так как руткиты имеют те же права, что и ОС, и запускаются до нее, они могут полностью скрывать себя и другие приложения. Зачастую программы rootkit входят в набор вредоносных программ, которые могут обходить процедуры входа, записывать пароли и нажатия клавиш, перемещать конфиденциальные файлы и получать зашифрованные данные.

Различные типы программ rootkit загружаются на различных этапах процесса запуска:

  • Программы rootkit встроенного ПО. Эти комплекты перезаписывают встроенное ПО базовой системы ввода-вывода компьютера или другого оборудования, чтобы rootkit мог запуститься до Windows.
  • Буткиты. Эти комплекты заменяют загрузчик ОС (небольшую часть программного обеспечения, которая запускает ОС), чтобы компьютер загружал загрузчик перед ОС.
  • Программы rootkit, работающие на уровне ядра. Эти комплекты заменяют часть ядра ОС, чтобы rootkit мог автоматически запускаться при загрузке ОС.
  • Драйверные программы rootkit. Эти программы выдают себя за один из надежных драйверов, используемых Windows для взаимодействия с оборудованием компьютера.

Меры противодействия

Windows поддерживает четыре функции, которые помогают предотвратить загрузку rootkit и bootkit во время процесса запуска:

  • Безопасная загрузка. Компьютеры с встроенным ПО UEFI и доверенным платформенным модулем (TPM) можно настроить для загрузки только доверенных загрузчиков ОС.
  • Надежная загрузка. Windows проверяет целостность всех компонентов процесса запуска перед их загрузкой.
  • Ранний запуск защиты от вредоносных программ (ELAM). ELAM проверяет все драйверы перед их загрузкой и блокирует загрузку неутвержденных драйверов.
  • Измеряемая загрузка Встроенное ПО компьютера регистрирует процесс загрузки, и Windows может отправить его на доверенный сервер, который может объективно оценить работоспособности компьютера.

На рисунке 1 показан процесс запуска Windows.

Снимок экрана: процесс запуска Windows.

Рисунок 1. Безопасная загрузка, надежная загрузка и измеряемая загрузка блокируют вредоносные программы на каждом этапе:

Безопасная загрузка и измеряемая загрузка возможны только на компьютерах с UEFI 2.3.1 и микросхемой доверенного платформенного модуля. К счастью, все компьютеры Windows 10 и Windows 11, которые соответствуют требованиям программы совместимости оборудования Windows, имеют эти компоненты, и многие компьютеры, предназначенные для более ранних версий Windows, также имеют их.

В следующих разделах описаны безопасная загрузка, надежная загрузка, ELAM и измеряемая загрузка.

Безопасная загрузка

Когда компьютер запускается, он сначала находит загрузчик ОС. Компьютеры без безопасной загрузки запускают любой загрузчик на жестком диске компьютера. Компьютер не может определить, является ли это доверенной ОС или rootkit.

При запуске компьютера, оснащенного UEFI, компьютер сначала проверяет наличие цифровой подписи у встроенного ПО, что снижает риск запуска программ rootkit встроенного ПО. Если включена безопасная загрузка, встроенное ПО проверяет цифровую подпись загрузчика, чтобы убедиться, что она не была изменена. Если загрузчику не изменен, встроенное ПО запускает загрузчик, только если выполняется одно из следующих условий.

  • Загрузчик был подписан с использованием доверенного сертификата. Для компьютеров, сертифицированных для Windows, сертификат Майкрософт является доверенным.
  • Пользователь вручную утвердил цифровую подпись загрузчика. Это действие позволяет пользователю загружать операционные системы сторонних производителей.

Все сертифицированные для компьютеров с Windows x86 должны соответствовать нескольким требованиям, связанным с безопасной загрузкой:

  • Безопасная загрузка должна быть включена по умолчанию.
  • Они должны доверять сертификату Майкрософт (и, следовательно, любому загрузчику, подписанному корпорацией Майкрософт).
  • Они должны разрешать пользователю настраивать безопасную загрузку для доверия другим загрузчикам.
  • ПК должны разрешать пользователю полностью отключить безопасную загрузку.

Эти требования помогают защититься от программ rootkit, позволяя запускать любую операционную систему. Существует три варианта запуска сторонних операционных систем.

  • Используйте ОС с сертифицированным загрузчиком. Так как все сертифицированные для компьютеров с Windows должны доверять сертификату Майкрософт, корпорация Майкрософт предлагает службу для анализа и подписания любого загрузчика, отличного от Майкрософт, чтобы он был доверенным для всех сертифицированных для компьютеров с Windows. Собственно, загрузчик с открытым исходным кодом, поддерживающий загрузку Linux, уже доступен. Чтобы начать процесс получения сертификата, перейдите на страницу https://partner.microsoft.com/dashboard.
  • Настройка UEFI на доверие пользовательскому загрузчику. Все сертифицированные для компьютеров с Windows позволяют доверять незаверяемому загрузчику, добавляя подпись в базу данных UEFI, что позволяет запускать любую ОС, включая самодельные операционные системы.
  • Отключение безопасной загрузки. Все сертифицированные для компьютеров с Windows позволяют отключить безопасную загрузку, чтобы можно было запустить любое программное обеспечение. Однако это действие не помогает защитить вас от буткитов.

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

Состояние безопасной загрузки по умолчанию имеет широкий круг доверия, что может привести к тому, что клиенты доверяют компонентам загрузки, которые им могут не понадобиться. Так как сертификат UEFI ЦС microsoft 3rd подписывает загрузчики для всех дистрибутивов Linux, доверие к подписи стороннего ЦС Microsoft UEFI в базе данных UEFI увеличивает область атак систем. Клиент, который намеревался доверять и загружать только один дистрибутив Linux, будет доверять всем дистрибутивам — гораздо больше, чем его желаемая конфигурация. Уязвимость в любом из загрузчиков подвергает системе и ставит клиента под угрозу эксплойта загрузчика, который он никогда не намеревался использовать, как показано в последних уязвимостях, например с загрузчиком GRUB или rootkit уровня встроенного ПО , влияющим на компоненты загрузки. Для защищенных компьютеров требуется включить и настроить безопасную загрузку, чтобы по умолчанию не доверять подписи UEFI стороннего поставщика, чтобы предоставить клиентам максимально безопасную конфигурацию своих компьютеров.

Чтобы доверять и загружать операционные системы, такие как Linux, и компоненты, подписанные подписью UEFI, в меню BIOS можно настроить защищенные компьютеры, чтобы добавить подпись в базу данных UEFI, выполнив следующие действия.

  1. Откройте меню встроенного ПО:
    • Загрузите компьютер и нажмите клавишу производителя, чтобы открыть меню. Распространенные используемые ключи: ESC, Delete, F1, F2, F10, F11 или F12. На планшетах часто используются кнопки увеличения громкости или уменьшения громкости. Во время запуска часто отображается экран с упоминанием ключа. Если его нет или экран проходит слишком быстро, чтобы увидеть его, проверка сайт вашего производителя.
    • Или, если Windows уже установлена, на экране Входа или в меню Пуск выберите Power ( ) > удерживайте клавишу SHIFT при нажатии кнопки Перезапустить. Выберите Устранение неполадок с > дополнительными параметрами > UEFI Firmware Settings (Параметры встроенного ПО UEFI).
  2. В меню встроенного ПО перейдите в раздел Безопасная загрузка безопасности > и выберите параметр доверия "Сторонний ЦС".
  3. Сохраните изменения и завершите работу.

Корпорация Майкрософт продолжает сотрудничать с партнерами по экосистеме Linux и IHV, чтобы разработать функции с наименьшими привилегиями, чтобы обеспечить безопасность и согласие на доверие только к издателям и компонентам, которым вы доверяете.

Как и большинство мобильных устройств, устройства на основе Arm, такие как устройство Microsoft Surface RT, предназначены для работы только Windows 8.1. Поэтому безопасную загрузку нельзя отключить, и вы не сможете загрузить другую ОС. К счастью, существует большой рынок процессорных устройств ARM, предназначенных для работы с другими операционными системами.

Надежная загрузка

Надежная загрузка берет на себя место, где заканчивается безопасная загрузка. Загрузчик проверяет цифровую подпись ядра Windows перед его загрузкой. Ядро Windows, в свою очередь, проверяет все остальные компоненты процесса запуска Windows, включая драйверы загрузки, файлы запуска и ELAM. Если файл был изменен, загрузчик обнаруживает проблему и не загружает поврежденный компонент. Часто Windows может автоматически восстановить поврежденный компонент, восстанавливая целостность Windows и позволяя компьютеру нормально запускаться.

Ранний запуск антивредоносной программы

Так как безопасная загрузка защитила загрузчик, а надежная загрузка защитила ядро Windows, следующей возможностью для запуска вредоносной программы является инфицирование драйвера загрузки стороннего производителя. Традиционные приложения для защиты от вредоносных программ не запускаются только после загрузки драйверов загрузки, что дает возможность работать rootkit, замаскированному под драйвер.

Ранний запуск антивредоносной программы (ELAM) может загрузить драйвер антивредоносного ПО Майкрософт или сторонних разработчиков перед загрузкой всех драйверов и приложений загрузки, отличных от Майкрософт, сохраняя таким образом цепочку доверия, установленную безопасной загрузкой и надежной загрузкой. Так как ОС еще не запущена, а Windows необходимо загрузить как можно быстрее, ELAM выполняет простую задачу: проверить каждый драйвер загрузки и определить, входит ли он в список доверенных драйверов. Если он не является доверенным, Windows не загружает его.

Драйвер ELAM не является полнофункциональный решением для защиты от вредоносных программ; загружается позже в процессе загрузки. Защитник Windows (входит в состав Windows) поддерживает ELAM, а также несколько приложений для защиты от вредоносных программ сторонних разработчиков.

Измеряемая загрузка

Если компьютер в вашей организации заражается программой rootkit, вам необходимо об этом знать. Корпоративные приложения для защиты от вредоносных программ могут сообщать о заражении вредоносными программами в ИТ-отдел, но это не работает с rootkit, которые скрывают их присутствие. Другими словами, вы не можете доверять клиенту, чтобы сообщить вам, является ли он работоспособным.

В результате компьютеры, зараженные программами rootkit, кажутся здоровыми даже с запущенным антивредоносным ПО. Зараженные компьютеры по-прежнему подключаются к корпоративной сети, предоставляя программам rootkit доступ к большим объемам конфиденциальных данных и потенциально позволяя программам rootkit распространяться по внутренней сети.

Измеряемая загрузка работает с доверенным платформенным платформой и программным обеспечением сторонних разработчиков в Windows. Это позволяет доверенному серверу в сети проверить целостность процесса запуска Windows. Измеряемая загрузка использует следующий процесс.

  1. Встроенное ПО UEFI компьютера хранит в TPM хэш встроенного ПО, загрузчик, загрузчик, загрузочные драйверы и все, что загружается перед приложением защиты от вредоносных программ.
  2. В конце процесса запуска Windows запускается клиент удаленной аттестации сторонних разработчиков. Сервер удаленной аттестации отправляет клиенту уникальный ключ.
  3. Доверенный платформенный модуль использует уникальный ключ для цифровой подписи журнала, записанного UEFI.
  4. Клиент отправляет журнал на сервер, иногда вместе с другими сведениями о безопасности.

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

На рисунке 2 продемонстрирован процесс измеряемой загрузки и удаленной аттестации.

Снимок экрана: процесс измеряемой загрузки и удаленной аттестации.

Рисунок 2. Измеренная загрузка подтверждает работоспособность компьютера на удаленном сервере:

Windows включает интерфейсы программирования приложений для поддержки измеряемой загрузки. Тем не менее, чтобы воспользоваться этим, вам потребуются средства сторонних разработчиков для реализации клиента удаленной аттестации и доверенного сервера аттестации. Например, ознакомьтесь со следующими инструментами из Microsoft Research:

Измеряемая загрузка использует возможности UEFI, TPM и Windows, чтобы дать вам возможность уверенно оценивать надежность клиентского компьютера по сети.

Резюме

Безопасная загрузка, надежная загрузка и измеряемая загрузка создают архитектуру, которая существенно защищена от программ bootkit и rootkit. В Windows эти функции могут устранить вредоносные программы на уровне ядра из сети. С помощью Windows вы можете доверять целостности операционной системы.