Szpiegowska historia sieciowa z Microsoftem w tle.

Szpiegowska historia sieciowa z Microsoftem w tle.

Historia zaczyna się, od znalezienia na r/selfhosted wzmianki o projekcie NetAlertX. Nie pamiętam dokładnego posta, bo był to jeden z komentarzy odnośnie innego wątku, ale NetAlertX jest stosunkowo "nowym" projektem, gdyż wcześniej nazywał się Pi.Alert. 25 kwietnia twórca sam o tym poinformował na wspomnianym subreddicie.

Przeglądając githuba projektu i patrząc po screenach, dostrzegłem w tym potencjał, bo trzymanie własnej sieci w ryzach i nie pozostawienie, żadnego nierozpoznanego urządzenia we własnej sieci jest trochę moim "autystycznym" hobby.

Oczywiście, część - zwłaszcza urządzeń IOT - ma rezerwacje w DHCP, urządzenia Wifi, wszystkie ładnie opisane w kontrolerze Ubiquity wraz z dedykowanymi ikonkami, i normalnymi nazwami, a nie tylko MAC adres i ew. hostname. Nowe lub zmianijące się adresy raportował mi arpwatch. Brakowało mi jednak takie całościowego managera, który dodatkowo miałby powiadomienia i duże możliwości konfiguracyjne. NetAlertX wydawał się spełniać wszystkie te założenia.

Instalacja w dockerze jest banalna. Rozwiązanie korzysta z sqlite, a configi przechowuje w plikach JSON. Zatem wystarczy wskazać dwa katalogi na jego potrzeby i to w zasadzie wszystko:

docker run -d --network=host --restart=always  -v /srv/config/netalertx:/app/config   -v /srv/db/netalertx:/app/db   -e TZ=Europe/Warsaw-e PORT=20211   jokobsk/netalertx:latest

Po chwili mamy działającego NetAlertX'a z GUI dostępnym na porcie 20211

Aby nie zanudzać technikaliami, napiszę tylko, że oprogramowanie działa na zasadzie pluginów, które uruchamiamy w jakiś zaplanowany sposób, możemy przeskanować sieć nmapem, szukać ARPów, importować pliki dzierżaw z DHCP, importować urządzenia z Unifi i wiele innych. Ostatecznie na moje potrzeby wydziergałem konfiguracje tych skanerów i pomocniczych serwisów jak niżej.

Konfiguracja skanerów NetAlertX

Jak to wszystko ruszyło, to zaczęła się zabawa. Mój mail został zasypany alertami o nowych urządzeniach, które skrupulatnie sobie katalogowałem, opisywałem i wybierałem ikonki, oraz ustawiałem, czy chcę w przyszłości dostawać alerty o ich rozłączeniu lub zmianie IP.

Po pierwszych minutach, do godziny działania, nazbierały się 62 urządzenia. Oczywiście wiedziałem, że mam urządzeń prawdziwych i wirtualnych sporo w domu, ale w sumie ta liczba na mnie zrobiła wrażenie, zwłaszcza, że w każde urządzenie trzeba było się wklikać, opisać, przyporządkować do grupy i do węzła nadrzędnego (switch, AP itp.). Dodatkowo, to są urządzenia aktualnie działające, na pewno nie wszystkie są jeszcze w domu (telefony, niewłączone laptopy dzieci), i pozostaje cały ekosystem zigbee i zwave, który tu odnotowany nie będzie. Przynajmniej na razie, jeżeli NetAlertX wzbogaci się o odpytywanie brokera MQTT w przyszłości to trzeba będzie się pochylić jeszcze nad obecnie działającymi sieciami sensorów i przełączników bez adresacji IP. A jest tego nie mało... Ale to przyszłość i trochę odbiegam od głównego wątku, przez ten przydługi wstęp.

Moja sieć zigbee, potencjalnie do dołączenia do NetAlertX

Powracając do moich zachwytów. Jakkolwiek wydawać by się to mogło dziwne, to odkrywanie urządzeń w sieci, jest zajęciem naprawdę fascynującym. Oczywiście, mamy podane na tacy urządzenia typu iPhone, albo esphome dokładnie tak jak są nazwane w programie, więc tu wystarczy je wyedytować aby wyglądały ładnie w zestawieniu. Dalej mamy cały stos żarówek, które owszem mają hostname, ale na zasadzie yeelink-light-color1_miio57523825._miio._udp. Tu przychodzi z pomocą dhcp ze swoimi rezerwacjami, bo na początku konfigurowania urządzeń smart założyłem, że będą w innym vlanie i będą miały statyczy adres IP powiązany z MAC, aby można było je łatwiej odentyfikować i aby HomeAssistant nie głupiał (na początku żaróki yeelight trzeba było wskazywać per IP do HA w configu, później integracja sama śledziła ewentualne zmiany). Nie obeszło się bez kilku zaskoczeń, bo na przestrzeni lat, kilka żarówek zmieniło swoje umiejscowienie, np tylko biała żarówka z salonu powędrowała do kotłowni. Właśnie tu NetAlertX okazał się doskonałym tropicielem wszelkich zmian. Kiedy już wspomnianą żarówę z salonu opisałem, a następnie przez przypadek zgasiłem na dobre światło w kotłowni, wtedy dostałem alert, że żarówka z salonu się rozłączyła, co oczywiście było niezgodne z prawdą. Wszystkie takie nieścisłości udało mi się ostatecznie wyeliminować przy pomocy logów dhcp, informacji z Unifi, skanowania IP, czy po prostu patrzenia po 80 czy 443, lub 22 czym dane urządzenie jest.

Dzień pierwszy minał. Poszedłem spać.

Skoro świt, przeglądam logi i decyduję, gdzie wyłączyć powiadomienia. Nie potrzebne mi są np informacje, że któryś laptop wybudził się z uśpienia na 10 minut o 4:30, czy telefon zgubił wifi bo albo wpadł pod łóżko, lub się zaktualizował.

I tu zaczyna się robić ciekawiej. Pojawia się kolejne nierozpoznane urządzenie. Nic nowego, z tym, że tym razem pojawiło się o 2:16

Aby zniknąć o 2:31

Godzina dość dziwna, czas dość krótki, tym bardziej przykuło to moja uwagę. Zaczynając od rzeczy najoczywistszych - NetAlertX w szczegółach nie podaje, czym to urządzenie jest, poza tym, że MAC adres sugeruje, że jest to coś Microsoftu. Z MACami to tak na dwoje babka wróżyła. Wirtualne MACi potrafią wskazywać na naprawdę dziwne rzeczy, a np moja najbardziej generyczna płytka do NVR przedstawia sie jako Cisco...

Swoją drogą polecam, jeżeli NVR i kamery są lokalnie, odseparowane od LANu i Internetu, to stosunek jakości do ceny i możliwości jest naprawdę dobry:

14.82€ 30% de réduction|Cctv – Enregistreur Vidéo En Réseau, Carte Mère H.265, Pour Caméra Ip 5mp 8mp, Prise En Charge De La Détection Faciale, Onvif Xmeye, 9ch, 10ch, 16ch, 32ch, 4k Nvr - Enregistreur De Vidéosurveillance - AliExpress
Achetez malin, vivez mieux! Aliexpress.com

Wracając, NetAlertX od czasu wykrycia urządzenia powiązał go z Microsoftem, i to jedyna informacja jaką mam w panelu:

Niewiele, więc przechodzę dalej do OSINTu. Logi z dhcp podają okrągłe zero informacji:

Na Unifi, też zero trafień, szukanie po IP i MAC, kończy się, rozłożeniem rąk przez Kontroler:

No ciekawie, ale trochę irytujące. kontrolny ping i nmap oczywiście nie zwracają nic, urządzenia w sieci nie ma obecnie.

Zaczyna dochodzić do głowy lekka paranoja. Może ktoś podjeżdża mi pod dom i ma poświadczenia do wifi? Nie rozdaję ich na lewo i prawo, więc może to ktoś znajomy z sobie tylko wiadomymi celami?

Zaczynam sprawdzać kamery w zadanym okresie czasu +/- 5 minut. Nie znajduję, żadnej aktywności ludzkiej ani samochodowej, w zamian wykrywam... kunę! Już myślałem, że mam z nimi spokój.

0:00
/0:11

Kunę oczywiście wykluczam z posiadania przenośnego wifi. Myślę, jeszcze czy gdzieś na zewnątrz nie mam wyeksponowanego gniazdka, lub wtyczki RJ45 - nie mam.

Sprawdzam jeszcze, czy stojący od tygodnia już w trybie oszczędzania energii jak podaje aplikacja samochód nie wybudził się w nocy i nie podłączył do Wifi. Nie wybudził się i to w ogóle nie ten adres, ale za to mam nowy i już dopisany do bazy - tyle dobrego.

Z braku sukcesu, zajmuję się rzeczami poza ITkowymi przez resztę weekendu, i między innymi układam ładny stosik moich awaryjnych klepek do palenia, które zostały od czasu kryzysu na rynku paliw stałych, co doprowadziło między innymi do posiadania kotła na prąd oraz integracji go z Home Assistant. Dygresja.

Tu jest prawie kubik drewna, a nie wygląda

Dzisiejszy poranek, z duszą na ramieniu pierwsze kroki kieruję do panelu NetAlertX do sekcji sesje.

Mój nemezis IPkowy powrócił nad ranem na 6 minut!

Think, think Bartek!

Przeglądam wszystkie polityki backupowe, czy czasem, któraś nie kończy się w tych czasach podanych przez NetAlertX. Nie dość, że czasy się nie pokrywają, to funkcjonalność sprawdzania poprawności backupu przez jego odtworzenie działa bez sieci, aby nie robić konfliktów. Ślepy trop.

Zaczynam się poważnie zastanawiać, zakładając, że rozpoznany MAC jest prawdziwy, czego może dotyczyć. Wszscy w domu mają iPhony, służbowy jakiś Samsung. Laptopy to Intele albo jakieś dziwne karty od Asusa. Nigdy, żadnego Surface nie miałem.

Omiatam w głowie wirtualny dom od góry do dołu, pokój po pokoju, co tam jeszcze może być nie wykryte, przechadzam się w miejscach gdzie składuję sprzęt offline, może coś tam kiedyś zostawiłem podłączone, no nie. Zmęczony padam na kanapę w salonie, tępo patrząc przed siebie.

Wzrok pada na czarną szafkę pod telewizorem gdzie odznacza się białe PS5 i nagle eureka.. obok nieco z tyłu stoi cały czarny, spowity przez cień szafki zapomniany od roku lub więcej - Xbox One.

Szukam zakurzonego pada, baterie ledwo żyją. Naciskam przycisk włącznika, słychać piknięcie. HDMI przełącza się na splash screen od Xboxa.

Uruchamiam ping 10.1.78.31, nadlatują słodkie odpowiedzi ICMP. W chwilę później nadchodzi alert NetAlertX, że tajemnicze urządzenie ponownie jest dostępne.

Wyłączam konsolę - śpij dalej mój luncherze Forza Horizon.

Dopełniam obowiązku.

0:00
/0:40

Nirvana. Wszystko w należytym porządku, żadnych nierozpoznanych urządzeń.