ilyachalov (ilyachalov) wrote,
ilyachalov
ilyachalov

Categories:

AppInit_DLLs и протокол Secure Boot

Начало тут:
1. динамически подключаемые библиотеки;
2. о динамически подключаемых библиотеках подробнее;
3. преимущества динамического связывания;
4. создание динамически подключаемой библиотеки;
5. функция точки входа DLL;
6. динамическое связывание во время запуска;
7. динамическое связывание во время выполнения;
8. порядок поиска DLL;
9. данные библиотеки DLL;
10. перенаправление DLL;
11. обновления DLL;
12. безопасность DLL.

Перевод с английского статьи от 31.05.2018 г. «AppInit DLLs and Secure Boot»:
https://docs.microsoft.com/ru-ru/windows/win32/dlls/secure-boot-and-appinit-dlls
(На данный момент на этом сайте нет перевода этой статьи на русский, есть только версия на английском.)

[AppInit_DLLs — один из способов внедрения DLL (DLL injection), методики, используемой для запуска нашего кода внутри адресного пространства чужого процесса, заставив этот процесс загрузить нашу DLL. Этот способ реализуется с помощью ключа реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs, в котором следует перечислить внедряемые библиотеки DLL. После этого эти библиотеки DLL будут загружаться операционной системой в адресное пространство каждого процесса, который загружает системную библиотеку User32.dll во время первоначального вызова этой системной библиотеки.]

[Secure Boot (вики) — протокол «безопасной загрузки», являющийся частью спецификации UEFI (вики) (UEFI — это стандарт и программа-прошивка, созданная для замены BIOS; ее задача — инициализировать оборудование компьютера при его включении и передать управление загрузчику операционной системы). По задумке компании «Microsoft» этот протокол должен гарантировать, что загрузка компьютера будет осуществляться только с помощью тех программ, которым производитель компьютера доверяет. Это достигается тем, что при загрузке компьютера прошивка проверяет электронно-цифровые подписи всех программ (в том числе и операционной системы), участвующих в загрузке компьютера. Не следует путать Secure Boot и безопасный режим (safe mode) операционной системы.]

Начиная с операционной системы «Windows 8» (вики: с 26.10.2012 г.), механизм AppInit_DLLs отключается, если включен протокол безопасной загрузки компьютера [secure boot].

О механизме AppInit_DLLs

Механизм AppInit_DLLs обеспечивает легкий способ перехвата [hooking] обращений приложений к интерфейсам [API] операционной системы посредством разрешения загрузки самописных библиотек DLL в адресное пространство любого интерактивного приложения. И легальные приложения, и вредоносные программы используют механизм AppInit_DLLs по одной и той же основной причине — возможность перехвата обращений к интерфейсам программ [API]; после того, как самописная DLL загружена, она может перехватить обращения к общеизвестным интерфейсам [API] операционной системы и реализовать свою собственную, альтернативную, функциональность [которую создатели приложения не планировали]. Лишь малое количество современных легальных приложений использует этот механизм загрузки библиотек DLL, в то время как большое количество вредоносных программ использует этот механизм для взлома систем. При этом даже легальное использование механизма AppInit_DLLs может неумышленно привести к зависаниям системы и проблемам с ее производительностью, а потому использование механизма AppInit_DLLs не рекомендуется.

Механизм AppInit_DLLs и протокол безопасной загрузки

Операционная система «Windows 8» приняла на вооружение стандарт UEFI и входящий в него протокол безопасной загрузки Secure Boot, чтобы улучшить общую целостность системы и обеспечить надежную защиту против продвинутых угроз ее безопасности. При включении протокола безопасной загрузки Secure Boot механизм AppInit_DLLs отключается — такое поведение является частью бескомпромиссного подхода, цель которого — защитить покупателей от вредоносных программ и других угроз безопасности.

Пожалуйста, имейте в виду, что Secure Boot — протокол стандарта UEFI, а не элемент операционной системы «Windows 8». Более подробную информацию о спецификации стандарта UEFI и входящем в него протоколе безопасной загрузки Secure Boot можно найти на сайте https://uefi.org.

Сертификационное требование, касающееся механизма AppInit_DLLs, для приложений настольного компьютера на операционной системе «Windows 8»

Одним из сертификационных требований для приложений настольного компьютера [desktop apps] на операционной системе «Windows 8» является то, что приложение не должно подразумевать загрузку [в чужие процессы] непредусмотренных [авторами тех процессов] библиотек DLL для перехвата обращений [чужих процессов] к интерфейсам операционной системы «Windows» [Win32 API] с помощью механизма AppInit_DLLs. Чтобы получить более подробную информацию о сертификационных требованиях, обратитесь к статье «Сертификационные требования для приложений настольного компьютера на операционной системе Windows» [эти требования время от времени меняются; на момент данного перевода по этой ссылке размещены сертификационные требования версии 10 от 29.07.2015 года для операционной системы «Windows 10» и описанное требование насчет AppInit_DLLs содержится в пункте 1.5].

Резюмируем:
  • использование механизма AppInit_DLLs не рекомендуется для легальных приложений, потому что его использование может привести к зависаниям системы и проблемам с ее производительностью;
  • механизм AppInit_DLLs по умолчанию выключается, если включен протокол безопасной загрузки Secure Boot;
  • использование механизма AppInit_DLLs в приложении настольного компьютера для операционной системы «Windows 8» является нарушением сертификационных требований к таким приложениям.

О работе механизма AppInit_DLLs в операционных системах «Windows 7» и « Windows Server 2008 R2» читайте в статье: ссылка.
Tags: Английский язык, Образование, Программирование
Subscribe

  • Юмор на ютубе, появление шоу TALK

    У меня в принципе нет в квартире телевизора. Я, в общем-то, не считаю телезрителей быдлом, а телевизор — устройством для промывки мозгов. Просто в…

  • Любимый женский кавер песни «My Way»

    Голландский «Голос» вообще один из моих самых любимых. Удивительно, но почему-то именно эта маленькая страна дала этому шоу очень много понравившихся…

  • «Oh! Darling» против «Imagine»

    Не понимаю, что люди находят в песне «Imagine» Леннона. Ну да, мелодичная. Но по мне слишком спокойная и чересчур сладенькая. Вот «Oh! Darling»…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments