← Назад к «Руководства»

Антивирус и установка обновлений

Руководство описывает, как настроить антивирусную защиту на хостах под управлением LSUS, чтобы она не мешала установке обновлений: какой набор исключений желателен независимо от производителя, как задать его в Microsoft Defender, Kaspersky Endpoint Security и Dr.Web на Windows и на Linux, что исключать нельзя ни при каких условиях, как доказать, что установку блокирует именно антивирус, и какие ошибки установки связаны с антивирусом.

infoWindows и Linux

Разделы про обслуживание Windows (CBS, TrustedInstaller, wusa.exe, коды возврата KB) относятся к Windows-агенту. На Linux обновления ставит пакетный менеджер, и картина другая — это раздел Рекомендуемые исключения для Linux-хоста. Общие для обеих платформ части: как доказать блокировку, что исключать нельзя и как раскатать исключения через LSUS.

priority_highСначала доказать, потом исключать

Каждое исключение — это дыра в защите. 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 и переводит задание в состояние «замер».

Порядок проверки:

  1. Откройте Управление обновлениями, переключателем в шапке выберите Windows и перейдите на подвкладку «Кампании установки» (или «Пакетные задания»). Найдите нужное задание и посмотрите его статус: «замер» означает, что установщик остановлен до подтверждения Windows.
  2. В карточке задания нажмите «Диагностика установки» (если есть остановившиеся команды — пункт подписан «Диагностика (есть зависшие)») — откроется окно «Диагностика установки · задание». В таблице по хостам команда с остановившимся прогрессом помечена значком «⚠ завис», рядом — сколько времени она молчит.
  3. В колонке «Действия» нажмите «Собрать архив» — откроется модалка «Архив диагностики с хоста». Отметьте нужные источники, нажмите «Запросить сбор», дождитесь готовности и нажмите «Скачать ZIP». В архив попадают конфигурация и журналы LSUS, %WINDIR%\Logs\WindowsUpdate, %WINDIR%\Logs\CBS, %WINDIR%\Logs\DISM, журналы событий System и Application за 7 дней и сведения о свободном месте на томах.
  4. Рядом с архивом полезно нажать «Лог установки» — это журнал конкретной команды с кодами возврата по каждому KB.
  5. В архиве ищите в журнале CBS строки Access is denied, STATUS_SHARING_VIOLATION, cannot open package, а в журнале событий — записи от minifilter-драйвера антивируса в момент установки.
  6. Определите, какой драйвер фильтрует файловую систему:
fltmc filters

Пример вывода на хосте, где работает Microsoft Defender:

Filter Name         Num Instances    Altitude    Frame
------------------  -------------  ------------  -----
WdFilter                      3      328010         0

Здесь: WdFilter — драйвер-фильтр Microsoft Defender, Altitude — высота драйвера в стеке фильтрации. Для класса антивирусных фильтров Microsoft выделяет диапазон вокруг значения 328010: сторонний антивирус добавляет в список собственную строку, и по её имени видно, какой продукт перехватывает файловые операции.

  1. Только после этого решайте, какое исключение добавлять.

warningВременная разгрузка драйвера

Чтобы подтвердить гипотезу, можно временно выгрузить драйвер антивируса: 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

priority_highАвтоматические исключения не работают при полном сканировании

Автоматические исключения ролей применяются только к защите в реальном времени. При быстром, полном и выборочном сканировании 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.

infoГотовая политика проверки 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 доверенное приложение / исключение по процессу файлы, которые открывает установщик обновлений

infoКаталог загрузки пакетов 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 журналы транзакций базы

infoОговорка 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 (путь к исполняемому файлу). Ключи и значения чувствительны к регистру.

infoОграничения контекстных исключений

Контекстные исключения работают только на Windows и только если Microsoft Defender — основной антивирус на хосте. Для сторонних антивирусов аналогичный механизм ищите в документации вендора. Приложение «Безопасность Windows» контекстные исключения не показывает.

Настройка в Kaspersky Endpoint Security#

В KES общий набор задаётся в двух местах, и они решают разные задачи.

Исключения из проверки — по пути и маске. Локально на хосте: значок шестерёнки → Общие настройки → «Исключения и типы обнаруживаемых объектов». Для каждого исключения задаются путь или маска, тип объекта либо хеш. Маски * и ? поддерживаются, переменные среды — тоже, кроме %userprofile%. Сюда добавляют каталоги из общего набора и, при подтверждённой блокировке, %windir%\SoftwareDistribution\Datastore.

Доверенные приложения — по исполняемому файлу. В том же разделе приложение добавляется по пути, и для него задаются отдельные признаки: «Не проверять открываемые файлы», «Не контролировать активность приложения», «Не проверять сетевой трафик». Это прямой аналог процессного исключения: сюда добавляют LsusAgent.exe, LsusConfigAgent.exe и wusa.exe.

lightbulbНачинайте с минимального набора признаков

Для агентов 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.

warningПревентивная защита — отдельный механизм

Если агент 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 / «Контроль приложений» — персональные параметры для приложения

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

  1. Есть ли раздельные списки для фоновой защиты и для проверки по требованию.
  2. Раскрываются ли переменные среды (%ProgramData%, %windir%) — часть консолей их не понимает, и путь нужно задавать литералом.
  3. Применяется ли исключение к дочерним каталогам. Если нет — %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.

priority_highБлокировки пакетного менеджера

Агент определяет занятость 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; проверьте сначала, не в нём ли причина замедления

warningБазы пакетного менеджера исключать не нужно

Не исключайте /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 — события гасятся до обработки. На проверку по требованию по умолчанию не действует

infoОграничения области 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: * в середине пути заменяет один каталог, ? — один символ. Параметр с маской берите в двойные кавычки, иначе оболочка раскроет его сама.

lightbulbПроверка, что исключение сработало

Положите в исключённый каталог тестовый файл EICAR и убедитесь, что антивирус на него не отреагировал:

echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /var/lib/lsus-client/eicar-test.txt

Если обнаружения нет и файл на месте — исключение работает. Удалите файл сразу после проверки.

warningСимлинки не исключаются

Пути в исключениях должны быть жёсткими ссылками, а не символическими. Проверьте путь командой 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/*'

infoСинтаксис зависит от версии

Имена параметров конфигурационного файла и нумерация настроек меняются между релизами KES. Перед раскаткой сверьте синтаксис с документацией к вашей версии и проверьте результат через kesl-control --get-settings 1.

Dr.Web для Linux#

Исключения настраиваются на вкладке «Исключения», в окне «Файлы и каталоги»: объект добавляется кнопкой «+» или перетаскиванием.

warningУ 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.

warningИсключение процесса отключает и другие механизмы защиты

Исключение процесса означает не только пропуск сканирования файлов, которые он открывает. В 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.

Рекомендуемая схема:

  1. Сценарий в режиме check печатает текущий список исключений — это состояние «до». На Windows для Defender это Get-MpPreference; на Linux — mdatp exclusion, kesl-control --get-settings 1 или выгрузка настроек агента Dr.Web.
  2. Сценарий в режиме apply добавляет только базовый минимум — из раздела Рекомендуемые исключения для Windows-хоста или для Linux-хоста.
  3. Назначение политики — на коллекцию хостов, где проблема подтверждена.

priority_highПолитика вендора важнее сценария на хосте

Если антивирус управляется централизованно (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 ГБ

infoКеш Windows Update чинит агент

Агент Windows сам убирает мусор из %windir%\SoftwareDistribution и при повторной ошибке базы пересоздаёт её (см. Клиент Windows). Отказ в доступе не считается успехом: если файл держит антивирус, в отчёте будет путь к нему и состояние «не починен». Политика «Очистка диска» это не заменяет. Исключение для %windir%\SoftwareDistribution\Datastore остаётся в силе: после пересоздания база лежит по тому же пути.

warningПолитика очистки диска конфликтует с установкой обновлений

Политика «Очистка диска» из шаблона «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 не управляет исключениями антивируса сам — он фиксирует остановку установщика и передаёт диагностику, решение принимает администратор.

Связанные страницы#