O documento descreve uma ferramenta para combater SPIT (spam de voz sobre IP) em redes VoIP. A ferramenta implementa testes reversos de Turing e CAPTCHAs de áudio para identificar chamadas humanas versus automatizadas, além de listas negras e brancas. Testes mostraram que a ferramenta aumenta a carga do servidor mas protege os usuários contra SPIT de forma eficaz.
O Uso de Captchas de Áudio no Combate ao spam em Telefonia IP
1.
2. O Uso de Captchas de Áudio no Combate ao spam em
Telefonia IP
Frederico Tiago Tavares Madeira
fttm@cin.ufpe.br
Orientador: Prof. Dr. Ruy J. Guerra B. de Queiroz
Agosto/2011
2 / 39
3. Roteiro
• Introdução
• Spam X Spit
• Contextualização e Apresentação do Problema
• Motivação
• Objetivos
• Contexto da Observação
• Técnicas de combate ao SPIT
• Ferramenta Proposta
• Análise da Sinalização
• Resultados
• Considerações Finais
3 / 39
4. Introdução
• Spam é o termo usado para referir-se aos e-
mails não solicitados, que geralmente são
enviados para um grande número de pessoas
• SPIT (SPAM over Internet Telephony) e é
definida como geração automatizada de
chamadas não solicitadas utilizando como
transporte o IP através do VoIP ao invés das
tradicionais linhas telefônicas
4 / 39
5. Introdução
• O potencial do SPIT em reduzir a produtividade é muito
maior do que a do SPAM, porque no SPIT a utilização
de tempo de uma pessoa já é ocupada no momento em
que o telefone começa a tocar
• Características do SPIT são diferentes do SPAM, não
podemos aplicar as mesmas técnicas usadas no SPAM
em ataques do tipo SPIT.
• É proposto neste trabalho uma ferramenta para
identificar e proteger uma rede VoIP contra ataques de
SPIT.
5 / 39
6. Spam X Spit
SPAM SPIT
Usuário pode ordenar ou filtrar a VoIP é um protocolo de tempo real, e
mensagem baseando-se no conteúdo não permite ao recebedor da
ou cabeçalhos da mensagem chamada ter acesso ao conteúdo da
chamada antes que ela seja aceita
O e-mail é entregue de forma A vítima é interrompida
assíncrona, ou seja, o usuário decide instantaneamente com o toque do
quando quer receber/acessar suas telefone.
mensagens.
Spammer não sabe com certeza se sua Uma chamada com sucesso, garante
mensagem será recebida ou não pela que o usuário existe, que está
vítima. atualmente online, e é bem provável
que ele receba a chamada.
6 / 39
7. Contextualização e
Apresentação do Problema
VoIP é uma tecnologia extremamente emergente
VoIP oferece chamadas telefônicas a baixo custo
VoIP permite customização de mensagens (protocolo)
VoIP permite a realização de chamadas a partir de qualquer local
do globo
SPIT (Spam over Internet Telephony) é uma ameaça em potencial
7 / 39
8. Motivação
• Ocorrência de alguns casos de SPIT realizados
por grandes empresas
Segundo reportagem intitulada , “Four reasons why Vonage IPO's email
and phone pitch is the wrong strategy” do portal ZDNET publicada em
18 de dezembro de 2006, a Vonage enviou mensagens de voz para seus
assinantes apresentando sua oferta inicial de ações na bolsa
8 / 39
9. Motivação
• Aumento do volume de SPAM detectado pelo
Cert.BR. É esperado uma ameaça semelhante
nas redes VoIP.
9 / 39
10. Objetivos
Geral
– Análise de técnicas para mitigação de ataques do tipo SPIT.
Específicos
– Implementação de um CAPTCHA de Áudio, baseado nos Testes
Reversos de Turing, em um PABX IP
– Identificar e integrar as principais técnicas de mitigação/detecção a
ferramenta proposta
– Analisar o desempenho do PABX IP, rodando a ferramenta
proposta e estando sujeito a um ataque
– Análise e construção de Testes de Turing
10 / 39
11. Contexto da Observação
• Esta pesquisa considerou quatro critérios a serem observados
na implementação da ferramenta proposta
– Trazer incômodo ao usuário até forçá-lo a desativar seu recurso
de comunicação;
– Realização de ataques de DoS a uma rede VoIP até que a mesma
fique indisponível;
– Exaustão de recursos da rede: CPU, Memória, Aplicações e
Disponibilidade de Banda;
– Degradação da qualidade dos serviços de uma rede VoIP
11 / 39
12. Técnicas
• FINGERPRINT
Observação do conjunto de Headers das mensagens SIP
Classificada em:
• Passiva: Observação da mensagem INVITE
• Ativa: Envio de mensagens para o User Agent que inicio a sessão,
por exemplo mensagem SIP OPTIONS
Banco de dados de devices
Comparação do fingerprint da mensagem recebida com as existentes no
banco de dados
Desvantagens
• Atacante pode forjar um fingerprint válido
• Enorme variedade de VoIP user agents disponível
• Geração de fingerprints de acordo com versões de firmware de um
mesmo user agent,
12 / 39
13. Técnicas
• LISTAS DE ACESSO
Proxy server mantém listas de números de telefones ou URI que
possuem tratamento diferenciado
Podem ser locais ou distribuídas
Necessita de métodos adicionais para classificação da originador
Classificadas como:
• White List
listas de números/URI permitidos/confiáveis
• Black List
listas de números/URI não confiáveis
• Grey List
listas de números/URI em observação
Desvantagem
Sujeita a ataque de SIP Identity Spoofing
13 / 39
14. Técnicas
• REPUTATION SYSTEM
Basicamente é um sistema de pontuação;
O usuário irá pontuar uma chamada recebida, construindo a reputação do
originador
Dependendo da pontuação obtida, o originador será classificado como SPIT e
será cadastrado na black list.
CallRank é um sistema de reputação baseado na duração de uma chamada
• usuários normais:
• comumente fazem e recebem chamadas
• chamadas possuem duração significativa
• Spitter
• Apenas realizam chamadas, sendo estas em volume considerado
• chamadas de curta duração (obedecendo um padrão)
Desvantagem
• Atacante pode usar dicersas contas VoIP sendo necessário nova
qualificação
14 / 39
15. Técnicas
• CAPTCHA de Áudio
Ao receber uma chamada, o originador é direcionado a uma mensagem
de Áudio
Teste audível, como exemplo, “Digite os números a seguir: 10 20 23 7
12”
Se o teste for respondido OK, o originador será inserido na white list
Atributos
• Vocabulário
• Ruído de fundo
• Tempo
Desvantagem:
• Existência de ferramentas capazes de quebrar estes CAPTCHAS
• HTK speech recognition toolkit / Vorm
• Audio CAPTCHAS do Google e Microsoft já quebrados
15 / 39
16. Técnicas
• TESTE DE TURING
Teste para validar a capacidade de um
computador em executar um diálogo como se
fosse um humano
Um humano atua como juiz,
O Juiz entra em uma conversa com outras duas
partes, um outro humano e o outro sendo uma
máquina. Se o juiz não conseguir com certeza
dizer quem é quem durante o diálogo, a máquina
passou no teste.
16 / 39
17. Técnicas
• TESTE REVERSO DE TURING
O juiz é um computador ao invés de um humano
Seu papel é o de distinguir se o originador de uma chamada é uma
máquina ou se é um humano
Automatização do Teste de Turing
Testes de Turing são formatados em Captchas de Aúdio e
apresentados ao originador de uma chamada
Os testes são facilmente resolvidos por humanos e dificilmente
resolvidos por máquinas
Desvantagem:
Sujeito CAPTCHA Relay Attack
17 / 39
18. Ferramenta Proposta
Implementa o conjunto das técnicas mais eficazes encontradas em revisão
biblográfica:
• CAPTCHA de Áudio
• Teste Reverso de Turing
• Listas de Acesso
A dificuldade para um software automatizado em responder aos testes não
está no processo de reconhecimento de palavras do teste e sim no
entendimento do que está sendo questionado
Os testes são de fácil compreensão e entendimento para humanos, mas
dificeis computacionalmente para uma máquina
18 / 39
19. Ferramenta Proposta
Exemplo dos Testes criados:
• Peter possui 5 anos, Mary possui 7. Quem é mais velho ?
• No café da manhã eu tomo leite, no jantar suco. Qual foi a bebida que
tomei hoje de manhã ?
• Mike possui cabelos castanhos, Peter possui os olhos da mesma cor. Qual
a cor dos olhos de Peter ?
• Peter ficou em casa hoje de manhã, Mary foi para a escola. Quem perdeu
aula hoje ?
• Lee possui 6 canetas, deu 3 para Rose, quantas restaram ?
19 / 39
21. Sinalização de uma chamada
Importante etapa do processo de inicialização de uma chamada telefônica
Nesta fase são negociados recursos a serem alocados durante a chamada
Define o inicio da tarifação de uma chamada
• Após recebimento da mensagem SIP 200 OK
Em VoIP, a sinalização é feita via protocolo SIP, definido pela RFC 3261
21 / 39
23. Análise da Sinalização
Em [Soupionis, Tountas & Gritzalis, 2009] foi encontrada a sugestão
de implementação do CAPTHCA de áudio abaixo:
23 / 39
24. Análise da Sinalização
Em [Wang, 2007] foi encontrada a
sugestão de implementação do
CAPTCHA de áudio ao lado:
Tarifação é iniciada antes do envio
do CAPTCHA de Áudio
É gerado um custo para a geração
do SPIT
24 / 39
25. Análise da Sinalização
Neste trabalho foi implementado uma variação dos dois modelos encontrados
• O CAPTCHA é apresentado pelo servidor;
• A mensagem INVITE só é enviada ao cliente após resposta correta ao
CAPTCHA pelo UA1
Tarifação é iniciada antes do envio do CAPTHCA de Áudio
É gerado um custo para a geração do SPIT
25 / 39
26. Sinalização Implementada
Call Flow SIP Padrão Proxy Server UA1 UA2
Para respostas certas ao
CAPTCHA
-Inicialização da sessão
pelo UA1
-Envio do CAPTCHA
pelo proxy para o UA1
- Resposta ao CAPTCHA
OK
- A chamada é
encaminhada para o UA2
- A chamada e encerrada
26 / 39
27. Sinalização Implementada
Call Flow SIP Padrão Proxy Server UA1
Para respostas erradas ao
CAPTCHA
-Inicialização da sessão pelo UA1
-Envio do CAPTCHA pelo proxy
para o UA1
-Com a resposta errada ao
CAPTCHA, o servidor envia um
BYE para desconectar a chamada
27 / 39
28. Sinalização Implementada
Call Flow SIP Padrão Proxy Server UA1
Para originador presente na
blacklist
-Inicialização da sessão pelo UA1
-Como o UA1 está na blacklist, a
chamada é desconectada
imediatamente
- A desconexão ocorrer em menos
de 1s.
28 / 39
29. Implementação
Proteção implementada server Side
Sistema rodando em um servidor Linux Centos 5.5
Implementado sobre um servidor proxy Asterisk
Interface de programação AGI + scripts PHP
As listas de acesso foram implementadas e armazenadas em um banco de
dados Mysql.
29 / 39
30. Resultados
• Metodologia dos Testes realizados
– Utilização de um software de testes de performance do protocolo SIP,
chamado SIPp
– Este software permite a manipulação das requisições SIP e
configuração da frequência do envio destas requisições
– Formatadas mensagens de inicialização de uma sessão VoIP via
mensagem SIP INVITE
– O proxy ao receber estas mensagens, analizava a URI e decide se
apresenta o CAPTCHA de áudio desenvolvido ou se aceita/rejeita
direto a chamada
– Para realização da análise do servidor proxy, foram usadas ferramentas
unix como top, iftop e cacti.
30 / 39
32. Resultados
• Dados Coletados: 50 cps e 300 cps
50 cps 300 cps
Sem Com Sem Com
Variável Observada proteção Proteção Delta proteção Proteção Delta
CPU do servidor 4,40% 71,30% 15,20 47,80% 71,60% 0,50
Utilização de CPU pelo
processo Asterisk 9,90% 16,90% 0,71 117,90% 12,90% -0,89
Utilização de Memória
pelo processo Asterisk * 7,10% 3,40% -0,52 19,90% 4,10% -0,79
Incomodou o usuário Sim Não Sim Não
Banda de Upload
utilizada (Mb)** 2,05 0,974 -0,52 8,24 1,04 -0,87
Banda de Dow nload
utilizada ** 0,9 1,27 0,41 7,73 8,14 0,05
Load Average 2,85 11,27 2,95 3,02 15,83 4,24
* A memória do servidor é de 2Gb
** A banda de Upload e Download tem como referência o servidor
32 / 39
33. Resultados
• Dados Coletados: 500 cps e 750 cps
500 cps 750 cps
Sem Com Sem Com
Variável Observada proteção Proteção Delta proteção Proteção Delta
CPU do servidor 49,30% 67,30% 0,37 46,00% 72,30% 0,57
Utilização de CPU pelo
processo Asterisk 122,10% 18,90% -0,85 120,20% 15,90% -0,87
Utilização de Memória
pelo processo Asterisk * 25,10% 4,10% -0,84 26,30% 4,20% -0,84
Incomodou o usuário Sim Não Sim Não
Banda de Upload
utilizada (Mb)** 8,78 1,04 -0,88 9,03 1,11 -0,88
Banda de Download
utilizada ** 14,1 13,50 -0,04 21 20,50 -0,02
Load Average 3,92 25,87 5,60 3,05 16,30 4,34
* A memória do servidor é de 2Gb
** A banda de Upload e Download tem como referência o servidor
33 / 39
35. Considerações Finais
• Contribuições
– Consolidação das técnicas mais relevantes no combate ao SPIT
levantadas e estudadas em outros trabalhos da comunidade acadêmica
– Combinação de práticas de defesa contra ataques de SPIT
– Criação de Áudio Captchas beseados nos Testes de Turing
– Avaliação da aplicação destas técnicas em um servidor real utilizado
pelo mercado
– Identificação de pontos positivos e negativos da implementação
• Limitações
– Não foi localizada ferramenta dotada de capacidade para resolver os
testes de turing formatados nos CAPTCHAS de áudio desenvolvidos
– Outras soluções de PABX IP não possuem API abertas, sendo
necessárias alterações diretamente no código fonte para implementar
a ferramenta proposta
35 / 39
36. Considerações Finais
• Trabalhos Futuros
• Implementação da ferramenta proposta outras linguagens como C, perl
ou phyton, visto que a linguagem PHP apresenta algumas limitações de
performance no tratamento de multi-thread
• Utilização desta metodologia em outros servidores proxy open source
como o OpenSIPS, SER, SipX entre outros.
• Implementação da blacklist baseada em arquivo texto
• Implementação da blacklist carregada em cache/memória
• Execução de pesquisas comportamentais a fim de identificar e entender
como seria o comportamento das pessoas, quando ao realizar uma
chamada telefônica sejam submetidas a um CAPTCHA de áudio
baseado nos Testes de Turing
36 / 39
37. O Uso de Captchas de Áudio no Combate ao spam em Telefonia IP
OBRIGADO!
Frederico Tiago Tavares Madeira
fttm@cin.ufpe.br
Orientador: Prof. Dr. Ruy J. Guerra B. de Queiroz
37 / 39