На Хабре неоднократно обсуждалось, что сторонние антивирусы — источник дополнительной угрозы. Они внедряются в ОС на уровне ядра и увеличивают поверхность атаки за счёт собственных уязвимостей. Некоторые специалисты говорят, что сторонние антивирусы лучше удалить. Хотя в некоторых случаях их использование всё-таки имеет смысл.
Но есть и хорошая новость. В состав ОС Windows входит стандартный антивирус Windows Defender. Это простая и добротная программа. Но для максимальной эффективности желательно её укрепить специальными настройками, которые по умолчанию отключены.
Windows Defender (известен также как Microsoft Defender и Защитник Windows) — простой, но качественный антивирус, встроенный в последние версии Windows. Там есть средства для контроля приложений, встроенный брэндмауэр (файрвол) и средства для защиты в реальном времени.
Настройки управления Windows Defender отличаются от GUI коммерческих антивирусов. Здесь множество опций. Хотя все они подробно описаны в документации, добраться до них не так легко.
По умолчанию Defender устанавливается со стандартными параметрами, которые не оптимальны. Небольшие изменения конфигурации позволяют значительно улучшить защиту домашних ПК.
Ряд ключевых настроек Windows Defender изменяется через локальную групповую политику. Их можно менять двумя способами:
- через редактор локальной групповой политики (Local Group Policy Editor,
gpedit.msc
), который по умолчанию доступен только в версиях Windows Pro/Enterprise;
- через консоль PowerShell.
В принципе, второй вариант проще и быстрее, хотя кому-то ближе по душе GUI. Ниже используются оба варианта.
Интервал обновления вирусных сигнатур
Запускаем PowerShell от имени администратора и набираем
Get-MpPreference
, чтобы посмотреть текущую конфигурацию Защитника:Устанавливаем интервал обновления сигнатур на 1 час:
Set-MpPreference -SignatureUpdateInterval 1
Есть смысл также проверять новые сигнатуры перед каждым сканированием:
Set-MpPreference -CheckForSignaturesBeforeRunningScan 1
Другие параметры
Set-MpPreference
, которые можно изменить из консоли, указаны в документации.Аналогичные настройки есть в редакторе локальной групповой политики. Если у вас версия Windows ниже Pro/Enterprise, то нужно сначала активировать редактор. Вот скрипт для Windows 10 и скрипт для Windows 11.
После активации редактора запускаем его:
gpedit.msc
Там несложно найти все те же настройки, которые указаны в консоли.
Включить MAPS
Microsoft Advanced Protection Service (MAPS) — улучшенная защита в реальном времени с подключением нескольких облачных функций и некоторых передовых технологий. Это бесплатная экспериментальная функция, которая выключена по умолчанию.
Подключение в консоли через
Set-MpPreference
по примеру выше:-
CloudBlockLevel
: уровень блокировки, рекомендуется5 - High blocking level
, хотя можно и более высокий.
-
CloudExtendedTimeout
: таймаут, рекомендуется установить на 50 секунд.
-
MAPSReporting
, отправка отчётов в Microsoft: 0 — отключена, 2 — расширенные отчёты (Advanced Membership), 1 — только базовые данные (Basic Membership).
-
SubmitSamplesConsent
: отправка образцов в Microsoft: 0 — всегда спрашивать, 1 — автоматически отправлять безопасные образцы, 2 — никогда не отправлять, 3 — отправлять все образцы автоматически.
Включение MAPS в редакторе групповой политики:
Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Антивирусная программа Microsoft Defender (Windows Defender) → MAPS
Здесь выбираем «Присоединиться к Microsoft MAPS» и уровень: базовый или расширенный (на скриншоте внизу).
В справке написано, что означают уровни участия.
Далее включаем опцию «Блокировка при первом появлении». Эта функция обеспечивает проверку устройств в реальном времени с помощью службы MAPS, прежде чем разрешить выполнение определённого содержимого или доступ к нему.
Также активируем функцию «Настроить локальное переопределение для отправки отчётов в Microsoft MAPS».
Переходим к следующему разделу с настройками
MpEngine
.Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Антивирусная программа Microsoft Defender (Windows Defender) → MpEngine
Опция «Выберите уровень защиты в облаке» (на КДПВ) — можно установить высокий или сверхвысокий уровень защиты, а ещё лучше уровень с нулевой терпимостью.
Опция «Настройте расширенную проверку в облаке» — это время, на которое антивирус может заблокировать подозрительный файл, чтобы проверить его в облаке. Рекомендуется таймаут 50.
Эти опции сильно укрепляют антивирусную защиту Windows Defender.
Примечание. Любое последующее обновление Windows Defender может отменить сделанные изменения и вернуть настройки по умолчанию. Поэтому лучше периодически проверять их.
Подробнее о сертификатах подписи кода на сайте GlobalSign
Комментарии (16)
Mur81
22.03.2022 22:28+8Статья конечно очень поверхностная. Лучше бы каждый почитал описание командлета Set-MpPreference и настроил под себя.
К сожалению вынужден констатировать, что в этом описании необычайно много ошибок. Из того что вспомню сходу:
1. Указывается, что время запланированных действий указывается в минутах от полуночи. На самом деле указывать надо в обычном формате (например «15:30»).
2. В описании параметра RandomizeScheduleTaskTimes говориться, что рандомизация происходит в интервале ± 30 минут от запланированного времени. На самом деле окно рандомизации задаётся параметром SchedulerRandomizationTime, указывается в часах и отсчитывается от запланированного времени (только вперёд).
3. Кое-где не правильно указаны дефолтные значения (которые к тому же скорее всего отличаются в разных версиях ОС).
По итогу обнаружил, что более внятное описание параметров проще почерпнуть из описания шаблонов GPO (можно через gpedit.msc или вот на этом сайте).
SAGSa
23.03.2022 05:43Возможно будет полезно, напишу способ как проверить дату последнего обновления антивирусных баз. Я использую для этого свой модуль, проверить можно следующей командой
Get-ADComputer -Filter * | Get-SystemInfo -Properties MseLastUpdateDate
saipr
23.03.2022 09:13-8В состав ОС Windows входит стандартный антивирус Windows Defender.
А разве не ОС Windows главный распространитель вирусов?!
А потом ОС Windows сказала же, что больше ни ногой к нам...
Akr0n
23.03.2022 12:13-1Больше интересует как при наличии нормального антивируса с актуальными базами полностью отключить работу антивируса от Microsoft? Постоянно с обновлениями закачиваются какие-то утилиты удаления вирусов и устанавливаются.
Mur81
23.03.2022 22:03+21. Отключить Defender можно через GPO/gpedit.msc если это не домашняя редакция (или как она там нынче называются) винды. Хотя он теоретически должен отключаться сам при установке другого антивируса.
2. Если Вы имеете в виду «Средство удаления вредоносных программ», то это прямого отношения к Defender'у не имеет. И оно не устанавливается, а просто запускается один раз.Akr0n
24.03.2022 02:51На днях наблюдал как «Средство удаления вредоносных программ» ставилось несколько раз, такое впечатление, что это ежемесячное обновление.
Mur81
24.03.2022 13:49+1Оно и есть ежемесячное — каждый месяц скачивается новая версия со свежими базами, производит сканирование и всё, до следующего месяца больше оно себя не проявляет.
Но если долго не ставить обновления, то я тоже замечал, что может скачаться сразу несколько версий. Т.е. эти «средства» не являются полностью кумулятивными, а видимо с каким-то шагом (но это не точно).
Лог работы можно посмотреть вот в этом файле: %windir%\debug\mrt.log
Там прекрасно видно как оно отрабатывает.Akr0n
24.03.2022 17:06-1Так зачем оно нужно пользователю, у которого стоит нормальный платный антивирус с актуальными базами? Можно ли радикально отключить получение и установку этих утилит?
Mur81
24.03.2022 21:19+1«Зачем» это не ко мне вопрос.
На всех версиях винды до десятки обновления можно ставить выборочно и проблем с этим нет. В десятке надо отключать автообновления (через GPO) и далее можно ставить обновления выборочно в ручную, через PowerShell или с помощью Windows Update MiniTool.
Но я не понимаю ради чего вся эта возня? Ничего кроме экономии пары минут времени при очередном обновлении это не даст.Akr0n
25.03.2022 02:35Экономия трафика, дискового пространства в кэшах, процессорного времени. Лично я терпеть не могу тратить ресурсы (любые) впустую.
Sanctuary_s
23.03.2022 19:55Я бы еще добавил от себя
# Включить защиту сети в Microsoft Defender Exploit Guard Set-MpPreference -EnableNetworkProtection Enabled # Включить обнаружение потенциально нежелательных приложений и блокировать их Set-MpPreference -PUAProtection Enabled # Включить песочницу для Microsoft Defender (в Windows уже включено по умолчанию) setx /M MP_FORCE_USE_SANDBOX 1
Для еще больших параноиков можно сделать так
# Включить аудит событий, возникающих при создании или запуске процесса auditpol /set /subcategory:"{0CCE922B-69AE-11D9-BED3-505054503030}" /success:enable /failure:enable # Включать командную строку в событиях создания процесса # Для работы необходим аудит событий auditpol /set /subcategory:"{0CCE922B-69AE-11D9-BED3-505054503030}" /success:enable /failure:enable New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit -Name ProcessCreationIncludeCmdLine_Enabled -PropertyType DWord -Value 1 -Force # Создать настраиваемое представление "Создание процесса" в Просмотре событий для журналирования запускаемых процессов и их аргументов # Для работы необходимы аудит событий и командной строки в событиях создания процесса auditpol /set /subcategory:"{0CCE922B-69AE-11D9-BED3-505054503030}" /success:enable /failure:enable New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Audit -Name ProcessCreationIncludeCmdLine_Enabled -PropertyType DWord -Value 1 -Force $XML = @" <ViewerConfig> <QueryConfig> <QueryParams> <UserQuery /> </QueryParams> <QueryNode> <Name>"Process Creation"</Name> <Description>"Process creation and command-line auditing events"</Description> <QueryList> <Query Id="0" Path="Security"> <Select Path="Security">*[System[(EventID=4688)]]</Select> </Query> </QueryList> </QueryNode> </QueryConfig> </ViewerConfig> "@ if (-not (Test-Path -Path "$env:ProgramData\Microsoft\Event Viewer\Views")) { New-Item -Path "$env:ProgramData\Microsoft\Event Viewer\Views" -ItemType Directory -Force } Set-Content -Path "$env:ProgramData\Microsoft\Event Viewer\Views\ProcessCreation.xml" -Value $XML -Encoding UTF8 -Force # Включить ведение журнала для всех модулей Windows PowerShell if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging\ModuleNames)) { New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging\ModuleNames -Force } New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging -Name EnableModuleLogging -PropertyType DWord -Value 1 -Force New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging\ModuleNames -Name * -PropertyType String -Value * -Force # Включить ведение журнала для всех вводимых сценариев PowerShell в журнале событий Windows PowerShell if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging)) { New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging -Force } New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging -Name EnableScriptBlockLogging -PropertyType DWord -Value 1 -Force
Взял из моего PowerShell-модуля Sophia Script. И его графическая опенсорсная версия, SophiApp (скачать).
Скрин
dxq3
24.03.2022 07:13Почему майкрософт сразу не установила такие настройки? Боятся шквалов звонков в суппорт и проклятий?)
Delion
Аха. Тот самый случай, когда не ты настраиваешь программу, а программа – тебя.
Mur81
За полтора года использования на Windows Server 2019 не сталкивался с таким поведением ни разу. Интересно было бы увидеть пруфы.
dartraiden
Возможно, автор имел в виду Tamper Protection. Но этот механизм отменяет потенциально нежелательные изменения практически моментально.