TL;DR
- Inteligentna męska blokada czystości Bluetooth, zaprojektowana dla użytkownika, aby zdalnie sterować zaufaną stroną trzecią za pomocą aplikacji mobilnej/API
- wiele wad API oznaczało, że każdy mógł zdalnie zablokować wszystkie urządzenia i uniemożliwić użytkownikom zwolnienie się
- usuwanie wymaga szlifierki kątowej lub podobnej, używanej w bliskiej odległości od delikatnych i wrażliwych obszarów
- precyzyjne dane o lokalizacji użytkownika również wyciekły przez API, w tym dane osobowe i prywatne czaty
- sprzedawca początkowo reagował, a następnie terminy rekultywacji ustalają sobie ponad 6 miesięcy okres
- w końcu odmówił dalszej interakcji, mimo że większość problemów została rozwiązana podczas migracji do API v2, jednak API v1 niewybaczalnie pozostało dostępne
- ten post został opublikowany w koordynacji z Internet of Dongs
- 27/01/2021 twierdzą, że problemy z urządzeniami mobilnymi i API zostały już rozwiązane.
inteligentne zabawki dla dorosłych i my
dawno nie pisaliśmy o inteligentnych zabawkach dla dorosłych, ale klatka czystości Qiui Cellmate była po prostu zbyt interesująca, aby ją ominąć. Dostaliśmy cynk o urządzeniu cnoty dla dorosłych, zaprojektowanym do zamykania wyrostka.
dostępne są inne urządzenia męskiej czystości, ale jest to mechanizm blokujący i zaciskowy z obsługą Bluetooth (BLE) z towarzyszącą aplikacją mobilną. Chodzi o to, że użytkownik może przekazać kontrolę nad zamkiem komuś innemu.
nie zajmujemy się zawstydzaniem. Ludzie powinni mieć możliwość bezpiecznego korzystania z tych urządzeń bez ryzyka wycieku wrażliwych danych osobowych.
bezpieczeństwo pola teledildonics jest interesujące samo w sobie. Warto zauważyć, że sprzedaż inteligentnych zabawek dla dorosłych znacznie wzrosła podczas ostatniej blokady.
jakie jest ryzyko dla użytkowników?
odkryliśmy, że zdalni napastnicy mogą uniemożliwić otwarcie blokady Bluetooth, trwale blokując użytkownika w urządzeniu. Nie ma fizycznego odblokowania. Rurka jest zablokowana na pierścieniu noszonym wokół podstawy genitaliów, dzięki czemu rzeczy są niedostępne. Szlifierka kątowa lub inne odpowiednie ciężkie narzędzie byłyby wymagane do cięcia użytkownika darmo.
lokalizacja, hasło tekstowe i inne dane osobowe również wyciekły, bez potrzeby uwierzytelniania, przez API.
mieliśmy szczególne problemy podczas procesu ujawniania, ponieważ zwykle prosiliśmy dostawcę o usunięcie nieszczelnego API podczas wdrażania napraw. Jednak każdy, kto obecnie korzysta z urządzenia, gdy API zostało zabrane w trybie offline, będzie również trwale zablokowany!
jak widać na osi czasu ujawnienia na dole tego postu, niektóre problemy zostały usunięte, ale inne nie, a sprzedawca po prostu przestał odpowiadać nam, dziennikarzom i sprzedawcom detalicznym. Biorąc pod uwagę trywialną naturę znalezienia niektórych z tych problemów i fakt, że firma pracuje nad innym urządzeniem, które stwarza jeszcze większe potencjalne szkody fizyczne („wewnętrzne” urządzenie czystości), czuliśmy się zmuszeni do opublikowania tych ustaleń w tym momencie.
sprawy
zredagowaliśmy tutaj istotne szczegóły.
aplikacja mobilna
bardzo szybko odkryliśmy poważną lukę w ochronie prywatności w aplikacji mobilnej: wszystkie punkty końcowe API nie były uwierzytelnione przy użyciu tylko długiego „kodu członkowskiego” do wysyłania żądań. Sam kod członkowski jest nieco deterministyczny i opiera się na dacie rejestracji użytkownika w usłudze, jednak znaleźliśmy jeszcze łatwiejszy sposób, używając krótszego „friend code”.
zapytanie z tym sześciocyfrowym kodem „friend” zwróciło ogromną ilość informacji o tym użytkowniku, w tym bardzo wrażliwe informacje, takie jak imię i nazwisko, numer telefonu, data urodzenia, dokładne współrzędne, w których została otwarta aplikacja, ich dłuższa wartość „memberCode” i hasło tekstowe użytkownika (nie żebyśmy tego potrzebowali).
atakujący nie zajmie więcej niż kilka dni, aby przeszukać całą bazę użytkowników i użyć jej do szantażu lub phishingu.
Liczby i wyciekły dane o lokalizacji
udało nam się losowo pobrać kilka identyfikatorów, pokazujących lokalizacje użytkowników w momencie rejestracji aplikacji. Należy pamiętać, że jest to tylko mały podzbiór użytkowników z dostępnych danych. Natychmiast wyrzuciliśmy wszelkie dane osobowe.
memberCode data = DoS Dla użytkownika
teraz mamy dłuższy memberCode możemy pobrać wszystkie urządzenia powiązane z tą osobą:
GET /list?memberCode=20200409xxxxxxxx HTTP/1.1Host: qiuitoy.comConnection: close "deviceId": 0, "deviceCode": "201909xxxxxxxxxx", "deviceName": "Cellmatexxxx", "deviceNick": "Cellmatexxxx", "deviceNumber": "QIUIxxxxxxxxx", "deviceType": 2, "deviceBlue": null, "deviceBlueAddr": "F9:34:02:XX:XX:XX", "isEncrypt": 1,
a kiedy już to mamy, możemy dowiedzieć się, jakie uprawnienia ma ta osoba nad tą blokadą (więc może ją odblokować sama lub poprosić kogoś innego):
GET /wear?memberCode=20200409xxxxxxx&deviceCode=20191204xxxxxx HTTP/1.1Host: qiuitoy.com
i jeśli może, możemy odwrócić to, aby teraz była zablokowana poza urządzeniem:
GET /wear?memberCode=20200409xxxxxxx&deviceCode=20191204xxxxxx HTTP/1.1Host: qiuitoy.com
POST /binding HTTP/1.1Host: qiuitoy.comConnection: closememberName=Pwned&memberCode=20200409xxxxxx&deviceCode=20191204xxxxxx
Nie ma też funkcji wyłączania awaryjnego, więc jeśli jesteś zablokowany, nie ma wyjścia. To może, ale nie musi być uważane za funkcję!
BLE issues
sama implementacja BLE wymaga żądania API do wygenerowania polecenia odblokowania opartego na tokenie wcześniej zapisanym do blokady. Jest możliwe, że możemy analizować żądania i odpowiedzi, aby wygenerować odpowiedni klucz, lub inżynieria odwrotna samego sprzętu blokady…
powyższe jest pobierane z zdekompilowanej aplikacji na Androida i podłączając ją do Fridy możemy zobaczyć powiadomienia (36f6) i zapisać (36f6) 36f5)związane z Najpierw sprawdzaniem poziomu baterii, a następnie odblokowaniem (trzeci zapis):
BluetoothGattCallback constructor called from com.apicloud.uzble.AndroidBle$2 UUID: 000036f5-0000-1000-8000-00805f9b34fb data: 0x56f3430769ddd6e1603xxx UUID: 000036f6-0000-1000-8000-00805f9b34fb data: 0xe01012b3074d111c98bxxx UUID: 000036f5-0000-1000-8000-00805f9b34fb data: 0x25f8a92325fd9cfc7ea79xxx UUID: 000036f6-0000-1000-8000-00805f9b34fb data: 0x2717dd996ab4a017a6ceexxx UUID: 000036f5-0000-1000-8000-00805f9b34fb data: 0x9ee90373a2d3f156b3557xxx UUID: 000036f6-0000-1000-8000-00805f9b34fb data: 0xbcdaea06fa1cb94f3f1c2596xxx UUID: 000036f5-0000-1000-8000-00805f9b34fb data: 0x9ee90373a2d3f156b3557d52xxxx UUID: 000036f6-0000-1000-8000-00805f9b34fb data: 0xc04dab04c54c818d808a78c79adef839
ale poczekaj, że hex z aplikacji na Androida i charakterystyka BLE wyglądają strasznie znajomo. Jest to dokładnie ta sama implementacja co Nokelock, na którą patrzyliśmy, z wyjątkiem reklamowanej nazwy urządzenia „OKGSS101”.
klucz szyfrowania AES na blokadę jest zwracany w wywołaniu API z listą urządzeń, które wykonaliśmy wcześniej. Masowe odblokowanie nad BLE ktoś?
zamknięty? Oto obejście
Jeśli znajdziesz się zablokowany, prawdopodobnie zastanawiasz się, jak możesz wydostać się bez ciężkich narzędzi lub wizyty na izbie przyjęć…
konstrukcja kołka blokującego wykorzystuje silnik do wycofania go i niestety nie jest żelazna, więc nie ma łatwego użycia magnesów, ani nie jest „bumping” go otworzyć (jak będziesz go nosić). Miałem mały sukces z podkładką wykonaną z pociętej puszki, ale pomysł ostrego spiczastego metalu w pobliżu wszystkiego, co ważne, nie jest idealny.
„lepszą” alternatywą jest otwarcie obszaru płytki drukowanej, w którym znajduje się Przedni przycisk i światło:
jest przyklejony, ale wyszedł bez większego wysiłku i uszkodzeń. 3 V (dwie baterie AA) przyłożone do białych i żółtych przewodów wystarcza do bezpośredniego uruchomienia silnika odblokowującego (biały = ujemny , żółty = dodatni), technika znana jako „kolczasty”.
twój lokalny oddział ratunkowy prawdopodobnie będzie miał odpowiednie narzędzia do bezpiecznego cięcia metalu i będzie twoim lepszym pierwszym portem zawinięcia!
wnioski
w przypadku realnego zagrożenia ryzyko wycieku danych osobowych wydaje się być bardziej prawdopodobne i daje nagrodę atakującemu.
wiele krajów ma opresyjne prawa, które mogą narazić użytkowników tego typu urządzeń na nieuzasadnione zainteresowanie ze strony organów ścigania i bigotów.
Co więcej, użytkownicy prawdopodobnie będą chcieli zachować swoje prywatne życie. Powinni oczekiwać domyślnie Prywatności i bezpieczeństwa od samego początku. Jeśli ktoś chce udostępnić bardzo prywatne informacje, to powinno to być z wyraźnej intencji użytkownika.
wielu dostawców zabawek dla dorosłych wykazało prawie całkowite lekceważenie Prywatności i bezpieczeństwa w ostatnich latach. Na szczęście projekty, takie jak Internet dongów, pomogły wielu osobom w dążeniu do poprawy bezpieczeństwa. Najwyraźniej Qiui nie dostał wiadomości.
oś czasu ujawnienia informacji
ujawnienie informacji nie było tak bezproblemowe, jak się początkowo spodziewaliśmy:
20 kwietnia 2020 r.: wysłaliśmy im wiadomość z pytaniem, komu zgłosić problem. Odpowiedzieli bardzo szybko. Super!
nie ma problemu, więc spróbowaliśmy ponownie Bez PGP:
więc wysłaliśmy im szczegóły. Zapanowała cisza.
26 maja 2020: trochę mocniej naciskaliśmy, odpowiedzieli, że naprawią do 6 czerwca.
11/06/2020: zaktualizowana wersja została wdrożona do aplikacji& Play Stores. To w większości rozwiązało problemy z żądaniami zmuszonymi do uwierzytelniania. Starsze punkty końcowe API zostały jednak pozostawione, a nowe Api nadal zwracały dokładne lokalizacje użytkowników.
17 czerwca 2020: wysłaliśmy wiadomość z opisem pozostałych problemów, bez odpowiedzi.
25 czerwca 2020: skontaktowaliśmy się ponownie, za pośrednictwem dziennikarza, Qiui powiedział, że nie chcą naprawić (lub nie mogą), ponieważ „tylko” mieli $50,000.
30 czerwca 2020: wysłaliśmy wiadomość e-mail (i Twittera DM) z potencjalnymi rozwiązaniami pozostałych problemów (i na wszelki wypadek przetłumaczyliśmy ją na chiński), bez odpowiedzi.
10 lipca 2020: skontaktowaliśmy się z dwoma sprzedawcami urządzenia w Wielkiej Brytanii, aby uświadomić im problemy. Jeden wycofał ją ze sprzedaży i nawiązał kontakt z hurtownikami z UE. Qiui odpowiedział sprzedawcom detalicznym, że pozostałe problemy zostaną naprawione „w sierpniu”.
11 września 2020 r.: RenderMan z @InternetOfDongs również skontaktował się z nami: pomógł innemu badaczowi w procesie ujawniania informacji z Qiui. @MikeTsenatek niezależnie znalazł problem z resetowaniem hasła i również miał problemy z usłyszeniem przez Sprzedawcę. Przez przypadek zauważył mój tweet jakiś czas temu, zorientował się, że możemy patrzeć na to urządzenie i skontaktował się z nim.
mieliśmy wspaniałe spotkanie, podczas którego wymieniliśmy się niezwykle podobnymi doświadczeniami z interakcji z Qiui! Jego opis jest dostępny tutaj.
to wzmocniło naszą decyzję o publikacji: najwyraźniej inni prawdopodobnie uznali te kwestie za niezależne od nas, więc sprawa interesu publicznego została podjęta w naszych umysłach.
RenderMan zdecydowanie zasługuje na uznanie za ciągłe wysiłki na rzecz pośredniczenia w rozmowach między naukowcami a sprzedawcami na arenie zabawek dla dorosłych. Niektórzy dostawcy wprowadzili znaczną poprawę bezpieczeństwa i prywatności swoich produktów w wyniku jego ciężkiej pracy.
4 października 2020: skontaktował się z nami trzeci badacz z podobnymi obawami.
6 października 2020: opublikowaliśmy we współpracy z innymi stronami.
aktualizacja 27/01/2021
Europejski dystrybutor Qiui poprosił nas o dostarczenie aktualizacji tego bloga w świetle rozwoju wydarzeń. Skontaktowali się z nami 28 grudnia, wyjaśniając, że problem dotyczy aplikacji mobilnej. To nie było nasze zrozumienie, biorąc pod uwagę powyższe kwestie bezpieczeństwa są w API.
w każdym razie poprosiliśmy o dowody na to i otrzymaliśmy raport z testu pióra z aplikacji mobilnej od strony trzeciej .
raport wyraźnie dotyczył aplikacji mobilnej i zawierał szereg zaleceń.
wróciliśmy do dystrybutora i poprosiliśmy o kopię raportu z testu pióra API.
To przyszło 19 stycznia. Zauważono szereg innych problemów, wynik w pełni autoryzowanego testu pióra, na który nie mieliśmy pozwolenia podczas naszych oryginalnych badań.
twierdzą, że problemy z urządzeniami mobilnymi i API zostały już rozwiązane.