Защита ядра от исправлений - Kernel Patch Protection
Защита ядра от исправлений (КПП), неофициально известный как PatchGuard, это особенность 64-битных (x64 ) редакции Майкрософт Виндоус что предотвращает исправление ядро. Впервые он был представлен в 2005 году с выпусками x64 Windows XP и Windows Server 2003 Пакет обновления 1.[1]
«Исправление ядра» относится к неподдерживаемой модификации центрального компонента или ядро операционной системы Windows. Такая модификация никогда не поддерживалась Microsoft, поскольку, по мнению Microsoft, она может значительно снизить безопасность, надежность и производительность системы.[1] Хотя Microsoft не рекомендует это, ядро можно исправить на x86 редакции Windows; однако в выпусках Windows x64 Microsoft решила реализовать дополнительную защиту и технические барьеры для исправления ядра.
Поскольку исправление ядра возможно в 32-битных (x86) версиях Windows, несколько антивирусное программное обеспечение разработчики используют исправления ядра для реализации антивируса и других служб безопасности. Эти методы не работают на компьютерах с 64-разрядными версиями Windows. Из-за этого Kernel Patch Protection привел к тому, что производителям антивирусов пришлось переделывать свое программное обеспечение без использования методов исправления ядра.
Однако из-за конструкции ядра Windows защита ядра от исправлений не может полностью предотвратить исправление ядра.[2] Это привело к критике, что, поскольку KPP является несовершенной защитой, проблемы, создаваемые поставщиками антивирусных программ, перевешивают преимущества, поскольку авторы вредоносное ПО просто найдет способы обойти свою защиту.[3][4] Тем не менее, Kernel Patch Protection может предотвратить проблемы со стабильностью, надежностью и производительностью системы, вызванные тем, что легитимное программное обеспечение исправляет ядро неподдерживаемыми способами.
Технический обзор
В Ядро Windows разработан так, чтобы драйверы устройств имеют тот же уровень привилегий, что и само ядро.[5] Ожидается, что драйверы устройств не будут изменять или пластырь основные системные структуры в ядре.[1] Однако в x86 выпусков Windows, Windows не оправдывает этого ожидания. В результате некоторое программное обеспечение x86, особенно определенная безопасность и антивирус программы, были разработаны для выполнения необходимых задач путем загрузки драйверов, изменяющих структуру ядра.[5][6]
В x64 В выпусках Windows Microsoft начала вводить ограничения на то, какие структуры драйверы могут и не могут изменять. Kernel Patch Protection - это технология, которая обеспечивает соблюдение этих ограничений. Он работает путем периодической проверки, чтобы убедиться, что защищенные системные структуры в ядре не были изменены. Если модификация обнаружена, Windows инициирует проверка ошибок и выключите систему,[5][7] с синий экран и / или перезагрузить. Соответствующий номер проверки на ошибку - 0x109, код проверки на ошибку - CRITICAL_STRUCTURE_CORRUPTION. Запрещенные модификации включают:[7]
- Изменение системная служба столы
- Изменение таблица дескрипторов прерываний
- Изменение глобальная таблица дескрипторов
- Использование ядра стеки не выделено ядром
- Модификация или исправление кода, содержащегося в самом ядре,[7] или HAL или же NDIS библиотеки ядра[8]
Kernel Patch Protection защищает только от драйверов устройств, изменяющих ядро. Он не предлагает никакой защиты от того, что один драйвер устройства исправляет другой.[9]
В конечном итоге, поскольку драйверы устройств имеют тот же уровень привилегий, что и само ядро, невозможно полностью запретить драйверам обойти защиту ядра от исправлений и затем исправить ядро.[2] Однако KPP представляет собой серьезное препятствие для успешного исправления ядра. С очень запутанный код и вводящие в заблуждение названия символов, KPP использует безопасность через безвестность препятствовать попыткам обойти это.[5][10] Периодические обновления KPP также делают его «движущейся целью», поскольку методы обхода, которые могут работать какое-то время, могут выйти из строя при следующем обновлении. С момента своего создания в 2005 году Microsoft выпустила два основных обновления для KPP, каждое из которых предназначено для взлома известных методов обхода в предыдущих версиях.[5][11][12]
Преимущества
Обновление ядра никогда не поддерживалось Microsoft, поскольку оно может вызвать ряд негативных эффектов.[6] Kernel Patch Protection защищает от этих негативных эффектов, в том числе:
- Серьезные ошибки в ядре.[13]
- Проблемы с надежностью, возникающие из-за того, что несколько программ пытаются исправить одни и те же части ядра.[14]
- Нарушена безопасность системы.[5]
- Руткиты могут использовать доступ к ядру для встраивания в операционную систему, что становится практически невозможным для удаления.[13]
Часто задаваемые вопросы о защите ядра от исправлений Microsoft объясняют:
Поскольку при установке исправлений код ядра заменяется неизвестным, непроверенным кодом, нет возможности оценить качество или влияние стороннего кода ... Анализ данных Online Crash Analysis (OCA) в Microsoft показывает, что сбои системы обычно являются результатом обоих вредоносное и не вредоносное программное обеспечение, которое патчит ядро.
— «Защита ядра от исправлений: часто задаваемые вопросы». 22 января 2007 г.. Получено 22 февраля 2007.
Критика
Сторонние приложения
Некоторое программное обеспечение для компьютерной безопасности, например McAfee с McAfee VirusScan и Symantec с Norton AntiVirus, работал исправлением ядра на системах x86.[нужна цитата ] Антивирусное программное обеспечение, созданное Лаборатория Касперского известно, что широко используется исправление кода ядра на x86 редакции Windows.[15] Этот вид антивирусного программного обеспечения не будет работать на компьютерах с 64-разрядной версией Windows из-за защиты ядра от исправлений.[16] Из-за этого McAfee призвала Microsoft либо полностью удалить KPP из Windows, либо сделать исключения для программного обеспечения, созданного «доверенными компаниями», такими как они сами.[3]
Symantec's корпоративный антивирусное программное обеспечение[17] и Norton 2010 и далее[18] работала с 64-разрядными версиями Windows, несмотря на ограничения KPP, хотя и с меньшей способностью обеспечивать защиту от вредоносных программ нулевого дня. ESET,[19] Trend Micro,[20] Гризофт AVG,[21] avast!, Avira Anti-Vir и Sophos не исправляйте ядро в конфигурациях по умолчанию, но может исправлять ядро, когда включены такие функции, как «расширенная защита процессов» или «предотвращение неавторизованного завершения процессов».[22]
Microsoft не ослабляет защиту ядра от исправлений, делая для нее исключения, хотя Microsoft, как известно, время от времени ослабляет свои ограничения, например, в интересах гипервизор программное обеспечение виртуализации.[9][23] Вместо этого Microsoft работала со сторонними компаниями над созданием новых Интерфейсы прикладного программирования которые помогают программному обеспечению безопасности выполнять необходимые задачи без установки исправлений ядра.[14] Эти новые интерфейсы были включены в Пакет обновления 1 для Windows Vista.[24]
Недостатки
Из-за конструкции ядра Windows Kernel Patch Protection не может полностью предотвратить исправление ядра.[2] Это привело к тому, что поставщики компьютерной безопасности McAfee и Symantec сказать, что, поскольку KPP - несовершенная защита, проблемы, создаваемые поставщиками безопасности, перевешивают преимущества, потому что вредоносное ПО просто найдет способы обойти защиту KPP, а стороннее программное обеспечение безопасности будет иметь меньше свободы действий для защиты системы.[3][4]
В январе 2006 г. исследователи безопасности, известные псевдонимы "skape" и "Skywing" опубликовали отчет, в котором описаны некоторые теоретические методы, с помощью которых можно обойти защиту ядра от исправлений.[25] В январе 2007 года Skywing опубликовал второй отчет об обходе КПП версии 2,[26] и третий отчет в сентябре 2007 года по версии 3 КПП.[27] Также в октябре 2006 г. охранное предприятие Authentium разработали рабочий метод обхода КПП.[28]
Тем не менее, Microsoft заявила, что они намерены устранить любые недостатки, которые позволяют обходить KPP в рамках стандартного процесса Security Response Center.[29] В соответствии с этим заявлением Microsoft на данный момент выпустила два основных обновления KPP, каждое из которых предназначено для взлома известных методов обхода в предыдущих версиях.[5][11][12]
Антимонопольное поведение
В 2006 г. Европейская комиссия выразил обеспокоенность по поводу защиты ядра от исправлений, заявив, что это антиконкурентный.[30] Однако собственный антивирусный продукт Microsoft, Windows Live OneCare, не было особых исключений для КПП. Вместо этого Windows Live OneCare использовала (и всегда использовала) методы, отличные от исправления ядра, для предоставления услуг защиты от вирусов.[31] Тем не менее по другим причинам 64-разрядная версия Windows Live OneCare была недоступна до 15 ноября 2007 года.[32]
Рекомендации
- ^ а б c «Защита ядра от исправлений: часто задаваемые вопросы». Microsoft. 22 января 2007 г.. Получено 30 июля 2007.
- ^ а б c скейп; Skywing (декабрь 2005 г.). "Вступление". Обход PatchGuard в Windows x64. Без информации. Архивировано из оригинал 17 августа 2016 г.. Получено 20 сентября 2007.
- ^ а б Гевиртц, Дэвид (2006). «Великая антивирусная война Windows Vista». OutlookPower. Архивировано из оригинал 1 февраля 2013 г.. Получено 8 июля 2013. «Система уже уязвима. Люди уже взломали PatchGuard. Система уже уязвима, несмотря ни на что. PatchGuard оказывает сдерживающее воздействие на инновации. Плохие парни всегда собираются вводить новшества. Microsoft не должна связывать руки индустрии безопасности, чтобы они мы не можем внедрять инновации. Мы озабочены тем, чтобы превзойти плохих парней за их пределами ». —Крис Паден, менеджер группы корпоративных коммуникаций Symantec
- ^ а б c d е ж грамм Skywing (сентябрь 2007 г.). "Вступление". PatchGuard Reloaded: краткий анализ PatchGuard версии 3. Без информации. Архивировано из оригинал 3 марта 2016 г.. Получено 20 сентября 2007.
- ^ а б Скофилд, Джек (28 сентября 2006 г.). «Поставщики антивирусов сообщают об угрозах Vista в Европе». Хранитель. Получено 20 сентября 2007. «Это никогда не поддерживалось и никогда не одобрялось нами. Это приводит к проблемам с безопасностью, нестабильностью и производительностью, и каждый раз, когда мы что-то меняем в ядре, их продукт ломается». —Бен Фатхи, корпоративный вице-президент подразделения технологий безопасности Microsoft.
- ^ а б c «Политика исправлений для систем на базе x64». Microsoft. 22 января 2007 г.. Получено 20 сентября 2007.
- ^ скейп; Skywing (декабрь 2005 г.). «Системные образы». Обход PatchGuard в Windows x64. Без информации. Архивировано из оригинал 17 августа 2016 г.. Получено 21 сентября 2007.
- ^ а б Skywing (январь 2007 г.). "Вывод". Подрыв PatchGuard версии 2. Без информации. Архивировано из оригинал 4 марта 2016 г.. Получено 21 сентября 2007.
- ^ Skywing (декабрь 2006 г.). "Названия символов, вводящих в заблуждение". Подрыв PatchGuard версии 2. Без информации. Архивировано из оригинал 3 марта 2016 г.. Получено 20 сентября 2007.
- ^ а б Microsoft (июнь 2006 г.). «Обновление для улучшения защиты ядра от исправлений». Совет по безопасности Microsoft (914784). Microsoft. Получено 21 сентября 2007.
- ^ а б Microsoft (август 2007 г.). «Обновление для улучшения защиты ядра от исправлений». Совет по безопасности Microsoft (932596). Microsoft. Получено 21 сентября 2007.
- ^ а б Филд, Скотт (11 августа 2006 г.). «Введение в защиту ядра». Блог о безопасности Windows Vista. Microsoft. Получено 30 ноября 2006.
- ^ а б Оллчин, Джим (20 октября 2006 г.). «Представитель Microsoft разъясняет недавнюю путаницу на рынке в отношении безопасности Windows Vista». Microsoft. Получено 30 ноября 2006.
- ^ Skywing (июнь 2006 г.). "Исправление неэкспортируемых функций ядра, не относящихся к системным службам". Что они думали? Антивирусное ПО пошло не так. Неинформированный. Получено 21 сентября 2007.
- ^ Монтальбано, Элизабет (6 октября 2006 г.). «McAfee кричит о нарушении функций безопасности Vista». Компьютерный мир. Архивировано из оригинал 5 апреля 2007 г.. Получено 30 ноября 2006.
- ^ «Symantec AntiVirus Corporate Edition: системные требования». Symantec. 2006. Архивировано с оригинал 15 мая 2007 г.. Получено 30 ноября 2006.
- ^ «Страница продукта Symantec Internet Security». Symantec. 2011. Получено 26 января 2011.
- ^ «Высокопроизводительная защита от угроз для следующего поколения 64-битных компьютеров». ESET. 2008-11-20. Архивировано из оригинал на 2008-11-20.
- ^ "Минимальные системные требования". Trend Micro Соединенные Штаты Америки. Получено 5 октября 2007.
- ^ «AVG Anti-Virus и Internet Security - Поддерживаемые платформы». Гризофт. Архивировано из оригинал 27 августа 2007 г.. Получено 5 октября 2007.
- ^ Жак, Роберт (23 октября 2006 г.). «Symantec и McAfee 'должны были лучше подготовиться' к Vista». vnunet.com. Архивировано из оригинал 27 сентября 2007 г.. Получено 30 ноября 2006.
- ^ Макмиллан, Роберт (19 января 2007 г.). «Исследователь: исправление PatchGuard приносит пользу Microsoft». InfoWorld. Получено 21 сентября 2007.
- ^ «Заметные изменения в Windows Vista с пакетом обновления 1». Microsoft. 2008. Архивировано с оригинал 3 мая 2008 г.. Получено 20 марта 2008.
- ^ скейп; Skywing (1 декабря 2005 г.). «Обход PatchGuard в Windows x64». Без информации. Архивировано из оригинал 1 августа 2017 г.. Получено 2 июн 2008.
- ^ Skywing (декабрь 2006 г.). "Подрыв PatchGuard версии 2". Неинформированный. Получено 2 июн 2008.
- ^ Skywing (сентябрь 2007 г.). «PatchGuard Reloaded: Краткий анализ PatchGuard версии 3». Неинформированный. Получено 2 июн 2008.
- ^ Хайнс, Мэтт (25 октября 2006 г.). "Microsoft Decries Vista PatchGuard Взлом". eWEEK. Получено 2 апреля 2016.
- ^ Гевиртц, Дэвид (2006). «Великая антивирусная война Windows Vista». OutlookPower. Архивировано из оригинал 4 сентября 2007 г.. Получено 30 ноября 2006.
- ^ Эспинер, Том (25 октября 2006 г.). "Антимонопольные проблемы EC Vista конкретизированы". Silicon.com. Архивировано из оригинал 2 февраля 2007 г.. Получено 30 ноября 2006.
- ^ Джонс, Джефф (12 августа 2006 г.). «Windows Vista x64 Security - Pt 2 - Patchguard». Блог Джеффа Джонса по безопасности. Microsoft. Получено 11 марта 2007.
- ^ Белый, Ник (14 ноября 2007 г.). «Обновление до следующей версии Windows Live OneCare объявлено для всех подписчиков». Блог группы разработчиков Windows Vista. Microsoft. Архивировано из оригинал 1 февраля 2008 г.. Получено 14 ноября 2007.
внешняя ссылка
- Правда о PatchGuard: почему Symantec продолжает жаловаться
- Введение в защиту ядра от исправлений
- Представитель Microsoft разъясняет недавнюю путаницу на рынке в отношении безопасности Windows Vista
- Защита ядра от исправлений: часто задаваемые вопросы
- Безопасность Windows Vista x64 - часть 2 - Patchguard
Статьи Uninformed.org:
- Обход PatchGuard в Windows x64
- Подрыв PatchGuard версии 2
- PatchGuard Reloaded: краткий анализ PatchGuard версии 3
Рабочие обходные подходы
- KPP Destroyer (включая исходный код) - 2015
- Рабочий драйвер для обхода PatchGuard 3 (включая исходный код) - 2008 г.
- Обход PatchGuard с помощью шестнадцатеричного редактора - 2009
Рекомендации Microsoft по безопасности: