Андрей Смирнов
Время чтения: ~21 мин.
Просмотров: 3

Процесс загрузки Windows или что спрятано под стартовым логотипом

Применение сторонних утилит для настройки Windows уже давно стало традицией среди пользователей, а стоило бы знать, что множество параметров операционной системы можно настроить ее же средствами, не прибегая к сторонним и подчас платным инструментам. Чего стоит только одна PowerShell вкупе с командной строкой. Впрочем, речь сегодня пойдет не о них, а о MSConfig — замечательной во многих отношениях штатной утилите, предназначенной для управления автоматически запускаемыми процессами и процедурой загрузки Windows.

В настоящее время утилита MSConfig используется в основном при проведении различного рода диагностических работ.

5725387_1.png

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

Реже утилита используется для тестирования работы операционной системы и программного обеспечения в условиях предоставления ограниченного объема ресурсов процессора и оперативной памяти. Кроме того, MSConfig может служить в качестве инструмента управления приоритетами загрузки нескольких операционных систем, если таковые установлены на одном компьютере. Наконец, MSConfig можно использовать как своего рода лаунчер для запуска некоторых средств администрирования.

Но обо всём по порядку.

Немного истории

MSConfig впервые появилась в Windows 98 как инструмент управления режимами загрузки и запускающимися при старте операционной системы службами и приложениями. В Windows 2000 разработчики Microsoft почему-то решили ее убрать, но в XP вернули на место, где она и остается по сей день. В Windows 98 MSConfig значительно отличалась от того инструмента конфигурации, который имеется сейчас в Windows 10. Поскольку в ранних версиях системы еще не было реестра, а настройки хранились в конфигурационных файлах, в MSConfig присутствовали одноименные вкладки, предоставляющие доступ к этим файлам.

5725387_2.jpg

Например, переключившись на вкладку System.ini, пользователь мог настроить загрузку служб и драйверов, прописанных в файле system.ini, аналогичным образом обеспечивался доступ к системным настройкам из вкладок Win.ini, Config.sys и Autoexec.bat. Доступ к объектам автозагрузки предоставлялся на вкладке Startup, а доступ к режимам загрузки Windows — на вкладке «Общие» и только с переносом системных настроек в реестр вкладки получили соответствующие настройкам названия. После этого MSConfig почти не менялся, если не брать в расчет внешний вид окна и вкладку «Автозагрузка», инструментарий которой в Windows 8 был перемещен в Диспетчер задач.

MSConfig в Windows 10

В Windows 10 утилита MSConfig является точной копией себя же самой в Windows 8.1. Ее исполняемый файл msconfig.exe располагается в каталоге System32, запустить ее можно разными способами — одноименной командой из окошка «Выполнить».

5725387_4.png

Из командной строки и PowerShell.

5725387_5.png

Из адресной строки Проводника.

5725387_3.png

Через оснастку классической панели управления «Администрирование», а также через системный поиск.

5725387_6.png

Небольшое по размерам окошко утилиты содержит пять вкладок: Общие, Загрузка, Службы, Автозагрузка и Сервис. Четвертая вкладка Автозагрузка в Windows 10 не содержит никаких опций за исключением ссылки на Диспетчер задач.

5725387_7.png

Это своего рода рудимент и, скорее всего, в следующих версиях вкладка будет удалена.

MSConfig — Общие

Опции первой вкладки «Общие» определяют режим запуска операционной системы.

Всего режимов три:

• Обычный запуск — Стандартный запуск операционной системы, загружающейся со всеми службами и элементами автозагрузки, в том числе потенциально небезопасными. Активен по умолчанию.

• Диагностический запуск — В этом «чистом» режиме Windows 10 запускается без сторонних служб, программ, элементов автозагрузки и драйверов. Используется при удалении сомнительного программного обеспечения, которое не удается деинсталлировать в обычном режиме работы, а также получения доступа к ключевым средствам администрирования, которые по какой-то причине оказались недоступными.

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

5725387_8.png

MSConfig — Загрузка

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

При этом предлагается на выбор использование четырех параметров.

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

Если же вы выберите параметр «Другая оболочка», то единственным доступным инструментом управления в Windows 10 окажется командная строка. Интернет при этом так же работать не будет.

Параметр «Восстановление Active Directory» загружает систему в обычном безопасном режиме с GUI и со службами активных каталогов. Используется в основном системными администраторами при решении проблем в сетевом окружении.

Наконец, параметр «Сеть» загружает Windows 10 в безопасном режиме с GUI и с возможностью подключения к интернету.

5725387_9.png

Обратите также внимание на блок параметров «Без GUI», «Журнал загрузки», «Базовое видео» и «Информация об ОС». Непосредственного отношения к безопасному режиму они не имеют и используются в качестве дополнительных настроек.

• Без GUI — Используется при отладке системы. При загрузке Windows не отображается экран приветствия.

• Журнал загрузки — Если задействовать этот параметр, сведения о запущенных вместе с операционной системой драйверах и службах будут записаны в лог ntbtlog.txt, сохраняемый обычно в корневую папку Windows. Используется, когда нужно выяснить, на каком автозагружаемом драйвере или службе произошел сбой.

• Базовое видео — Параметр загружает только стандартный видеодрайвер Microsoft. Пригодится, если по какой-то причине у вас слетел родной драйвер видеокарты.

• Информация об ОС — Используется вместе с «Без GUI», выводит в процессе загрузки список загружаемых драйверов.

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

На этой же вкладке имеется кнопка «Дополнительные параметры загрузки», открывающая настройки тестирования загрузки ОС в нестандартных условиях. К примеру, вы можете попробовать загрузить Windows 10 с ограниченным количеством ядер процессора и объемом оперативной памяти, проигнорировать «рекомендации»BIOS, которыми ОС руководствуется при загрузке и даже протестировать только что разработанный драйвер под новое устройство.

5725387_10.png

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

MSConfig — Службы

Здесь всё намного проще. На этой вкладке вы можете отключить все или некоторые сторонние и системные службы. Последовательное отключение служб применяется в рамках диагностики, позволяя выявить виновника проблем в работе операционной системы. «Службы» частично дублируют функционал вкладки «Общие», в чём вы можете убедиться, отключив любую службу — вариант запуска на вкладке «Общие» автоматически переключиться на «Выборочный запуск».

5725387_11.png

MSConfig — Сервис

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

5725387_12.png

Ничего руками вводить не нужно, просто выбираем необходимый элемент и жмем кнопку «Запуск».

Итог

По большому счету это всё, что следовало знать об этом полезном инструменте. Утилита MSConfig очень удобна, когда нужно загрузить Windows в безопасном режиме, быстро отключить загружающиеся вместе с операционной системой компоненты или запустить какую-нибудь системную оснастку. Что касается безопасности, навредить системе с ее «помощью» вряд ли получится, поэтому после ознакомления с основными функциями, на вооружение утилита может быть взята даже начинающими пользователями.

782d2ba68364b87216da9d1a1f4e5008.pngА вы никогда не задумывались над тем, что же происходит с операционной системой в тот момент, когда она рисует свой логотип и говорит «Starting Windows»? И вообще, почему она долго загружается? Ведь при старте системы уж точно не решаются никакие задачи, сложные с вычислительной точки зрения! Что тогда подразумевает под собой загрузка операционной системы? По большей части это проецирование в память исполняемых модулей и инициализация служебных структур данных. Структуры данных живут в памяти, поэтому операции с ними по идее должны быть быстрыми. Все наталкивает на мысль о том, что время съедается именно процессом загрузки исполняемых модулей в память. Давайте интереса ради разберемся, какие модули, в каком количестве и в каком порядке загружаются при старте ОС. Чтобы выяснить это, можно, например, получить лог загрузки системы. Подопытная ОС в моем случае — Windows 7 Enterprise x64. Логировать процесс загрузки будем при помощи отладчика ядра. Существует несколько вариантов отладчиков ядра, лично я предпочитаю WinDbg. Также нам понадобятся некоторые вспомогательные средства для волшебного превращения лога в нечто более приятное глазу.

Mining and crafting

Настройка отладки хорошо гуглится, поэтому описывать подробно этот процесс я не буду. Поскольку нас интересует все происходящее с момента старта системы, нам нужно отметить пункт «Cycle Initial Break», с помощью чего отладчик остановится, как только в отлаживаемой системе будет загружена подсистема отладки ядра. Дублирование вывода в файл можно осуществить при помощи команд «.logopen» и «.logclose», это просто. Другая полезная команда — «.cls». Она очищает экран команд, и да, только экран команд. Интересующая нас функция — «MiCreateImageFileMap». Это внутренняя функция менеджера памяти, проецирующая исполняемый файл в память. Проецирование в память происходит при создании секции, например, при запуске исполняемого файла. Однако учтите, что если исполняемый файл проецируется в память, это не гарантия того, что будет выполнен его код! Эта функция просто создает проекцию, чаще всего «про запас», чтобы, если кто-то надумает запустить модуль на исполнение, можно было сэкономить время его загрузки. На эту функцию поставим логирующую точку останова. Если у вас достаточно маны, вводите следующую команду:

bu nt!MiCreateImageFileMap "dt nt!_EPROCESS -d ImageFileName @$proc; dt nt!_FILE_OBJECT -d FileName @rcx; g"

Магическая строчка буквально означает следующее:

  • bu (Set Unresolved Breakpoint) — установить неразрешенную точку останова. Не то чтобы кто-то или что-то не разрешал, просто для ее установки необходимо определиться, по какому адресу ее ставить. Дело в том, что заранее не известно, по какому адресу она должна располагаться. При загрузке любого модуля проверяется присутствие в нем необходимой функции, и если такая функция найдена, точка останова устанавливается автоматически. Такой способ установки незаменим при включенном ASLR — рандомизации адресного пространства, поскольку модули будут загружаться каждый раз по разным адресам, и точка останова, установленная по фиксированному адресу, с большой вероятностью окажется не у дел.
  • nt!MiCreateImageFileMap — символ, на котором нужно останавливаться. В WinDbg принята запись в форме ‘module_name!function_name’. В данном случае nt является предопределенным псевдонимом для ntoskrnl.exe.
  • далее следует часть WinDbg-скрипта, которая будет выполняться каждый раз при остановке на этой функции. «dt nt!_EPROCESS -d ImageFileName @$proc» по-русски означает «отобразить поле ImageFileName структуры _EPROCESS из модуля nt при условии ее отображения по адресу, определенному в псевдорегистре «текущий процесс»». Следующая после разделителя «;» команда означает примерно то же самое, только адрес структуры берется из регистра rcx, в котором в Microsoft x64 ABI передается первый параметр функции. «g» означает «go», т.е. продолжить исполнение.

Небольшая рекомендация по использованию логирующих точек останова: старайтесь не использовать расширения отладчика (команды, начинающиеся с «!»), поскольку в таком случае логирование будет выполняться на порядок медленнее. Поехали! Отжимаем тормоз точки останова и ждем. Я ждал, пока не прогрузится рабочий стол, т.е. я залогинился. Полученный «урожай» немного редактируется, обрезается все лишнее для удобства дальнейшей обработки и скармливается дружище питону. Не будем заострять внимание на парсинге лога. Отметим только, что граф укладывался в форму спирали Архимеда с дальнейшей коррекцией вручную, поскольку происходило наложение узлов друг на друга. В полученном графе учитывается порядок загрузки библиотек. К сожалению, пришлось пожертвовать учетом порядка загрузки исполняемых файлов относительно библиотек в угоду удобочитаемости графа.

Карта звездного неба

eaa0c91d451894825212dac76f2be8fe.png Условно выделим несколько групп загрузки. Начинается работа OC в модуле ntoskrnl.exe, являющимся ядром ОС. А если еще конкретнее — с функции KiSystemStartup(). Вместе с загружаемыми системными компонентами она формирует фундамент ОС: разделение режимов работы, базовые сервисы для пользовательских приложений и т.п. В эту же группу входят драйверы, отмеченные для загрузки во время старта системы. В двух словах, в этой ракушке зарождается ОС Windows.e6768c5a60c2a12565d70e78c5b2ffdd.png Следующий узел — менеджер сессий (session manager). Его представляет первый после системного процесс, стартующий в Windows — smss.exe. Процесс примечателен тем, что является родным (native) процессом Windows, то есть он не использует подсистему Win32, которая в общем-то еще не загружена. Этот процесс использует только нативные сервисы операционной системы посредством ntdll.dll, представляющей собой интерфейс режима пользователя для сервисов ОС. Также этот процесс является доверенным компонентом операционной системы и обладает исключительными правами, например, он может создавать маркеры безопасности (security tokens). Но главное его предназначение — создание сеансов и инициализация подсистем, как графической, так и различных исполняемых (Windows, POSIX). Эта ракушка воздает каждому по потребностям. Группа входа в систему (logon) состоит из нескольких процессов. В целом они отвечают за инициализацию сеансов. Это включает в себя отображение экрана приветствия, создание рабочих столов, запуск процессов автозагрузки и инициализацию подсистемы безопасности и т.п. Этот веник отметает всех посторонних. Самой массивной оказалась группа сервисов. Во многом она обязана своим объемом службе SuperFetch. Эта та самая, про которую говорят, что она по выходным заранее прогружает офисный пакет, а в начале рабочей недели — Steam с игрушками. Superfetch прогружает огромное количество модулей при старте системы, чтобы потом «все быстрее работало». Да и кроме него в системе хватает сервисных приложений и автозапускающихся драйверов. Думаю, все видели оснастку «Службы и приложения». Эта звезда жизни заводит в системе все, что нужно и не очень. Последним отмечу любимый всеми explorer.exe. Примечательно, что к моменту его запуска все используемые им модули уже загружены в память. В скриншот также попал некий vcredist_x64.exe — бедолага лежал на рабочем столе подопытной виртуальной машины и был прогружен в память проводником. Вообще способов оказаться загруженным в память у модуля много. Например, достаточно запросить информацию из ресурсов исполняемого файла, в том числе его иконку. Конкретно в данном примере проводник проверял, является ли эта программа требующей повышенных привилегий, т.е. стоит ли дорисовывать к иконке соответствующий рисуночек с желто-голубым щитом. Еще раз отмечу, что загрузка модуля в память не означает выполнение его кода! Лично я держу получившуюся картинку под боком. По ней хорошо прослеживаются зависимости, например, драйверов. Также в паре с утилитой Sysinternals Autoruns можно увидеть, на каком этапе загрузки подтягиваются те или иные модули. Граф загрузки был построен для ОС Windows 7 Enterprise x64, установленной на виртуальной машине VMware. Ниже приведены векторное изображение графа и непосредственно файл в формате gml, с которым можно поиграться в любом редакторе графов.Граф в формате GMLВекторное изображение графа Внимание! Бонус! Граф загрузки для чистой ОС Windows 8 Enterprise x64 на живой машине ;)Граф в формате GMLВекторное изображение графа Ингредиенты: WinDbg @ msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx Python @ www.python.org NetworkX @ networkx.lanl.gov yEd Graph Editor @ www.yworks.com/en/products_yed_about.html Руки @ Плечи

—>

Применимо к:

  • Windows 10
  • Windows8.1

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

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

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

При запуске Windows 10 на компьютерах или любых компьютеров, которые поддерживают Единый расширяемый микропрограммный интерфейс (UEFI) надежная загрузка защищает компьютер от вредоносных программ с момента включения компьютера до запуска защиты от вредоносных программ. В случае заражения компьютера вредоносным ПО оно не сможет оставаться скрытым; надежная загрузка сможет подтвердить целостность системы вашей инфраструктуры таким образом, который вредоносное программное обеспечение не сможет скрыть. Даже на компьютерах без UEFI Windows10 обеспечивает более высокую безопасность при загрузке по сравнению с предыдущими версиями Windows.

Давайте сначала рассмотрим программы rootkit и то, как они работают. Затем мы покажем, как Windows10 сможет защитить вас.

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

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

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

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

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

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

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

В Figure1 показан процесс запуска Windows10.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Драйвер ELAM не является полнофункциональным решением для защиты от вредоносных программ; оно загружается позже в процессе загрузки. Защитник Windows (включенный в Windows10) поддерживает ЕЛАМ, как это делает Microsoft System Center2012 Endpoint Protection и несколькими антивредоносными приложениями, отличными от Microsoft.

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

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

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

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

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

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

Figure2 иллюстрирует измеряемый процесс загрузки и удаленной аттестации.

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

Windows10 включает интерфейс прикладного программирования для поддержки измеряемой загрузки, но вам понадобятся средства сторонних разработчиков для реализации удаленного клиента аттестации и доверенного сервера аттестации для использования его возможностей. В качестве примера такого инструмента можно скачать TPM Platform Crypto-Provider Toolkit от Microsoft Research или Measured Boot Tool от MVP Microsoft Enterprise Security Дэна Гриффина.

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

Резюме

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

Дополнительные ресурсы

—>Используемые источники:

  • https://www.white-windows.ru/windows-10-upravlyaem-parametrami-zagruzki-sistemy/
  • https://habr.com/post/164121/
  • https://docs.microsoft.com/ru-ru/windows/security/information-protection/secure-the-windows-10-boot-process

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации