Protocolo de descoberta de serviço simples - Simple Service Discovery Protocol

O SSDP ( Simple Service Discovery Protocol ) é um protocolo de rede baseado no conjunto de protocolos da Internet para anúncio e descoberta de serviços de rede e informações de presença. Ele consegue isso sem a ajuda de mecanismos de configuração baseados no servidor, como o protocolo de configuração dinâmica de hosts (DHCP) ou o sistema de nomes de domínio (DNS), e sem a configuração estática especial de um host de rede. O SSDP é a base do protocolo de descoberta do Universal Plug and Play (UPnP) e destina-se ao uso em ambientes residenciais ou de pequenos escritórios. Foi formalmente descrito em um Internet Engineering Task Force (IETF) Internet Draft pela Microsoft e Hewlett-Packard em 1999. Embora a proposta da IETF tenha expirado desde então (abril de 2000), o SSDP foi incorporado à pilha de protocolo UPnP e uma descrição de a implementação final está incluída nos documentos de padrões UPnP.

Transporte e endereçamento de protocolo

SSDP é um protocolo baseado em texto baseado em HTTPU . Ele usa UDP como protocolo de transporte subjacente. Os serviços são anunciados pelo sistema de hospedagem com endereçamento multicast para um endereço IP multicast especificamente designado na porta UDP número 1900. No IPv4 , o endereço multicast é 239.255.255.250 e SSDP sobre IPv6 usa o conjunto de endereços ff0X :: c para todos os intervalos de escopo indicados por X .

Isso resulta nos seguintes endereços multicast práticos bem conhecidos para SSDP:

  • 239.255.255.250 (endereço local de site IPv4)
  • [FF02 :: C] ( link-local IPv6 )
  • [FF05 :: C] (site-local IPv6)
  • [FF08 :: C] (organização IPv6 local)
  • [FF0E :: C] (IPv6 global)

Além disso, os aplicativos podem usar os endereços multicast específicos da fonte derivados do prefixo de roteamento IPv6 local, com ID de grupo C (decimal 12).

O SSDP usa o método HTTP NOTIFY para anunciar o estabelecimento ou retirada de informações de serviços (presença) para o grupo multicast. Um cliente que deseja descobrir os serviços disponíveis em uma rede, usa o método M-SEARCH . As respostas a essas solicitações de pesquisa são enviadas por meio de endereçamento unicast para o endereço de origem e o número da porta da solicitação de multicast.

As implementações de SSDP IPv6 da Microsoft no Windows Media Player e Server usam o endereço de escopo local de link. A Microsoft usa o número de porta 2869 para notificação de eventos e assinaturas de eventos. No entanto, as primeiras implementações do SSDP também usaram a porta 5000 para este serviço.

Ataque DDoS

Em 2014, foi descoberto que o SSDP estava sendo usado em ataques DDoS conhecidos como um ataque de reflexão SSDP com amplificação . Muitos dispositivos, incluindo alguns roteadores residenciais, têm uma vulnerabilidade no software UPnP que permite a um invasor obter respostas da porta número 1900 para um endereço de destino de sua escolha. Com um botnet de milhares de dispositivos, os atacantes podem gerar taxas de pacotes suficientes e ocupar largura de banda para saturar links, causando a negação de serviços. A empresa de rede Cloudflare descreveu esse ataque como o "Protocolo DDoS estupidamente simples".

Vulnerabilidade do Firefox

O Firefox para Android anterior à versão 79 não validava corretamente o esquema do URL recebido no SSDP e era vulnerável à execução remota de código. Um invasor na mesma rede pode criar um servidor malicioso fingindo ser um dispositivo de suporte à transmissão, mas em vez de um arquivo de configuração, ele retornaria um intent://URL. O Firefox lançaria a intenção (se fosse compatível com o dispositivo) e, portanto, executaria um código arbitrário. Este não é um bug do SSDP, apenas uma validação inadequada realizada pelo serviço de transmissão do Firefox.

Veja também

Referências