Niedawno w moje ręce wpadła tania chińska kamera IP. Jako że lubię wiedzieć jak dany sprzęt działa, trafiła ona na mój bezpiecznikowy warsztat. Rezultaty poniżej.
Co na portach piszczy
Szybkie skanowanie nmap-em urządzenia wskazało kilka otwartych portów:

- Port 80 : Tutaj znajduje się interfejs webowy do zarządzania kamerą. Zabezpieczony jest loginem i hasłem. Jest to o tyle ciekawe, że instrukcja o nim nie wspomina (mówi tylko o obsłudze kamery dedykowaną aplikacją). Posiada on kilka błędów bezpieczeństwa, niemniej nie poświęcałem mu zbyt wiele czasu.
- Port 554 : usługa rtsp Hipcam IP camera rtspd 1.0. Real Time Streaming Protocol służy do przesyłania danych w czasie rzeczywistym , w tym przypadku wideo z kamery. Największa bolączka z punktu widzenia bezpieczeństwa, ale o tym dalej.
- Port 1935 : Real Time Messaging Protocol – protokół stworzony przez Adobe Systems dla streamingu audio, wideo i danych, pomiędzy playerem Flash a serwerem.
- Port 8080 : Onvif (Open Network Video Interface Forum) – komunikacja soapowa. Standard komunikowania się ze sobą urządzeń w sieci w ramach monitoringu wideo.
Wielki brat patrzy – podziel się ze światem swoim życiem domowym
Moim zdaniem głównym problemem tanich chińskich kamer IP jest kiepska dokumentacja techniczna i niebezpieczne domyślne ustawienia. Mianowicie nie znajdziemy w niej informacji o tym, że na porcie 554 domyślnie włączony jest RTSP a co za tym idzie streamowanie wideo. Dodatkowo domyślnie zaznaczona jest opcja, że dostęp do takiego streamu nie wymaga uwierzytelnienia:

Osoby nietechniczne, a nawet te techniczne zajmujące się zawodowo tematem montażu monitoringu o tym nie wiedzą. Podłączenie takiej kamery do Internetu z publicznym adresem IP powoduje podzielenie się ze światem zarówno obrazem jak i dźwiękiem z takiej kamery.
Dodatkowo kamery te domyśłnie mają uruchomioną jeszcze jedną usługę dostępu do siebie z sieci. Odbywa się to poprzez protokół P2P. Tutaj natomiast aby uzyskać dostęp do wideo jest już wymagane uwierzytelnienie i posiadanie unikalnego UIDa kamery. Tylko co w przypadku gdy nieświadomy użytkownik nie zmieni domyślnych danych dostępowych?

Problem jest globalny a ryzyko prawdziwe
Shodan zaindeksował 99,469 kamer na całym świecie z czego 489 w Polsce, które udostępniają w Internecie swój streaming po RTSP na porcie 554.

Znajdują się tutaj zarówno kamery umiejscowione w sklepach, zakładach usługowych jak i te z prywatnych domów. Nie brakuje kamer umiejscowionych za ekranem komputera (można podejrzeć hasła użytkownika) czy nad terminalem płatniczym (wyciek kodów pin). Najbardziej przerażają mnie te umiejscowione w domach starszych osób lub pokojach dziecięcych.
Całego świata nie zbawię, niemniej do dwóch nieświadomych użytkowników udało mi się dotrzeć. Poinformowałem ich o nieprawidłowej konfiguracji kamery. Jednym z nich był wysoko postawiony pracownik „zielonego” banku. Kamera umieszczona w salonie, streamująca zarówno dźwięk jak i obraz:

Szczęście w nieszczęsciu, że oprócz kamery nieświadomy użytkownik udostępniał swoją stronę internetową wraz z imieniem i nazwiskiem:

Wiadomość za pomocą portalu Linkedin wystarczyła:

Drugim przypadkiem był streaming z gabinetu dentystycznego kilku kamer:


W identyfikacji źródła „wycieku” pomogła przesyłka znajdująca się na blacie recepcji i powiązanie kilku faktów. Zgłoszenie telefoniczne naprawiło sytuację związaną z prywatności pacjentów.

Szacun! Brawa 🙂
Dziękuję 🙂
a sprawdzales z czym laczy sie kamera ? bo to co tu pisze to sa podstawy podstaw
O co dokładniej pytasz?
Koledze pewnie chodzi o to czy sama kamera nie łączy się np z chińskim serverem i tam po kryjomu nie wysyła obrazu albo zrzutów obrazu.
Nie wiem, czy można zaliczyć to jako opcje „po kryjomu”, ale owszem kamera kontaktuje się z chińską chmurą i wysyła tam obraz. Odbywa się to w ramach „funkcjonalności” dostępu do kamery z internetu za pomocą protokołu P2P i portach UDP. Całość jest ciężka w testowaniu i oprócz snifowania wiresharkiem nic ciekawego nie udało mi się osiągnąć.
Dobry artykuł. Dzięki