Od pewnego czasu zacząłem przyglądać się ruchowi w mojej sieci domowej. W dobie IoT każdy powinien interesować się tym, kiedy, kto i jakie dane na nasz temat może przetwarzać każde urządzenie w naszym domu. W końcu daleko nie szukając, jeśli jesteście graczami i w Waszym salonie gości Xbox One, Wasze rozmowy mogły być podsłuchiwane przez konsolę. Jeśli branża growa jest Wam obca, ale Waszym sercom bliższy jest przemysł filmowy, to Wasz telewizor chętnie przejmie schedę po Xboksie. I o ile producenci takich urządzeń zazwyczaj mogą nie mieć złych zamiarów (no, powiedzmy ;)), o tyle nigdy nie wiadomo, czy pozyskane przez nich dane nie trafią w niepowołane ręce - i tu już nie chodzi nawet o ich wykorzystanie przez firmy, które dane te od producentów kupią, ale o nieuprawniony dostęp do weń w wyniku np. ataku na infrastrukturę danej korporacji.
I tu zaczyna się przygoda z Xiaomi oraz MIUI
Nie od dziś wiadomo, że Tencent jest ściśle powiązana z Komunistyczną Partią Chin i współtworzy Social Credit System, tj. chiński system oceny obywatela. Sorry, Xiaomi, ale siebie i swoich partnerów moimi danymi nie nakarmicie ;)
Jest i lekarstwo na tę chorobę
Wobec zaistniałych faktów, stworzyłem czarną listę domen, do których twoje urządzenia Xiaomi mogą wysyłać dane. Listę możesz znaleźć na moim GitHubie. Aby z niej skorzystać, wystarczy aplikacja AdAway, a jeśli chcesz zabezpieczyć się na poziomie sieci domowej, możesz skorzystać z Pi-hole. Jak to działa? Nasze urządzenie na podstawie ww. listy modyfikuje na telefonie/routerze plik /etc/hosts, w którym możemy zdefiniować własny mapping dowolnej domeny na zdefiniowany przez nas adres. Urządzenie nie musi sięgać do serwera DNS, celem odnalezienia prawdziwego adresu IP poszczególnej domeny. Wszystkie domeny z czarnej listy mapowane są na adres 0.0.0.0, dzięki czemu każdy request trafia do "kosza", a nie do prawdziwego serwera docelowego. Takie żądanie kończy się dla jego inicjatora niepowodzeniem. W ten oto sposób wszytkie żądania pod wybrane domeny są blokowane, a my przestajemy być śledzeni. Lista jest na bieżąco aktualizowana. Gdy tylko moje urządzenia połączą się z serwerem, którego tu nie ma, stosowna aktualizacja zostaje przeze mnie opublikowana, a oprogramowanie z niej korzystające (jak na przykład wyżej wymieniony AdAway) zauważa tę zmianę i dokonuje aktualizacji czarnej listy na Twoim urządzeniu ;)
To zadziała pod warunkiem, że aplikacja odwołuje się do serwera po DNS'ie. Nie zdziwiłbym się jednak, gdyby użyty został bezpośrednio adres IP (lub lepiej pula zaszytych na stałe adresów). Wtedy można by podziałać na poziomie jakiegoś firewalla filtrującego ruch wychodzący.
OdpowiedzUsuńOczywiście, ale w tym przypadku działa to inaczej - adresy nie są hardcode'owane w aplikacjach, a jedynie telefon otrzymuje ich listę po odpytaniu odpowiedniej domeny, która jest... zablokowana z uwagi na moją blocklistę ;) Xiaomi sprzedaje na całym świecie miliony urządzeń. Wydaje mi się, że gdyby wszystkie pukały bezpośrednio do danego serwera, przy takim obciążeniu i bez specjalnej infrastruktury, taki serwer szybko by się ugiął pod napływem ruchu. O wiele taniej i rozsądniej z perspektywy producenta byłoby trzymanie wszystkiego w chmurze. I tak też Xioami robi, stawia wszystko na AWSie. Tam też stawia endpointy, które po odpytaniu zwracają listę adresów IP. Przykładem jest tutaj znajdująca się na mojej blockliście domena resolver.msg.xiaomi.net. Po wysłaniu nań żądania, klient otrzymuje jsona:
Usuń{"app.chat.xiaomi.net":["120.92.96.2:5222","111.13.142.2:5222","183.84.5.202:443","183.84.5.54:443","111.13.142.134:443","120.92.96.2:80","120.92.98.2:5222"],"resolver.msg.xiaomi.net":["111.13.142.153:5222","120.92.96.13:5222","203.100.92.28:5222","123.125.102.48:5222","123.125.102.48:80","111.13.142.153:80","120.92.96.13:80","203.100.92.28:80","111.206.200.71:5222","111.13.142.27:5222","42.62.94.234:5222","114.54.23.75:5222","114.54.23.75:80","111.206.200.71:80","111.13.142.27:80","42.62.94.234:80"]}
Następnie ww. adresy wykorzystywane są do późniejszych działań (co zaobserwowałem na swoim routerze). Blokując domeny pozbywamy się ww. zmartwień.