Řada lidí chce zabezpečit domov či pracoviště pomocí chytrých kamer, které streamují záznam online. I chytrá zařízení mohou být zranitelná. Několik takových zranitelností jsme nedávno odhalili u kamer D-Link DCS-2132L.
Nejzávaznějším nedostatek kamery D-Link DCS-2132L byl nezašifrovaný přenos záznamu a to jak mezi kamerou a cloudem, tak cloudem a uživatelskou aplikací. Tato zranitelnost umožnila útočníkům provádět takzvané man-in-the-middle (MitM) útoky. V praxi tak mohl někdo nepovolaný špehovat záznam uživatele.
Aplikace a kamera komunikují prostřednictvím proxy serveru na portu 2048, využívají TCP tunel založený na vlastním protokolu D-Link. Bohužel jen část přenášených dat je šifrovaná, většina nejcitlivějších informací (jako je IP a MAC adresa kamery, video a audio stream a další) zůstává nezašifrovaná.
Zranitelnost, která je za tento a další problémy zodpovědná, lze vystopovat k souboru request.c (soubor je součástí D-Link zdrojového kódu), který zpracovává http požadavky na kameru. Všechny požadavky HTTP z IP adresy 127.0.0.1 mají oprávnění administrátora, což umožňuje potenciálnímu útočníkovi plný přístup k zařízení.
![Ukázka zdrojového kódu na serveru. Všechny příchozí požadavky získají administrátorskou úroveň.](/fileadmin/_processed_/a/f/csm_dlink_malware_source_code_867ebcb79d.png)
Narušení video a audio streamu
Útočník, který zachytí síťový přenos, může využít tok dat z TCP připojení na serverovém (cloudovém) portu 2048 a vidět HTTP požadavky video a audio paketů. Ty si může útočník kdykoli poskládat, přehrát a získat tak aktuální stream z kamery. V rámci našeho experimentu jsme získali video nahrávku ve dvou formátech (M-JPEG a H.264).
Zrekonstruovat video stream lze pomocí několika kroků (ty lze snadno zautomatizovat pomocí programu či skriptu). Přehrávání takto získaných video souborů může být poněkud složitější, protože jsou v raw streaming formátu namísto běžného video souboru. Některé přehrávače médií však umí tyto formáty zpracovat (například MPlayer může zpracovávat soubory M-JPEG a VLC může přehrávat soubory H.264).
Chyby v uživatelském pluginu
Další vážný problém jsme objevili v pluginu mydlink services. Jde o jednu z aplikací, kterou má uživatel k dispozici.
Plugin do prohlížeče vytvoří TCP tunel pro přehrávání videa v prohlížeči uživatele. Tento plugin je ale také zodpovědný za přeposílání požadavků na streamovaná data z kamery. Tunel je dostupný celému operačnímu systému, takže celá řada aplikací či dalších uživatelů na počítači se k rozhraní kamery snadno dostane pomocí hxxp://127.0.0.1:RANDOM_PORT/.
K přístupu není potřeba žádná autorizace právě kvůli tomu, že HTTP požadavky z IP lokálního hostitele mají administrátorská práva. Tato zranitelnost umožní útočníkovi nahradit legitimní firmware vlastní verzí nebo tzv. zadními vrátky pro budoucí škodlivý kód (backdoor).
Na světě je na 1600 zranitelných kamer
Kamera D-Link DCS-2132L obsahovala další méně závažný nedostatek. Za použití Universal Plug and Play dokáže nastavit porty směrující na sebe sama.). Tím se bez vědomí a souhlasu uživatele otevře port 80 do internetu. Podle statistiky portálu Shodan je takto ohrožených kamer téměř 1600 na světě, nejvíce je jich v USA, Rusku a Austrálii.
![](/fileadmin/_processed_/f/3/csm_dlink_malware_map_4623f90f95.png)
![](/fileadmin/_processed_/f/f/csm_dlink_malware_tab_337295ca71.png)
Nejjednodušší způsob, jak toto riziko minimalizovat, je zakázat UPnP na routeru uživatele.
Plugin opraven, další zranitelnosti zůstávají
Výzkumníci z ESET chtějí dosáhnout lepších bezpečnostních standardů. Proto jsme naše závěry 22. srpna 2018 předali společnosti D-Link. Obratem jsme dostali odpověď a vývojáři firmy se začali zranitelnostmi zabývat.
Od té doby se podařilo některé slabiny minimalizovat – podle našeho testu je plugin mydlink services odpovídajícím způsobem zabezpečený, byť jiné další nedostatky přetrvávají. K dnešnímu dni většina verzí firmware ke stažení je z listopadu 2016 a zatím nemá opravené zmíněné zranitelnosti.
Kamera D-Link DCS-2132L je stále dostupná v obchodech. Pokud tento model vlastníte, zkontrolujte si nastavení portu 80. Pokud kamera monitoruje citlivé prostory, zvažte, zda skutečně chcete využívat vzdálený přístup.