CPU – based DoS Attacks Against SIP Servers Renan Fischer e Silva [email protected] Universidade Federal do Paraná Roteiro Introdução SIP Ataques Avaliação e Resultados Experimentais Trabalhos futuros Conclusão Introdução PSTN (Public Switched Telephone Network – Rede de Telefonia Pública Comutada): Antigamente, toda analógica Hoje, quase toda digital Vantagens: Segurança Introdução Funcionamento básico da infra-estrutura PSTN: Introdução VoIP: Voz sobre IP Aos poucos, substituindo a plataforma PSTN como plataforma de telefonia pública e privada Vantagens: Custo efetivo Funcionalidade Controle e administração Trabalha de forma a satisfazer as necessidades do usuário Introdução VoIP Servidores VoIP Usa sinalização SIP Precisam prover segurança em um nível muito alto Por quê? Usuários da plataforma PSTN possuem expectativas Usuários esperam e exigem tal nível de segurança SIP Protocolo de sinalização da camada de aplicação para ser usado em serviços VoIP Criado pelo IETF Cria, modifica e termina uma sessão de multimídia com um ou mais participantes (conferência) Roda sobre UDP e IP – Vulnerável a vários tipos de ataques como: Chamadas hijacking (ataque onde uma sessão ativa é interceptada e utilizada pelo atacante) Personificação de entidades SIP Servidor SIP Interpreta pacotes que entram na rede e cria sessões entre “chamadores” e “chamados” (análogo ao modelo clienteservidor) SIP - Conceitos User Agent: Inicia e recebe chamadas pelo Registrar: Servidor que mantém os registros do usuário local dos usuários registrados. Proxy: Servidor que recebe, processa e encaminha pedidos de conexões, de forma que o pedido de um User Agent chegue a uma conferência desejada. SIP - Mensagens A sinalização suporta mensagens de clientes para Registrars ou proxies: SIP - Operações Cada User Agent é associado com um domínio específico da forma sip:user@host: Host especifica o domínio do usuário Com o domínio é possível achar a posição do usuário desejado SIP - Autenticação De forma a evitar ataques hijacking, a autenticação é essencial Processo de 3 passos: Começa com uma requisição de registro de um usuário O servidor cria uma mensagem de “desafio”, indicando que o usuário não está autorizado e prove uma string de identificação (nonce) e um identificador para o domínio da autenticação (realm) Se a resposta for válida, o usuário é registrado com sucesso SIP - Autenticação SIP - Autenticação Exemplo de requisição enviada no terceiro passo SIP - Autenticação Ataques No mecanismo de autenticação padrão, servidores confiam e processam todas os pacotes de mensagem SIP por padrão Tipos Ataques: Mal-formados: Exploram falhas do SW Inundação de pacotes básica: randômico Inundação de pacotes avançada baseado em customização e personificação Tipos de servidores: Orientados a estado (Memória e CPU) Não-orientados a estado (CPU) Ataques Metodologia do ataque: Rtotal representa o total de recursos do host consumido em um ataque DoS RPacket representa a média de recursos consumidos por cada pacote de ataque N representa o número total de pacotes de ataque Ataques Basic Flood Static-Nonce-Based Flood Adaptive-Nonce-Based Flood Adaptive-Nonce-Based Flood with IP Spoofing Ataques - Basic Flood Pacotes são enviados continuamente Força bruta Pacotes não são especialmente projetados Dados do header são repetidos e gerados de maneira randômica Essência: Quantidade e não Qualidade Ataques – Static-Nonce-Based Flood Cada requisição contém um header de autorização que inclui um nonce personificado. A interceptação pode ser feita via meio compartilhado: ethernet ou wireless. O nonce também pode ser obtido sondando o servidor constantemente. Múltiplas requisições SIP com headers válidos são enviados ao servidor. Os pacotes apenas podem ser filtrados no 4º estágio do processo de autenticação SIP. Alia qualidade e quantidade. Ataques – Adaptive-Nonce-Based Flood Contornado o problema do nonce expirar. Aumenta a quantidade de recurso de tempo de CPU que pode ser consumido por cada pacote. Realiza todo o processo de autenticação. Ataques – Adaptive-Nonce-Based Flood Ataques – Adaptive-Nonce-Based Flood with IP Spoofing Servidores podem armazenar o número de requisições SIP de cada endereço IP. Forma efetiva de se evitar DoS. Atacantes personificam diferentes endereços IPs de origem afim de reduzir o número de requisições SIP para cada endereço IP (evitando o controle e superando o mecanismo de proteção). Avaliação e Resultados Experimentais Métricas Uso de CPU. Taxa de banda consumida. Banda requerida para causar um DoS. Atraso em um User Agent. Frequência com que um nonce válido é obtido de um servidor. Avaliação e Resultados Experimentais Avaliação e Resultados Experimentais Avaliação e Resultados Experimentais Avaliação e Resultados Experimentais Trabalhos Futuros Autenticação leve Configuração e Parâmetros Se o processo é pesado, existe vulnerabilidade mesmo que se possa diferenciar pacotes de ataque de pacotes legítimos. Boa abordagem seria usar histórico. Tempo de expiração do nonce, limiar para número de requisições IP, etc... Novas estratégias para geração do nonce Atrelar o nonce ao endereço IP. Diminui o ataque de CPU mas prejudica usuários VoIP atrás de proxies. Conclusões Ameaças contra infra-estrutura SIP. Implementado e testado 4 tipos de ataques. Proposto algumas modificações na implementação SIP para melhorar a robusteza contra ataques DoS. Autenticação forte não ajuda defendendo contra ataques DoS.