Защита ядра от исправлений

Функция безопасности Microsoft Windows
Ядро подключает прикладное программное обеспечение к аппаратному обеспечению компьютера.

Kernel Patch Protection ( KPP ), неофициально известная как PatchGuard , является функцией 64-разрядных ( x64 ) редакций Microsoft Windows , которая предотвращает исправление ядра . Впервые она была представлена ​​в 2005 году с x64 редакциями Windows Vista и Windows Server 2003 Service Pack 1. [1]

«Патчинг ядра» относится к неподдерживаемой модификации центрального компонента или ядра операционной системы Windows. Такая модификация никогда не поддерживалась Microsoft, поскольку, по словам Microsoft, она может значительно снизить безопасность, надежность и производительность системы. [1] Хотя Microsoft не рекомендует это, возможно патчить ядро ​​в редакциях x86 Windows; однако в редакциях x64 Windows Microsoft решила реализовать дополнительную защиту и технические барьеры для патчинга ядра.

Поскольку исправление ядра возможно в 32-разрядных (x86) редакциях Windows, несколько разработчиков антивирусного ПО используют исправление ядра для внедрения антивирусных и других служб безопасности. Эти методы не будут работать на компьютерах с x64 редакциями Windows. Из-за этого Kernel Patch Protection привела к тому, что производителям антивирусов пришлось перепроектировать свое программное обеспечение без использования методов исправления ядра.

Однако из-за конструкции ядра Windows Kernel Patch Protection не может полностью предотвратить исправление ядра. [2] [3] Это привело к критике, что поскольку KPP является несовершенной защитой, проблемы, причиняемые поставщикам антивирусов, перевешивают выгоды, поскольку авторы вредоносного ПО просто найдут способы обойти его защиту. [4] [5] Тем не менее, Kernel Patch Protection все еще может предотвратить проблемы стабильности, надежности и производительности системы, вызванные легитимным программным обеспечением, исправляющим ядро ​​неподдерживаемыми способами.

Технический обзор

Ядро Windows спроектировано таким образом, что драйверы устройств имеют тот же уровень привилегий, что и само ядро. [6] Ожидается, что драйверы устройств не будут изменять или исправлять основные системные структуры в ядре. [1] Однако в редакциях x86 Windows Windows не обеспечивает этого ожидания. В результате некоторое программное обеспечение x86, в частности определенные программы безопасности и антивирусные программы, были разработаны для выполнения необходимых задач посредством загрузки драйверов, которые изменяют основные структуры ядра. [6] [7]

В x64- редакциях Windows Microsoft начала вводить ограничения на то, какие структуры драйверы могут и не могут изменять. Kernel Patch Protection — это технология, которая обеспечивает эти ограничения. Она работает путем периодической проверки, чтобы убедиться, что защищенные системные структуры в ядре не были изменены. Если обнаружено изменение, то Windows инициирует проверку ошибок и завершает работу системы, [6] [8] с синим экраном и/или перезагрузкой. Соответствующий номер проверки ошибок — 0x109, код проверки ошибок — CRITICAL_STRUCTURE_CORRUPTION. Запрещенные изменения включают в себя: [8]

Kernel Patch Protection защищает только от драйверов устройств, изменяющих ядро. Он не обеспечивает никакой защиты от того, что один драйвер устройства исправляет другой. [10]

В конечном счете, поскольку драйверы устройств имеют тот же уровень привилегий, что и само ядро, невозможно полностью запретить драйверам обходить защиту ядра от исправлений и затем исправлять ядро. [2] Однако KPP представляет собой существенное препятствие для успешного исправления ядра. С сильно запутанным кодом и вводящими в заблуждение именами символов KPP использует безопасность через неизвестность , чтобы помешать попыткам обойти его. [6] [11] Периодические обновления KPP также делают его «движущейся целью», поскольку методы обхода, которые могут работать некоторое время, скорее всего, сломаются со следующим обновлением. С момента его создания в 2005 году Microsoft выпустила два крупных обновления KPP, каждое из которых предназначено для слома известных методов обхода в предыдущих версиях. [6] [12] [13]

Преимущества

Исправление ядра никогда не поддерживалось корпорацией Microsoft, поскольку это может вызвать ряд негативных последствий. [7] Kernel Patch Protection защищает от этих негативных последствий, в том числе:

  • Серьёзные ошибки в ядре. [14]
  • Проблемы с надежностью, возникающие из-за того, что несколько программ пытаются исправить одни и те же части ядра. [15]
  • Нарушена безопасность системы. [6]
  • Руткиты могут использовать доступ к ядру для внедрения в операционную систему, становясь практически неустранимыми. [14]

В разделе часто задаваемых вопросов Microsoft «Защита от исправлений ядра» даются дополнительные пояснения:

Поскольку исправление заменяет код ядра неизвестным, непроверенным кодом, нет возможности оценить качество или влияние стороннего кода... Анализ данных онлайн-анализа сбоев (OCA) в Microsoft показывает, что сбои системы обычно возникают из-за как вредоносного, так и невредоносного программного обеспечения, которое исправляет ядро.

—  «Защита ядра от исправлений: часто задаваемые вопросы». Microsoft . 22 января 2007 г. . Получено 22 февраля 2007 г. .

Критика

Сторонние приложения

Некоторые программы компьютерной безопасности, такие как McAfee VirusScan от McAfee и Norton AntiVirus от Symantec , работали, исправляя ядро ​​на системах x86. [ требуется ссылка ] Известно, что антивирусное программное обеспечение, разработанное «Лабораторией Касперского», широко использует исправление кода ядра на x86 - редакциях Windows. [16] Этот вид антивирусного программного обеспечения не будет работать на компьютерах под управлением x64-редакций Windows из-за Kernel Patch Protection. [17] Из-за этого McAfee призвал Microsoft либо полностью удалить KPP из Windows, либо сделать исключения для программного обеспечения, созданного «доверенными компаниями», такими как они сами. [4]

Корпоративное антивирусное ПО Symantec [18] и Norton 2010 года выпуска и более поздние версии [19] работали на x64-редакциях Windows, несмотря на ограничения KPP, хотя и с меньшей способностью обеспечивать защиту от вредоносного ПО нулевого дня. Антивирусное ПО, созданное конкурентами ESET , [20] Trend Micro , [21] Grisoft AVG, [22] avast!, Avira Anti-Vir и Sophos, не исправляет ядро ​​в конфигурациях по умолчанию, но может исправить ядро, когда включены такие функции, как «расширенная защита процессов» или «предотвращение несанкционированного завершения процессов». [23]

Джим Оллчин , тогдашний сопрезидент Microsoft, был ярым сторонником защиты ядра от исправлений.

Microsoft не ослабляет защиту от исправлений ядра, делая исключения из нее, хотя Microsoft, как известно, время от времени ослабляет свои ограничения, например, в интересах программного обеспечения виртуализации гипервизора . [10] [24] Вместо этого Microsoft работала со сторонними компаниями над созданием новых интерфейсов прикладного программирования , которые помогают программному обеспечению безопасности выполнять необходимые задачи без исправления ядра. [15] Эти новые интерфейсы были включены в Windows Vista Service Pack 1. [ 25]

Слабые стороны

Из-за конструкции ядра Windows Kernel Patch Protection не может полностью предотвратить исправление ядра. [2] Это привело к тому, что поставщики компьютерной безопасности McAfee и Symantec заявили, что поскольку KPP является несовершенной защитой, проблемы, причиненные поставщикам безопасности, перевешивают выгоды, поскольку вредоносное ПО просто найдет способы обойти защиту KPP, а стороннее ПО безопасности будет иметь меньше свободы действий для защиты системы. [4] [5]

В январе 2006 года исследователи безопасности, известные под псевдонимами «skape» и «Skywing», опубликовали отчет, в котором описываются методы, некоторые из которых являются теоретическими, с помощью которых можно обойти защиту ядра от исправлений. [26] Skywing опубликовала второй отчет в январе 2007 года об обходе KPP версии 2, [27] и третий отчет в сентябре 2007 года о KPP версии 3. [28] Кроме того, в октябре 2006 года компания по безопасности Authentium разработала рабочий метод обхода KPP. [29]

Тем не менее, Microsoft заявила, что они намерены устранить любые недостатки, которые позволяют обойти KPP, в рамках своего стандартного процесса Security Response Center. [30] В соответствии с этим заявлением, Microsoft на данный момент выпустила два крупных обновления KPP, каждое из которых призвано сломать известные методы обхода в предыдущих версиях. [6] [12] [13]

Антимонопольное поведение

В 2006 году Европейская комиссия выразила обеспокоенность по поводу Kernel Patch Protection, заявив, что это антиконкурентно . [31] Однако собственный антивирусный продукт Microsoft, Windows Live OneCare , не имел специального исключения для KPP. Вместо этого Windows Live OneCare использовала (и всегда использовала) методы, отличные от исправления ядра, для предоставления услуг по защите от вирусов. [32] Тем не менее, по другим причинам x64-версия Windows Live OneCare не была доступна до 15 ноября 2007 года. [33]

Ссылки

  1. ^ abc "Защита ядра от исправлений: часто задаваемые вопросы". Microsoft . 22 января 2007 г. Получено 30 июля 2007 г.
  2. ^ abc skape; Skywing (декабрь 2005 г.). "Введение". Обход PatchGuard в Windows x64 . Неинформированный. Архивировано из оригинала 17 августа 2016 г. Получено 20 сентября 2007 г.
  3. ^ dushane (2023-04-03), PatchGuardBypass , получено 2023-04-03
  4. ^ abc Samenuk, George (28 сентября 2006 г.). «Microsoft повышает риск безопасности с Vista». McAfee . Получено 8 июля 2013 г. .
  5. ^ ab Gewirtz, David (2006). "Великая война антивирусов Windows Vista". OutlookPower. Архивировано из оригинала 1 февраля 2013 года . Получено 8 июля 2013 года .«Система уже уязвима. Люди уже взломали PatchGuard. Система уже уязвима, несмотря ни на что. PatchGuard оказывает сдерживающее воздействие на инновации. Плохие парни всегда будут внедрять инновации. Microsoft не должна связывать руки индустрии безопасности, чтобы они не могли внедрять инновации. Мы обеспокоены тем, что превзойдем плохих парней в плане инноваций». — Крис Паден, менеджер группы корпоративных коммуникаций в Symantec
  6. ^ abcdefg Skywing (сентябрь 2007 г.). "Введение". PatchGuard Reloaded: краткий анализ PatchGuard версии 3. Неинформированный. Архивировано из оригинала 3 марта 2016 г. Получено 20 сентября 2007 г.
  7. ^ ab Schofield, Jack (28 сентября 2006 г.). «Производители антивирусов повышают уровень угроз в отношении Vista в Европе». The Guardian . Получено 20 сентября 2007 г.«Это никогда не поддерживалось и никогда не одобрялось нами. Это приводит к проблемам с безопасностью, нестабильностью и производительностью, и каждый раз, когда мы что-то меняем в ядре, их продукт ломается». — Бен Фати, корпоративный вице-президент подразделения технологий безопасности Microsoft
  8. ^ abc "Patching Policy for x64-Based Systems". Microsoft . 22 января 2007 г. Получено 20 сентября 2007 г.
  9. ^ skape; Skywing (декабрь 2005 г.). "System Images". Обход PatchGuard в Windows x64 . Неинформированный. Архивировано из оригинала 17 августа 2016 г. Получено 21 сентября 2007 г.
  10. ^ ab Skywing (январь 2007 г.). "Заключение". Подрыв PatchGuard версии 2. Неинформированный. Архивировано из оригинала 4 марта 2016 г. Получено 21 сентября 2007 г.
  11. Skywing (декабрь 2006 г.). «Вводящие в заблуждение названия символов». Подрыв PatchGuard версии 2. Неинформированный. Архивировано из оригинала 3 марта 2016 г. Получено 20 сентября 2007 г.
  12. ^ ab Microsoft (июнь 2006 г.). «Обновление для улучшения защиты ядра от исправлений». Microsoft Security Advisory (914784) . Microsoft . Получено 21 сентября 2007 г. .
  13. ^ ab Microsoft (август 2007 г.). «Обновление для улучшения защиты ядра от исправлений». Microsoft Security Advisory (932596) . Microsoft . Получено 21 сентября 2007 г. .
  14. ^ ab Field, Scott (11 августа 2006 г.). "Введение в защиту от исправлений ядра". Блог по безопасности Windows Vista . Microsoft . Получено 30 ноября 2006 г.
  15. ^ ab Allchin, Jim (20 октября 2006 г.). «Руководитель Microsoft проясняет недавнюю путаницу на рынке относительно безопасности Windows Vista». Microsoft . Получено 30 ноября 2006 г.
  16. ^ Skywing (июнь 2006 г.). «Исправление неэкспортируемых, несистемных функций ядра». О чем они думали? Антивирусное программное обеспечение пошло не так . Неинформировано . Получено 21 сентября 2007 г.
  17. ^ Монтальбано, Элизабет (6 октября 2006 г.). «McAfee кричит о нарушениях безопасности Vista». PC World . Архивировано из оригинала 5 апреля 2007 г. Получено 30 ноября 2006 г.
  18. ^ "Symantec AntiVirus Corporate Edition: системные требования". Symantec . 2006. Архивировано из оригинала 15 мая 2007 г. Получено 30 ноября 2006 г.
  19. ^ "Страница продукта Symantec Internet Security". Symantec . 2011 . Получено 26 января 2011 .
  20. ^ "Высокопроизводительная защита от угроз для 64-разрядных компьютеров следующего поколения". ESET. 2008-11-20. Архивировано из оригинала 2008-11-20.
  21. ^ "Минимальные системные требования". Trend Micro USA. Архивировано из оригинала 8 февраля 2012 года . Получено 5 октября 2007 года .
  22. ^ "AVG Anti-Virus and Internet Security - Поддерживаемые платформы". Grisoft . Архивировано из оригинала 27 августа 2007 г. Получено 5 октября 2007 г.
  23. ^ Жак, Роберт (23 октября 2006 г.). «Symantec и McAfee „должны были лучше подготовиться“ к Vista». vnunet.com. Архивировано из оригинала 27 сентября 2007 г. Получено 30 ноября 2006 г.
  24. ^ Макмиллан, Роберт (19 января 2007 г.). «Исследователь: исправление PatchGuard приносит пользу Microsoft». InfoWorld . Получено 21 сентября 2007 г.
  25. ^ "Значительные изменения в Windows Vista Service Pack 1". Microsoft . 2008. Архивировано из оригинала 3 мая 2008 года . Получено 20 марта 2008 года .
  26. ^ skape; Skywing (1 декабря 2005 г.). "Обход PatchGuard в Windows x64". Неинформированный. Архивировано из оригинала 1 августа 2017 г. Получено 2 июня 2008 г.
  27. Skywing (декабрь 2006 г.). «Подрыв PatchGuard версии 2». Неинформированный . Получено 2 июня 2008 г.
  28. Skywing (сентябрь 2007 г.). "PatchGuard Reloaded: A Brief Analysis of PatchGuard Version 3". Неинформированный . Получено 2 июня 2008 г.
  29. Хайнс, Мэтт (25 октября 2006 г.). «Microsoft осуждает взлом Vista PatchGuard». eWEEK . Получено 2 апреля 2016 г.
  30. ^ Gewirtz, David (2006). "Великая война антивирусов Windows Vista". OutlookPower. Архивировано из оригинала 4 сентября 2007 года . Получено 30 ноября 2006 года .
  31. ^ Эспинер, Том (25 октября 2006 г.). «EC Vista antitrust concern fleshed out». silicon.com. Архивировано из оригинала 2 февраля 2007 г. Получено 30 ноября 2006 г.
  32. ^ Джонс, Джефф (12 августа 2006 г.). "Windows Vista x64 Security – Pt 2 – Patchguard". Блог Джеффа Джонса по безопасности . Microsoft . Архивировано из оригинала 9 декабря 2008 г. Получено 11 марта 2007 г.
  33. ^ Уайт, Ник (14 ноября 2007 г.). «Обновление до следующей версии Windows Live OneCare анонсировано для всех подписчиков». Блог команды Windows Vista . Microsoft . Архивировано из оригинала 1 февраля 2008 г. Получено 14 ноября 2007 г.
  • Правда о PatchGuard: почему Symantec продолжает жаловаться
  • Введение в защиту ядра от исправлений
  • Руководитель Microsoft проясняет недавнюю путаницу на рынке относительно безопасности Windows Vista
  • Защита ядра от исправлений: часто задаваемые вопросы
  • Безопасность Windows Vista x64 – Часть 2 – Patchguard Архивировано 09.12.2008 на Wayback Machine

Статьи Uninformed.org:

  • Обход PatchGuard в Windows x64
  • Подрыв PatchGuard версии 2
  • PatchGuard Reloaded: краткий анализ PatchGuard версии 3

Действующие обходные пути

  • KPP Destroyer (включая исходный код) - 2015
  • Рабочий драйвер для обхода PatchGuard 3 (включая исходный код) - 2008
  • Обход PatchGuard с помощью шестнадцатеричного редактора - 2009

Рекомендации Microsoft по безопасности:

  • Обновление Kernel Patch Protection от 13 июня 2006 г.
  • Обновление от 14 августа 2007 г. для защиты ядра от исправлений
Взято с "https://en.wikipedia.org/w/index.php?title=Защита_от_исправления_ядра&oldid=1250584443"