Boas práticas de segurança para servidores utilizando o protocolo SSDP

SSDP (Simple Service Discovery Protocol) é um protocolo utilizado para descobrir outras máquinas na mesma rede em que o protocolo está operando. Ele faz parte do UPnP (Universal Plug and Play) que permite que diversos dispositivos distintos (computadores, roteadores, televisões, impressoras, etc) se comuniquem automaticamente. O protocolo não precisa de configurações adicionais para funcionar, como o DNS, e pode vir habilitado por padrão em alguns dispositivos e/ou sistemas.

Embora seja um recurso extremamente útil, foi descoberto que o SSDP pode ser utilizado para amplificar ataques do tipo DDoS. Existem utros protocolos que podem ser utilizados para realizar esse tipo de ataque e que possuem um poder de amplificação maior que o presente no SSDP, porém a quantidade de dispositivos que executam esse protocolo é muito grande e isso pode ajudar o usuário malicioso a difundir melhor o ataque.

Uma condição que agrava esse problema é que algumas máquinas que executam o SSDP estão disponíveis para acesso externo a rede, ou seja, na internet. Em muitas vezes a má configuração ou a não configuração da máquina que hospeda o serviço é o principal problema para difundir ataques.

Verificando o status do serviço.

Antes de tomar qualquer tipo de ação, é preciso verificar se o SSDP é um serviço que está realmente ativo na rede ou em algum servidor.

Para testar se o serviço está ativo em algum ativo de rede, é possível executar o nmap juntamente com um script complementar:

nmap -sU -p [PORTA] –script=upnp-info.nse [HOST]

Download do script: http://nmap.org/nsedoc/scripts/upnp-info.html

Para testar se este serviço está ativo no servidor, é possével executar os comandos abaixo:

Windows

netstat -an | findstr [PORTA]

Linux

netstat -an | grep [PORTA]

Observação: O campo [PORTA] deverá ser substituído pela porta que o SSDP utiliza para enviar suas mensagens. A porta padrão utilizada pelo SSDP é a 1900/UDP

Precauções sugeridas.

Mesmo com esse tipo de problema, infelizmente, em muitos dispositivos não é possível desabilitar o SSDP, visto que o isso poderia prejudicar o desempenho de algumas aplicações. Porém, algumas precauções podem ser tomadas como:

Desabilitar o protocolo em máquinas onde ele não é utilizado

Para desabilitar o SSDP em máquinas Windows, siga os passos:

  1. Clique Iniciar > digite ‘services.msc’
  2. Na janela em questão, procure pela entrada ‘SSDP Discovery’, clique com o botão direito e selecione ‘Propriedades’
  3. Na nova janela procure a aba ‘General’ e em ‘Startup type’ selecione ‘Disabled’

Não permitir que máquinas externas enviem requisições ao SSDP

Caso a máquina que executa o SSDP necessite ter um IP público, ou seja, estar conectada diretamente à internet, adicione algumas regras de acesso a mesma.

Windows

A solução é utilizar um firewall contendo as seguintes regras:

  • Tráfego vindo dos clientes autorizados, com destino às portas 1900/UDP do servidor deve ser liberado;

  • Tráfego originado do servidor com destino às portas 1900/UDP de qualquer máquina, permitindo também o retorno das respostas.

  • Bloquear quaisquer outras conexões externas ao serviço SSDP.

Linux

No IPTables, adicione as regras:

-A INPUT -p udp -s 192.168.0.0/24 –dport 1900 -j ACCEPT

-A INPUT -p udp -s! 192.168.0.0/24 –dport 1900 -j DROP

Dessa forma, o tráfego externo estará bloqueado e o tráfego interno estará habilitado.

Observação: A rede exemplificada foi a 192.168.0.0, porém, caso a rede de acesso a máquina não seja essa (por exemplo, 10.10.0.0), altere o endereço do exemplo.

Bloquear o tráfego de máquinas que executam o SSDP

Windows

A solução é utilizar um firewall para bloquear os pacotes vindos de de qualquer máquina, com origem na porta 1900/UDP, que é a porta utilizada pelo SSDP para enviar pacotes.

Linux

No IPTables, adicione a regra:

-A INPUT -p udp -s! localhost –dport 1900 -j DROP

Outros dispositivos

Após a ser anunciada a vulnerabilidade, diversos fabricantes de dispositivos (roteadores, impressoras, etc) liberaram atualizações para os mesmos ou publicaram alguma nota de auxílio sobre o problema.

Por Beatriz de Andrade