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.
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:
| Warstwa | Protokół | Funkcja |
|---|---|---|
| Odkrywanie | SSDP (Simple Service Discovery Protocol) | Urządzenia rozgłaszają swoją obecność na adres multicast 239.255.255.250:1900 |
| Opis | HTTP + XML | Urządzenie udostępnia plik XML z opisem swoich usług |
| Sterowanie | SOAP (Simple Object Access Protocol) | Aplikacje wywołują akcje na urządzeniu poprzez koperty SOAP |
| Zdarzenia | GENA (General Event Notification Architecture) | Urządzenie powiadamia subskrybentów o zmianach stanu |
| Prezentacja | HTTP | Interfejs 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.
współczynnik amplifikacji SSDP
reflektorów SSDP dostępnych w internecie
częstotliwość ataków SSDP reflection wg Cloudflare
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:
| Stos | Podatności | Zakres |
|---|---|---|
| libupnp (Intel SDK) | CVE-2012-5958 do CVE-2012-5965 - przepełnienie bufora w funkcjach parsujących SSDP | Dziesiątki milionów urządzeń, wiele modeli routerów SOHO |
| MiniUPnPd | CVE-2013-0229, CVE-2013-0230 - przepełnienie bufora w obsłudze żądań SOAP | Popularne 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.
| Rok | Kampania/Malware | Technika UPnP | Skutek |
|---|---|---|---|
| 2016-2017 | Pinkslipbot (QakBot/QBot) | Wykorzystanie UPnP do otwierania portów na zainfekowanych maszynach, tworzenie proxy SOCKS5 dla serwerów C2 | Pierwszy malware po Confickerze (2008), który użył UPnP do budowy infrastruktury C2 |
| 2016 | Mirai | Skanowanie 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 |
| 2018 | EternalSilence (UPnProxy) | Wstrzykiwanie reguł NAT na ponad 45 000 routerów, eksponowanie usług SMB do internetu | Potencjalne wykorzystanie exploitów z rodziny Eternal (EternalBlue, EternalRed) |
| 2020 | CallStranger (CVE-2020-12695) | Nadużycie mechanizmu SUBSCRIBE/CALLBACK | Eksfiltracja 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:
- Skanowali internet w poszukiwaniu routerów z ekspozycją UPnP na porcie WAN
- Wstrzykiwali reguły NAT przekierowujące ruch z portu 139/445 (SMB) do wewnętrznych hostów
- Opis mapowań zawierał ciąg “galleta silenciosa” (hiszp. “silent cookie/cracker”)
- 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:
- Sprawdza, które porty są dostępne na zainfekowanym hoście
- Wykorzystuje UPnP do otwarcia tych portów na routerze
- Uruchamia wielowątkowy serwer proxy SOCKS5
- 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:
- Zaloguj się do panelu administracyjnego routera
- Przejdź do sekcji “Zaawansowane” lub “Sieć”
- Znajdź opcję “UPnP” i wyłącz ją
- Zapisz konfigurację i zrestartuj router
- 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ędzie | Zastosowanie | Typ |
|---|---|---|
| Nmap (skrypt upnp-info) | Wykrywanie usług UPnP w sieci lokalnej i zdalnej | Open source |
| Miranda (UPnP client) | Interakcja z urządzeniami UPnP, enumeracja usług, testowanie | Open source |
| UPnPy (Python) | Programistyczne wykrywanie i manipulacja urządzeniami UPnP | Biblioteka Python |
| Tenable Nessus | Skanowanie podatności, w tym ekspozycji UPnP na interfejsach WAN | Komercyjny |
| GRC ShieldsUP! | Zewnętrzne skanowanie portów - weryfikacja, czy UPnP nie eksponuje usług do internetu | Bezpł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/Rekomendacja | Wymaganie 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:
- Natychmiast wyłącz UPnP na routerze
- Wyeksportuj i przeanalizuj tablicę mapowań NAT
- Przeskanuj sieć wewnętrzną pod kątem kompromitacji (zwłaszcza usługi SMB)
- Zaktualizuj firmware routera do najnowszej wersji
- Zmień poświadczenia administracyjne routera
- 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
- Akamai Security Research - UPnProxy: EternalSilence
- Tenable - CVE-2020-12695: CallStranger Vulnerability in UPnP
- Cloudflare - SSDP DDoS attack
- McAfee Labs - Pinkslipbot exploiting infected machines as control servers
- CISA - Heightened DDoS Threat Posed by Mirai and Other Botnets
- NETSCOUT ASERT - SSDP Diffraction, UDP Refraction, UPnP NAT Bypass
- NSF - An Overview of UPnP-based IoT Security: Threats and Countermeasures
- Cloudflare - DDoS Threat Report 2025
- CallStranger - Vulnerability checker (GitHub)