Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

03 - Problema de Segurança

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione 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 PORT no servidor FTP (forçar modo PASV)
  • Configurar masquerade_address no 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).