Skip to content
Cyberbezpieczeństwo | | | 11 min czytania

UPnP - zagrożenia i bezpieczeństwo protokołu Universal Plug and Play

UPnP otwiera porty bez uwierzytelniania. Poznaj wektory ataku, realne incydenty (CallStranger, EternalSilence) i praktyczne metody ochrony sieci.

UPnPSSDPIoTbezpieczeństwo sieciDDoSNATport forwarding
UPnP - zagrożenia i bezpieczeństwo protokołu Universal Plug and Play

W marcu 2019 roku firma Akamai opublikowała raport, w którym udokumentowała ponad 45 000 routerów z naruszonymi tablicami NAT - wszystkie za sprawą jednego protokołu: UPnP. Kampania, którą nazwano EternalSilence, wykorzystywała luki w implementacjach Universal Plug and Play do tworzenia ukrytych tuneli prowadzących wprost do wewnętrznych usług SMB. Routery domowe i firmowe stawały się cichymi bramami dla atakujących, a ich właściciele nie mieli o tym pojęcia.

Ten artykuł wyjaśnia, czym jest UPnP, dlaczego jego domyślna konfiguracja stanowi realne zagrożenie dla sieci domowych, korporacyjnych i przemysłowych, oraz jakie kroki podjąć, aby zminimalizować ryzyko.

Czym jest UPnP i jak działa

Universal Plug and Play (UPnP) to zestaw protokołów sieciowych, który umożliwia urządzeniom automatyczne wykrywanie się nawzajem i nawiązywanie komunikacji bez konieczności ręcznej konfiguracji. Protokół opracowany został w 1999 roku przez UPnP Forum (obecnie Open Connectivity Foundation - OCF) i działa w oparciu o kilka warstw:

WarstwaProtokółFunkcja
OdkrywanieSSDP (Simple Service Discovery Protocol)Urządzenia rozgłaszają swoją obecność na adres multicast 239.255.255.250:1900
OpisHTTP + XMLUrządzenie udostępnia plik XML z opisem swoich usług
SterowanieSOAP (Simple Object Access Protocol)Aplikacje wywołują akcje na urządzeniu poprzez koperty SOAP
ZdarzeniaGENA (General Event Notification Architecture)Urządzenie powiadamia subskrybentów o zmianach stanu
PrezentacjaHTTPInterfejs webowy urządzenia

Mechanizm mapowania portów

Kluczową funkcją UPnP z perspektywy bezpieczeństwa jest możliwość automatycznego tworzenia reguł przekierowania portów na routerze (NAT traversal). Aplikacja działająca w sieci lokalnej może wysłać żądanie SOAP do routera z prośbą o zmapowanie portu zewnętrznego na wewnętrzny adres IP i port - bez podawania hasła administratora.

Przykładowe żądanie SOAP tworzące mapowanie portu:

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
  s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <s:Body>
    <u:AddPortMapping
      xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">
      <NewRemoteHost></NewRemoteHost>
      <NewExternalPort>18080</NewExternalPort>
      <NewProtocol>TCP</NewProtocol>
      <NewInternalPort>8080</NewInternalPort>
      <NewInternalClient>192.168.1.100</NewInternalClient>
      <NewEnabled>1</NewEnabled>
      <NewPortMappingDescription>Kamera IP</NewPortMappingDescription>
      <NewLeaseDuration>0</NewLeaseDuration>
    </u:AddPortMapping>
  </s:Body>
</s:Envelope>

WARNING

UPnP nie wymaga uwierzytelniania. Każde urządzenie w sieci lokalnej - w tym zainfekowany komputer, złośliwe oprogramowanie lub nieautoryzowany użytkownik - może tworzyć i modyfikować reguły NAT na routerze bez podawania jakichkolwiek poświadczeń.

Pełna powierzchnia ataku UPnP

Zagrożenia związane z UPnP wykraczają daleko poza samo mapowanie portów. Poniżej przedstawiamy kompletną mapę wektorów ataku.

1. Nadużycie przekierowania portów (NAT injection)

Dowolne urządzenie w sieci lokalnej może manipulować tablicą NAT routera. Atakujący (lub malware) może:

  • Udostępnić do internetu panel administracyjny routera
  • Wystawić interfejs webowy kamery IP lub serwera NAS
  • Przekierować ruch przeznaczony dla legalnej usługi na podstawiony host
  • Utworzyć tunel zwrotny (reverse proxy) do serwera C2

Co istotne, niektóre implementacje firmware pozwalają, aby reguły UPnP nadpisywały statyczne mapowania portów skonfigurowane przez administratora.

2. SSDP reflection/amplification DDoS

Protokół SSDP używa datagramów UDP, co umożliwia ataki typu reflection/amplification ze sfałszowanym adresem źródłowym (IP spoofing). Atakujący wysyła zapytanie M-SEARCH z adresem IP ofiary jako adresem źródłowym. Każde urządzenie UPnP odpowiada na adres ofiary pakietem nawet 30 razy większym od zapytania.

30x

współczynnik amplifikacji SSDP

~2 mln

reflektorów SSDP dostępnych w internecie

1 / 40 min

częstotliwość ataków SSDP reflection wg Cloudflare

45 113

routerów z naruszonym NAT (Akamai, EternalSilence)

Źródła: Cloudflare DDoS Threat Report 2025, Akamai Security Research, NETSCOUT ASERT

3. Zdalne wykonanie kodu (RCE) w stosach UPnP

Implementacje UPnP w oprogramowaniu routerów zawierają liczne podatności. Dwa najczęściej wykorzystywane stosy open source:

StosPodatnościZakres
libupnp (Intel SDK)CVE-2012-5958 do CVE-2012-5965 - przepełnienie bufora w funkcjach parsujących SSDPDziesiątki milionów urządzeń, wiele modeli routerów SOHO
MiniUPnPdCVE-2013-0229, CVE-2013-0230 - przepełnienie bufora w obsłudze żądań SOAPPopularne routery domowe, firmware OpenWrt

4. Eksfiltracja danych i skanowanie sieci (CallStranger)

Podatność CVE-2020-12695 (CallStranger) pozwala atakującemu na manipulowanie nagłówkiem CALLBACK w żądaniu SUBSCRIBE protokołu UPnP:

  • Eksfiltracja danych - przekierowanie informacji z urządzenia na zewnętrzny serwer
  • Skanowanie portów wewnętrznych - wykorzystanie urządzenia UPnP jako proxy do rekonesansu sieci
  • DDoS - przekierowanie odpowiedzi na adres ofiary

NOTE

CallStranger to podatność protokołowa, nie implementacyjna. Oznacza to, że dotyczy każdego urządzenia zgodnego ze specyfikacją UPnP wydaną przed poprawką OCF z kwietnia 2020 roku. Szacuje się, że w momencie ujawnienia dotyczyła miliardów urządzeń.

Realne incydenty z wykorzystaniem UPnP

Poniższa tabela przedstawia najważniejsze udokumentowane kampanie i ataki wykorzystujące UPnP jako wektor.

RokKampania/MalwareTechnika UPnPSkutek
2016-2017Pinkslipbot (QakBot/QBot)Wykorzystanie UPnP do otwierania portów na zainfekowanych maszynach, tworzenie proxy SOCKS5 dla serwerów C2Pierwszy malware po Confickerze (2008), który użył UPnP do budowy infrastruktury C2
2016MiraiSkanowanie urządzeń IoT z otwartymi portami Telnet (często wystawionymi przez UPnP)Atak DDoS 1,2 Tbps na Dyn DNS, zakłócenie usług Twitter, Netflix, Reddit
2018EternalSilence (UPnProxy)Wstrzykiwanie reguł NAT na ponad 45 000 routerów, eksponowanie usług SMB do internetuPotencjalne wykorzystanie exploitów z rodziny Eternal (EternalBlue, EternalRed)
2020CallStranger (CVE-2020-12695)Nadużycie mechanizmu SUBSCRIBE/CALLBACKEksfiltracja danych, skanowanie sieci wewnętrznej, DDoS

Anatomia ataku EternalSilence

Kampania EternalSilence, odkryta przez Akamai w 2018 roku, to przykład kreatywnego wykorzystania UPnP na dużą skalę. Atakujący:

  1. Skanowali internet w poszukiwaniu routerów z ekspozycją UPnP na porcie WAN
  2. Wstrzykiwali reguły NAT przekierowujące ruch z portu 139/445 (SMB) do wewnętrznych hostów
  3. Opis mapowań zawierał ciąg “galleta silenciosa” (hiszp. “silent cookie/cracker”)
  4. Prawdopodobny cel: wykorzystanie exploitów EternalBlue/EternalRed do przejęcia maszyn w sieci wewnętrznej

Pinkslipbot - UPnP jako infrastruktura botnetowa

Trojan bankowy Pinkslipbot (znany też jako QakBot) wyróżnia się wśród malware wykorzystujących UPnP. Jego moduł proxy:

  1. Sprawdza, które porty są dostępne na zainfekowanym hoście
  2. Wykorzystuje UPnP do otwarcia tych portów na routerze
  3. Uruchamia wielowątkowy serwer proxy SOCKS5
  4. Zainfekowana maszyna staje się węzłem kontrolnym (C2 proxy) botnetu

W ten sposób nawet po wyczyszczeniu malware z komputera reguły UPnP pozostają aktywne na routerze, utrzymując otwarte porty.

TIP

Po usunięciu infekcji malware zawsze sprawdź tablicę mapowań UPnP na routerze. Złośliwe oprogramowanie, takie jak Pinkslipbot, pozostawia reguły przekierowania portów, które przetrwają reinstalację systemu operacyjnego.

UPnP w środowiskach przemysłowych i budynkowych

Choć UPnP projektowano z myślą o sieciach domowych, protokół pojawia się również w środowiskach, w których nie powinien działać:

  • Systemy BMS (Building Management Systems) - kontrolery HVAC, systemy oświetleniowe i panele sterowania mogą mieć włączony UPnP, tworząc nieautoryzowane ścieżki dostępu z sieci korporacyjnej lub internetu
  • Urządzenia IoT w środowiskach przemysłowych - kamery monitoringu, czujniki środowiskowe i bramy sieciowe podłączone do sieci OT mogą rozgłaszać usługi przez SSDP
  • Routery i przełączniki brzegowe - urządzenia na granicy sieci IT/OT z włączonym UPnP naruszają zasadę separacji stref bezpieczeństwa zgodną z IEC 62443

WARNING

UPnP nie powinien być włączony w żadnej sieci przemysłowej ani w segmencie zarządzania budynkiem. Automatyczne mapowanie portów jest sprzeczne z fundamentalną zasadą sieci OT - każde połączenie powinno być jawnie autoryzowane i udokumentowane.

Mechanizmy ochrony - pełna lista kontrolna

Wyłączenie UPnP

Najbardziej skutecznym zabezpieczeniem jest wyłączenie UPnP na wszystkich routerach i urządzeniach sieciowych. Proces zależy od producenta, ale ogólna ścieżka to:

  1. Zaloguj się do panelu administracyjnego routera
  2. Przejdź do sekcji “Zaawansowane” lub “Sieć”
  3. Znajdź opcję “UPnP” i wyłącz ją
  4. Zapisz konfigurację i zrestartuj router
  5. Skonfiguruj wymagane przekierowania portów ręcznie (statyczne reguły NAT)

Audyt sieci pod kątem UPnP

Aby wykryć urządzenia UPnP w sieci, można wykorzystać zapytanie M-SEARCH:

import socket

query = (
    'M-SEARCH * HTTP/1.1\r\n'
    'HOST:239.255.255.250:1900\r\n'
    'ST:upnp:rootdevice\r\n'
    'MX:2\r\n'
    'MAN:"ssdp:discover"\r\n'
    '\r\n'
)

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
s.settimeout(10)
s.sendto(query.encode(), ('239.255.255.250', 1900))

try:
    while True:
        resp, addr = s.recvfrom(65507)
        print(addr, resp.decode())
except socket.timeout:
    pass

Narzędzia do skanowania i audytu

NarzędzieZastosowanieTyp
Nmap (skrypt upnp-info)Wykrywanie usług UPnP w sieci lokalnej i zdalnejOpen source
Miranda (UPnP client)Interakcja z urządzeniami UPnP, enumeracja usług, testowanieOpen source
UPnPy (Python)Programistyczne wykrywanie i manipulacja urządzeniami UPnPBiblioteka Python
Tenable NessusSkanowanie podatności, w tym ekspozycji UPnP na interfejsach WANKomercyjny
GRC ShieldsUP!Zewnętrzne skanowanie portów - weryfikacja, czy UPnP nie eksponuje usług do internetuBezpłatny online

Reguły firewalla

Nawet jeśli UPnP jest wyłączone, warto zastosować dodatkowe zabezpieczenia:

  • Blokada ruchu SSDP na interfejsie WAN - odrzucanie pakietów UDP na porcie 1900 przychodzących z internetu
  • Blokada multicastu 239.255.255.250 na granicach segmentów sieciowych
  • Monitorowanie nowych reguł NAT - alerty na pojawienie się nieautoryzowanych mapowań portów
  • Segmentacja sieci - urządzenia IoT powinny działać w odizolowanym segmencie (VLAN), bez dostępu do sieci produkcyjnej

Pełna lista kontrolna zabezpieczeń

  • UPnP wyłączone na wszystkich routerach brzegowych
  • UPnP wyłączone na routerach wewnętrznych i access pointach
  • Reguły firewalla blokujące SSDP (UDP 1900) na interfejsach WAN
  • Regularne skanowanie sieci pod kątem urządzeń rozgłaszających SSDP
  • Przegląd tablicy mapowań NAT na routerach (szukaj nieznanych wpisów)
  • Urządzenia IoT w oddzielnym VLAN-ie bez dostępu do sieci wewnętrznej
  • Aktualizacja firmware routerów i urządzeń sieciowych
  • Monitorowanie ruchu na portach 1900/UDP i 5000/TCP
  • Weryfikacja, czy UPnP nie jest eksponowane na interfejsie WAN (test zewnętrzny)
  • Procedura reagowania: co zrobić, gdy wykryjesz nieautoryzowane mapowanie portów

Odniesienia do standardów i rekomendacji

Standard/RekomendacjaWymaganie dotyczące UPnP/automatycznego mapowania portów
NIST SP 800-41 (Guidelines on Firewalls and Firewall Policy)Zaleca wyłączenie automatycznego konfigurowania reguł firewalla przez aplikacje
CIS Controls v8, Control 4 (Secure Configuration)Wymaga usunięcia zbędnych usług i protokołów, w tym UPnP
CIS Controls v8, Control 12 (Network Infrastructure Management)Ręczna kontrola reguł NAT, zakaz automatycznego mapowania portów
IEC 62443-3-3 (System security requirements)Wymaga jawnej autoryzacji każdego połączenia sieciowego w środowiskach przemysłowych
NIST SP 800-183 (Networks of Things)Rekomenduje ograniczenie protokołów discovery w sieciach IoT

Monitorowanie i detekcja

Samo wyłączenie UPnP to krok prewencyjny. Równie ważna jest zdolność wykrywania prób jego wykorzystania:

Wskaźniki kompromitacji (IoC) związane z UPnP:

  • Nieoczekiwany ruch UDP na porcie 1900 z/do interfejsu WAN
  • Nowe wpisy w tablicy mapowań NAT routera, których nie tworzył administrator
  • Ruch SOAP (HTTP POST) kierowany do portu 5000/TCP urządzenia sieciowego
  • Opisy mapowań zawierające podejrzane ciągi (np. “galleta silenciosa” w przypadku EternalSilence)
  • Ruch SMB (port 139/445) przychodzący z internetu - wskaźnik aktywnego NAT injection

Co zrobić po wykryciu:

  1. Natychmiast wyłącz UPnP na routerze
  2. Wyeksportuj i przeanalizuj tablicę mapowań NAT
  3. Przeskanuj sieć wewnętrzną pod kątem kompromitacji (zwłaszcza usługi SMB)
  4. Zaktualizuj firmware routera do najnowszej wersji
  5. Zmień poświadczenia administracyjne routera
  6. Rozważ wymianę routera, jeśli producent nie udostępnia poprawek

Podsumowanie

UPnP to protokół zaprojektowany z myślą o wygodzie, nie o bezpieczeństwie. Brak uwierzytelniania, automatyczne mapowanie portów i szerokie wsparcie w urządzeniach konsumenckich sprawiają, że stanowi on atrakcyjny wektor ataku. Kampanie takie jak EternalSilence, malware typu Pinkslipbot i podatności pokroju CallStranger pokazują, że zagrożenie jest realne i dotyczy zarówno sieci domowych, jak i korporacyjnych.

Kluczowa rekomendacja jest prosta: wyłącz UPnP wszędzie, gdzie to możliwe, a wymagane przekierowania portów konfiguruj ręcznie. W środowiskach przemysłowych i infrastrukturze krytycznej UPnP nie powinien być włączony w ogóle - każde połączenie sieciowe musi być jawnie autoryzowane.

Jeśli potrzebujesz wsparcia w audycie bezpieczeństwa sieci lub testach penetracyjnych uwzględniających ekspozycję UPnP - skontaktuj się z nami.

Źródła

  1. Akamai Security Research - UPnProxy: EternalSilence
  2. Tenable - CVE-2020-12695: CallStranger Vulnerability in UPnP
  3. Cloudflare - SSDP DDoS attack
  4. McAfee Labs - Pinkslipbot exploiting infected machines as control servers
  5. CISA - Heightened DDoS Threat Posed by Mirai and Other Botnets
  6. NETSCOUT ASERT - SSDP Diffraction, UDP Refraction, UPnP NAT Bypass
  7. NSF - An Overview of UPnP-based IoT Security: Threats and Countermeasures
  8. Cloudflare - DDoS Threat Report 2025
  9. CallStranger - Vulnerability checker (GitHub)

Omówimy zakres, metodykę i harmonogram.