Bastionamento de Sistemas Linux e Windows (CIS Benchmarks)
Instalações padrão de sistemas operacionais priorizam conveniência e compatibilidade retroativa,
mantendo portas desnecessárias abertas, serviços legados ativos e configurações permissivas de fábrica.
O processo metódico de Hardening (Bastionamento) reduz drasticamente a superfície de ataque,
implementando as diretrizes normativas dos CIS Benchmarks (Center for Internet Security)
nos níveis Nível 1 e Nível 2. Dominar a configuração restritiva do SSH, a blindagem de parâmetros do kernel via
sysctl.conf, o confinamento com SELinux/AppArmor, a proteção da memória do LSASS no Windows e o
descarte de protocolos legados (como SMBv1) é a fundação inegociável da defesa em profundidade de host.
O que é Hardening e o Padrão Normativo CIS Benchmarks
Hardening (Bastionamento) é o processo contínuo de engenharia de segurança dedicado a eliminar vulnerabilidades potenciais em um sistema operacional ou aplicação através da desativação sistemática de funções, portas, protocolos, contas e privilégios não essenciais à sua finalidade operacional estrita.
A Ilusão da "Instalação Limpa": O Risco das Configurações Padrão de Fábrica
Sistemas operacionais recém-instalados (sejam distribuições Linux ou Windows Server) contêm centenas de configurações
projetadas para funcionar "out-of-the-box" sem atritos. Isso inclui autenticação por senha ativada, login direto
de administrador permitido, compartilhamentos administrativos de rede abertos (como C$ e ADMIN$)
e protocolos legados de descoberta de rede respondendo a qualquer requisição. Para um atacante, uma máquina sem hardening
é um convite para escalação de privilégios e evasão de defesas.
O Center for Internet Security (CIS) e os Dois Níveis de Conformidade
O Center for Internet Security (CIS) é a autoridade global mais respeitada na definição de guias prescritivos de endurecimento de configurações (os CIS Benchmarks). Desenvolvidos por consenso comunitário entre governos, desenvolvedores e especialistas em segurança cibernética, os benchmarks dividem suas recomendações em dois níveis fundamentais:
CIS Nível 1 (Level 1 - Linha de Base Essencial)
Recomendações fundamentais de segurança aplicáveis a qualquer ambiente operacional.
Projetadas para serem implementadas com impacto mínimo ou nulo na compatibilidade e funcionalidade das aplicações.
Exemplos: Desativar login root direto via SSH, exigir complexidade mínima de senhas, habilitar logs de auditoria, desativar protocolos legados obsoletos.
CIS Nível 2 (Level 2 - Defesa em Profundidade / Alta Segurança)
Configurações rigorosas para ambientes com alta sensibilidade de dados (setor financeiro, militar, infraestrutura crítica).
Pode introduzir atritos operacionais e quebrar softwares legados se aplicado sem planejamento de compatibilidade.
Exemplos: Confinamento estrito de SELinux em modo restritivo, desativação de módulos de USB no kernel, criptografia obrigatória de tráfego de gerenciamento, isolamento estrito de memória.
O Perigo do "Configuration Drift" (Desvio de Configuração)
O bastionamento não é um evento único realizado no provisionamento inicial do servidor. Ao longo dos meses, administradores alteram permissões temporárias para testes e esquecem de revogá-las, atualizações de pacotes sobrescrevem arquivos de configuração e novas dependências abrem portas desnecessárias. Esse fenômeno é chamado de Configuration Drift. Ambientes maduros utilizam ferramentas de Infraestrutura como Código (IaC) e conformidade contínua (como Ansible, Puppet e OpenSCAP) para reforçar diariamente a linha de base do CIS Benchmark.
Bastionamento Profundo em Ambientes Linux
O ecossistema Linux é a espinha dorsal de servidores corporativos e ambientes de nuvem. O bastionamento de um servidor Linux corporativo engloba quatro camadas principais de proteção:
1. Bastionamento do Serviço SSH (`/etc/ssh/sshd_config`)
O Secure Shell (SSH) é a principal porta de entrada administrativa em servidores Linux e o alvo mais visado por botnets e ataques de força bruta. A configuração recomendada pelos CIS Benchmarks inclui:
# 1. Proibição categórica de login direto do superusuário root
PermitRootLogin no
# 2. Desativação de autenticação baseada em senha (obriga chaves assimétricas ed25519/RSA-4096)
PasswordAuthentication no
PermitEmptyPasswords no
# 3. Limite de tentativas de autenticação antes de desconectar
MaxAuthTries 3
# 4. Desativação de encaminhamentos desnecessários e superfície gráfica
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
# 5. Restrição explícita de quais usuários ou grupos podem conectar
AllowGroups ssh-users-admin
# 6. Cifras e algoritmos modernos recomendados (rejeição de 3DES, CBC e SHA-1)
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group16-sha512
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com
2. Parâmetros de Segurança do Kernel (`/etc/sysctl.conf`)
O subsistema de rede e memória do kernel Linux possui parâmetros configuráveis via sysctl
que aumentam a resiliência contra ataques de rede em Camada 3/4 e exploração de memória:
# Prevenção contra spoofing de roteamento e pacotes forjados
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# Proteção ativa contra ataques de negação de serviço TCP SYN Flood
net.ipv4.tcp_syncookies = 1
# Habilitação forçada de ASLR Completo (Address Space Layout Randomization)
# 0 = Desativado | 1 = Conservador | 2 = Aleatorização Completa de Heap, Stack e Bibliotecas
kernel.randomize_va_space = 2
# Restrição de mensagens de diagnóstico do dmesg para usuários sem privilégios de root
kernel.dmesg_restrict = 1
# Prevenção contra ataques de escalação de privilégios com links simbólicos e hardlinks
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
3. Permissões de Arquivos, umask e Binários SUID/SGID
-
Máscara Padrão de Arquivos (umask): A máscara padrão corporativa deve ser configurada em
027(ou077para ambientes ultrassensíveis). Isso garante que novos arquivos sejam criados sem permissão de leitura ou escrita para "outros" usuários do sistema (permissão padrão640ou600). -
Auditoria de Binários SUID/SGID: Binários com o bit
SUID(como/usr/bin/passwd) executam com os privilégios do proprietário do arquivo (tipicamente root), independentemente de quem os invocou. Binários SUID desnecessários com falhas conhecidas de buffer overflow ou injeção de parâmetros são a principal porta de entrada para Escalação Local de Privilégios (Privilege Escalation - T1548).
Comando de varredura:find / -perm -4000 -type f 2>/dev/null. -
Proteção de Arquivos de Autenticação:
/etc/shadowdeve possuir permissão estrita0600pertencendo aroot:root(ou0640 root:shadow), impedindo leitura de hashes de senha por usuários locais.
4. Módulos de Segurança de Controle de Acesso Mandatório (MAC)
Diferente das permissões tradicionais DAC (onde o dono do arquivo decide quem tem acesso), os módulos MAC do kernel
restringem as ações de um processo com base em políticas rígidas, mesmo que o processo esteja rodando como root:
-
SELinux (Security-Enhanced Linux): Utilizado em distribuições Red Hat, CentOS, Fedora e Rocky Linux.
Associa rótulos de contexto de segurança a processos e arquivos (tipo
httpd_t). Deve estar sempre configurado em modo Enforcing (nunca em modo Permissive ou Disabled). -
AppArmor: Utilizado em Debian, Ubuntu e SUSE. Baseado em caminhos de arquivos e perfis específicos
para cada binário (armazenados em
/etc/apparmor.d/). Os perfis devem estar em modo enforce.
Bastionamento em Ambientes Windows Server e Active Directory
Em ambientes corporativos baseados em Microsoft Windows Server e domínios de Active Directory (AD), o hardening é aplicado centralizadamente através de Objetos de Política de Grupo (GPO - Group Policy Objects). Os seguintes pilares representam o núcleo dos CIS Benchmarks para ecossistemas Windows:
1. Desativação do SMBv1
O protocolo Server Message Block versão 1 é obsoleto e vulnerável a execução remota de código (vetor histórico dos malwares WannaCry e NotPetya).
Deve ser categoricamente desativado no Windows Server via PowerShell:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
2. Erradicação de NTLMv1 e Protocolos de Descoberta
NTLMv1: Utiliza cifras fracas de 56 bits facilmente quebradas em minutos. Force o uso exclusivo de NTLMv2 e Kerberos.
LLMNR e NetBIOS: Protocolos de difusão de rede explorados por ferramentas ofensivas (como Responder)
para capturar hashes de autenticação de máquinas Windows via envenenamento de rede (WPAD/LLMNR Poisoning).
3. Blindagem de Memória do Processo LSASS
O Local Security Authority Subsystem Service (LSASS) gerencia as credenciais ativas do sistema na memória RAM.
É o alvo primário de ferramentas de extração de credenciais como o Mimikatz.
LSA Protection: Habilite o modo RunAsPPL = 1 no Registro para transformar o LSASS em processo protegido.
Credential Guard: Utiliza virtualização (VBS) para isolar segredos NTLM e tickets Kerberos em uma VM segura invisível ao SO.
4. Hardening do PowerShell e Linha de Comando
O PowerShell é uma das ferramentas administrativas mais exploradas em ataques "Living off the Land" (LotL).
Constrained Language Mode (CLM): Restringe APIs sensíveis e reflexão do .NET para usuários não administrativos.
Script Block Logging (Event ID 4104): Registra o conteúdo exato de cada script executado, mesmo se obfuscado.
Desativação do Provedor de Segurança WDigest
O provedor WDigest (usado para autenticação HTTP Digest legada) mantinha senhas de usuários em texto claro
na memória do processo LSASS. Em sistemas modernos, deve-se garantir explicitamente no registro do Windows que o WDigest
não retenha credenciais desprotegidas:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" /v UseLogonCredential /t REG_DWORD /d 0 /f
Automação Contínua de Conformidade e Linhas de Base
Executar comandos manuais em centenas de servidores em produção é inviável e sujeito a erros humanos graves. A indústria de segurança utiliza frameworks de Compliance-as-Code (Conformidade como Código):
- Playbooks Ansible para CIS Benchmarks: Automação declarativa que audita e aplica regras do CIS Nível 1 e 2 de forma idempotente (revertendo qualquer alteração não autorizada detectada).
- OpenSCAP (Security Content Automation Protocol): Ferramenta de código aberto padronizada pelo NIST que executa varreduras automatizadas nos servidores contra os perfis CIS oficiais e gera relatórios HTML interativos com a taxa de conformidade.
- Auditorias Específicas com Lynis: Ferramenta de auditoria de segurança em Linux e Unix que analisa mais de 300 pontos de configuração e gera um índice de endurecimento (Hardening Index de 0 a 100).
Laboratório Interativo: Auditor de Configuração de Servidor (CIS Benchmark)
Avalie na prática o nível de segurança e conformidade de arquivos reais de configuração corporativos. Neste laboratório desenvolvido em Vanilla JavaScript, você pode carregar snippets de configuração comumente encontrados em servidores vulneráveis, disparar uma auditoria de conformidade com os CIS Benchmarks, analisar os achados técnicos de segurança e aplicar correções automáticas de bastionamento com um único clique.
Auditor Interativo de Linha de Base e CIS Benchmarks
Inspecione configurações vulneráveis de SO, calcule o score de conformidade e aplique hardening em tempo real.
Resultado da Auditoria de Conformidade CIS
Pressione o botão de auditoria para avaliar o snippet.| Severidade | Parâmetro Auditado | Valor Atual | Recomendação CIS | Risco Técnico Associado |
|---|
Checklist de Aplicação Prática: Auditoria de Hardening de Servidores
Utilize este checklist técnico durante implantações de servidores em produção, homologação de novas imagens douradas (Golden Images) ou revisões de auditoria para assegurar que diretrizes fundamentais de bastionamento foram observadas:
Questões de Fixação e Concursos Públicos
Consolide seu conhecimento respondendo a questões baseadas em provas de concursos públicos de alto escalão (Tribunais, Carreiras Policiais de Perícia em Computação Forense) e certificações de segurança (CompTIA Linux+, Red Hat RHCSA Security, Microsoft SC-200):
Ao planejar a implementação de linhas de base de segurança em uma organização bancária, o analista de segurança avalia a aplicação dos CIS Benchmarks para servidores Linux. Ele observa que o guia divide suas recomendações em dois níveis: CIS Nível 1 e CIS Nível 2. Considerando a finalidade e as características desses níveis, assinale a afirmativa correta sobre o escopo do CIS Nível 2:
Ver resposta comentada
Gabarito: O CIS Nível 2 é voltado para ambientes de alta sensibilidade e defesa em profundidade, aplicando restrições mais agressivas que podem impactar a funcionalidade de softwares caso não haja planejamento de compatibilidade prévio.
Justificativa: O CIS Nível 1 destina-se a estabelecer uma barreira básica de proteção com impacto mínimo ou nulo na operabilidade padrão. O CIS Nível 2 (Defense in Depth) introduz medidas altamente restritivas (como desativação de módulos USB no kernel, políticas estritas de confinamento e auditoria agressiva) recomendadas para setores militares, financeiros ou de infraestrutura crítica, exigindo testes prévios para evitar quebra de compatibilidade em aplicações corporativas.
Durante uma simulação de ataque adversário (Red Team), um invasor obteve privilégios administrativos locais
em uma estação Windows de um analista financeiro. Ele tentou executar a ferramenta Mimikatz para extrair senhas
em texto claro e hashes de memória através da injeção de DLL no processo lsass.exe, porém a operação
foi bloqueada pelo sistema com erro de acesso negado. Qual configuração de hardening implementada na estação impediu essa ação?
Ver resposta comentada
Gabarito: Habilitação do LSA Protection (Protected Process Light - RunAsPPL), associada à desativação do provedor WDigest e Credential Guard.
Justificativa: Quando o LSA Protection é ativado (valor RunAsPPL = 1 na chave de registro HKLM\SYSTEM\CurrentControlSet\Control\Lsa), o processo LSASS é executado como um Protected Process Light. Isso impede que qualquer processo não assinado digitalmente pela Microsoft (mesmo executando com privilégios de administrador ou SYSTEM) abra handles com direitos de leitura de memória ou injeção de código contra o LSASS, neutralizando ataques comuns de dumping de credenciais via Mimikatz.
Em um servidor Linux corporativo, um analista de segurança precisa assegurar que a técnica de proteção
contra exploração de vulnerabilidades de corrupção de memória e buffer overflow conhecida como
ASLR (Address Space Layout Randomization) esteja operando com o mais alto nível de aleatorização para
a pilha (stack), área de memória dinâmica (heap) e bibliotecas compartilhadas carregadas.
Qual parâmetro e valor deve constar no arquivo /etc/sysctl.conf para garantir essa proteção?
Ver resposta comentada
Gabarito: kernel.randomize_va_space = 2
Justificativa: O parâmetro kernel.randomize_va_space controla a aleatorização do espaço de endereçamento virtual no Linux. O valor 0 desativa completamente o ASLR. O valor 1 ativa o modo conservador (aleatoriza a pilha, bibliotecas dinâmicas e o mapeamento mmap, mas não o heap do processo). O valor 2 representa a aleatorização completa recomendada pelos CIS Benchmarks, incluindo também a aleatorização do heap gerado via brk(), dificultando a previsibilidade de endereços de memória por atacantes em tentativas de exploração binária.
Fatos Essenciais • Transição da Trilha 2: Segurança Defensiva
Superfície de Ataque Mínima
Desative tudo o que não for estritamente obrigatório. Menos serviços e portas abertas significam menos vetores para exploração adversária.
CIS Benchmarks São a Referência Global
Nível 1 garante segurança sem quebra de compatibilidade operacional; Nível 2 aplica restrições profundas para ativos de altíssima sensibilidade.
SSH Chaves-Apenas e Sem Root
Configure PermitRootLogin no e PasswordAuthentication no. O uso exclusivo de chaves ed25519 elimina ataques automatizados de força bruta.
sysctl e ASLR Total (Nível 2)
kernel.randomize_va_space = 2 aleatoriza pilha, heap e bibliotecas na memória, frustrando ataques de buffer overflow e ROP chains.
LSASS Blindado com RunAsPPL
No Windows Server, proteja o processo LSASS contra dumping de credenciais com LSA Protection, Credential Guard e desativação do WDigest.
Próximo Estudo da Trilha 2
No Estudo 07 (Seguranca-de-Redes-Defesa), avançaremos para sistemas ativos de detecção e prevenção (IDS/IPS Snort/Suricata, WAF e VPNs seguras).