Перейти к содержимому

Оценка безопасности

Оценка безопасности — это необязательный класс от A до F (и баллы от 0 до 100), который показывается рядом с мониторами, для которых несколько проверок говорят что-то полезное: хосты Linux и Windows с агентом, Proxmox VE и Proxmox Backup Server, Synology, OPNsense, сайты и Active Directory. Другие мониторы ничего не показывают.

Оценка по умолчанию выключена. Администратор включает её в Настройки → Учётная запись и безопасность → Оценка безопасности. После включения:

  • каждый оцениваемый монитор получает небольшой значок-щит со своей буквой в списке мониторов и значок Security с баллами на своей странице;
  • щелчок по значку открывает отчёт об мониторе: что не проходит, с подтверждением и способом исправления, что проходит, шаги по улучшению оценки для этого типа мониторов и ссылку на соответствующий раздел ниже.

Выключение скрывает значки, останавливает периодический расчёт, а ряды dumbmonit_security_score перестают записываться.

Для расчёта оценки DumbMonit никогда ничего дополнительно не запрашивает у монитора. Проверки читают последние значения, которые коллекторы уже записали (за последние 6 часов), поэтому оценка ничего не стоит устройству.

У каждой проверки есть категория (экспозиция, обновления, аутентификация, шифрование, резервное копирование, конфигурация), серьёзность, которая является её весом (critical 10, high 6, medium 3, low 1), результат (пройдена, не пройдена или неизвестно, когда данные не собираются), подтверждение, способ исправления и ссылка на страницу производителя, на которой она основана.

Оценка = 100 × (вес пройденных проверок) ÷ (вес пройденных + не пройденных проверок). Неизвестные проверки показываются, но никогда не учитываются: оценка не должна падать из-за того, что учётной записи мониторинга не хватает привилегии, и расти из-за того, что ничего не известно. Монитор, у которого все проверки неизвестны, не оценивается.

КлассБаллыСлово
A90–100Сильная
B75–89Хорошая
C60–74Удовлетворительная
D40–59Слабая
F0–39Плохая

Не пройденная критическая проверка ограничивает класс значением C, независимо от баллов.

Пока оценка включена, сервер пересчитывает её каждые 15 минут и сохраняет как dumbmonit_security_score{target="<id>"} (а число не пройденных проверок — как dumbmonit_security_checks_failed). Её используют два встроенных правила: Security score dropped (на 10 баллов и более ниже лучшего значения за последние 24 часа) и Security score low (ниже 40). См. Правила оповещений.

Машины с агентом. Проверкам SSH и межсетевого экрана нужен агент того же релиза, что и сервер; со старым агентом они неизвестны.

ПроверкаСерьёзностьДанные
Security updates installedhighожидающие обновления безопасности (там, где менеджер пакетов их различает)
No pending updateslowожидающие обновления
No reboot pendingmediumтребуется перезагрузка
SSH root login with a password refusedhighPermitRootLogin из sshd -T (prohibit-password проходит)
SSH accepts keys onlymediumPasswordAuthentication, а также KbdInteractiveAuthentication при UsePAM
Host firewall filters inbound traffichighцепочка input в nftables или iptables, которая отбрасывает или отклоняет
SELinux enforcingmediumрежим SELinux (неизвестно там, где SELinux нет)
Container images up to datemediumболее новый образ в реестре (только при наличии контейнеров)
No container image older than 180 dayslowвозраст образа (только при наличии контейнеров)

Чтобы улучшить:

  1. Установите ожидающие обновления безопасности, затем включите автоматические обновления безопасности: unattended-upgrades в Debian и Ubuntu, dnf-automatic в Fedora и RHEL.
  2. Перезагружайтесь после обновлений ядра или библиотек.
  3. Убедитесь, что ваш SSH-ключ работает, затем задайте PermitRootLogin no, PasswordAuthentication no и KbdInteractiveAuthentication no в /etc/ssh/sshd_config и перезагрузите sshd.
  4. Включите межсетевой экран хоста, отбрасывающий незапрошенный входящий трафик: ufw enable в Ubuntu, firewalld в Fedora и RHEL, набор правил nftables в остальных случаях.
  5. Держите SELinux в режиме enforcing там, где его поставляет дистрибутив; регулярно загружайте более новые образы контейнеров.

Источники: CIS Controls, sshd_config(5), Red Hat — Using SELinux.

Машины с агентом Windows того же релиза, что и сервер (читается из реестра; старый агент не сообщает ни одной из этих проверок).

ПроверкаСерьёзностьДанные
Windows Firewall on for every profilehighпрофили домена, частный и общий (сначала групповая политика)
No reboot pendingmediumWindows Update или обслуживание компонентов ждёт перезагрузки
Remote Desktop requires Network Level Authenticationhighпроходит, если удалённый рабочий стол выключен
SMBv1 disabledhighпараметр сервера SMBv1

Чтобы улучшить:

  1. Установите обновления Windows (Параметры → Windows Update) и перезагрузитесь, когда будет предложено.
  2. Держите брандмауэр Защитника Windows включённым для профилей домена, частного и общего.
  3. Если удалённый рабочий стол включён, требуйте проверку подлинности на уровне сети (NLA) и заходите через VPN, а не напрямую из интернета.
  4. Удалите SMBv1: Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol.

Источники: Windows Firewall, SMBv1.

ПроверкаСерьёзностьДанные
Security updates installedhighожидающие обновления безопасности по узлам (нужно право Sys.Modify у токена, иначе неизвестно)
Proxmox VE packages up to datemediumобновляемые пакеты Proxmox по узлам
Running the installed kernelmediumустановлено более новое ядро, чем запущенное
No test repository in usemediumвключённые стандартные репозитории
Package repositories correctly configuredmediumошибки и предупреждения, которые Proxmox VE выдаёт по репозиториям
Enterprise repository subscriptionlowсостояние подписки по узлам
Web interface certificate valid for 14+ daysmediumсрок действия сертификата узла
Every guest is in a backup jobhighгости, не выбранные ни одним заданием резервного копирования
Backup jobs succeedhighпоследний результат каждого задания резервного копирования

Чтобы улучшить:

  1. Используйте репозиторий, на который у вас есть право: enterprise с подпиской, иначе pve-no-subscription; никогда pvetest на важном узле.
  2. Установите обновления на панели Updates узла, затем перезагрузитесь в новое ядро.
  3. Включите каждую ВМ и контейнер в задание резервного копирования, лучше на Proxmox Backup Server, и исправьте любое задание, которое не проходит.
  4. Замените самоподписанный веб-сертификат сертификатом ACME.

Источники: System Software Updates, Package Repositories, Backup and Restore.

ПроверкаСерьёзностьДанные
System updates installedhighожидающие обновления (нужно право Sys.Modify на /system)
Running the installed Backup Server versionmediumдемоны, всё ещё работающие на версии до обновления
Verify job scheduledhighчисло заданий проверки
Prune job scheduledmediumчисло заданий prune
Backups copied elsewhere (sync or tape)mediumзадания синхронизации и резервного копирования на ленту (правило 3-2-1)
Garbage collection clean, no bad chunkshighпоследний результат GC и повреждённые чанки по datastore
Certificate valid for 14+ daysmediumсрок действия сертификата

Чтобы улучшить:

  1. Установите обновления и перезагрузитесь, если изменилось ядро или proxmox-backup.
  2. Запланируйте задание проверки и задание prune на каждом datastore.
  3. Держите копию в другом месте: задание синхронизации на второй Backup Server или лента.
  4. Используйте сертификат ACME для веб-интерфейса.

Источники: Maintenance tasks, Remotes and sync.

ПроверкаСерьёзностьДанные
DSM 7 or laterhighверсия DSM
DSM up to datehighдоступно обновление DSM (только учётная запись администратора)
Built-in admin account disabledmediumсостояние учётной записи admin (только учётная запись администратора)
Auto Block enabledmediumпараметр Auto Block (только учётная запись администратора)
DSM firewall enabledmediumпараметр межсетевого экрана (только учётная запись администратора)
Hyper Backup task configuredmediumчисло задач Hyper Backup
Hyper Backup tasks succeedhighпоследний результат каждой задачи

Четыре параметра читаются раз в час и только когда DumbMonit входит с учётной записью администратора; с обычной учётной записью они остаются неизвестными и не учитываются. Двухэтапная проверка и перенаправление на HTTPS не читаются.

Чтобы улучшить:

  1. Используйте последний релиз DSM 7 для вашей модели и позвольте DSM автоматически устанавливать важные обновления (Панель управления → Обновление и восстановление).
  2. Отключите встроенную учётную запись admin; входите под личной учётной записью администратора, защищённой двухэтапной проверкой.
  3. Включите Auto Block и межсетевой экран (Панель управления → Безопасность) и не пробрасывайте порты DSM в интернет: используйте VPN.
  4. Делайте резервные копии с помощью Hyper Backup на другое устройство или в облако и исправляйте любую задачу, которая не проходит: RAID и снимки — это не резервные копии.

Источники: Product support status, How to add extra security to your Synology NAS.

ПроверкаСерьёзностьДанные
Firmware updates installedhighожидающие обновления пакетов (неизвестно, пока OPNsense не проверит обновления)
On the current major release seriesmediumдоступна новая основная серия
No reboot pending after an updatemediumтребуется перезагрузка
Packet filter enabledcriticalсостояние pf

Чтобы улучшить:

  1. Проверьте обновления в System → Firmware → Status, установите их и перезагрузитесь, когда будет предложено.
  2. Переходите на новый основной релиз, когда он выйдет.
  3. Держите пакетный фильтр включённым.
  4. Разрешайте веб-интерфейс и SSH только из LAN или через VPN, никогда из WAN.

Источники: OPNsense updates, OPNsense firewall.

Для мониторов HTTP(S) и TLS, которые согласуют TLS, и для мониторов Website health & SEO. У монитора с обычным HTTP нет оценки.

ПроверкаСерьёзностьДанные
Certificate valid for 14+ dayshighдней до истечения (мониторы HTTP(S) и TLS)
Certificate chain trustedhighпроверка цепочки (мониторы HTTP(S) и TLS)
TLS 1.3 negotiatedlowсогласованная версия протокола (мониторы HTTP(S) и TLS)
Served over HTTPShighконечный адрес после перенаправлений (Website health)
Strict-Transport-Security headermediumзаголовок с max-age больше 0
X-Content-Type-Options: nosnifflowзначение заголовка
Protected against clickjackinglowX-Frame-Options или frame-ancestors в CSP
Content-Security-Policy headerlowприменяемая политика (report-only не считается)

Заголовки читаются только в ответах HTTPS.

Чтобы улучшить:

  1. Отдавайте сайт только по HTTPS и перенаправляйте обычный HTTP на HTTPS.
  2. Автоматизируйте продление сертификата (ACME, например Let’s Encrypt) и отдавайте полную цепочку.
  3. Добавьте заголовки безопасности в веб-сервере или обратном прокси: Strict-Transport-Security, X-Content-Type-Options: nosniff и Content-Security-Policy с frame-ancestors.
  4. Сверьтесь с Mozilla HTTP Observatory, который проверяет гораздо больше, чем эта оценка.

Источники: Mozilla Server Side TLS, MDN — HTTP headers.

Оценивается по находкам в стиле PingCastle коллектора Active Directory: учётные записи, уязвимые к Kerberoasting, учётные записи без предварительной аутентификации Kerberos, неограниченное делегирование, возраст пароля krbtgt, размер привилегированных групп, охват LAPS, политика паролей, устаревшие учётные записи. Каждая находка — это проверка, которая проходит, если затрагивает ноль объектов.

Чтобы улучшить:

  1. Сначала исправьте критические и высокие находки: это обычные пути к Domain Admins.
  2. Если пароль krbtgt старый, сбросьте его дважды с интервалом в несколько часов и уберите неограниченное делегирование с компьютеров, не являющихся контроллерами домена.
  3. Переведите службы, работающие под учётными записями пользователей с SPN, на групповые управляемые учётные записи служб (gMSA).
  4. Запустите PingCastle для полной оценки.

Источники: PingCastle health check rules, Windows LAPS.

  • Оценка отражает только то, что видит DumbMonit; многие рекомендации не проверяются, потому что ни один коллектор не читает нужные данные: межсетевой экран и двухфакторная аутентификация Proxmox, веб-интерфейс OPNsense, доступный из WAN, контейнеры Docker, запущенные с привилегиями или со смонтированным сокетом Docker, всё ещё предлагаемые TLS 1.0/1.1 (проба согласует только TLS 1.2 и 1.3) и многое другое.
  • Проверка свежа настолько, насколько свежи её данные: некоторые коллекторы перечитывают обновления лишь раз в несколько часов.
  • Веса — продуктовое решение, одинаковое для всех установок.
  • Оцениваются только перечисленные выше типы. Остальные (коммутаторы, принтеры, UniFi, pfSense…) намеренно не показывают значка: пара проверок дала бы класс, который ничего не значит.