Антивирус и установка обновлений
Руководство описывает, как настроить антивирусную защиту на хостах под управлением LSUS, чтобы она не мешала установке обновлений: какой набор исключений желателен независимо от производителя, как задать его в Microsoft Defender, Kaspersky Endpoint Security и Dr.Web на Windows и на Linux, что исключать нельзя ни при каких условиях, как доказать, что установку блокирует именно антивирус, и какие ошибки установки связаны с антивирусом.
Windows и Linux
Разделы про обслуживание Windows (CBS, TrustedInstaller, wusa.exe, коды возврата KB) относятся к Windows-агенту. На Linux обновления ставит пакетный менеджер, и картина другая — это раздел Рекомендуемые исключения для Linux-хоста. Общие для обеих платформ части: как доказать блокировку, что исключать нельзя и как раскатать исключения через LSUS.
Сначала доказать, потом исключать
Каждое исключение — это дыра в защите. Microsoft прямо не рекомендует расширять список исключений ради установки обновлений: правильный путь — обновить антивирус до версии, которая корректно работает с механизмом обновлений операционной системы. Исключения добавляют точечно и только после того, как блокировка подтверждена уликами в журнале установки или в архиве диагностики. Это относится к любому производителю и к любой операционной системе.
Зачем это нужно#
Агент LSUS ставит обновления штатным механизмом Windows: скачивает пакет .msu/.cab и запускает wusa.exe, который передаёт работу службе TrustedInstaller и стеку CBS. Антивирус работает на уровне драйвера-фильтра файловой системы (minifilter) и перехватывает каждую операцию чтения/записи. На путях обслуживания Windows это даёт три типовых эффекта:
- Блокировка файла. Антивирус держит пакет или компонент хранилища открытым — TrustedInstaller получает отказ в доступе.
- Изменение файла. Повторная запись или пересчёт содержимого между скачиванием и проверкой целостности — Windows отклоняет пакет.
- Карантин. Антивирус забирает файл из
WinSxS— хранилище компонентов повреждается, и последующие обновления не ставятся уже независимо от антивируса.
Внешне это выглядит как «обновление зависло»: журнал CBS не растёт, волна стоит, а явной ошибки нет.
Как понять, что мешает антивирус#
Сам по себе признак «CBS молчит» диагноз не ставит. Агент различает тишину журнала и реальную работу установщика: каждые 15 секунд он опрашивает журнал CBS и замеряет процессорное время процессов TrustedInstaller, TiWorker, wuauclt, своего wusa.exe и выделенного процесса службы Windows Update. Если за интервал опроса эти процессы суммарно потратили 200 мс и больше процессорного времени — установка идёт, и агент ждёт дальше. Если 10 минут подряд не растёт ни журнал CBS, ни процессорное время этих процессов — агент останавливает wusa.exe и переводит задание в состояние «замер».
Порядок проверки:
- Откройте Управление обновлениями, переключателем в шапке выберите Windows и перейдите на подвкладку «Кампании установки» (или «Пакетные задания»). Найдите нужное задание и посмотрите его статус: «замер» означает, что установщик остановлен до подтверждения Windows.
- В карточке задания нажмите «Диагностика установки» (если есть остановившиеся команды — пункт подписан «Диагностика (есть зависшие)») — откроется окно «Диагностика установки · задание». В таблице по хостам команда с остановившимся прогрессом помечена значком «⚠ завис», рядом — сколько времени она молчит.
- В колонке «Действия» нажмите «Собрать архив» — откроется модалка «Архив диагностики с хоста». Отметьте нужные источники, нажмите «Запросить сбор», дождитесь готовности и нажмите «Скачать ZIP». В архив попадают конфигурация и журналы LSUS,
%WINDIR%\Logs\WindowsUpdate,%WINDIR%\Logs\CBS,%WINDIR%\Logs\DISM, журналы событий System и Application за 7 дней и сведения о свободном месте на томах. - Рядом с архивом полезно нажать «Лог установки» — это журнал конкретной команды с кодами возврата по каждому KB.
- В архиве ищите в журнале CBS строки
Access is denied,STATUS_SHARING_VIOLATION,cannot open package, а в журнале событий — записи от minifilter-драйвера антивируса в момент установки. - Определите, какой драйвер фильтрует файловую систему:
fltmc filters
Пример вывода на хосте, где работает Microsoft Defender:
Filter Name Num Instances Altitude Frame
------------------ ------------- ------------ -----
WdFilter 3 328010 0
Здесь: WdFilter — драйвер-фильтр Microsoft Defender, Altitude — высота драйвера в стеке фильтрации. Для класса антивирусных фильтров Microsoft выделяет диапазон вокруг значения 328010: сторонний антивирус добавляет в список собственную строку, и по её имени видно, какой продукт перехватывает файловые операции.
- Только после этого решайте, какое исключение добавлять.
Временная разгрузка драйвера
Чтобы подтвердить гипотезу, можно временно выгрузить драйвер антивируса: fltmc unload <имя_драйвера>. Это снижает защиту хоста и не всегда возможно — современные антивирусы защищают свой драйвер от выгрузки. Используйте только на тестовом хосте и верните драйвер командой fltmc load <имя_драйвера> или перезагрузкой.
Что антивирус уже делает сам на Windows#
Прежде чем добавлять исключения, проверьте, что уже настроено. Производители по-разному подходят к обслуживанию Windows: у Microsoft Defender часть исключений встроена, у Kaspersky есть предустановленные наборы только для серверных ролей, у Dr.Web готовых исключений для обслуживания Windows нет.
Microsoft Defender#
Defender исключает часть файлов обслуживания Windows автоматически — эти исключения не видны в приложении «Безопасность Windows».
Встроенные исключения действуют на всех поддерживаемых версиях Windows:
| Путь | Что это |
|---|---|
%windir%\SoftwareDistribution\Datastore\Datastore.edb |
база Windows Update |
%windir%\SoftwareDistribution\Datastore\*\edb.chk |
контрольная точка базы |
%windir%\SoftwareDistribution\Datastore\*\edb\*.log |
журнал транзакций базы |
%windir%\SoftwareDistribution\Datastore\*\Edb\*.jrs |
резервные журналы транзакций |
%windir%\SoftwareDistribution\Datastore\*\Res\*.log |
зарезервированные журналы |
%windir%\SoftwareDistribution\Datastore\*\tmp.edb |
временная база |
Автоматические исключения ролей действуют на Windows Server 2016 и новее; для роли WSUS это:
%systemroot%\WSUS\WSUSContent%systemroot%\WSUS\UpdateServicesDBFiles%systemroot%\SoftwareDistribution\Datastore%systemroot%\SoftwareDistribution\Download
Автоматические исключения не работают при полном сканировании
Автоматические исключения ролей применяются только к защите в реальном времени. При быстром, полном и выборочном сканировании Defender проходит по этим каталогам на общих основаниях. Если запланированное полное сканирование попадает в окно установки обновлений — оно способно сорвать волну. Разводите расписание полного сканирования и окно обслуживания.
Проверка настроек Defender на хосте:
# автоматические исключения должны быть включены
Get-MpPreference | Select-Object DisableAutoExclusions
# текущий список пользовательских исключений
$p = Get-MpPreference
'ExclusionExtension','ExclusionPath','ExclusionProcess' | ForEach-Object {
$t = $_; $p.$t | ForEach-Object { [pscustomobject]@{ Type = $t; Value = $_ } }
} | Format-Table -AutoSize
Ожидаемый ответ: DisableAutoExclusions равен False. Если True — автоматические исключения кто-то отключил, и каталоги обслуживания сканируются полностью.
Kaspersky Endpoint Security#
Начиная с версии 12.6 KES содержит предустановленные исключения для серверного ПО — Microsoft SQL Server, Microsoft Exchange, System Center Configuration Manager, Citrix и VMware. Исключений для обслуживания Windows в этом наборе нет: каталоги SoftwareDistribution, WinSxS и CatRoot2 проверяются на общих основаниях, всё нужное добавляется вручную.
Служба KES на хосте называется по-разному в зависимости от версии и локализации — KES, AVP, kavfs, kavfssrv. Драйвер-фильтр файловой системы — klif; его видно в выводе fltmc filters.
Готовая политика проверки KES в LSUS
Шаблон «Windows: проверки безопасности (СЗИ)» модуля Конфигурации содержит политику, которая находит службу KES по любому из четырёх имён и проверяет свежесть антивирусных баз (файлы .avc и .kdc в %ProgramFiles%\Kaspersky Lab, порог — 7 дней). Используйте её, чтобы перед диагностикой убедиться, что антивирус вообще установлен и обновлён.
Dr.Web#
Предустановленных исключений для обслуживания Windows в Dr.Web нет — нужный набор полностью формируется администратором. Исключения задаются раздельно для двух компонентов, и это важно: список фоновой защиты и список проверки по требованию не общие.
- SpIDer Guard — файловый антивирус, фоновая защита. Раздел «Исключения»: файлы, каталоги и процессы через путь, имя или маску (
*,?). - Сканер Dr.Web — проверка по требованию. Исключения задаются путём, именем или маской (
*,?); процессы здесь не настраиваются.
Оба списка настраиваются централизованно через политику Центра управления.
Отдельно работает Превентивная защита — она блокирует эксплойты и подозрительные действия приложений и не связана со списками исключений. У неё свои режимы («Блокировать», «Интерактивный», «Разрешать»), уровни («Параноидальный», «Средний», «Оптимальный», «Пользовательский») и персональные параметры для конкретных приложений — именно их настраивают, если агент обновления блокируется по поведению, а не по пути.
Рекомендуемые исключения для Windows-хоста#
Набор объектов одинаков для любого производителя антивируса — различается только то, как исключение задаётся в конкретной консоли. Раздел устроен так: сначала общий набор в терминах «каталог / маска / процесс», потом расширение для каталогов обслуживания Windows, потом подразделы по производителям со способом настройки. Для Linux-хостов набор другой — см. следующий раздел.
Список делится на две части: базовый минимум (каталоги и процессы самого LSUS — аналогично тому, как Microsoft рекомендует исключать каталоги Configuration Manager) и расширение, которое добавляют только при подтверждённой блокировке обслуживания Windows.
Общий набор — не зависит от производителя#
| Объект | Значение | Тип исключения | Зачем |
|---|---|---|---|
| Каталог | %ProgramFiles%\LSUS\LsusAgent |
путь к каталогу | исполняемые файлы патч-службы |
| Каталог | %ProgramFiles%\LSUS\LsusConfigAgent |
путь к каталогу | исполняемые файлы службы конфигураций |
| Каталог | %ProgramData%\LSUS |
путь к каталогу | конфиг, токен, состояние, журналы, кэш самообновления в update\, кэш каталога в offline-scan\wsusscn2.cab, рабочие файлы прогонов политик в Config\ |
| Каталог | %TEMP%\LsusKb |
путь к каталогу | сюда агент скачивает пакеты KB перед запуском установщика |
| Процесс | LsusAgent.exe |
доверенное приложение / исключение по процессу | файлы, которые открывает патч-служба |
| Процесс | LsusConfigAgent.exe |
доверенное приложение / исключение по процессу | файлы, которые открывает служба конфигураций |
| Процесс | wusa.exe |
доверенное приложение / исключение по процессу | файлы, которые открывает установщик обновлений |
Каталог загрузки пакетов KB
Агент скачивает пакеты обновлений во временный каталог LsusKb. Служба работает под учётной записью LocalSystem, поэтому переменная %TEMP% раскрывается в C:\Windows\Temp, и полный путь — C:\Windows\Temp\LsusKb. Microsoft не рекомендует исключать %Windir%\Temp целиком; если исключение нужно, ограничьтесь подкаталогом LsusKb или задайте условие «только когда файл открывает wusa.exe».
Если производитель поддерживает маски, каталоги LSUS можно задать одной записью %ProgramFiles%\LSUS\*, но путь без маски предпочтительнее: маска покрывает и будущие подкаталоги, которые вы не планируете открывать.
Расширение — каталоги обслуживания Windows#
Добавляйте только после того, как блокировка подтверждена (см. Как понять, что мешает антивирус). Набор тот же для любого производителя.
| Объект | Значение | Обоснование |
|---|---|---|
| Каталог | %windir%\SoftwareDistribution\Datastore |
исключение для инфраструктуры Windows Update, которое приводит Microsoft (KB822158): база не должна сканироваться под открытым хендлом |
| Каталог | %windir%\SoftwareDistribution\Datastore\Logs |
журналы транзакций базы |
Оговорка Microsoft
Тот же документ сопровождает рекомендацию оговоркой: это обходной путь, который снижает уровень защиты, и Microsoft советует вместо него обратиться к вендору антивируса за исправленной версией.
Настройка в Microsoft Defender#
Готовый скрипт для локального хоста (запускать от имени администратора):
$paths = @(
"$env:ProgramFiles\LSUS\LsusAgent",
"$env:ProgramFiles\LSUS\LsusConfigAgent",
"$env:ProgramData\LSUS",
"$env:windir\Temp\LsusKb"
)
foreach ($p in $paths) { Add-MpPreference -ExclusionPath $p }
foreach ($n in @('LsusAgent.exe','LsusConfigAgent.exe','wusa.exe')) {
Add-MpPreference -ExclusionProcess $n
}
Контекстные исключения#
Defender версии 4.18.2205.7 и новее поддерживает контекстные исключения: правило срабатывает только в заданных условиях — по типу объекта, по типу сканирования или по процессу, который открыл файл. Это способ сузить исключение вместо того, чтобы открывать каталог целиком.
Пример — исключать каталог загрузки пакетов, только когда файл открывает установщик:
Add-MpPreference -ExclusionPath 'C:\Windows\Temp\LsusKb\:{PathType:folder,Process:"wusa.exe"}'
Доступные ключи контекста: PathType (file / folder), ScanType (quick / full), ScanTrigger (OnDemand / OnAccess / BM), Process (путь к исполняемому файлу). Ключи и значения чувствительны к регистру.
Ограничения контекстных исключений
Контекстные исключения работают только на Windows и только если Microsoft Defender — основной антивирус на хосте. Для сторонних антивирусов аналогичный механизм ищите в документации вендора. Приложение «Безопасность Windows» контекстные исключения не показывает.
Настройка в Kaspersky Endpoint Security#
В KES общий набор задаётся в двух местах, и они решают разные задачи.
Исключения из проверки — по пути и маске. Локально на хосте: значок шестерёнки → Общие настройки → «Исключения и типы обнаруживаемых объектов». Для каждого исключения задаются путь или маска, тип объекта либо хеш. Маски * и ? поддерживаются, переменные среды — тоже, кроме %userprofile%. Сюда добавляют каталоги из общего набора и, при подтверждённой блокировке, %windir%\SoftwareDistribution\Datastore.
Доверенные приложения — по исполняемому файлу. В том же разделе приложение добавляется по пути, и для него задаются отдельные признаки: «Не проверять открываемые файлы», «Не контролировать активность приложения», «Не проверять сетевой трафик». Это прямой аналог процессного исключения: сюда добавляют LsusAgent.exe, LsusConfigAgent.exe и wusa.exe.
Начинайте с минимального набора признаков
Для агентов LSUS обычно достаточно «Не проверять открываемые файлы». Признак «Не контролировать активность приложения» отключает поведенческий контроль для процесса — добавляйте его только если блокировка подтверждена и связана именно с контролем активности.
Централизованно те же списки задаются в политике Kaspersky Endpoint Security в Kaspersky Security Center и раскатываются на группу хостов; маска пути поддерживается. Политика предпочтительнее локальных настроек — локальные изменения на хосте могут быть перезаписаны.
Настройка в Dr.Web#
У Dr.Web два независимых списка исключений, и добавление в один не покрывает другой:
- SpIDer Guard (фоновая защита) → раздел «Исключения»: файлы, каталоги и процессы через путь, имя или маску (
*,?). Сюда добавляют и каталоги LSUS, иLsusAgent.exe/LsusConfigAgent.exe/wusa.exe. - Сканер Dr.Web (проверка по требованию) → исключения по пути, имени или маске (
*,?). Процессы здесь не задаются, поэтому каталоги нужно продублировать — иначе запланированная полная проверка пройдёт по ним, даже если фоновая защита их пропускает.
Оба списка настраиваются централизованно через политику Центра управления Dr.Web Enterprise Security Suite.
Превентивная защита — отдельный механизм
Если агент LSUS блокируется не по пути, а по поведению (запуск wusa.exe, запись в %TEMP%, работа службы), списки исключений SpIDer Guard и Сканера не помогут — нужно настраивать персональные параметры приложения в Превентивной защите. Режимы: «Блокировать», «Интерактивный», «Разрешать»; уровни: «Параноидальный», «Средний», «Оптимальный», «Пользовательский». Понижать уровень для всех приложений не нужно — задайте персональные параметры для LsusAgent.exe, LsusConfigAgent.exe и wusa.exe.
Настройка у других производителей#
Для любого другого антивируса перенесите общий набор по следующему правилу:
| Что нужно из общего набора | Где это у большинства производителей |
|---|---|
Каталоги LSUS и SoftwareDistribution\Datastore |
«Исключения», «Exclusions», «Области, исключённые из проверки» — запись по пути или маске |
LsusAgent.exe, LsusConfigAgent.exe, wusa.exe |
«Доверенные приложения», «Trusted applications», «Исключения по процессам» |
| Проверка по расписанию не должна задевать каталоги | отдельный список исключений для сканирования по требованию — есть не у всех, проверяйте документацию |
| Блокировка по поведению, а не по пути | поведенческий контроль / HIPS / «Контроль приложений» — персональные параметры для приложения |
Три вещи, которые нужно проверить у любого производителя до добавления исключений:
- Есть ли раздельные списки для фоновой защиты и для проверки по требованию.
- Раскрываются ли переменные среды (
%ProgramData%,%windir%) — часть консолей их не понимает, и путь нужно задавать литералом. - Применяется ли исключение к дочерним каталогам. Если нет —
%ProgramData%\LSUSпридётся расписать подкаталогами.
Рекомендуемые исключения для Linux-хоста#
На Linux нет стека обслуживания Windows: обновления ставит пакетный менеджер — apt-get и dpkg на Astra Linux, Debian и Ubuntu, dnf, yum и rpm на РЕД ОС, RHEL и Oracle Linux. Антивирус мешает иначе, чем на Windows:
- Проверка пакетов при скачивании. Файлы
.debи.rpmв кэше пакетного менеджера проверяются при записи и при чтении — установка замедляется, а при агрессивной настройке пакет может быть заблокирован между скачиванием и распаковкой. - Перехват записи в базы пакетного менеджера. Каталоги
/var/lib/dpkgи/var/lib/rpmинтенсивно перезаписываются во время установки; on-access-проверка каждой записи удлиняет транзакцию и повышает риск получить блокировку. - Удержание блокировок. Агент LSUS перед установкой проверяет, не занят ли пакетный менеджер. Если антивирус держит файлы блокировок открытыми, агент видит ложную занятость и откладывает установку.
- Поведенческий контроль. Linux-агенты LSUS — это Python-скрипты, а служба конфигураций запускает
ansible-playbook. Поведенческий анализ может реагировать на массовую запись исполняемых файлов и на запуск интерпретатора.
Что агент LSUS использует на Linux#
| Путь | Назначение |
|---|---|
/etc/lsus-client/lsus-client.conf |
конфигурация клиента |
/var/lib/lsus-client/ |
код и данные агента, в том числе astra-update-cwd, install-repeat-fingerprint, upcoming-notify-state |
/var/log/lsus-client.log |
основной журнал клиента |
/var/log/lsus-client/updates/ |
журналы отдельных установок |
/etc/lsus-config-agent/lsus-config-agent.conf |
конфигурация службы конфигураций |
/var/lib/lsus-config-agent/ |
код службы конфигураций и её виртуальное окружение в venv/ |
/var/cache/apt/archives/ |
скачанные пакеты .deb |
/var/lib/apt/lists/ |
списки пакетов из репозиториев |
/var/lib/dpkg/, /var/lib/rpm/ |
базы пакетного менеджера |
/var/lib/dpkg/lock-frontend, /var/lib/dpkg/lock, /var/lib/apt/lists/lock |
блокировки пакетного менеджера |
Службы: lsus-client.service и lsus-config-agent.service.
Блокировки пакетного менеджера
Агент определяет занятость dpkg/apt двумя способами: по тексту ошибки (could not get lock, unable to lock, held by process, удерживается процессом, упоминания /var/lib/dpkg/lock и /var/lib/apt/lists/lock) и пробой исключительной блокировки через flock на /var/lib/dpkg/lock-frontend и /var/lib/dpkg/lock. Пока блокировка не освободится, установка откладывается. Поэтому если прогон «висит» без ошибки, сначала проверьте, кто держит блокировку: fuser -v /var/lib/dpkg/lock-frontend, и только потом ищите причину в антивирусе.
Общий набор для Linux#
| Объект | Значение | Тип исключения | Зачем |
|---|---|---|---|
| Каталог | /var/lib/lsus-client |
путь к каталогу | код и данные агента обновлений |
| Каталог | /var/lib/lsus-config-agent |
путь к каталогу | код службы конфигураций и её venv |
| Каталог | /var/log/lsus-client |
путь к каталогу | журналы установок, активно перезаписываются |
| Файл | /var/log/lsus-client.log |
путь к файлу | основной журнал клиента |
| Процесс | /var/lib/lsus-config-agent/venv/bin/python3 |
исключение по процессу | интерпретатор службы конфигураций |
| Процесс | /var/lib/lsus-config-agent/venv/bin/ansible-playbook |
исключение по процессу | запуск плейбуков политик |
Расширение — добавляйте только при подтверждённой блокировке:
| Объект | Значение | Обоснование |
|---|---|---|
| Процесс | /usr/bin/apt-get, /usr/bin/dpkg |
файлы, которые открывает пакетный менеджер при установке |
| Процесс | /usr/bin/dnf, /usr/bin/yum, /usr/bin/rpm |
то же для RPM-дистрибутивов |
| Каталог | /var/cache/apt/archives |
кэш скачанных .deb; проверьте сначала, не в нём ли причина замедления |
Базы пакетного менеджера исключать не нужно
Не исключайте /var/lib/dpkg и /var/lib/rpm целиком — это каталоги, куда злоумышленник может положить подменённые файлы, а исключение сделает подмену невидимой. Правильный инструмент здесь — исключение по процессу (dpkg, apt-get, rpm): оно снимает проверку файлов, которые открывает пакетный менеджер, но не открывает каталог для всех остальных.
Microsoft Defender for Endpoint на Linux#
Исключения задаются одним из трёх способов: конфигурационным файлом, консолью управления или командной строкой mdatp.
Командная строка:
# список подкоманд и ключей управления исключениями
mdatp exclusion
# каталоги агента — область epp
mdatp exclusion folder add --path /var/lib/lsus-client --scope epp
mdatp exclusion folder add --path /var/lib/lsus-config-agent --scope epp
mdatp exclusion folder add --path /var/log/lsus-client --scope epp
# процессы — по полному пути
mdatp exclusion process add --path /var/lib/lsus-config-agent/venv/bin/ansible-playbook --scope epp
Ожидаемый ответ: Folder exclusion configured successfully или Process exclusion configured successfully.
Две области исключений (--scope):
| Область | Что покрывает |
|---|---|
epp |
проверка по требованию, защита в реальном времени, мониторинг поведения. Видимость EDR сохраняется |
global |
защита в реальном времени, мониторинг поведения и EDR — события гасятся до обработки. На проверку по требованию по умолчанию не действует |
Ограничения области global
global доступна в Defender for Endpoint на Linux версии 101.23092.0012 и новее. Для неё не поддерживаются маски, а исключения по процессам принимаются только по полному пути — и только если процесс всегда запускается из этого доверенного пути. Для задач LSUS обычно достаточно epp: начинать с global нет причины.
Тот же набор через файл управления — его раскатывают Puppet, Ansible или другой системой конфигурации в /etc/opt/microsoft/mdatp/managed/mdatp_managed.json:
{
"exclusionSettings": {
"exclusions": [
{ "$type": "excludedPath", "isDirectory": true, "path": "/var/lib/lsus-client", "scopes": ["epp"] },
{ "$type": "excludedPath", "isDirectory": true, "path": "/var/lib/lsus-config-agent", "scopes": ["epp"] },
{ "$type": "excludedPath", "isDirectory": true, "path": "/var/log/lsus-client", "scopes": ["epp"] },
{ "$type": "excludedFileName", "name": "/var/lib/lsus-config-agent/venv/bin/ansible-playbook", "scopes": ["epp"] }
],
"mergePolicy": "admin_only"
}
}
Маски * и ? поддерживаются только для области epp: * в середине пути заменяет один каталог, ? — один символ. Параметр с маской берите в двойные кавычки, иначе оболочка раскроет его сама.
Проверка, что исключение сработало
Положите в исключённый каталог тестовый файл EICAR и убедитесь, что антивирус на него не отреагировал:
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /var/lib/lsus-client/eicar-test.txt
Если обнаружения нет и файл на месте — исключение работает. Удалите файл сразу после проверки.
Симлинки не исключаются
Пути в исключениях должны быть жёсткими ссылками, а не символическими. Проверьте путь командой file <путь>: если вывод содержит symbolic link, исключение не сработает — указывайте реальный путь, на который ссылается симлинк.
Kaspersky Endpoint Security для Linux#
Исключения задаются в политике через Kaspersky Security Center Web Console:
Управление активами → Политики → нужная политика → Параметры приложения → Защита устройств от угроз → Защита от файловых угроз → «Исключения из проверки» → «Добавить».
Для каждого исключения указывается критерий — «Путь к файлу или папке», «Тип объекта» или «Хеш объекта» — и набор компонентов защиты, к которым оно применяется: «Все» или «Выбранные». Выбор компонентов полезен: исключение можно распространить только на защиту от файловых угроз, оставив проверку по требованию полной.
KES различает четыре типа исключений: «Области исключения» (контейнер, группирующий правила), «Исключения по маске», «Исключения по названию угрозы» и «Исключения по процессам». Для задач LSUS нужны маска пути и процесс.
Через командную строку на хосте:
# посмотреть текущие настройки защиты от файловых угроз (настройка 1)
kesl-control --get-settings 1
# исключение по пути
kesl-control --set-settings 1 --add-exclusion /var/lib/lsus-client
# включить исключения по маске и добавить маску
kesl-control --set-settings 1 UseExcludeMasks=Yes
kesl-control --set-settings 1 ExcludeMasks.item_1='/var/lib/lsus-config-agent/*'
Синтаксис зависит от версии
Имена параметров конфигурационного файла и нумерация настроек меняются между релизами KES. Перед раскаткой сверьте синтаксис с документацией к вашей версии и проверьте результат через kesl-control --get-settings 1.
Dr.Web для Linux#
Исключения настраиваются на вкладке «Исключения», в окне «Файлы и каталоги»: объект добавляется кнопкой «+» или перетаскиванием.
У Dr.Web для Linux нет исключений по процессам и масок
Документация Dr.Web для Linux описывает исключение только файлов и каталогов — ни масок, ни исключений по процессам. Это меняет подход: пакетный менеджер нельзя доверить через исключение процесса, поэтому вместо /var/lib/dpkg и /var/cache/apt/archives исключают только собственные каталоги LSUS, а замедление установки лечат обновлением антивируса и настройкой расписания полной проверки. Если блокировка подтверждена и упирается именно в каталог пакетов — фиксируйте это обращением к вендору, а не исключением базы пакетного менеджера.
Что исключать нельзя#
Microsoft публикует прямой список объектов, которые исключать запрещено, — они чаще всего используются злоумышленниками. Формально список выпущен для Microsoft Defender, но по сути это ограничения самих операционных систем: они в равной мере относятся к Kaspersky Endpoint Security, Dr.Web и любому другому антивирусу. Часть пунктов из этого списка регулярно встречается в «рекомендациях по настройке» сторонних антивирусов; применять такие рекомендации к хостам с обновлениями нельзя.
Каталоги на Windows:
C:\Windows\System32\CatRoot2— исключение ломает проверку каталогов и подписей пакетов;%Windir%\Temp,%Windir%\Prefetch,%Windir%\System32\Spool;%systemdrive%,C:\,C:\Usersи профили пользователей;%ProgramFiles%\<вендор>— каталоги установленных приложений.
Каталоги на Linux:
/— корень файловой системы;/bin,/sbin— системные исполняемые файлы;/usr/lib— системные библиотеки;/var/lib/dpkg,/var/lib/rpm— базы пакетного менеджера (см. раздел про Linux).
Процессы на Windows:
wuauclt.exe,svchost.exe— компоненты Windows Update;powershell.exe,cmd.exe,cscript.exe,wscript.exe,mshta.exe,schtasks.exe,wmic.exe,bitsadmin.exe,psexec.exe.
Процессы на Linux:
bash,sh,zsh— оболочки;java,python,python3— интерпретаторы.
Расширения файлов:
.cab,.msi,.exe,.dll,.sys,.ocx,.scr,.cpl,.com— из этих файлов состоят пакеты обновлений;.ps1,.bat,.cmd,.vbs,.js,.reg,.inf— сценарии и файлы установки;.zip,.rar,.7z,.gz,.tar,.tmp,.bin— архивы и временные файлы;.hta,.wsf,.vbe,.job,.url— прочие исполняемые и вспомогательные форматы из списка Microsoft;.ko,.ko.gz— модули ядра Linux;.py,.jar,.java— сценарии Python и архивы Java.
Исключение процесса отключает и другие механизмы защиты
Исключение процесса означает не только пропуск сканирования файлов, которые он открывает. В Microsoft Defender для исключённого процесса также перестают работать защита сети и правила уменьшения поверхности атаки (ASR); в Defender for Endpoint на Linux область global дополнительно гасит события EDR. Не исключайте системные процессы и интерпретаторы ради установки обновлений — сужайте правила: на Windows через контекстные исключения, на Linux через область epp вместо global.
Один список — одна нагрузка#
Microsoft запрещает использовать один и тот же список исключений для разных ролей сервера. Для сервера LSUS, для сервера СУБД и для рядового хоста с агентом списки должны быть раздельными. На Windows Server 2016+ большая часть ролевых исключений добавляется автоматически — сначала проверьте, что уже действует. На Linux готовых ролевых наборов нет ни у одного из трёх производителей, поэтому список формируется вручную под каждую нагрузку.
Совместимость антивируса с обновлениями безопасности#
Для получения обновлений безопасности Microsoft требует от производителя антивируса подтвердить совместимость: вендор должен создать ключ QualityCompat со значением cadca5fe-87d3-4b96-b7fb-a231484277cc в ветке HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat. Пока подтверждения нет, Windows может не выдавать хосту обновления безопасности, а при установке возможны критические сбои вплоть до «синего экрана».
Проверка на хосте:
Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat' -ErrorAction SilentlyContinue
Ожидаемый ответ: среди свойств присутствует cadca5fe-87d3-4b96-b7fb-a231484277cc. Если ключа нет — обновление антивируса до поддерживаемой версии решает проблему без всяких исключений.
Как применить исключения через LSUS#
Исключения удобно раскатывать политикой конфигурации, а не обходом хостов. Используйте модуль Конфигурации в режиме «Проверка + применение»: на Windows служба LsusConfigAgent исполняет содержимое типа PowerShell (.ps1), на Linux lsus-config-agent исполняет YAML/Ansible. Сервер не даст .ps1 попасть Linux-хосту и наоборот — назначение фильтруется по os_family.
Рекомендуемая схема:
- Сценарий в режиме
checkпечатает текущий список исключений — это состояние «до». На Windows для Defender этоGet-MpPreference; на Linux —mdatp exclusion,kesl-control --get-settings 1или выгрузка настроек агента Dr.Web. - Сценарий в режиме
applyдобавляет только базовый минимум — из раздела Рекомендуемые исключения для Windows-хоста или для Linux-хоста. - Назначение политики — на коллекцию хостов, где проблема подтверждена.
Политика вендора важнее сценария на хосте
Если антивирус управляется централизованно (Kaspersky Security Center, Центр управления Dr.Web, конфигурационный профиль Defender for Endpoint, консоль другого производителя), исключения нужно задавать в политике вендора, а не локальным сценарием. Локальные изменения на хосте обычно перезаписываются ближайшей синхронизацией политики, и исключение молча исчезнет. Сценарий конфигурации LSUS в такой схеме полезен для контроля: он проверяет, что нужные исключения на хосте действительно присутствуют.
Готовые политики проверки антивируса — наличие службы и свежесть баз Kaspersky Endpoint Security и Microsoft Defender — входят в шаблон «Windows: проверки безопасности (СЗИ)» модуля Конфигурации. Для Linux используйте политику с типом содержимого YAML/Ansible по тому же принципу: проверка наличия службы антивируса и возраста баз.
Устранение неполадок#
Windows#
| Симптом в LSUS | Код | Причина | Действие |
|---|---|---|---|
| Статус задания «замер» | 0xFFFFFFFF |
Журнал CBS не обновлялся после запуска установщика и процессы обслуживания не потребляли процессор; агент остановил wusa.exe. Возможна блокировка антивирусом или EDR |
Повторить установку кнопкой «Повторить проход»; если повторилось — собрать архив диагностики и искать в CBS строки Access is denied / STATUS_SHARING_VIOLATION |
| Ошибка KB «доступ запрещён» | 0x80070005 |
TrustedInstaller или CBS отклонил запрос установщика. Антивирус держит блокировку на %windir%\WinSxS или %windir%\SoftwareDistribution |
Проверить права на %windir%\WinSxS; временно выгрузить minifilter-драйвер (fltmc unload); при подтверждении — точечное исключение |
| Offline-скан завершился ошибкой | 0xC8000444 |
База Windows Update занята или повреждена, не хватает места на системном томе | Проверить свободное место на системном томе и томе кэша (порог — max(2 ГБ, размер cab-файла каталога × 2)), повторить скан. Агент сам различает причины: при нехватке места чистит только мусор (состояние «мало места»), при повторной ошибке на свободном месте пересоздаёт базу Windows Update; ход виден значком в строке хоста, вручную — пункт «Починить кеш Windows Update…» |
| Ошибка KB «MSU повреждён» | 0x80070570 |
Пакет изменён после скачивания: антивирус перезаписал содержимое, либо битый файл в хранилище | Проверить контрольную сумму пакета на сервере; исключить каталог загрузки и повторить |
| Ошибка KB «отсутствует source / SSU» | 0x800F081F |
CBS не нашёл исходный пакет — обычно не хватает обновления стека обслуживания. Не антивирус | Поставить SSU отдельным заданием, затем сбросить признак пропуска у KB |
| Ошибка KB «source store повреждён» | 0x800F0902, 0x80073712 |
Хранилище компонентов повреждено. Возможное следствие карантина файлов из WinSxS |
На хосте: DISM /Online /Cleanup-Image /RestoreHealth, затем sfc /scannow; проверить карантин антивируса |
| Нет места на системном томе | 0x80070070 |
Не антивирус: не хватает места для распаковки | Освободить место — ориентир max(2 ГБ, размер MSU × 3), для кумулятивного обновления обычно 5–6 ГБ |
Кеш Windows Update чинит агент
Агент Windows сам убирает мусор из %windir%\SoftwareDistribution и при повторной ошибке базы пересоздаёт её (см. Клиент Windows). Отказ в доступе не считается успехом: если файл держит антивирус, в отчёте будет путь к нему и состояние «не починен». Политика «Очистка диска» это не заменяет. Исключение для %windir%\SoftwareDistribution\Datastore остаётся в силе: после пересоздания база лежит по тому же пути.
Политика очистки диска конфликтует с установкой обновлений
Политика «Очистка диска» из шаблона «Windows: обслуживание» в режиме применения удаляет содержимое системного %TEMP% (C:\Windows\Temp, где лежит каталог загрузки пакетов LsusKb) и пользовательского %TEMP%, очищает %windir%\SoftwareDistribution\Download с предварительной остановкой службы Windows Update и очищает корзину. Не назначайте эту политику на то же окно, что и волну обновлений KB: она способна удалить скачанный пакет посреди установки и остановить службу обновления. Разносите по времени.
Linux#
| Симптом в LSUS | Вероятная причина | Действие |
|---|---|---|
| Прогон долго не начинается, ошибки нет | Пакетный менеджер занят. Агент видит блокировку dpkg/apt и откладывает установку |
fuser -v /var/lib/dpkg/lock-frontend — кто держит блокировку. Если это процесс антивируса, проверяющего базы, — сузьте исключения |
| Установка идёт заметно дольше обычного | On-access-проверка каждого .deb/.rpm и каждой записи в базу пакетного менеджера |
Исключение по процессу для apt-get/dpkg или dnf/rpm; у Dr.Web такой возможности нет — см. раздел про Dr.Web |
| Прогон политики конфигурации падает на первом же шаге | Поведенческий контроль блокирует запуск ansible-playbook или интерпретатора из venv |
Персональные параметры приложения (Dr.Web), исключение по процессу (Defender epp, KES «Исключения по процессам») для /var/lib/lsus-config-agent/venv/bin/ansible-playbook |
Агент не выходит на связь, служба в статусе active |
Антивирус заблокировал чтение конфига или запись состояния агента | journalctl -u lsus-client -n 50 --no-pager; проверить доступность /etc/lsus-client/lsus-client.conf и /var/lib/lsus-client/ |
| Самообновление агента не завершается | Проверка или карантин исполняемых файлов в /var/lib/lsus-client/ |
Исключение на каталог /var/lib/lsus-client; проверить карантин антивируса на предмет изъятых файлов агента |
Журналы для диагностики на Linux-хосте:
# журнал службы обновлений
journalctl -u lsus-client -n 100 --no-pager
# журнал службы конфигураций
journalctl -u lsus-config-agent -n 100 --no-pager
# журналы отдельных установок
ls -lt /var/log/lsus-client/updates/ | head
Ограничения#
- Исключения из сканирования не отменяют поведенческого анализа и правил EDR ни у одного производителя: файл может остаться в зоне внимания, даже если путь исключён.
- Автоматические ролевые исключения Windows Server не действуют на Windows Server 2012 R2 — там их нужно воспроизводить вручную как пользовательские.
- Автоматические ролевые исключения применяются только к защите в реальном времени и игнорируются при быстром, полном и выборочном сканировании; пользовательские исключения действуют при всех типах сканирования.
- Контекстные исключения требуют Microsoft Defender как основного антивируса и версии платформы не ниже 4.18.2205.7; в интерфейсе «Безопасность Windows» они не отображаются.
- Предустановленные исключения Kaspersky Endpoint Security (12.6+) покрывают серверное ПО — SQL Server, Exchange, SCCM, Citrix, VMware — и не покрывают обслуживание Windows.
- У Dr.Web списки исключений SpIDer Guard и Сканера раздельны: запись в одном не действует для другого, а Превентивная защита настраивается независимо от обоих.
- На Linux готовых ролевых исключений нет ни у одного из трёх производителей — список всегда формируется вручную.
- В Defender for Endpoint на Linux область
globalдоступна с версии101.23092.0012, не поддерживает маски и принимает исключения по процессам только по полному пути; на проверку по требованию она по умолчанию не действует. - Пути в исключениях Defender for Endpoint на Linux должны быть жёсткими ссылками, а не символическими — исключение на симлинк не сработает.
- Dr.Web для Linux документирует исключение только файлов и каталогов: ни масок, ни исключений по процессам, поэтому доверить пакетный менеджер через процесс там нельзя.
- Исключения для сторонних антивирусов настраиваются в консоли или политике вендора, не через
Add-MpPreferenceилиmdatp. - Агент LSUS не управляет исключениями антивируса сам — он фиксирует остановку установщика и передаёт диагностику, решение принимает администратор.
Связанные страницы#
- Клиент LSUS (Windows) — службы агента, пути установки, коды возврата
wusa. - Клиент LSUS — Linux-агент: установка, конфигурация, журналы.
- lsus-config-agent — Linux-служба конфигураций (Ansible).
- Управление обновлениями — Windows — кампании обновлений, статусы волн и заданий.
- Управление обновлениями — Linux — кампании обновлений для Linux-хостов.
- Конфигурации — раскатка исключений политикой (PowerShell на Windows, YAML/Ansible на Linux).
- Центр отладки хоста — терминал и журналы хоста из карточки.
- Межрелизные патчи и обращение в поддержку — сбор диагностики для обращения.
- Диагностика и неполадки — сводная таблица симптомов.