Метрика покрытия: доля хостов под обновлениями, антивирусом и логами

В отчёте руководству уже есть «охват мониторингом критичных систем». Здесь другой знаменатель: все хосты из реестра, которые вы считаете своими, и три отдельных доли — обновления, защита конечной точки, доставка журналов. Без знаменателя «у нас везде антивирус» не проверить. Реестр и сверка с сетью: реестр ИТ-активов, инвентаризация в CSV.
Статья опирается на логику направления «Отчётность и метрики» из методики зрелости Группы Сбер (источник); это методика для крупных компаний, мы используем её как ориентир и пересказываем своими словами. CIS Controls v8.1 требуют инвентарь, обновления, защиту от вредоносного кода и журналы как отдельные практики, не одну галочку: cisecurity.org/controls. Это не российский закон. Восемь метрик отчёта не копируем: что считать для руководства.
Три доли, один список хостов
| Доля | Числитель | Где взять список |
|---|---|---|
| Обновления | Хосты с работающим механизмом обновлений безопасности | Linux: unattended-upgrades или аналог; Windows — консоль обновлений, не «все когда-то ставили» |
| Конечная точка | Хосты с агентом антивируса или EDR в статусе «онлайн» | Консоль решения: антивирус и EDR |
| Журналы | Хосты, от которых события доходят до сборщика | Агенты Wazuh или приём на rsyslog; «служба запущена» недостаточно |
Знаменатель — хосты реестра в контуре (серверы и рабочие станции, которые вы патчите). Гостевая Wi‑Fi, принтеры и чужой SaaS в знаменатель не входят: пометьте в реестре «вне покрытия» с причиной. Формула на месяц:
покрытие = число хостов в числителе / число хостов в знаменателе
непокрытые = знаменатель минус числитель
Три процента рядом в отчёте лучше, чем одно «среднее покрытие 87%»: иначе дыра в журналах спрячется за хорошим антивирусом.
Как сверить списки
Выгрузите имена хостов в три текстовых файла в нижнем регистре, по одному имени на строку, без шапки: inventory.txt, logs.txt, edr.txt. На машине, где считаете (не обязательно на продуктиве):
sort -u inventory.txt > /tmp/inv.txt
sort -u logs.txt > /tmp/logs.txt
comm -23 /tmp/inv.txt /tmp/logs.txt
Что должно появиться: хосты из реестра, которых нет среди сдающих журналы. Это и есть очередь на месяц. То же для edr.txt и списка с обновлениями. Риск: разные написания одного имени (WEB1 и web1.example.com) раздуют «непокрытых». Приведите имена к одному виду в реестре до сверки.
Не подменяйте сверку скриптом дашборда из auth.log: он считает другие вещи. Покрытие как KPI берите только если ИБ реально может требовать агент: KPI на год.
Диагностика
| Симптом | Причина и что делать |
|---|---|
| Покрытие 100%, nmap находит лишние адреса | Знаменатель устарел. Сверьте реестр с сетью |
| Агент «зелёный», событий нет неделю | Это не покрытие журналами. Проверьте доставку, не статус службы |
| Одно число на все три доли | Смешали. Верните три строки |
| В знаменателе облачные принтеры | Сузьте контур или заведите класс «не считаем» |
Где это в модели зрелости
Материал относится к направлению «Отчётность и метрики» (хаб: метрики, карта: карта зрелости). Цифра питается активами, конечными устройствами и мониторингом. Пока нет списка хостов, покрытие — мнение, не метрика.
Как проверить
- Знаменатель совпадает с реестром (минус явно исключённые классы) на дату отчёта.
- Есть три доли за последний месяц и списки непокрытых, не только проценты.
comm -23(или аналог) сходится с тем, что вы показываете руководителю.- Хост с «агент установлен, событий нет» не стоит в числителе журналов.
- Формула не менялась без пометки разрыва ряда.
Источники
- CIS Controls v8.1, контроли 1, 7, 8, 10: cisecurity.org/controls.


















