03 - Problema de Segurança
video: https://youtu.be/... no frontmatter da nota.Problemas de Segurança do FTP
1. Definição Histórica
Os problemas de segurança do FTP (FTP Security Flaws) são alguns dos mais críticos e documentados no campo da infraestrutura de redes. Criado em 1971 (RFC 114) e formalizado na RFC 959 (1985), o FTP foi desenhado em uma era onde a confiança entre os nós da Internet era o padrão e a criptografia era considerada munição bélica restrita nos EUA (ITAR). Compreender as fragilidades do File Transfer Protocol é um requisito básico para auditar infraestruturas legadas e mitigar o risco de vazamento massivo de informações corporativas.
Linha do Tempo de Vulnerabilidades
| Ano | Evento | Impacto |
|---|---|---|
| 1985 | RFC 959 formaliza FTP | Sem criptografia nativa |
| 1996 | RFC 2228 (FTP Security Extensions) | FTPS proposto, mas adoração lenta |
| 1998 | FTP Bounce attack popularizado | Bypass de firewalls via comando PORT |
| 2003 | IETF descontinua uso de FTP puro | Recomendação SFTP |
| 2015 | PCI-DSS v3.1 proíbe FTP para dados de cartão | Migração obrigatória |
| 2020 | Firefox remove suporte a FTP | Cliente web abandona protocolo |
| 2021 | Chrome desativa FTP por padrão | Fim do suporte em browsers mainstream |
2. A Falha Mestra: Autenticação em Texto Claro
A vulnerabilidade mais devastadora do FTP é o transporte de credenciais sem nenhuma forma de criptografia.
Sniffing de Credenciais
Quando um usuário envia USER admin e PASS senha123, estes caracteres viajam de forma legível por todos os dispositivos de rede entre a máquina do usuário e o servidor (roteadores, switches, ISPs).
Frame X: TCP src=52134 dst=21
USER admin\r\n
Frame X+1: TCP src=21 dst=52134
331 Please specify the password.\r\n
Frame X+2: TCP src=52134 dst=21
PASS senha123\r\n
Frame X+3: TCP src=21 dst=52134
230 Login successful.\r\n
O Risco Real
Qualquer atacante com um software de captura de pacotes (Wireshark, tcpdump, ettercap) posicionado na mesma rede local ou em um ponto de trânsito (ISP comprometido, rota BGP hijack) pode capturar a senha administrativa e assumir o controle total do sistema de arquivos e, por extensão, do servidor.
CVEs Históricos Relacionados
- CVE-2015-3306: vsftpd 2.0.5 a 3.0.2 — remote code execution via
mmap - CVE-2011-2523: vsftpd 2.3.4 backdoor — porta 6200 aberta após login com
:) - CVE-2019-12815: ProFTPD 1.3.5a — RCE via
mod_copy - CVE-2020-9484: Apache FTPServer — deserialization RCE
3. FTP Bounce Attack
O design original do FTP permite que um cliente instrua o servidor a conectar-se a qualquer outro computador na rede através do comando PORT (modo ativo).
Mecânica do Ataque
[Atacante] ----PORT h1,h2,h3,h4,p1,p2----> [FTP Vítima A]
[FTP Vítima A] ----SYN----> [Alvo B na rede interna]
[FTP Vítima A] <---SYN/ACK--- [Alvo B]
[Atacante] <---resposta do FTP------------ [FTP Vítima A]
O atacante usa um servidor FTP vulnerável como um proxy para realizar um escaneamento de portas em outros servidores internos da empresa que estariam protegidos por um firewall de borda. Como o SYN vem do IP do servidor FTP confiável, o firewall de borda permite. O atacante consegue mapear a rede interna sem que seu IP real apareça nos logs dos alvos finais.
Mitigação
- Bloquear comando
PORTno servidor FTP (forçar modo PASV) - Configurar
masquerade_addressno vsftpd/proftpd para esconder IP interno - Usar firewall stateful que valida origem da conexão de dados
4. Riscos do Acesso Anônimo
Servidores FTP frequentemente são configurados para permitir login anonymous (sem senha).
- Vazamento de Informações: Atacantes buscam servidores anônimos na esperança de encontrar arquivos esquecidos, backups de banco de dados ou arquivos de configuração disponibilizados acidentalmente.
- Warez e Armazenamento Ilegal: Servidores com permissão de escrita para usuários anônimos são rapidamente transformados em depósitos de arquivos ilegais (pirataria, malware), consumindo banda e gerando implicações legais para a organização.
- Pivot de Phishing: Servidores anônimos comprometidos servem de hospedagem para páginas de phishing, man-in-the-middle de arquivos legítimos e distribuição de ransomware.
5. Ausência de Integridade de Dados
O FTP não possui mecanismos nativos de hashing para verificar se o arquivo recebido é idêntico ao original.
Manipulação In-Flight
Um atacante pode realizar um ataque de Man-in-the-Middle (MitM) e injetar código malicioso em um executável (.exe), biblioteca dinâmica (.dll) ou script (.js) enquanto ele está sendo transferido via FTP. O destinatário não tem como detectar a alteração sem mecanismos externos.
Solução Recomendada
Fora do FTP, o administrador deve sempre gerar e validar um checksum (SHA-256, BLAKE3) do arquivo após a transferência para garantir sua fidedignidade:
# Gerar checksum antes do envio
sha256sum arquivo.bin > arquivo.bin.sha256
# Validar após receber
sha256sum -c arquivo.bin.sha256
6. Problemas Adicionais de Design
Modo ASCII vs Binário
O FTP suporta dois modos de transferência: ASCII (converte finais de linha CRLF ↔ LF conforme SO) e Binary (preserva bytes). Se um arquivo binário (executável, imagem) for transferido em modo ASCII, o arquivo é corrompido silenciosamente. Isso levou a inúmeros incidentes históricos em pipelines CI/CD.
NAT Traversal
O modo ativo do FTP (PORT) usa IP/porta explícitos no payload TCP, quebrando NAT. O cliente envia seu IP interno privado (ex: 192.168.1.10) que o servidor não consegue alcançar. O modo passivo (PASV, RFC 959 / EPSV, RFC 2428) resolve parcialmente, mas ainda exige port forwarding no firewall.
Two-Channel Architecture
O FTP usa duas conexões TCP: controle (porta 21) e dados (porta 20 ou porta alta aleatória em PASV). Isso complica firewalls stateful e exige inspeção de aplicação (ALG) em roteadores.
7. Soluções e Mitigações
Para um ambiente corporativo moderno, o uso do FTP puro (porta 21) deve ser desencorajado ou severamente limitado.
Protocolos Substitutos
| Protocolo | Porta | RFC | Vantagem |
|---|---|---|---|
| SFTP | 22 | 4251-4254 | Subsistema SSH, criptografia ponta-a-ponta |
| FTPS (FTP over TLS) | 990/21 | 4217 | TLS sobre FTP, mantém semântica FTP |
| HTTPS (upload via PUT) | 443 | 9110 | Substitui FTP por API web |
| SCP | 22 | 4253 | Simples, baseado em SSH |
| WebDAV | 443 | 4918 | Extensão HTTP para arquivos |
| AS2 | 443 | 4130 | B2B via HTTP/S/MIME |
Hardening de Servidor FTP (quando inevitável)
# vsftpd.conf — configuração mínima de hardening
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
ssl_enable=YES
require_ssl_reuse=NO
ssl_tlsv1_2=YES
ssl_tlsv1_3=YES
allow_anon_ssl=NO
force_local_logins_ssl=YES
force_local_data_ssl=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
8. Auditoria Técnica
# Monitorando a rede em tempo real em busca de comandos PASS (senhas em claro)
sudo tcpdump -i eth0 -n port 21 -A | rg "PASS|USER"
# Testando se o servidor permite o Bounce Attack via Nmap
nmap -b ftp_user:ftp_pass@servidor.com:21 192.168.1.50
# Listando banners e versões para mapear CVEs conhecidas
nmap -sV -p 21 --script ftp-banner,ftp-vsftpd-backdoor,ftp-proftpd-backdoor alvo.com
# Verificando cifras TLS suportadas em FTPS
openssl s_client -connect servidor.com:990 -starttls ftp
9. Resumo Técnico
| Vulnerabilidade | RFC Relacionada | Mitigação |
|---|---|---|
| Credenciais em texto claro | RFC 959 | FTPS, SFTP |
| FTP Bounce (comando PORT) | RFC 959 | Bloquear PORT, usar PASV/EPSV |
| Acesso anônimo | RFC 959 | anonymous_enable=NO |
| Sem integridade | RFC 959 | SHA-256/BLAKE3 externo |
| Modo ASCII corrompe binários | RFC 959 | Forçar modo binário |
| NAT traversal quebrado | RFC 959 | PASV/EPSV (RFC 2428) |
| Backdoors históricos | CVEs | Atualizar para versão recente |
10. Conclusão
O File Transfer Protocol é uma relíquia técnica que priorizou a funcionalidade sobre a privacidade. Em um cenário digital onde os dados são o ativo mais valioso de uma empresa, utilizar o FTP sem camadas de proteção é um risco inaceitável. Compreender os ataques de Bounce, a facilidade de interceptação de credenciais em texto claro e os vetores de enumeração anônima, e liderar a migração para protocolos criptografados (SFTP/FTPS/HTTPS), são práticas essenciais para manter o sistema de arquivos da organização íntegro, privado e em conformidade com requisitos regulatórios modernos (PCI-DSS, LGPD, GDPR).