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

Kernel Patch Protection ( KPP ), неофициально известная как PatchGuard , — это функция 64-битных ( x64 ) выпусков Microsoft Windows , которая предотвращает установку исправлений ядра . Впервые он был представлен в 2005 году в 64-разрядных выпусках Windows XP и Windows Server 2003 с пакетом обновления 1. [1]
«Исправление ядра» означает неподдерживаемую модификацию центрального компонента или ядра операционной системы Windows. Такая модификация никогда не поддерживалась Microsoft, поскольку, по мнению Microsoft, она может значительно снизить безопасность, надежность и производительность системы. [1] Хотя Microsoft не рекомендует этого делать, можно исправить ядро в x86 версиях Windows ; однако в 64-разрядных версиях Windows Microsoft решила реализовать дополнительную защиту и технические барьеры для исправления ядра.
Поскольку исправление ядра возможно в 32-разрядных (x86) выпусках Windows, некоторые разработчики антивирусного программного обеспечения используют исправление ядра для реализации антивирусных и других служб безопасности. Эти методы не будут работать на компьютерах под управлением 64-разрядных версий Windows. Из-за этого защита от исправлений ядра привела к тому, что производителям антивирусов пришлось перепроектировать свое программное обеспечение без использования методов исправления ядра.
Однако из-за особенностей ядра Windows Kernel Patch Protection не может полностью предотвратить установку исправлений ядра. [2] [3] Это привело к критике, что, поскольку KPP является несовершенной защитой, проблемы, возникающие у производителей антивирусов, перевешивают преимущества, поскольку авторы вредоносного программного обеспечения просто найдут способы обойти его защиту. [4] [5] Тем не менее, Kernel Patch Protection по-прежнему может предотвратить проблемы стабильности, надежности и производительности системы, вызванные легальным программным обеспечением, вносящим исправления в ядро неподдерживаемыми способами.
Технический обзор
[ редактировать ]Ядро Windows спроектировано таким образом, что драйверы устройств имеют тот же уровень привилегий, что и само ядро. [6] Ожидается, что драйверы устройств не изменят и не исправят структуры ядра системы внутри ядра. [1] Однако в x86 выпусках Windows Windows не обеспечивает этого ожидания. В результате некоторое программное обеспечение x86, особенно некоторые программы безопасности и антивирусные программы, были разработаны для выполнения необходимых задач путем загрузки драйверов, которые изменяют основные структуры ядра. [6] [7]
В 64- разрядных версиях Windows Microsoft начала вводить ограничения на то, какие структуры могут и не могут изменять драйверы. Kernel Patch Protection — это технология, обеспечивающая соблюдение этих ограничений. Он работает путем периодической проверки, чтобы убедиться, что защищенные системные структуры в ядре не были изменены. Если обнаружена модификация, Windows инициирует проверку ошибок и завершит работу системы. [6] [8] с синим экраном и/или перезагрузкой. Соответствующий номер проверки ошибок — 0x109, код проверки — CRITICAL_STRUCTURE_CORRUPTION.К запрещенным модификациям относятся: [8]
- Изменение системных служб таблиц дескрипторов
- Изменение таблицы дескрипторов прерываний
- Изменение таблицы глобальных дескрипторов
- Использование стеков ядра , не выделенных ядром
- Изменение или исправление кода, содержащегося в самом ядре, [8] или HAL или NDIS библиотеки ядра [9]
Kernel Patch Protection защищает только от драйверов устройств, модифицирующих ядро. Он не обеспечивает никакой защиты от исправления одного драйвера другого устройства. [10]
В конечном счете, поскольку драйверы устройств имеют тот же уровень привилегий, что и само ядро, невозможно полностью предотвратить обход драйверами защиты от исправлений ядра и последующее исправление ядра. [2] Однако KPP представляет собой серьезное препятствие для успешного исправления ядра. Используя сильно запутанный код и вводящие в заблуждение названия символов, KPP использует систему безопасности за счет неясности, чтобы препятствовать попыткам обойти его. [6] [11] Периодические обновления КПП также делают его «движущейся целью», поскольку методы обхода, которые могут работать какое-то время, скорее всего, перестанут работать со следующим обновлением. С момента своего создания в 2005 году Microsoft выпустила два крупных обновления KPP, каждое из которых направлено на устранение известных методов обхода в предыдущих версиях. [6] [12] [13]
Преимущества
[ редактировать ]Исправление ядра никогда не поддерживалось Microsoft, поскольку оно может вызвать ряд негативных последствий. [7] Kernel Patch Protection защищает от этих негативных эффектов, в том числе:
- Серьезные ошибки в ядре. [14]
- Проблемы с надежностью, возникающие из-за того, что несколько программ пытаются исправить одни и те же части ядра. [15]
- Нарушение безопасности системы. [6]
- Руткиты могут использовать доступ к ядру для внедрения в операционную систему, и удалить их становится практически невозможно. [14]
Часто задаваемые вопросы Microsoft по защите от исправлений ядра объясняют:
Поскольку исправления заменяют код ядра неизвестным, непроверенным кодом, нет возможности оценить качество или влияние стороннего кода... Изучение данных онлайн-анализа сбоев (OCA) в Microsoft показывает, что сбои системы обычно возникают в результате обеих причин: вредоносное и невредоносное программное обеспечение, исправляющее ядро.
— «Защита ядра от исправлений: часто задаваемые вопросы» . Майкрософт . 22 января 2007 года . Проверено 22 февраля 2007 г.
Критика
[ редактировать ]Сторонние приложения
[ редактировать ]Некоторые программы компьютерной безопасности, такие как McAfee от VirusScan McAfee и Symantec от Norton AntiVirus , работали путем исправления ядра в системах x86. [ нужна ссылка ] Известно, что антивирусное программное обеспечение, созданное «Лабораторией Касперского», широко использует исправления кода ядра в x86 . версиях Windows [16] Этот вид антивирусного программного обеспечения не будет работать на компьютерах под управлением 64-разрядных версий Windows из-за защиты от исправлений ядра. [17] По этой причине McAfee призвал Microsoft либо полностью удалить KPP из Windows, либо сделать исключения для программного обеспечения, созданного «доверенными компаниями», такими как они сами. [4]
Symantec. Корпоративное антивирусное программное обеспечение [18] и Norton 2010 и выше [19] работал на 64-разрядных версиях Windows, несмотря на ограничения KPP, хотя и с меньшими возможностями обеспечения защиты от вредоносных программ нулевого дня.Антивирусное программное обеспечение конкурентов ESET , [20] Тренд Микро , [21] Грисофт АВГ, [22] ого! , Avira Anti-Vir и Sophos не исправляют ядро в конфигурациях по умолчанию, но могут исправлять ядро, когда включены такие функции, как «расширенная защита процессов» или «предотвращение несанкционированного завершения процессов». [23]

Microsoft не ослабляет защиту от исправлений ядра, делая из нее исключения, хотя известно, что Microsoft время от времени ослабляет свои ограничения, например, в пользу программного обеспечения для виртуализации гипервизора . [10] [24] Вместо этого Microsoft работала со сторонними компаниями над созданием новых интерфейсов прикладного программирования , которые помогают программам безопасности выполнять необходимые задачи без внесения исправлений в ядро. [15] Эти новые интерфейсы были включены в пакет обновления 1 для Windows Vista . [25]
Слабые стороны
[ редактировать ]Из-за особенностей ядра Windows защита от исправлений ядра не может полностью предотвратить установку исправлений ядра. [2] Это побудило поставщиков компьютерной безопасности McAfee и Symantec заявить, что, поскольку KPP является несовершенной защитой, проблемы, возникающие у поставщиков безопасности, перевешивают преимущества, поскольку вредоносное программное обеспечение просто найдет способы обойти защиту KPP, а стороннее программное обеспечение безопасности будет иметь меньше свободы действий. действия по защите системы. [4] [5]
В январе 2006 года исследователи безопасности, известные под псевдонимами «skape» и «Skywing», опубликовали отчет, в котором описаны методы, некоторые теоретические, с помощью которых можно обойти Kernel Patch Protection. [26] В январе 2007 года Skywing опубликовал второй отчет об обходе KPP версии 2. [27] и третий отчет в сентябре 2007 г. по версии 3 КПП. [28] Также в октябре 2006 года охранная компания Authentium разработала рабочий метод обхода КПП. [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] Тем не менее, по другим причинам 64-разрядная версия Windows Live OneCare не была доступна до 15 ноября 2007 г. [33]
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с «Защита ядра от исправлений: часто задаваемые вопросы» . Майкрософт . 22 января 2007 года . Проверено 30 июля 2007 г.
- ^ Перейти обратно: а б с скапе; Скайвинг (декабрь 2005 г.). "Введение" . Обход PatchGuard в Windows x64 . Неосведомленный. Архивировано из оригинала 17 августа 2016 года . Проверено 20 сентября 2007 г.
- ^ Душейн (03 апреля 2023 г.), PatchGuardBypass , получено 3 апреля 2023 г.
- ^ Перейти обратно: а б Гевирц, Дэвид (2006). «Великая антивирусная война Windows Vista» . OutlookPower. Архивировано из оригинала 1 февраля 2013 года . Проверено 8 июля 2013 г. «Система уже уязвима. Люди уже взломали PatchGuard. Система уже уязвима, несмотря ни на что. PatchGuard сдерживает инновации. Плохие парни всегда будут внедрять инновации. Microsoft не должна связывать руки индустрии безопасности, чтобы они мы не можем внедрять инновации. Мы обеспокоены тем, чтобы превзойти в инновациях плохих парней». — Крис Паден, менеджер группы корпоративных коммуникаций Symantec
- ^ Перейти обратно: а б с д и ж г Скайвинг (сентябрь 2007 г.). "Введение" . Перезагрузка PatchGuard: краткий анализ версии 3 PatchGuard . Неосведомленный. Архивировано из оригинала 3 марта 2016 года . Проверено 20 сентября 2007 г.
- ^ Перейти обратно: а б Шофилд, Джек (28 сентября 2006 г.). «Продавцы антивирусов поднимают угрозы относительно Vista в Европе» . Хранитель . Проверено 20 сентября 2007 г. «Это никогда не поддерживалось и никогда не одобрялось нами. Это приводит к небезопасности, нестабильности и проблемам с производительностью, и каждый раз, когда мы что-то меняем в ядре, их продукт ломается». —Бен Фатхи, корпоративный вице-президент подразделения технологий безопасности Microsoft.
- ^ Перейти обратно: а б с «Политика установки исправлений для систем на базе x64» . Майкрософт . 22 января 2007 года . Проверено 20 сентября 2007 г.
- ^ скапе; Скайвинг (декабрь 2005 г.). «Системные образы» . Обход PatchGuard в Windows x64 . Неосведомленный. Архивировано из оригинала 17 августа 2016 года . Проверено 21 сентября 2007 г.
- ^ Перейти обратно: а б Скайвинг (январь 2007 г.). "Заключение" . Подрыв PatchGuard версии 2 . Неосведомленный. Архивировано из оригинала 4 марта 2016 года . Проверено 21 сентября 2007 г.
- ^ Скайвинг (декабрь 2006 г.). «Вводящие в заблуждение названия символов» . Подрыв PatchGuard версии 2 . Неосведомленный. Архивировано из оригинала 3 марта 2016 года . Проверено 20 сентября 2007 г.
- ^ Перейти обратно: а б Microsoft (июнь 2006 г.). «Обновление для улучшения защиты от исправлений ядра» . Рекомендации Microsoft по безопасности (914784) . Майкрософт . Проверено 21 сентября 2007 г.
- ^ Перейти обратно: а б Microsoft (август 2007 г.). «Обновление для улучшения защиты от исправлений ядра» . Рекомендации Microsoft по безопасности (932596) . Майкрософт . Проверено 21 сентября 2007 г.
- ^ Перейти обратно: а б Филд, Скотт (11 августа 2006 г.). «Введение в защиту от исправлений ядра» . Блог о безопасности Windows Vista . Майкрософт . Проверено 30 ноября 2006 г.
- ^ Перейти обратно: а б Олчин, Джим (20 октября 2006 г.). «Руководитель Microsoft проясняет недавнюю путаницу на рынке по поводу безопасности Windows Vista» . Майкрософт . Проверено 30 ноября 2006 г.
- ^ Скайвинг (июнь 2006 г.). «Исправление неэкспортированных функций ядра, не являющихся системными службами» . О чем они думали? Антивирусное программное обеспечение вышло из строя . Неосведомленный . Проверено 21 сентября 2007 г.
- ^ Монтальбано, Элизабет (6 октября 2006 г.). «McAfee критикует функции безопасности Vista» . Мир ПК . Архивировано из оригинала 5 апреля 2007 года . Проверено 30 ноября 2006 г.
- ^ «Symantec AntiVirus Corporate Edition: Системные требования» . Симантек . 2006. Архивировано из оригинала 15 мая 2007 года . Проверено 30 ноября 2006 г.
- ^ «Страница продукта Symantec Internet Security» . Симантек . 2011 . Проверено 26 января 2011 г.
- ^ «Высокопроизводительная защита от угроз для 64-битных компьютеров следующего поколения» . ЕСЕТ. 20 ноября 2008 г. Архивировано из оригинала 20 ноября 2008 г.
- ^ «Минимальные системные требования» . Тренд Микро США. Архивировано из оригинала 8 февраля 2012 года . Проверено 5 октября 2007 г.
- ^ «Антивирус AVG и интернет-безопасность — поддерживаемые платформы» . Грисофт . Архивировано из оригинала 27 августа 2007 года . Проверено 5 октября 2007 г.
- ^ Жак, Робер (23 октября 2006 г.). «Symantec и McAfee «должны были лучше подготовиться» к Vista» . vnunet.com. Архивировано из оригинала 27 сентября 2007 года . Проверено 30 ноября 2006 г.
- ^ Макмиллан, Роберт (19 января 2007 г.). «Исследователь: исправление PatchGuard приносит пользу Microsoft» . Инфомир . Проверено 21 сентября 2007 г.
- ^ «Заметные изменения в пакете обновления 1 для Windows Vista» . Майкрософт . 2008. Архивировано из оригинала 3 мая 2008 года . Проверено 20 марта 2008 г.
- ^ скапе; Скайвинг (1 декабря 2005 г.). «Обход PatchGuard в Windows x64» . Неосведомленный. Архивировано из оригинала 1 августа 2017 года . Проверено 2 июня 2008 г.
- ^ Скайвинг (декабрь 2006 г.). «Подрыв PatchGuard версии 2» . Неосведомленный . Проверено 2 июня 2008 г.
- ^ Скайвинг (сентябрь 2007 г.). «Перезагрузка PatchGuard: краткий анализ версии 3 PatchGuard» . Неосведомленный . Проверено 2 июня 2008 г.
- ^ Хайнс, Мэтт (25 октября 2006 г.). «Microsoft осуждает взлом Vista PatchGuard» . еНЕДЕЛЯ . Проверено 2 апреля 2016 г.
- ^ Гевирц, Дэвид (2006). «Великая антивирусная война Windows Vista» . OutlookPower. Архивировано из оригинала 4 сентября 2007 года . Проверено 30 ноября 2006 г.
- ^ Эспинер, Том (25 октября 2006 г.). «Антимонопольные проблемы EC Vista конкретизированы» . кремний.com. Архивировано из оригинала 2 февраля 2007 года . Проверено 30 ноября 2006 г.
- ^ Джонс, Джефф (12 августа 2006 г.). «Безопасность Windows Vista x64 – Часть 2 – Patchguard» . Блог Джеффа Джонса по безопасности . Майкрософт . Архивировано из оригинала 9 декабря 2008 года . Проверено 11 марта 2007 г.
- ^ Уайт, Ник (14 ноября 2007 г.). «Объявлено об обновлении до следующей версии Windows Live OneCare для всех подписчиков» . Блог группы разработчиков Windows Vista . Майкрософт . Архивировано из оригинала 1 февраля 2008 года . Проверено 14 ноября 2007 г.
Внешние ссылки
[ редактировать ]- Вся правда о PatchGuard: почему Symantec продолжает жаловаться
- Введение в защиту от исправлений ядра
- Руководитель Microsoft проясняет недавнюю путаницу на рынке по поводу безопасности Windows Vista
- Защита от исправлений ядра: часто задаваемые вопросы
- Безопасность Windows Vista x64 — часть 2 — Patchguard. Архивировано 9 декабря 2008 г. на Wayback Machine.
Статьи на Uninformed.org:
- Обход PatchGuard в Windows x64
- Подрыв PatchGuard версии 2
- Перезагрузка PatchGuard: краткий анализ версии 3 PatchGuard
Рабочие обходные подходы
- Эсминец КПП (включая исходный код) - 2015 г.
- Рабочий драйвер для обхода PatchGuard 3 (включая исходный код) — 2008 г.
- Обход PatchGuard с помощью шестнадцатеричного редактора — 2009 г.
Рекомендации Microsoft по безопасности: