Może się wydawać, że historia Internetu Rzeczy skazuje go od jakiegoś czasu na straty, jednak nie musi tak być. Mimo że badaczom Dennisowi Giese’owi i Danielowi Wegemerowi ostatecznie udało się zhakować odkurzacz Xiaomi Mi Robot, ich badanie pokazuje, że jest on znacznie bezpieczniejszy niż pozostałe inteligentne urządzenia.
Podczas swojego wystąpienia na Chaos Communication Congress 34, które miało niedawno miejsce w Lipsku, badacze wyjaśnili, jak działa oprogramowanie urządzenia oraz które luki zostały przez nich wykorzystane, aby złamać jego zabezpieczenia.
Hakowanie odkurzacza Mi Robot przy użyciu folii aluminiowej
W trakcie eksperymentu Giese i Wegemer z zaskoczeniem odkryli, że odkurzacz Xiaomi ma znacznie potężniejszy sprzęt niż niejeden smartfon: jest on wyposażony w trzy procesory ARM, z których jeden jest czterordzeniowy. Brzmi obiecująco, prawda? Aby zhakować system, badacze użyli kilku popularnych wektorów ataków.
Najpierw sprawdzili, czy istnieje jakiś sposób podłączenia się z odkurzaczem przez port micro USB. To był jednak ślepy zaułek: Xiaomi zabezpieczył to połączenie autoryzacją. Następnie badacze rozkręcili sprzęt Mi Robot i zaczęli szukać portu szeregowego na płycie głównej. Ta próba również zakończyła się niepowodzeniem.
Druga metoda zhakowania obejmowała wykorzystanie sieci. Badacze sprawdzili porty sieciowe urządzenia — wszystkie były zamknięte. Nie pomogła również analiza ruchu sieciowego: komunikacja robota była zaszyfrowana. To zrobiło wrażenie również i na mnie: większość pozostałych urządzeń Internetu Rzeczy zostałoby już zhakowane, gdyż ich autorzy zwykle nie posuwają się aż tak daleko w kwestii bezpieczeństwa. Jak pokazało nasze niedawne badanie, urządzenia posiadające dostęp do internetu są niezwykle podatne na zagrożenia.
Wróćmy do tematu odkurzacza Xiaomi Mi Robot. W kolejnym etapie badacze obrali za cel elementy sprzętowe odkurzacza. I to był strzał w dziesiątkę — korzystając z folii aluminiowej, doprowadzili do wystąpienia zwarcia na maleńkich stykach łączących procesor z płytą główną. W efekcie procesor przeszedł w specjalny tryb, który umożliwiał odczyt i zapis w pamięci flash bezpośrednio poprzez połączenie USB.
W ten sposób Giese i Wegemer zdobyli oprogramowanie układowe odkurzacza Mi Robot, dokonali na nim inżynierii wstecznej, zmodyfikowali je oraz wgrali z powrotem, uzyskując nad nim pełną kontrolę.
Hakowanie odkurzacza Mi Robot w sposób bezprzewodowy
Jednak pokonywanie otwartego sprzętu nie jest tak fajne jak hakowanie nieinwazyjne. Po przeprowadzeniu inżynierii wstecznej oprogramowania urządzenia badacze sprawdzili, jak go zhakować przy użyciu samej sieci Wi-Fi — oraz znaleźli kilka luk w mechanizmie aktualizacji oprogramowania.
Firma Xiaomi zastosowała całkiem niezłą procedurę aktualizacji oprogramowania układowego: jest ono dostarczane poprzez połączenie szyfrowane. Co więcej, paczka zawierająca oprogramowanie także jest zaszyfrowana. Jedynym minusem był fakt, że użyto hasła statycznego — „rockrobo”, co umożliwiło badaczom utworzenie odpowiednio zaszyfrowanego pakietu zawierającego ich własne oprogramowanie.
Korzystając z klucza zabezpieczeń (który uzyskali dzięki aplikacji na smartfony Xiaomi), badacze wysłali do odkurzacza żądanie pobrania i zainstalowania nowego oprogramowania — lecz nie z chmury Xiaomi, a z ich własnego serwera. W ten sposób zhakowali urządzenie ponownie, choć tym razem bezprzewodowo.
Co zawiera oprogramowanie zastosowane w odkurzaczu Mi Robot?
Sprawdzając oprogramowanie układowe, Giese i Wegemer odkryli wiele ciekawych rzeczy. Po pierwsze, oprogramowaniem układowym odkurzacza Mi Robot jest Ubuntu Linux, które jest regularnie i szybko łatane. Po drugie, dla każdego użytkownika używane jest inne hasło superużytkownika, co eliminuje ryzyko masowego zhakowania wielu odkurzaczy naraz przy użyciu jednego hasła głównego. I po trzecie, w systemie istnieje zapora sieciowa blokująca wszystkie porty, które mogłyby potencjalnie zostać użyte przez hakerów. Czapki z głów dla Xiaomi: w standardach Internetu Rzeczy to zaskakująco dobra ochrona.
Jednak nic nie jest doskonałe — także i w tej sytuacji znalazło się to coś, co nie jest powodem do dumy. Urządzenie gromadzi i przesyła do chmury Xiaomi sporą ilość danych — kilka megabajtów dziennie. Pomijając to, co można w jakiś sposób uzasadnić, np. dane telemetryczne dotyczące działania urządzenia, wśród przesyłanych danych znajdują się też m.in. nazwy i hasła sieci Wi-Fi, z którymi urządzenie się łączy, a także mapy pomieszczeń, które tworzy przy użyciu wbudowanego laserowego czujnika odległości (lidara). Co jeszcze bardziej niepokojące, dane te zostają w systemie na zawsze, nawet po przywróceniu w ustawień fabrycznych. Zatem jeśli ktoś kupi używany odkurzacz Xiaomi w serwisie eBay i zdejmie jego zabezpieczenia, może z łatwością uzyskać te informacje.
Warto podkreślić, że obie techniki umożliwiły badaczom zhakowanie tylko tego urządzenia, którym dysponowali. Pierwszy sposób wymagał fizycznego dostępu do odkurzacza, a w przypadku drugiego — musieli uzyskać klucz zabezpieczający, aby utworzyć żądanie aktualizacji. Klucze te są unikatowe i są generowane za każdym razem, gdy urządzenie łączy się z aplikacją mobilną. Nie jest łatwo je uzyskać bez dostępu do smartfona, który jest połączony z wybranym urządzeniem Xiaomi.
Ogólnie nie wygląda na to, że Xiaomi przyczyni się do upadku Internetu Rzeczy. Przeciwnie: badanie pokazuje, że firma ta wkłada znacznie więcej wysiłku w bezpieczeństwo niż większość innych producentów urządzeń inteligentnych, a to daje nadzieję na lepszą przyszłość. Zhakować można niemal wszystko, ale jeśli wymaga to wiele wysiłku, jest mniej prawdopodobne, że ktoś się tym zainteresuje — przestępcy zwykle lubią łatwe pieniądze.