Protocolo

SSDP

Cabeçalhos como HOST, MAN, ST, USN e LOCATION compõem o SSDP usado pelo UPnP. Um dispositivo envia `ssdp:alive` para 239.255.255.250:1900 e um control point envia `M-SEARCH`; a resposta aponta para uma descrição XML. Em comparação com mDNS/DNS-SD, SSDP usa semântica própria semelhante a HTTP e tipos UPnP. Integra TVs, roteadores e mídia, mas expõe serviços por multicast e já foi usado em amplificação DDoS; não deve ser publicado na Internet.


📖Definição aprofundada

SSDP é o mecanismo de descoberta usado na arquitetura UPnP. Ele permite que dispositivos anunciem sua presença e que pontos de controle pesquisem dispositivos e serviços sem cadastro prévio. As mensagens têm aparência de HTTP, com linha inicial e cabeçalhos, mas são transmitidas por UDP e possuem métodos próprios. Um dispositivo envia NOTIFY com `NTS: ssdp:alive` para anunciar. Ao sair, envia `ssdp:byebye`. Um control point envia `M-SEARCH * HTTP/1.1` com `MAN: "ssdp:discover"`, `ST` definindo o alvo e `MX` indicando a janela máxima de resposta. Em IPv4, o grupo conhecido é 239.255.255.250 na porta 1900. O dispositivo responde por unicast ao endereço de origem. Cabeçalhos comuns incluem HOST, CACHE-CONTROL, LOCATION, NT ou ST, NTS, SERVER e USN. LOCATION aponta para uma URL HTTP que entrega a descrição XML do dispositivo raiz. Essa descrição contém tipos, serviços, ícones e URLs de controle, eventos e descrição de serviço. A descoberta não carrega toda a capacidade. A OCF/UPnP documenta que SSDP não tem como objetivo consultas avançadas; o control point usa a descrição e ações do serviço. Um MediaServer DLNA anuncia UPnP e oferece ContentDirectory. Uma TV anuncia renderer. Um roteador pode anunciar InternetGatewayDevice. Aplicações usam para localizar dispositivos. Em casa inteligente, Home Assistant descobre algumas TVs, roteadores, players e dispositivos legados. SSDP é diferente de mDNS. mDNS usa formato DNS e DNS-SD com PTR/SRV/TXT; SSDP usa mensagens de estilo HTTP, UUIDs, tipos URN e URL de descrição. Ambos usam multicast e escopo local. Podem coexistir. O custo de SSDP é simplicidade de UPnP. A limitação é tráfego, segurança e interoperabilidade desigual. Muitos dispositivos implementam versões incompletas. Anúncios podem ser duplicados. O cache usa `max-age`. O control point precisa expirar. `ssdp:update` existe em versões. O USN combina UUID e tipo. O UUID deve identificar o dispositivo de forma estável. O control point não deve confiar apenas no nome amigável. A URL LOCATION pode apontar para host e porta. O cliente precisa validar tamanho, XML e redirecionamentos para evitar SSRF e parser attacks. Um dispositivo malicioso na LAN pode anunciar URL para serviço interno. Restringir. SSDP é connectionless. Mensagens podem perder. Dispositivos repetem anúncios e control points repetem busca. `MX` distribui respostas aleatoriamente para evitar rajada, mas implementações ruins respondem imediatamente. Em redes grandes, isso cria pico. Multicast não atravessa roteadores por padrão. Reflectors e proxies são raros e podem ampliar superfície. A descoberta entre VLANs deve ser feita por proxy específico ou integração manual, não abrindo 1900 para tudo. SSDP exposto à Internet foi usado em ataques de reflexão e amplificação. Roteadores devem bloquear entrada e saída indevidas na WAN. UPnP IGD também pode abrir portas via controle; discovery e controle são funções separadas, mas ambos exigem política. Desativar UPnP no roteador quando não necessário. Se necessário para consoles, limitar à LAN confiável e usar implementação atualizada. A descoberta não autentica. O protocolo de controle UPnP clássico possui limitações de segurança. Produtos modernos podem usar outras camadas.

Arquitetura e Funcionamento
Anúncios NOTIFY
Ao entrar na rede, o dispositivo envia anúncios para o grupo. Cada dispositivo raiz, dispositivo embutido e serviço pode gerar mensagens. `NT` indica tipo e `USN` identifica. `NTS: ssdp:alive` anuncia. `CACHE-CONTROL: max-age=1800` informa validade, por exemplo. O control point guarda e renova. Antes de expirar, o dispositivo repete. Ao sair, `ssdp:byebye` remove. Queda abrupta deixa cache até TTL. `LOCATION` precisa ser alcançável pelo control point. Anunciar IP da interface errada quebra. Dispositivos com Wi‑Fi e Ethernet devem escolher. O control point deve deduplicar por USN. Não deve confiar em ordem. Anúncios podem chegar antes de a descrição estar pronta. Retry com limite. O XML pode mudar após atualização; usar CONFIGID em versões que suportam. A rede precisa permitir multicast. AP isolation impede.
Pesquisa M-SEARCH
O control point envia M-SEARCH para 239.255.255.250:1900. `ST: ssdp:all` procura tudo; `upnp:rootdevice`, UUID ou URN filtram. `MX` indica segundos máximos para a resposta. Dispositivos devem escolher atraso aleatório entre 0 e MX para reduzir implosão. Respostas são unicast e incluem ST, USN, LOCATION e cache. O cliente precisa esperar a janela e aceitar múltiplas. Enviar busca a cada segundo é inadequado. Usar anúncios e cache. Um scanner SSDP pode revelar todos os serviços. Isso é útil no diagnóstico e ao atacante local. Em VLANs, o M-SEARCH não atravessa. Um relay precisa manter origem e respostas. Implementações genéricas podem gerar loops. Melhor integrar por endereço fixo ou proxy UPnP se necessário.
Descrição XML e serviços UPnP
Após discovery, o cliente faz HTTP GET em LOCATION. O XML descreve fabricante, modelo, friendly name, UDN, dispositivos e serviços. Cada serviço possui SCPDURL, controlURL e eventSubURL. A Service Control Protocol Description lista ações e variáveis. SOAP sobre HTTP é usado em UPnP clássico para controle. GENA gerencia eventos. DLNA constrói perfis sobre UPnP. O cliente deve tratar XML com parser seguro, sem entidades externas. Limitar tamanho e timeout. URLs relativas são resolvidas. Não aceitar redirecionamento para endereços sensíveis sem política. O anúncio não prova que o serviço é legítimo. Em rede não confiável, não executar ações automáticas. A descrição pode conter ícones e textos. Não baixar sem limite. A interoperabilidade depende do tipo e versão do serviço, não do nome amigável.
Risco de amplificação e exposição
Uma pequena busca pode provocar respostas maiores de muitos dispositivos. Servidores SSDP expostos com origem falsificada foram usados em DDoS. A WAN não deve aceitar UDP 1900. O roteador deve aplicar anti-spoofing. Dispositivos não devem responder em interface pública. UPnP deve escutar apenas LAN. Atualizar firmware. Firewalls bloqueiam. Em rede de convidados, anúncios internos são ocultados. Um atacante local pode anunciar dispositivo falso e apontar LOCATION a um alvo interno; aplicações precisam validar e limitar. SSDP não tem assinatura. A segurança do controle UPnP clássico é limitada. Em residências, desativar UPnP IGD se port mapping automático não for necessário. Se necessário, limitar a clientes confiáveis e monitorar mappings. SSDP discovery não é o mesmo que abrir porta, mas habilitar UPnP frequentemente ativa ambos no roteador.
Análise Técnica
✓ Vantagens
  • Permite descoberta automática de dispositivos e serviços UPnP sem servidor central, facilitando TVs, mídia, roteadores e equipamentos legados.
  • Anúncios e busca ativa oferecem detecção rápida de entrada e saída, com cache para reduzir consultas constantes.
  • LOCATION separa descoberta da descrição detalhada, mantendo mensagens multicast relativamente pequenas.
  • Tipos, UUIDs e serviços UPnP fornecem modelo comum usado por DLNA e grande base de dispositivos de consumo.
  • É simples de implementar em redes pequenas e possui ferramentas e bibliotecas maduras em sistemas de mídia e automação.
✗ Desvantagens
  • Não possui autenticação nem criptografia; qualquer nó local pode anunciar serviços falsos ou enumerar dispositivos.
  • Multicast fica restrito à sub-rede e atravessar VLANs exige relay ou solução específica, reduzindo isolamento.
  • Exposição de UDP 1900 na Internet permite reflexão e amplificação DDoS; roteadores e dispositivos mal configurados são risco.
  • Implementações UPnP são inconsistentes, com XML inválido, anúncios duplicados, URLs erradas e suporte parcial a versões.
  • O ecossistema de controle clássico usa SOAP/GENA e pode ser pesado ou inseguro comparado a protocolos modernos com pareamento e identidade.
💡 Cenário Prático: SSDP e UPnP numa rede doméstica segmentada
A VLAN de mídia contém TVs e players que precisam de DLNA. O Home Assistant possui acesso controlado e, quando necessário, uma instância de proxy ou integração na mesma VLAN descobre SSDP. Não se reflete SSDP para a rede de convidados. O roteador bloqueia UDP 1900 na WAN e desativa UPnP IGD se nenhum console exige. Quando UPnP IGD é mantido, mappings são auditados e clientes IoT não podem solicitar. O controlador limita tamanho de datagrama e XML, usa timeout, não segue redirects para redes administrativas e não executa ações apenas por descoberta. O UUID é usado para deduplicar. O firmware das TVs e roteadores é atualizado. Wi‑Fi mantém multicast funcional na VLAN. Para dispositivos modernos, Matter/mDNS ou APIs autenticadas são preferidos. SSDP continua para compatibilidade com mídia. A automação registra quando um dispositivo some, mas não usa ausência de anúncio como prova de desligamento imediato porque o cache expira. O acesso remoto à mídia usa VPN, não exposição de UPnP.