Seção: Banda Larga

 

VoIP: Ameaças em VoIP

 

Tipicamente, um atacante (agente de ameaça) inicia seus esforços com um trabalho de reconhecimento, onde busca reunir o máximo possível de informações sobre as vulnerabilidades latentes dos dispositivos, sistemas e identidades dos alvos. De posse desse conhecimento, um ou mais ataques são, então, disparados e se bem sucedidos violarão um ou mais princípios da tríade CID. Contudo, as técnicas usadas para descoberta, escaneamento e identificação de dispositivos, bem como a enumeração de serviços e usuários não serão tratadas neste trabalho.

 

O objetivo desta sessão é expor algumas das principais ameaças de segurança à tecnologia VoIP, primeiro abordando as ameaças inerentes a qualquer rede IP e em seguida as que são particulares aos dispositivos VoIP baseados em SIP.

 

Ameaças Legadas

 

Fundamentalmente, um telefone SIP é um dispositivo IP e como tal também padece com os mesmos problemas de segurança inerentes as redes IP. Ademais, telefones e servidores SIP tipicamente contam com implementações de um série de serviços de rede, incluindo HTTP, telnet, SNMP, TFTP, entre outros (ENDLER e COLLIER, 2007).

 

Portanto, muitas das ameaças atuais ao VoIP já existiam antes mesmo desta tecnologia surgir. Esta sessão apresenta algumas delas.

 

UDP Flood

 

Ataques Flooding são do tipo Negação de Serviço, cujo objetivo é consumir recursos de rede e de sistemas a fim de causar indisponibilidade total ou parcial de um ou vários serviços (ENDLER e COLLIER, 2007).

 

O UDP Flood consiste no envio de centenas de milhares de datagramas UDP direcionados para uma porta específica, causando uma “inundação” de pacotes. O efeito é que o alvo terá que alocar recursos de sistema valiosos (processamento e memória) para tratar os muitos pacotes que chegam, deixando de atender a outras solicitações legítimas naquela e em outras portas.

 

Dependendo da intensidade do ataque e principalmente se este for realizado distribuidamente, o excesso de tráfego pode causar congestionamento na rede, aumentando a cadeia de efeitos colaterais.

 

Por exemplo, um ataque UDP Flood que pode inviabilizar completamente a comunicação VoIP (e praticamente a comunicação de qualquer aplicação numa rede IP) é aquele direcionando à porta 53 de host funcionando como servidor DNS. Neste caso, o ataque é conhecido também como DNS Flood. Como visto anteriormente, o DNS é um serviço crítico para realização de chamadas SIP, portanto seu comprometimento significa a inviabilização de toda comunicação VoIP baseada em SIP dentro do domínio.

 

O UDP Flood é particularmente eficiente neste caso, visto que este é o protocolo de camada de transporte utilizado pelo DNS e porque há firewalls não conseguem distinguir entre um ataque DoS e uma solicitação/resposta DNS válida(ENDLER e COLLIER, 2007).

 

Vale ressaltar que praticamente todos os ataques do tipo DoS e DDoS são especialmente nocivos à comunicação VoIP, uma vez que esta é uma aplicação de tempo real e, portanto, qualquer degradação do serviço ou congestionamento causados por esta classe de ataques causa impacto significativo ao serviço (THERMOS e TAKANEN, 2007).

 

Exaustão de DHCP

 

Comumente, sempre que iniciam, telefones VoIP são configurados por padrão para solicitarem um endereço IP dinamicamente através de uma mensagem DHCPREQUEST. Se um servidor DHCP (Dynamic Host Control Protocol) não estiver disponível, ou se o número máximo de endereços IP já houver sido distribuído, então o telefone não poderá ser usado na rede (ENDLER e COLLIER, 2007).

 

Um ataque de exaustão de DHCP consiste no envio de um número suficientemente alto de requisições ao servidor DHCP com endereços MAC falsos, de tal forma que ocorra o esgotamento do espaço de endereços IP disponível. Assim, quando um cliente da rede, por exemplo um telefone VoIP, solicitar um endereço, não haverá nenhum.

 

O efeito do ataque dura enquanto o “contrato” dos endereços IP não expirar.

 

Envenenamento de Cache DNS

 

O objetivo deste ataque é fazer com que uma solicitação específica feita para um nome seja redirecionada a um host falso, isto é, um host que verdadeiramente não corresponde ao destino legítimo.

 

Isso se dá pela introdução de um registro falso no servidor de nome de domínios usado pela rede alvo da seguinte forma, de acordo com (ROHR, 2011):

  • Primeiro o atacante faz uma solicitação ao servidor DNS alvo para o nome que deseja inserir um endereço IP falso;
  • Ao receber essa solicitação, o servidor DNS por sua vez faz outra consulta ao servidor de nomes do domínio de destino e fica esperando uma resposta;
  • Como mensagens DNS utilizam o UDP na camada de transporte, o servidor DNS alvo não estabeleceu uma conexão com o servidor de nomes do domínio de destino, então basta que o atacante formule uma resposta falsa (passando-se pelo servidor de nomes do domínio de destino) respondendo à requisição feita pelo servidor DNS alvo, informando um endereço IP falso, conforme seu interesse.
  • Como o resultado de consultas DNS são armazenadas em cache, o servidor alvo não efetuará consultas para o mesmo nome por algum tempo, encaminhando todas as solicitações para o nome para um endereço ilegítimo.

 

Novamente, o DNS é um serviço crítico na sinalização SIP, portanto esta constitui uma ameaça particularmente perigosa, visto que um atacante pode usá-la tanto como uma forma de negação de serviço (causando redirecionamento da sinalização SIP para hosts aleatórios) ou, em um ataque mais elaborado, como uma forma de se passar por um ou vários usuários (redirecionando a sinalização para um proxy maliciosamente configurado), ou ainda realizar um ataque do tipo man-in-the-middle. (ENDLER e COLLIER, 2007).

 

Envenenamento ARP

 

O envenenamento ARP é baseado na vulnerabilidade de alguns sistemas operacionais que incluem ou substituem uma entrada em seu cache ARP se receberem uma resposta ARP com uma nova correlação, mesmo que não tenha sido feita nenhuma solicitação previamente (ENDLER e COLLIER, 2007).

 

O ataque consiste em:

  • Determinar os endereços IP e MAC de dois hosts de interesse (por exemplo, o de um telefone SIP e o de um SIP proxy). Sejam eles o host A e host B;
  • Enviar uma mensagem ARP reply para o host A informando a associação entre o endereço IP do host B e o endereço MAC da estação onde está o atacante;
  • Enviar uma mensagem ARP reply para o host B informando a associação entre o endereço IP do host A e o endereço MAC da estação onde está o atacante;
  • Realizar o roteamento do tráfego entre os hosts, para que não se perceba a interceptação da comunicação.

 

Assim sendo, o envenenamento ARP consiste em uma das formas mais simples de se executar um ataque MITM, mas é necessário que o atacante esteja na mesma rede local que o alvo.

 

Manipulação da Sinalização e de Mídia

 

SIP INVITE Flood

 

O servidor proxy é um elemento chave na comunicação VoIP de dispositivos SIP, sendo o responsável pelo processamento de todas as chamadas entre sistemas finais, incluindo telefones SIP, gateways de mídia e outros proxies. Assim sendo, se o serviço prestado pelo servidor proxy for parcial ou completamente comprometido, toda comunicação VoIP pode ser afetada (ENDLER e COLLIER, 2007).

 

Uma ameaça com este potencial consiste no envio de uma imensa quantidade de mensagens SIP INVITE para um servidor proxy. A requisição INVITE tem um aspecto computacional importante porque ela é o gatilho que dispara uma maior carga de processamento e reserva de recursos num dispositivo SIP. Assim, se um servidor proxy puder ser inundado com requisições INVITE, uma interrupção parcial ou total do serviço pode ocorrer (ENDLER e COLLIER, 2007).

 

Como demostrado em (ENDLER e COLLIER, 2007), há uma vasta quantidade de cenários possíveis para ataques com inundação de mensagens INVITE, contudo um dos mais nocivos é o ataque à um proxy de um domínio solicitando o contato com um UA (que pode ou não existir) em outro domínio. Desta forma, o efeito é o comprometimento do serviço em dois domínios simultaneamente.

 

Em (ROSENBERG, SCHULZRINNE e CAMARILLO et al, 2011), é aberta a possibilidade de se exigir autenticação para a requisição INVITE. Se este for o caso, o efeito do ataque é ainda mais rápido, visto que serão alocados ainda mais recursos para manter registros e contadores das solicitações de autenticação que o servidor proxy fará (ENDLER e COLLIER, 2007).

 

Remoção de Registro

 

Como visto anteriormente, num ambiente SIP típico os telefones registram-se junto ao servidor registrar para que as ligações possam ser adequadamente encaminhadas ao UA. Portanto, se um registro for removido do servidor de registros, o servidor proxy será incapaz de encaminhar as ligações para o telefone SIP (ENDLER e COLLIER, 2007).

 

Um ataque de remoção de registro é bastante trivial, sendo necessário apenas enviar uma mensagem SIP tal qual a exibida na Figura 2, porém com “*” como valor do campo Contact e, a seguir, inserindo uma linha “Expires= 0”. Desta forma, todos os registros para o AOR informado no campo To serão removidos do servidor registrar.

 

Adição Registro

 

Os registros de endereços SIP são gerenciados de tal forma que mais de um dispositivo pode registrar-se para o mesmo AOR, permitindo que usuários registrem-se de diversos locais, como de seu escritório, de uma sala de reuniões e etc. Quando múltiplos telefones SIP registrados sob o mesmo AOR tocam, o primeiro a responder a ligação a deterá (ENDLER e COLLIER, 2007).

 

Essa flexibilidade cria a oportunidade para vários tipos de ataques. Por exemplo, um atacante pode adicionar diversos registros para um mesmo AOR, fazendo com que diversos telefones toquem quando é realizada uma ligação para aquele endereço, irritando e confundindo os usuários.

 

O ataque é igualmente trivial ao anterior, bastando enviar uma mensagem (ou várias) SIP REGISTER para o servidor de registros vinculando o AOR a um dispositivo do interesse do atacante.

 

Sequestro de Registro

 

Usando os dois ataques anteriores, neste ataque o agente de ameaça substitui um registro legítimo por um falso, fazendo com que ligações sejam encaminhadas para um dispositivo SIP ilegítimo, ou até mesmo inexistente (ENDLER e COLLIER, 2007).

 

Mais difícil, porém realizável, é executar um ataque do tipo MITM em nível de aplicação. Para isto o atacante redireciona a ligação para sua estação, onde captura os pacotes e os roteia para o destino correto, permanecendo despercebido (ENDLER e COLLIER, 2007).

 

Redirecionamento

 

Em (ROSENBERG, SCHULZRINNE e CAMARILLO et al, 2011), é determinado que um servidor proxy ou um UA pode responder a uma solicitação INVITE com uma mensagem “301 Moved Permanently” ou “302 Moved Temporarily”, informando ao chamador que o UA que deseja alcançar não se encontra mais no endereço solicitado e o novo endereço para contato (no campo Contact da resposta). O chamador, então, usa o novo endereço informado na resposta para entrar em contato com o UA pretendido.

 

Valendo-se dessa flexibilidade do protocolo SIP, um atacante, se capaz de monitorar solicitações INVITE, poderá responder com uma mensagem de redirecionamento, sendo possível causar uma negação do serviço ao encaminhar a chamada para um UA inexistente, ou, pior ainda, encaminhar a ligação para um UA ilegítimo que pode tentar se passar pelo UA que se pretendia alcançar (ENDLER e COLLIER, 2007).

 

Interrupção de Sessão

 

O protocolo SIP usa a solicitação BYE para anunciar o término de uma sessão. Se um agente de ameaça for capaz de monitorar uma ligação por tempo suficiente para coletar o Call-ID, o tag do campo From e o tag do campo To, então poderá montar uma mensagem BYE (com os demais campos pertinentes) e enviar para uma das partes, fazendo com que a ligação seja interrompida, conforme demostrado em (ENDLER e COLLIER, 2007).

 

Inserção e Mixagem RTP

 

Pelo fato de aplicações VoIP serem de tempo real, os pacotes RTP sempre são carregados pelo UDP na camada de transporte, portanto, ataques contra o RTP são simples e aplicáveis a praticamente todo sistema de comunicação VoIP.

 

Assumindo então que um atacante já esteja em uma posição de “homem do meio”, isto é, que já tenha executado com sucesso um ataque MITM, é possível que ele insira ou mixe novo áudio no fluxo RTP. A inserção de áudio sobrescreve a informação de áudio existente, enquanto a mixagem faz com que o novo áudio seja misturado ao existente (ENDLER e COLLIER, 2007). A ideia é introduzir ruído na ligação ou provocar um efeito parecido com o de “linha cruzada”.

 

Em (ENDLER e COLLIER, 2007) o ataque é demonstrado explorando uma ferramenta especifica desenvolvida para realizá-lo.