Windows был модифицирован отключен patchguard

Обновлено: 02.07.2024

Когда Microsoft представила Vista, компания сообщила о серьезных изменениях в принципе работы Windows. Возможно, самым заметным из этих изменений была функция под названием PatchGuard.

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

Перед тем, как начать тестировать PatchGuard, необходимо поговорить о внесении изменений в ядро. Внесение изменений или исправлений в ядро, также известный как подключение к ядру, - процесс по модифицированию поведения ядра операционной системы или перехвату определенных событий. Некоторые производители продуктов по обеспечению безопасности, в частности McAfee и Symantec, используют подключение к ядру для реализации своих антивирусных служб, защиты ОС и своих приложений путем перехвата обращений и блокирования потенциально вредоносных процессов и служб.

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


PatchGuard и защита от руткитов
У Microsoft есть серьезная причина, чтобы блокировать ядро ОС: предотвращение работы руткитов. По сути дела, руткит - вредоносный файл, который позволяет реализовать доступ к компьютеру или сети с администраторскими правами. Так как руткиты подключаются к ядру, это повзоляет им избегать обнаружения, при этом они имеют неограниченный доступ ко всем ресурсам системы.

В 2005 году весь мир узнал, что Sony BMG Music Entertainment использовала ПО для защиты от копирования на основе руткита. Руткит от Sony использовал подключение к ядру, чтобы препятствовать и блокировать попытки записи копий диска. Чтобы заблокировать возможность руткитам или другому вредоносному ПО подключаться к ядру, Microsoft усилила защиту своего ядра с помощью PatchGuard.


Является ли PatchGuard средством обеспечения безопасности?
Сторонние производители программного обеспечения, в частности разработчики антивирусов и продуктов по обеспечению безопасности бурно возмущались тем, что они не будут иметь возможности подключатся к ядру, что, в свою очередь, привело бы к необходимости созданию их программного обеспечения с нуля. Они заявляли, что блокируя независимых разработчиков Microsoft может оставить ядро открытым для атак вредоносного ПО. Как и любая функция безопасности PatchGuard неидеальна, но вместе с тем сможет выявить манипуляции с ядром вне зависимости от того, кто их проводит - вредоносное или антивирусное ПО, так что возмущения антивирусных компаний о том, что данная технология блокирует только хороших парней бессмысленны.

Некоторые производители продуктов безопасности до сих пор заявляют, что без неограниченного доступа к системному ядру они не могут проводить комплексные функции, необходимые для предотвращения вторжений в систему. По определению - системы предотвращения вторжений должны уметь проводить мониторинг и анализ всего, что входит и выходит из компьютера, а также всех запускаемых служб и процессов, включая те, которые принадлежат ядру, чтобы иметь возможность правильно их оценить и соответствующе отреагировать. Производители продуктов по обеспечению безопасности должны развить свои модели безопасности так, чтобы полностью доверять ядру и инспектировать все другие процессы и события, при этом Microsoft уже работает с производителями продуктов безопасности над новыми API, которые бы позволили им работать с ядром в авторизированном режиме.

Хотя стратегия Microsoft вынуждает производителей продуктов безопасности изменить способы защиты компьютеров, кажется бессмысленным просить Microsoft нарочно оставить ядро открытым, чтобы облегчить производителям ПО для обеспечения безопасности защитить ОС. В конечном итоге, PatchGuard - взаимоисключающее условие для для индустрии программного обеспечения для организации защиты: пользователи Windows и независимые разработчики в одинаковой степени требовали, чтобы Microsoft встроила больше функций безопасности в Windows, результатом чего стала функция PatchGuard. Однако, несмотря на то, что внутренне Windows стала безопасней, PatchGuard вынудил некоторых производителей переосмыслить свою стратегию безопасности Windows после того, как они потеряли возможность модифицировать ядро операционной системы. Некоторые производители антивирусов, к примеру Sophos, поддерживают новую модель безопасности Microsoft и заявляют, что их конкуренты тратят время на войну с Microsoft, вместо того, чтобы разрабатывать работающие программы. Хорошо то, что PatchGuard реализована только в х64-редакциях Windows Vista, доля которой на рынке растет, но которой пользуется малая толика от общего процента пользователей Windows Vista.

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

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


Безопасность ядра
Ядро - это сердце и душа операционной системы. В то время, как малейшая ошибка при внесении изменений в ядро может привести к нестабильности и ненадежности системы, наличие руткита, скрыто ингегрированного в ядро операционной системы, чтобы избежать его обнаружения самой операционной системой или сторонними продуктами безопасности - намного больший риск для компаний. Именно по этой причине PatchGuard представляет собой наиболее эффективный способ борьбы с сегодняшним вредоносным ПО и наиболее совершенной защитой ядра.

image

Периодически, как правило во вторую среду месяца, можно услышать истории о том, что Windows после очередного обновления перестает загружаться, показывая синий экран смерти. В большинстве случаев причиной такой ситуации оказывается либо руткит, либо специфичное системное ПО, фривольно обращающееся со внутренними структурами ОС. Винят, конечно, все равно обновление, ведь «до него все работало». С таким отношением не удивительно, что «Майкрософт» не поощряет использование всего, что не документировано. В какой-то момент, а именно с релизом Windows Server 2003, MS заняла более активную позицию в вопросе борьбы с чудо-поделками сторонних разработчиков. Тогда появился механизм защиты целостности ядра — kernel patch protection, более известный как PatchGuard.

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

Что охраняет PatchGuard

Самым популярным местом модифицирования ядра была таблица системных вызовов. При помощи модификации указателей на функции системных вызовов можно было легко их перехватывать, фильтровать, логировать и т. п. Причем этот патч был популярен как для руткитов, так и для антивирусного ПО. Другие интересные для патча объекты — таблицы дескрипторов (GDT, IDT). Через модифицирование глобальной таблицы дескрипторов можно было изменять атрибуты сегментов, создавая бекдоры для кода, а через таблицу дескрипторов прерываний можно было перехватывать… прерывания! Продвинутые же парни сплайсили непосредственно функции ядра.

  • таблицы системных вызовов (SST),
  • глобальную таблицу дескрипторов (GDT),
  • таблицу дескрипторов прерываний (IDT),
  • образ ядра,
  • ядерные стеки.
  • множество системных образов, не только образ ядра (nt, hal, WerLiveKernelApi, tm, clfs, pshed, kdcom, bootvid, ci, msrpc, ndis, ntfs, tcpip, fltmgr),
  • критически важные структуры данных ядра (например, список процессов),
  • набор MSR (например, model specific регистр IA32_LSTAR),
  • KdpStub — процедура отладчика, получающая управление после исключений.

Как охраняет PatchGuard

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


За счет того, что адрес начала и конца любой функции можно получить прямо в рантайме, задача подсчета контрольной суммы отдельно взятой функции становится тривиальной. Для сравнения — в x86-версиях контроль целостности образов невозможен из-за того, что непонятно, как определить границы отдельной функции, а образ целиком (или даже отдельные его секции) накрывать контрольной суммой нельзя, поскольку в том же ядре присутствуют функции, которые патчатся самим ядром на лету.

При загрузке ОС PatchGuard создает от 1 до 4 контекстов — структур данных, в которых хранятся копии используемых им функций, контрольные суммы защищаемых структур и ключи шифрования самого контекста. Эти контексты хранятся в неподкачиваемом пуле в зашифрованном виде. О проверке контекстов поговорим чуть позже.

Инициализируются контексты PatchGuard в фазе 1 загрузки ОС. Функция, непосредственно занимающаяся созданием контекста, не имеет публичного символа (будем называть ее KiInitializePatchGuardContext), но найти ее можно внутри функции KiFilterFiberContext. Мы нашли два места, в котором возможно создание контекста PatchGuard:

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


Функция sub_14071815C очевидно не имеет публичного символа, поскольку связана с проверкой лицензии ОС.

Ниже приведен псевдокод функции KiFilterFiberContext, выбирающей способ проверки конкретного контекста и вызывающей функцию создания самого контекста.

Функция, создающая контекст PatchGuard, обфусцирована настолько, что автоматические средства с ней не справляются, а исследователям внезапно становится неинтересно ее реверсить. В статике это полная каша, 10K+ строк декомпилированного «в лоб» кода (сама декомпиляция в IDA Pro занимает около 40 минут).

image

  • даже простейшая операция, такая как взятие случайного числа, размазана на 50+ строк ассемблерного кода;
  • все циклы развернуты;
  • вставлено много «мертвого» кода;
  • используется косвенное обращение к переменным и внешним функциям.
При подключенном отладчике входит в бесконечный непрерываемый цикл.
Загружает временную невалидную таблицу дескрипторов прерываний. Если мы следили за доступом к отладочным регистрам, произойдет отладочное исключение, которое при данных условиях приведет к tripple fault с последующей перезагрузкой.
  1. Индекс DPC функции, которая будет вызвана для проверки контекста и может быть одной из следующих:
    • KiTimerDispatch
    • KiDpcDispatch
    • ExpTimerDpcRoutine
    • IopTimerDispatch
    • IopIrpStackProfilerTimer
    • PopThermalZoneDpc
    • CmpEnableLazyFlushDpcRoutine
    • CmpLazyFlushDpcRoutine
    • KiBalanceSetManagerDeferredRoutine
    • ExpTimeRefreshDpcRoutine
    • ExpTimeZoneDpcRoutine
    • ExpCenturyDpcRoutine

  2. Метод планирования проверки:
    1. KeSetCoalescableTimer
      Создается объект таймера, который запустит проверку через 2м:05с ± 5 с.
    2. Prcb.AcpiReserved
      DPC сработает при определенном ACPI событии, например, при переходе в состояние низкого энергопотребления. Сработает не раньше чем через 2м:05с ± 5 с.
    3. Prcb.HalReserved
      DPC сработает при тике таймера HAL. Не раньше чем через 2м:05с ± 5 с.
    4. PsCreateSystemThread
      Создается отдельный системный поток, спящий 2м:05с ± 5 с. После этого вызывается проверка контекста.
    5. KeInsertQueueApc
      Создается regular kernel APC, срабатывающая сразу, но ждущая 2м:05с ± 5 с внутри work item.
    6. KiBalanceSetManagerPeriodicDpc
      DPC сработает по таймеру менеджера балансировки, не раньше чем через 2м:05с ± 5 с.
    Последовательности вызовов рекурсивных функций в зависимости от DPC-функции ExpTimerDpcRoutine -> KiCustomAccessRoutine0 -> KiCustomRecurseRoutine0… KiCustomRecurseRoutineN
    IopTimerDispatch -> KiCustomAccessRoutine1 -> KiCustomRecurseRoutine1… KiCustomRecurseRoutineN
    IopIrpStackProfilerTimer -> KiCustomAccessRoutine2 -> KiCustomRecurseRoutine2… KiCustomRecurseRoutineN
    PopThermalZoneDpc -> KiCustomAccessRoutine3 -> KiCustomRecurseRoutine3… KiCustomRecurseRoutineN
    CmpEnableLazyFlushDpcRoutine -> KiCustomAccessRoutine4 -> KiCustomRecurseRoutine4… KiCustomRecurseRoutineN
    CmpLazyFlushDpcRoutine -> KiCustomAccessRoutine5 -> KiCustomRecurseRoutine5… KiCustomRecurseRoutineN
    KiBalanceSetManagerDeferredRoutine -> KiCustomAccessRoutine6 -> KiCustomRecurseRoutine6… KiCustomRecurseRoutineN
    ExpTimeRefreshDpcRoutine -> KiCustomAccessRoutine7 -> KiCustomRecurseRoutine7… KiCustomRecurseRoutineN
    ExpTimeZoneDpcRoutine -> KiCustomAccessRoutine8 -> KiCustomRecurseRoutine8… KiCustomRecurseRoutineN
    ExpCenturyDpcRoutine -> KiCustomAccessRoutine9 -> KiCustomRecurseRoutine9… KiCustomRecurseRoutineN

    Проверка контекста состоит из двух этапов: сперва проверка структуры самого контекста, которая происходит на DPC-уровне, затем планируется work item, осуществляющий проверку защищаемых структур в системном потоке. Если проверка была удачной, старый контекст удаляется и вместо него создается новый, который будет запущен через случайный интервал времени. Если проверка не удалась, PatchGuard зачищает все свои следы, в том числе зануляя стек, и демонстрирует синий экран с кодом ошибки 0x109: CRITICAL_STRUCTURE_CORRUPTION.

    Гифка с саморасшифровывающимся на первом этапе проверки контекстом:

    Как победить

    • Такой патч образа ядра, чтобы PatchGuard вообще не инициализировался.
    • Патч процедур проверки контекста.
    • Хук KeBugCheck с восстановлением состояния системы.
    • Отмена запланированных проверок — то, что мы реализовали.
    1. KeSetCoalescableTimer
      Необходимо просканировать все таймеры, DPC для которых будет содержать DeferredContext с неканоническим адресом, и увеличить интервал ожидания для найденных до бесконечности.
    2. Prcb.AcpiReserved
      Просто занулить данное поле.
    3. Prcb.HalReserved
      Просто занулить данное поле.
    4. PsCreateSystemThread
      Просканировать спящие потоки и раскрутить их стек. Если он упирается в функцию из структуры KiServiceTablesLocked, это наш клиент. Выставляем время спячки, равное бесконечности.
    5. KeInsertQueueApc
      Просканировать все рабочие потоки с раскруткой стека. Если в стеке встречаются функции не из кодовой секции ядра, причем раскручивающиеся с использованием данных для функций FsRtlMdlReadCompleteDevEx и FsRtlUninitializeSmallMcb, это точно рабочий поток PatchGuard. Обезвреживаем так же, как в предыдущем варианте.
    6. KiBalanceSetManagerPeriodicDpc
      Восстановить «законную» процедуру — KiBalanceSetManagerDeferredRoutine.

    Windows 10

    При осмотре KiFilterFiberContext из Windows 10 Technical Preview мы заметили небольшое изменение. Все старые методы планирования остались прежними. Однако появился новый, который пока что безусловно возвращает STATUS_HV_FEATURE_UNAVAILABLE. Немного покопавшись, мы обнаружили функцию KiSwInterruptDispatch, внутри которой явно идет расшифровка и вызов проверки контекста. Очевидно, что будет добавлена возможность осуществлять проверку контекстов по запросу гипервизора Hyper-V. От гипервизора при определенных условиях будет приходить синтетическое прерывание, обработчик которого будет проверять целостность ядра.

    История продолжается

    В статье мы старались не указывать имена конкретных функций не потому, что нам жалко. Все просто: имена функций, используемых для расшифровки и проверки контекстов, намеренно изменены разработчиками PatchGuard и меняются в разных версиях ОС.

    image

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

    Одно хорошо — все эти функции находятся рядом, так что начать можно с функции KiFilterFiberContext. Очевидно, они все лежат в одном файле исходного кода. Однако проверка целостности ядра не ограничивается одним PatchGuard. В различные части ядра вставлены макросы, осуществляющие проверку тех или иных структур. Каждое такое место приходится искать вручную. Пример:


    С вероятностью 50% данная функция осуществляет подсчет контрольной суммы для произвольной функции ядра и планирует ее проверку каждые 2 минуты в DPC с функцией CcBcbProfiler.

    Так что удачи в поисках! PatchGuard интересен именно тем, что его весело реверсить ;)

    Прикрепленное изображение

    21H2

    Актуальная версия: Windows 11 10.0.22000.318 Выпуск функций 21H2

      Проверить совместимость можно с помощью утилит:
        (Windows PC Health Check)

      Прикрепленное изображение

      Прикрепленное изображение

      Прикрепленное изображение

      Прикрепленное изображение

      Прикрепленное изображение

      Прикрепленное изображение

      На ASUS X550C, кстати, не ставится.
      Intel Core i3-3217U + GeForce GT 720M (оперативы 12 Гб + SSD).

      Выбивает ошибку "This PC doesn't meet the minimum requirements to install this version of Windows".

      При этом последняя актуальная Win 10 летает. Интересно, что поменяли в требованиях.

      Kokolio, да, я так же не могу накатить на Ivy bridge.
      "the pc must support tpm 2.0"

      Утром буду пробовать переносить уже установленую на виртуалке на реальный диск.
      Да и в любом случае это все пропатчат позже

      Выбивает ошибку "This PC doesn't meet the minimum requirements to install this version of Windows".

      У многих такая ошибка. И указывает причину, не включен Secure Boot и TPM 2.0

      Советуют в биосе включить какие-то секьюрити или Intel Platform Trust.

      Другие советуют сделать установщик от win10, а потом там заменить от 11 файл install.wim

      1 Способ. Ошибка при попытке обновится фиксится заменой appraiserres.dll из папки sources образа Windows 10 в папку sources образа Windows 11. Нужный файл прикреплён к посту, просто скачать и заменить в образе Windows 11.

      4 способ. На экране установки нажимаем Shift +F10 и вводим в cmd:

      REG ADD HKLM\SYSTEM\Setup\LabConfig /v BypassTPMCheck /t REG_DWORD /d 1
      REG ADD HKLM\SYSTEM\Setup\LabConfig /v BypassSecureBootCheck /t REG_DWORD /d 1 1. Я НЕ НЕСУ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ПРОДЕЛАННЫЕ ВАМИ ДЕЙСТВИЯ, ТО ЧТО РАБОТАЕТ У МЕНЯ ИЛИ ДРУГИХ ЛЮДЕЙ, НЕ ФАКТ, ЧТО ЗАРАБОТАЕТ У ВАС, ВСЕГДА ХРАНИТЕ БЕКАПЫ ПЕРЕД ДЕЙСТВИЯМИ С СИСТЕМОЙ! Спасибо за 1 способ ув. RostislavArts
      Спасибо за 3 способ ув. al-lion
      Спасибо за 4 способ ув. Lux Darkus RostislavArts, Semen8991, идёт установка, пока все нормально, чуть позже отпишусь Stimayk, я тоже прямо щас ставлю. Тоже отпишусь
      По центру оно норм, но тогда систрей выглядит там вообще лишним.

      как там виндовс на ядре линукс?
      форсить можно ? intel core i3 7gen

      Прикрепленное изображение

      О, вернули возможность установить без учетки майков не вырубая сетевое соединение. hqqddy, и так можно было. Просто выбираешь нижний пункт и там offline account Я в системе. Secure Boot выключен, никаких дополнительных настроек не делал djneel, русская клавиатура есть, системный язык только английский Образ Windows 11 с отключением ограничений обновления + Оригинальная версия.

      Версия: Windows 11 Beta
      Build: 22H2 Build 22458.1000 + FIX / 21H2 Build 22000.194 + FIX / 22000 OFFICIAL

      Доступные редакции:
      Windows 11 Домашняя
      Windows 11 Pro

      Описание Dev сборок: Сборки Windows 11, предназначенные для участников программы Windows Insider на канале обновления Dev. Сборки сделаны с помощью оригинальных файлов UUP на сервисе UUP Dump. Были интегрированы обновления по 16 сентября 2021 года.
      В сборках нет никаких изменений и ничего не вырезано!

      Описание Beta сборок: Сборки Windows 11, предназначенные для участников программы Windows Insider на канале обновления Beta. Сборки сделаны с помощью оригинальных файлов UUP на сервисе UUP Dump. Были интегрированы обновления по 16 сентября 2021 года.
      В сборках нет никаких изменений и ничего не вырезано!

      Описание Official сборок: 19 августа 2021 года Microsoft сочла Windows 11 версии 22000.132 стабильной и официально сделала ее доступной для загрузки в качестве первых ISO-образов Windows 11.
      Образы взяты с официального сайта Microsoft! Во время установки система обновится до актуальной 22000.194 Beta версии.
      В раздачу добавлены приветственные обои для участников Windows Insider Program.

      PatchGuard отключение
      подгружаю драйвер без подписи но пк через минут 40 крашится ошибка в di.dll что то там немного.

      SSDT PatchGuard
      Привет, есть тут хлопцы кто отключал PG от SSDT нормальным методом, ибо дебаги косячно робят

      Как отключить брандмауэр или отключить фаервол
      Я отключаю защитника Windows server 2012 . Отключаю фаервол. Расшариваю папки. В свойствах сети.

      Зачем ? Обычно если для реализации какой-то идеи в ядре
      нужно отключать PatchGuard - то это очень плохая идея.

      Их нет. Kernel Patch Protection постоянно модифицируется и совершенствуется.
      Этой защиты уже несколько поколений. Зачем ? Обычно если для реализации какой-то идеи в ядре
      нужно отключать PatchGuard - то это очень плохая идея.

      Мне нужно натравить IrpTrace на один драйвер, а он падает при включенном PatchGuard.

      З.Ы. Может кто знает другое приложение для просмотра IOCTL запросов?
      Нужно отследить DeviceoControl вызовы и посмотреть содержание буферов.

      Мне нужно натравить IrpTrace на один драйвер, а он падает при включенном PatchGuard. Подключите отладчик ядра и PatchGuard будет отключен. а какой именно и где его скачать. Есть статья где-нибудь?

      Например, WinDbg. Ссылки есть у меня в блоге.
      Здесь описано, как подключить kernel-отладчик:

      Удобнее всего отлаживать драйвер на виртуальной машине, подключив
      отладчик через COM-порт с выводом в pipe.


      Отключить событие
      Стоит класс Hook, для нажатия клавиш вне программы, клавиша вызывает событие, но после первого.

      Отключить ядро
      У меня проблема такая: произошел сбой, комп вырубился когда вкючил появилось меню с надписью биос.

      Отключить raid на hp
      Есть ли возможность и если есть то как? Сервер ProLiant ML310. Как отключить создание raid?


      Отключить DragMove
      Здравствуйте! На форме есть 2 кнопки. При нажатии на одну из них вызывается DragMove(). Вопрос.

      Потенциально нежелательные программы (ПНП) не являются вирусами, вредоносным ПО или другими типами угроз, но могут выполнять действия, которые повлияют на производительность и удобство использования компьютера. Часто под ПНП понимают приложения с плохой репутацией.

      Типичными сценариями поведения ПНП являются:

      • Интеграция дополнительного (рекламного) ПО в установщик.
      • Инъекция рекламных модулей в браузеры.
      • Поиск проблем производительности системы, запрос платежа для исправления ошибок и отсутствие внесенных изменений после факта оплаты (такие программы также известны как фальшивые антивирусы).

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

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

      Первоначально Microsoft объявила, что функция защиты от ПНП будет доступна только для Windows 10 Enterprise. Тем не менее, пользователи редакций Windows 10 Pro и Windows 10 Домашняя также могут включить защиту, чтобы заблокировать установку нежелательных программ на ПК.

      Обновления функции защиты ПНП поставляются как часть стандартных сигнатурных обновлений и облачной защиты Защитника Windows.

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

      Примечание

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

      Содержание

      Включение / отключение защиты от ПНП через системный реестр

      Следующие файлы .REG позволяют добавить или изменить значение DWORD в соответствующих ключах системного реестра:

      Включение / отключение защиты от ПНП через системный реестр

      1. Выполните шаг 2 или шаг 3 чтобы включить или отключить защиту от ПНП соответственно. Чтобы включить защиту от ПНП скачайте файл Enable_Windows_Defender_PUA_protection.reg и перейдите к шагу 4. Чтобы отключить защиту от ПНП скачайте файл Disable_Windows_Defender_PUA_protection.reg и перейдите к шагу 4. Сохраните файл .REG на рабочий стол.
      2. Дважды щелкните файл .REG для его запуска.
      3. Если появился запрос службы контроля учетных записей, подтвердите его. Затем нажмите Да, чтобы применить файл, а затем OK.
      4. Выполните перезагрузку ПК, чтобы изменения вступили в силу.
      5. Теперь вы можете удалить файл .REG при желании.

      Описание значений ключей реестра

      0 или удаление = отключить
      1 = включить

      0 или удаление = отключить
      1 = включить

      Включение / отключение защиты от ПНП с помощью редактора групповой политики

      Редактор групповых политик является компонентом Windows 10 Pro и Enterprise (Корпоративная). Для отключения Защитника Windows нужно выполнить следующие шаги:

      • Нажмите сочетание клавиш Windows + R и введите gpedit.msc , затем нажмите клавишу ввода Enter . При необходимости подтвердите запрос службы контроля учетных записей для запуска редактора групповых политик.
      • Перейдите по следующему пути:
        • Для Windows 10, версия 1909, 1903, 1809 и ниже: Политика “Локальный компьютер” > Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Антивирусная программа “Защитник Windows”.
        • Для Windows 10, версия 2004 и выше: Политика “Локальный компьютер” > Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Антивирусная программа Microsoft Defender.

        Настройка обнаружения потенциально нежелательных приложений

        • В правой части окна выберите политику Настройка обнаружения потенциально нежелательных приложений.

        Включение защиты

        • В открывшемся окне установите состояние политики на Включено и укажите режим в разделе "Параметры" – Блокировать: потенциально нежелательные программы будут блокироваться.
        • Примените изменение, затем нажмите ОК.

        Настройка обнаружения потенциально нежелательных приложений

        Режим аудита

        • В открывшемся окне установите состояние политики на Включено и укажите режим в разделе "Параметры" – Проверять: потенциально нежелательные программы не будут блокироваться, запись об этом событии будет внесена в журналы событий.
        • Примените изменение, затем нажмите ОК.

        Отключение защиты

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

        Включение / отключение защиты от ПНП через Windows PowerShell

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

        0 = отключить
        1 = включить
        2 = режим аудита (будет обнаруживать ПНП, но не блокировать)

        Включение / отключение защиты от ПНП через Windows PowerShell

        • Откройте Windows PowerShell с правами администратора.
        • Введите следующие команды чтобы включить соответствующий режим:

        Включение защиты

        Режим аудита

        Отключение защиты

        • Выполните перезагрузку ПК, чтобы изменения вступили в силу.

        Состояние защиты от ПНП проверяется командлетом Get-MpPreference. В его выводе значение PUAProtection: 1 означает включенную защиту.

        Get-MpPreference

        Как проверить защиту от ПНП

        Чтобы проверить активность защиты от ПНП, вы можете скачать безопасный тестовый файл на сайте AMTSO, нажав ссылку LAUNCH THE TEST.

        Тестовый файл ПНП

        Если при попытке запустить файл PotentiallyUnwanted.exe, он был заблокирован Защитником Windows, то защита от ПНП была успешно включена.

        Как проверить защиту от ПНП

        Также проверить успешную блокировку можно в меню приложения Безопасность Windows: Защита от вирусов и угроз > Текущие угрозы.

        Безопасность Windows – Текущие угрозы

        или в Защита от вирусов и угроз > Текущие угрозы > Журнал защиты

        Как добавить обнаруженное приложение в исключения

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

        • Откройте приложения Безопасность Windows.
        • Перейдите в меню Защита от вирусов и угроз > Текущие угрозы > Журнал защиты
        • Выберите необходимый файл, отмеченный как Найдено потенциально нежелательное приложение, и нажмите Действие > Разрешить на устройстве.

        Добавить в исключения

        После выполнения всех шагов приложение будет восстановлено в исходное местоположение, и вы сможете без проблем запустить его.

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

        Считаете ли вы, что Windows 10 должна включать дополнительный уровень защиты от ПНП по умолчанию? Напишите нам в комментариях.

        Читайте также: