A segurança na camada de aplicação começa com a gestão das portas. Toda porta aberta é um ponto onde o mundo exterior pode interagir com o seu código.
1. Port Scanning: O Primeiro Passo de um Ataque
Um atacante usa ferramentas de Port Scanning (como o Nmap) para enviar pacotes de sondagem para um IP e descobrir quais portas estão abertas.
- Porta Aberta: Significa que há um processo escutando e aceitando conexões.
- Porta Fechada: Significa que o computador está ativo, mas não há serviço naquela porta.
- Porta Filtrada: Significa que um Firewall ou IDS está bloqueando o tráfego, impedindo o Nmap de saber o estado da porta.
O objetivo do atacante é encontrar um serviço desatualizado ou vulnerável rodando em uma porta conhecida (Vulnerability Research).
2. Hardening e Proteção de Portas
Para proteger a identificação de processos, aplicamos técnicas de Hardening:
- Princípio do Menor Privilégio: Desabilite todos os serviços e feche todas as portas que não são essenciais para o negócio.
- Port Knocking: Uma técnica de segurança onde todas as portas ficam fechadas por padrão. Para abrir uma porta (ex: 22/SSH), o usuário deve enviar uma sequência específica de pacotes (“batidas”) em outras portas primeiro.
- Firewall de Host (iptables/ufw/firewalld): Use regras de entrada (Inbound Rules) para filtrar quais IPs podem se conectar em portas sensíveis (ex: Permitir SSH apenas do IP da VPN da empresa).
- Mudança de Portas Padrão: Embora seja “Segurança por Obscuridade”, mudar a porta do SSH (de 22 para 2222) ou RDP (de 3389 para uma aleatória) pode reduzir drasticamente o ruído de bots automáticos que tentam ataques de força bruta.
3. Segurança no S.O. (Privilégios)
Em sistemas Linux, apenas o usuário root pode abrir portas abaixo de 1024.
- Isso é uma medida de segurança histórica para impedir que um usuário comum crie um servidor simulado (Fake Server) em uma porta bem-conhecida (como a 80) para capturar senhas ou enganar outros usuários.
- Boa Prática: Sempre que possível, configure serviços para rodar com usuários de sistema sem privilégios (ex: o usuário www-data para o servidor Web).
4. O Ataque de Injeção de Protocolo
A vulnerabilidade ocorre quando um serviço em uma porta aceita comandos de outro protocolo. A segregação clara de portas e a validação rigorosa do cabeçalho na camada de transporte ajudam a mitigar esses riscos.