Pular para o conteúdo

Pontuação de segurança

A pontuação de segurança é uma classificação opcional de A a F (e uma pontuação de 0 a 100) mostrada junto dos monitores em que algumas verificações dizem algo útil: hosts Linux e Windows com o agente, Proxmox VE e Proxmox Backup Server, Synology, OPNsense, sites web e Active Directory. Os outros monitores não mostram nada.

A pontuação está desativada por predefinição. Um administrador ativa-a em Definições → Conta e segurança → Pontuação de segurança. Depois de ativada:

  • cada monitor pontuado recebe um pequeno distintivo em forma de escudo com a sua letra na lista de monitores, e um distintivo Security com a pontuação na sua página;
  • clicar no distintivo abre o relatório do monitor: o que falha, com a evidência e a correção, o que passa, os passos para melhorar a pontuação neste tipo de monitor e uma ligação para a secção correspondente abaixo.

Desativá-la oculta os distintivos, pára o cálculo periódico e as séries dumbmonit_security_score deixam de ser escritas.

O DumbMonit nunca pede nada extra ao monitor para calcular a pontuação. As verificações leem os últimos valores que os coletores já registaram (olhando 6 horas para trás), pelo que uma pontuação não custa nada ao monitor.

Cada verificação tem uma categoria (exposição, correções, autenticação, cifragem, cópia de segurança, configuração), uma severidade que é o seu peso (critical 10, high 6, medium 3, low 1), um resultado (passa, falha ou desconhecido quando o dado não é recolhido), a evidência, a correção e uma ligação para a página do fabricante em que se baseia.

Pontuação = 100 × (peso das verificações que passam) ÷ (peso das que passam + falham). As verificações desconhecidas são mostradas mas nunca contadas: uma pontuação não deve baixar porque a uma conta de monitorização falta um privilégio, nem subir porque nada se sabe. Um monitor cujas verificações são todas desconhecidas não é pontuado.

ClassificaçãoPontuaçãoPalavra
A90–100Forte
B75–89Boa
C60–74Razoável
D40–59Fraca
F0–39Má

Uma verificação crítica que falha limita a classificação a C, seja qual for a pontuação.

Enquanto a pontuação está ativada, o servidor recalcula-a a cada 15 minutos e guarda-a como dumbmonit_security_score{target="<id>"} (e o número de verificações que falham como dumbmonit_security_checks_failed). Duas regras integradas usam-na: Security score dropped (10 pontos ou mais abaixo do melhor valor das últimas 24 horas) e Security score low (abaixo de 40). Veja Regras de alerta.

Máquinas com o agente. As verificações de SSH e da firewall precisam de um agente da mesma versão do servidor; com um agente mais antigo são desconhecidas.

VerificaçãoSeveridadeDado
Security updates installedhighatualizações de segurança pendentes (onde o gestor de pacotes as distingue)
No pending updateslowatualizações pendentes
No reboot pendingmediumreinício necessário
SSH root login with a password refusedhighPermitRootLogin de sshd -T (prohibit-password passa)
SSH accepts keys onlymediumPasswordAuthentication, e KbdInteractiveAuthentication com UsePAM
Host firewall filters inbound traffichighuma cadeia input de nftables ou iptables que descarta ou rejeita
SELinux enforcingmediummodo do SELinux (desconhecido onde o SELinux não existe)
Container images up to datemediumimagem mais recente no registo (só com contentores)
No container image older than 180 dayslowidade da imagem (só com contentores)

Para a melhorar:

  1. Instale as atualizações de segurança pendentes e depois ative as atualizações de segurança automáticas: unattended-upgrades no Debian e no Ubuntu, dnf-automatic no Fedora e no RHEL.
  2. Reinicie após atualizações do kernel ou de bibliotecas.
  3. Verifique se a sua chave SSH funciona e depois defina PermitRootLogin no, PasswordAuthentication no e KbdInteractiveAuthentication no em /etc/ssh/sshd_config e recarregue o sshd.
  4. Ative uma firewall de host que descarte o tráfego de entrada não solicitado: ufw enable no Ubuntu, firewalld no Fedora e no RHEL, um conjunto de regras nftables nos restantes.
  5. Mantenha o SELinux em enforcing onde a distribuição o inclui; obtenha regularmente imagens de contentores mais recentes.

Fontes: CIS Controls, sshd_config(5), Red Hat — Using SELinux.

Máquinas com o agente Windows, da mesma versão do servidor (lido do registo; um agente mais antigo não reporta nenhuma destas).

VerificaçãoSeveridadeDado
Windows Firewall on for every profilehighperfis de domínio, privado e público (primeiro a política de grupo)
No reboot pendingmediumWindows Update ou manutenção de componentes à espera de um reinício
Remote Desktop requires Network Level Authenticationhighpassa quando o Ambiente de Trabalho Remoto está desativado
SMBv1 disabledhighdefinição do servidor SMBv1

Para a melhorar:

  1. Instale as atualizações do Windows (Definições → Windows Update) e reinicie quando for pedido.
  2. Mantenha a Firewall do Windows Defender ativada nos perfis de domínio, privado e público.
  3. Se o Ambiente de Trabalho Remoto estiver ativado, exija a autenticação ao nível da rede (NLA) e aceda-lhe por uma VPN, nunca diretamente a partir da internet.
  4. Remova o SMBv1: Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol.

Fontes: Windows Firewall, SMBv1.

VerificaçãoSeveridadeDado
Security updates installedhighatualizações de segurança pendentes por nó (precisa de Sys.Modify no token, senão desconhecida)
Proxmox VE packages up to datemediumpacotes Proxmox atualizáveis por nó
Running the installed kernelmediumkernel instalado mais recente do que o em execução
No test repository in usemediumrepositórios standard ativados
Package repositories correctly configuredmediumerros e avisos que o Proxmox VE levanta sobre os repositórios
Enterprise repository subscriptionlowestado da subscrição por nó
Web interface certificate valid for 14+ daysmediumexpiração do certificado do nó
Every guest is in a backup jobhighconvidados não selecionados por nenhuma tarefa de cópia
Backup jobs succeedhighúltimo resultado de cada tarefa de cópia

Para a melhorar:

  1. Use um repositório a que tenha direito: enterprise com subscrição, caso contrário pve-no-subscription; nunca pvetest num nó que importe.
  2. Instale as atualizações a partir do painel Updates do nó e depois reinicie com o novo kernel.
  3. Ponha cada VM e contentor numa tarefa de cópia, idealmente para um Proxmox Backup Server, e corrija qualquer tarefa que falhe.
  4. Substitua o certificado web autoassinado por um ACME.

Fontes: System Software Updates, Package Repositories, Backup and Restore.

VerificaçãoSeveridadeDado
System updates installedhighatualizações pendentes (precisa de Sys.Modify em /system)
Running the installed Backup Server versionmediumdaemons que ainda executam a versão anterior à atualização
Verify job scheduledhighnúmero de tarefas de verificação
Prune job scheduledmediumnúmero de tarefas de prune
Backups copied elsewhere (sync or tape)mediumtarefas de sincronização e de cópia em fita (regra 3-2-1)
Garbage collection clean, no bad chunkshighúltimo resultado do GC e chunks defeituosos por datastore
Certificate valid for 14+ daysmediumexpiração do certificado

Para a melhorar:

  1. Instale as atualizações e reinicie quando o kernel ou o proxmox-backup mudaram.
  2. Agende uma tarefa de verificação e uma de prune em cada datastore.
  3. Mantenha uma cópia noutro local: uma tarefa de sincronização para um segundo Backup Server, ou fita.
  4. Use um certificado ACME para a interface web.

Fontes: Maintenance tasks, Remotes and sync.

VerificaçãoSeveridadeDado
DSM 7 or laterhighversão do DSM
DSM up to datehighhá uma atualização do DSM disponível (só conta de administrador)
Built-in admin account disabledmediumestado da conta admin (só conta de administrador)
Auto Block enabledmediumdefinição do Auto Block (só conta de administrador)
DSM firewall enabledmediumdefinição da firewall (só conta de administrador)
Hyper Backup task configuredmediumnúmero de tarefas do Hyper Backup
Hyper Backup tasks succeedhighúltimo resultado de cada tarefa

As quatro definições são lidas uma vez por hora e só quando o DumbMonit inicia sessão com uma conta de administrador; com uma conta normal ficam desconhecidas e não contam. A verificação em dois passos e o redirecionamento para HTTPS não são lidos.

Para a melhorar:

  1. Execute a última versão do DSM 7 para o seu modelo e deixe o DSM instalar automaticamente as atualizações importantes (Painel de controlo → Atualização e restauro).
  2. Desative a conta integrada admin; inicie sessão com um administrador pessoal protegido por verificação em dois passos.
  3. Ative o Auto Block e a firewall (Painel de controlo → Segurança) e não encaminhe portas do DSM para a internet: use uma VPN.
  4. Faça cópias com o Hyper Backup para outro dispositivo ou um destino na nuvem e corrija qualquer tarefa que falhe: RAID e instantâneos não são cópias de segurança.

Fontes: Product support status, How to add extra security to your Synology NAS.

VerificaçãoSeveridadeDado
Firmware updates installedhighatualizações de pacotes pendentes (desconhecida até o OPNsense ter procurado atualizações)
On the current major release seriesmediumnova série principal disponível
No reboot pending after an updatemediumreinício necessário
Packet filter enabledcriticalestado do pf

Para a melhorar:

  1. Procure atualizações em System → Firmware → Status, instale-as e reinicie quando for pedido.
  2. Passe para a nova versão principal quando sair.
  3. Mantenha o filtro de pacotes ativado.
  4. Permita a interface web e o SSH apenas a partir da LAN ou de uma VPN, nunca a partir da WAN.

Fontes: OPNsense updates, OPNsense firewall.

Para os monitores HTTP(S) e TLS que negociam TLS, e para os monitores Website health & SEO. Um monitor HTTP simples não tem pontuação.

VerificaçãoSeveridadeDado
Certificate valid for 14+ dayshighdias até à expiração (monitores HTTP(S) e TLS)
Certificate chain trustedhighverificação da cadeia (monitores HTTP(S) e TLS)
TLS 1.3 negotiatedlowversão do protocolo negociada (monitores HTTP(S) e TLS)
Served over HTTPShighendereço final após redirecionamentos (Website health)
Strict-Transport-Security headermediumcabeçalho com um max-age superior a 0
X-Content-Type-Options: nosnifflowvalor do cabeçalho
Protected against clickjackinglowX-Frame-Options ou frame-ancestors da CSP
Content-Security-Policy headerlowuma política aplicada (report-only não conta)

Os cabeçalhos só são lidos em respostas HTTPS.

Para a melhorar:

  1. Sirva o site apenas por HTTPS e redirecione o HTTP simples para HTTPS.
  2. Automatize a renovação do certificado (ACME, p. ex. Let’s Encrypt) e sirva a cadeia completa.
  3. Adicione cabeçalhos de segurança no servidor web ou no proxy inverso: Strict-Transport-Security, X-Content-Type-Options: nosniff e uma Content-Security-Policy com frame-ancestors.
  4. Confronte com o Mozilla HTTP Observatory, que testa muito mais do que esta pontuação.

Fontes: Mozilla Server Side TLS, MDN — HTTP headers.

Pontuado a partir dos achados ao estilo PingCastle do coletor do Active Directory: contas kerberoastable, contas sem pré-autenticação Kerberos, delegação sem restrições, idade da palavra-passe do krbtgt, tamanho dos grupos privilegiados, cobertura do LAPS, política de palavras-passe, contas obsoletas. Cada achado é uma verificação que passa quando diz respeito a zero objetos.

Para a melhorar:

  1. Corrija primeiro os achados críticos e altos: são os caminhos habituais para os Domain Admins.
  2. Se a palavra-passe do krbtgt for antiga, reponha-a duas vezes, com umas horas de intervalo, e remova a delegação sem restrições dos computadores que não sejam controladores de domínio.
  3. Passe os serviços que correm com contas de utilizador com SPN para contas de serviço geridas de grupo (gMSA).
  4. Execute o PingCastle para uma avaliação completa.

Fontes: PingCastle health check rules, Windows LAPS.

  • A pontuação reflete apenas o que o DumbMonit consegue ver; muitas boas práticas não são verificadas porque nenhum coletor lê o dado: firewall e autenticação de dois fatores do Proxmox, interface web do OPNsense exposta na WAN, contentores Docker a correr com privilégios ou com o socket do Docker montado, TLS 1.0/1.1 ainda oferecidos (a sonda só negoceia TLS 1.2 e 1.3), e muitas mais.
  • Uma verificação é tão atual quanto os seus dados: alguns coletores só relêem as atualizações de poucas em poucas horas.
  • Os pesos são uma escolha de produto, igual para todas as instalações.
  • Só os tipos acima são pontuados. Os outros (switches, impressoras, UniFi, pfSense…) não mostram distintivo de propósito: duas ou três verificações dariam uma classificação sem significado.