Segurança de Configurações
LidoEsta aula aborda a segurança de configurações, um pilar essencial para manter sistemas seguros. Você aprenderá sobre baselines, drift, CIS Benchmarks e práticas de hardening, com exemplos práticos e exercícios para fixar o conteúdo.
A segurança de configurações é o processo de garantir que todos os sistemas, servidores e aplicações estejam configurados de forma segura e consistente, minimizando superfícies de ataque e prevenindo vulnerabilidades. Em um ambiente corporativo, onde há dezenas ou centenas de máquinas, a configuração insegura é uma das principais causas de incidentes de segurança. Nesta aula, exploraremos os conceitos fundamentais que permitem aos profissionais de segurança estabelecer, monitorar e manter configurações seguras ao longo do tempo.
Vamos abordar desde a definição de um estado desejado (baseline) até a detecção de desvios (drift), passando por padrões reconhecidos mundialmente (CIS Benchmarks) e técnicas de endurecimento (hardening). Ao final, você terá uma visão clara de como implementar um programa eficaz de segurança de configurações na sua organização.
Baseline
Uma baseline de segurança é um conjunto de configurações mínimas obrigatórias que um sistema deve atender para ser considerado seguro. Ela define o estado desejado de um sistema, incluindo versões de software, permissões de arquivos, serviços habilitados, políticas de senha, entre outros. A baseline serve como ponto de referência para auditorias e monitoramento contínuo, permitindo identificar rapidamente qualquer desvio que possa introduzir riscos.
O processo de criação de uma baseline envolve: identificar os requisitos de segurança da organização, consultar boas práticas (como CIS Benchmarks), testar as configurações em ambientes controlados e documentar cada decisão. Uma baseline eficaz deve ser específica, mensurável e atualizada periodicamente, pois novas ameaças e vulnerabilidades surgem constantemente.
Exemplo de um item de baseline para um servidor Linux:
# Baseline de segurança para servidores Linux - Versão 1.0
# 1. Sistema operacional atualizado
- Pacotes de segurança atualizados: sim
# 2. Serviços desnecessários desabilitados
- Serviço Telnet: desabilitado
- Serviço FTP: desabilitado
# 3. Política de senha forte
- Tamanho mínimo: 12 caracteres
- Complexidade: exigir maiúsculas, minúsculas, números e símbolos
# 4. Permissões de arquivos críticos
- /etc/passwd: 644
- /etc/shadow: 600
# 5. Logs habilitados
- Registro de autenticação: habilitado
- Registro de auditoria: habilitadoDrift
Drift (deriva) é o fenômeno em que a configuração real de um sistema se afasta da baseline definida. Isso pode ocorrer por diversos motivos: atualizações manuais, instalação de novos softwares, alterações acidentais, ou até mesmo ações maliciosas. O drift é perigoso porque, sem monitoramento, o sistema pode ficar vulnerável sem que ninguém perceba.
Para detectar drift, é necessário realizar verificações periódicas ou contínuas da configuração dos sistemas contra a baseline. Ferramentas como Ansible, Puppet, Chef ou soluções específicas de segurança (como AWS Config, Azure Policy) podem automatizar esse processo, gerando alertas sempre que uma diferença for encontrada.
Exemplo de script simples em bash para verificar se um serviço está habilitado (comparando com a baseline):
#!/bin/bash
# Script de verificação de drift para serviço Telnet
BASELINE="disabled"
CURRENT=$(systemctl is-enabled telnet.socket 2>/dev/null || echo "disabled")
if [ "$CURRENT" != "$BASELINE" ]; then
echo "ALERTA: Drift detectado! Telnet está $CURRENT, esperado $BASELINE"
exit 1
else
echo "OK: Configuração conforme baseline."
fiCIS benchmarks
O Center for Internet Security (CIS) desenvolve os CIS Benchmarks, que são guias de configuração segura para mais de 100 tecnologias, incluindo sistemas operacionais, servidores, bancos de dados e serviços de nuvem. Esses benchmarks são criados por especialistas e amplamente adotados como padrão de mercado para hardening. Eles fornecem recomendações específicas e testáveis, organizadas em seções com níveis de prioridade (Nível 1 e Nível 2).
Os CIS Benchmarks são essenciais para criar baselines consistentes e alinhadas com as melhores práticas. Além disso, muitos frameworks de compliance (como PCI DSS, HIPAA, ISO 27001) referenciam esses benchmarks como forma de atender a requisitos de configuração segura.
Exemplo de uma recomendação do CIS Benchmark para Ubuntu 22.04:
# CIS Benchmark para Ubuntu 22.04 - Seção 1.1.1.1
# Título: Ensure mounting of cramfs filesystems is disabled
# Nível: 1
# Descrição: O suporte a sistemas de arquivos cramfs não é necessário e pode ser desabilitado.
# Verificação:
# grep -E 'cramfs' /etc/modprobe.d/*.conf
# Correção:
# echo "install cramfs /bin/true" > /etc/modprobe.d/cramfs.confHardening
Hardening é o processo de endurecer um sistema, reduzindo sua superfície de ataque por meio de configurações seguras, remoção de serviços desnecessários, aplicação de patches, e implementação de controles de acesso rigorosos. O objetivo é tornar o sistema mais resistente a ataques, mesmo que outras camadas de defesa falhem.
As práticas de hardening incluem: desabilitar serviços e portas não utilizados, remover software desnecessário, configurar firewalls (como iptables ou firewalld), aplicar políticas de senha fortes, habilitar logs e auditoria, e manter o sistema atualizado. Hardening não é um evento único, mas um processo contínuo que deve ser integrado ao ciclo de vida dos sistemas.
Exemplo de um script de hardening básico para servidor Linux:
#!/bin/bash
# Script de hardening básico para servidor Linux
# 1. Atualizar pacotes
apt update && apt upgrade -y
# 2. Desabilitar serviços desnecessários
systemctl disable telnet.socket
systemctl disable rsh.socket
systemctl disable rexec.socket
# 3. Configurar firewall (allow only SSH)
ufw default deny incoming
ufw allow 22/tcp
ufw enable
# 4. Aplicar política de senha
sed -i 's/^PASS_MAX_DAYS.*/PASS_MAX_DAYS 90/' /etc/login.defs
sed -i 's/^PASS_MIN_DAYS.*/PASS_MIN_DAYS 7/' /etc/login.defs
# 5. Habilitar logs de auditoria
apt install auditd -y
systemctl enable auditd
systemctl start auditdBoas práticas e observações finais
Para implementar um programa eficaz de segurança de configurações, considere as seguintes boas práticas: envolva todas as equipes (desenvolvimento, operações e segurança) na definição das baselines; automatize a verificação de drift sempre que possível; priorize as recomendações dos CIS Benchmarks de Nível 1 primeiro, pois têm menor impacto operacional; documente todas as exceções e justificativas; e revise periodicamente as baselines para incorporar novas ameaças e mudanças no ambiente.
Lembre-se de que a segurança de configurações é um processo contínuo. Não basta configurar uma vez; é preciso monitorar e manter. Ferramentas de gerenciamento de configuração podem ajudar a aplicar as baselines de forma consistente em larga escala.
Referências
- CIS Benchmarks - Centro de Segurança na Internet
- Documentação oficial do Ansible
- NIST SP 800-53 - Controles de Segurança
- Cisco Live - Hardening e Segurança de Configurações
- OWASP ASVS - Padrão de Verificação de Segurança de Aplicações
- AWS Config - Melhores Práticas de Segurança
Exercícios
- Defina com suas palavras o que é uma baseline de segurança e por que ela é importante.✓ Resposta: Uma baseline de segurança é um conjunto mínimo de configurações obrigatórias que um sistema deve ter para ser considerado seguro. Ela é importante porque estabelece um padrão consistente, facilita auditorias, permite detectar desvios rapidamente e reduz a superfície de ataque.
- Cite três causas comuns de drift em configurações de sistemas.✓ Resposta: Causas comuns de drift incluem: 1) Atualizações manuais que alteram configurações sem passar pelo processo oficial; 2) Instalação de novos softwares que modificam arquivos de configuração; 3) Ações maliciosas de invasores que alteram configurações para obter persistência ou privilégios.
- O que são CIS Benchmarks e qual a sua utilidade?✓ Resposta: CIS Benchmarks são guias de configuração segura desenvolvidos pelo Center for Internet Security. Eles fornecem recomendações específicas e testáveis para diversas tecnologias, ajudando organizações a criar baselines robustas e atender requisitos de compliance.
- Liste pelo menos cinco práticas comuns de hardening para servidores Linux.✓ Resposta: Cinco práticas comuns de hardening: 1) Manter o sistema atualizado com patches de segurança; 2) Desabilitar serviços e portas não utilizados; 3) Configurar firewall para permitir apenas tráfego necessário; 4) Aplicar políticas de senha fortes; 5) Habilitar logs e auditoria para monitoramento.
- Explique a diferença entre baseline e hardening, e como eles se complementam.✓ Resposta: Baseline é o estado desejado documentado, enquanto hardening é o processo de alcançar e manter esse estado. A baseline define o que deve ser feito; o hardening é a implementação prática. Eles se complementam: a baseline fornece o alvo, e o hardening é o caminho para atingi-lo.