11:04
21/7/2014

iPhone ma swoją Siri, a Android korzysta z Google Voice Search (GVS), aplikacji systemowej obecnej także w customowych wersjach Androida. Okazuje się, że GVS można bardzo prosto wykorzystać do obejścia modelu uprawnień na Androidzie, a to pozwala każdej aplikacji m.in. na podsłuchiwanie właściciela smartphona, podszywanie się pod niego lub wykradanie jego danych — oto, na czym polega atak.

Google Voice Search

Google Voice Search

Nie mam uprawnień, a robię złe rzeczy

Ściągasz niewinną aplikację. Podczas instalacji, aplikacja ta nie prosi o żadne podejrzane uprawnienia. W zasadzie w ogóle nie prosi o jakiekolwiek uprawnienia — nie potrzebuje ich. Tuż po instalacji, aplikacja przystępuje do złośliwych działań; wykradania danych, wykonywania połączeń bez twojej wiedzy, itp. Jak? Wywołuje Google Voice Search (za pomocą API, tzw. “intentu”) …i odgrywa plik dźwiękowy, który zawiera instrukcje dla GVS — instrukcje, których wykonanie samodzielnie przez aplikację wymagałoby posiadania odpowiednich uprawnień.

Schemat ataku na Google Voice Search

Schemat ataku na Google Voice Search przez niewinną aplikację bez żadnych uprawnień

Co więc można zrobić (dzięki GVS) nie mając do tego uprawnień?

  • Wykonywanie połączeń telefonicznych (można wykorzystać do “podsłuchu”).
  • Fałszowanie treści SMS-ów i E-maili (nie jest to spoofing — e-maile i SMS-y rzeczywiście wyjdą z prawdziwego konta/numeru ofiary). Oto przykłady komend:

    Fałszowanie e-maila:
    Email to [nazwa_kontaktu], subject “meeting cancel”, message
    “tomorrow’s meeting has been canceled”.

    Zapisanie na płatną usługę SMS:
    Send SMS to number 1234 “START XYZ”.

  • Odczytać prywatne dane, np.:

    kalendarz:
    “What is my next meeting?” ⇒“Your next calendar entry is
    tomorrow 10 AM. The tile is “Meet with boss”.”

    adres IP:
    “What is my IP address?” ⇒ “Your public IP address is
    111.222.111.222.”

    lokalizację GPS:
    “Where is my location?” ⇒ “Here is a map of Brooklyn
    District.”

    To nie jest dokładna lokalizacja, ale można ją zawęzić zadając dodatkowe pytania: Jak daleko mam do Białego Domu? Jak daleko mam do Chicago? A następnie na przecięciu okręgów o promieniach równych odległościom wyznaczyć miejsce pobytu ofiary.
  • Móc zdalnie sterować Androidem nie mając żadnych uprawnień
Komendy głosowe w Androidzie oraz odpowiadające im uprawnienia (których aplikacja nie musi posiadać)

Komendy głosowe w Androidzie oraz odpowiadające im uprawnienia (których aplikacja nie musi posiadać)

Co ciekawe, na skutek odkrytego przy okazji eksperymentu błędu w aplikacji Google Search (zainstalowanej na 500 milionach smartphonów z Androidem), okazało się, że na dowolne numery można dzwonić także wtedy, kiedy telefon jest zablokowany.

Demo ataku

Badacze, którzy opracowali ten atak stworzyli przykładową aplikację o nazwie VoicEmployer i przeprowadzili za jej pomocą powyższe ataki na telefonie z Androidem, który dodatkowo był wyposażony w oprogramowanie AVG, McAfee Avira, ESET Mobile, Norton Mobile Security. Jak się zapewne domyślacie — antywirusy nie zareagowały.

Diagram obrazujący schemat ataku w zależności od konfiguracji telefonu

Diagram obrazujący schemat ataku w zależności od konfiguracji telefonu

Tutaj możecie zobaczyć video obrazujące atak:

Ciekawostka: jeśli atakujący nie chce, aby jego złośliwa aplikacja miała duży rozmiar (pliki audio w końcu trochę “ważą“), badacze polecają wbudowanie w aplikację API do usługi Google Text-to-Speech (TTS). Chociaż usługa ta działa przez internet, to aplikacja która z niej korzysta nie musi wymagać androidowego uprawnienia “dostęp do internetu”.

Mam Androida — co robić, jak żyć?

Na atak w zasadzie niepodatni są jedynie ci, którzy na swoim smartphonie mają zainstalowany Cyanogen-Mod, pod warunkiem, że sami ręcznie nie doinstalowali Google Voice Searcha (domyślnie nie jest on instalowany z przyczyn licencyjnych).

Jeśli ofiara blokuje swój telefon kodem (lub gestem) i nie posiada aplikacji Google Search, w której znajduje się błąd pozwalający na wywoływanie głosowych komend nawet przy zablokowanym ekranie, atak będzie znacznie ograniczony — złośliwe komendy mogą zostać odpalone tylko w trakcie korzystania z telefonu, ale wtedy najprawdopodobniej użytkownik usłyszy i zauważy dziwne zachowanie telefonu.

Gorzej jest w przypadku osób, które nie stosują blokady ekranu — badacze sugerują odpalanie ataków ok. godz. 4 nad ranem, kiedy właściciel zapewne śpi i nie usłyszy cichej komendy głosowej (a dodatkowo informują, że można łatwo wykryć nieużywanie telefonu przez ofiarę; aplikacja poza odczytaniem godziny, może bowiem odwołać się do czujnika światła i akcelerometru, sprawdzić czy włączony jest ekran, odczytać zawartość pamięci RAM — i na tej podstawie podjąć decyzję, czy atak zostanie odpalony bo telefon nie jest obecnie używany aktywnie).

Podsumowując: upewnij się, że masz aktywny kod blokady i jeśli nie korzystasz, odinstaluj aplikację Google Search. Powyższe dotyczy tylko i wyłącznie tych języków, które są wspierane pod kątem komend głosowych — polski nie jest (póki co). To chyba pierwszy raz, kiedy należy się cieszyć z traktowania nas jak zacofany kraj.

Więcej uprawnień, więcej możliwości

Atak dodatkowo komplikuje się, jeśli złośliwej aplikacji uda się “wyłudzić” niewinne uprawnienia. Wtedy, za ich pomocą może odpalać tą samą głosową techniką bardziej skomplikowane ataki — np. uprawnienie READ_CONTACTS, READ_CALL_LOG, READ_SMS pozwoli na odczytanie na głos (a zatem nagranie i wytransferowanie) kontaktów, historii połączeń lub SMS-ów.

O podobnych atakach “nie wprost” na Androida pisaliśmy jakiś czas temu, por. keylogger z akcelerometru oraz Android — szpieg: ukradkiem sfotografuje twój dom i zrobi z niego model w 3D oraz podeśle złodziejowi

Wnioski z doświadczenia badaczy są proste — brak uprawnień dla aplikacji nie jest żadną gwarancją bezpieczeństwa.

PS. Podobne ataki dotyczące nadwyrężania modelu uprawnień na Androidzie ćwiczymy na naszym szkoleniu z Bezpieczeństwa Aplikacji Mobilnych — najbliższy termin to 28-29 sierpnia w Warszawie, zostało jeszcze 8 wolnych miejsc.

Przeczytaj także:

44 komentarzy

Dodaj komentarz
  1. Wystarczy wylutować mikrofon i atak się nie uda.

    • A taśma klejąca na głośnik powinna zminimalizować powierzchnię ataku o 90%

    • Aj tam, źle podchodzicie, wystarczy wyciszyć dźwięk w telefonie.

    • I tu się zdziwisz, bo aplikacja bez uprawnień (Cicho sza!) potrafi sterować głośnością i wyciszeniem telefonu.

    • Prościej wpiąć słuchawki zewnętrzne tak żeby mikrofon nie odbierał dźwięku generowanego przez telefon.

  2. Co to za telefon?
    Skąd ma nowego Androida? ;)

    • Meizu

  3. Zainstalował bym debiana ale nie wiem czy będzie się dało dzwonić i czy cokolwiek będzie tam działać jak na lapku bywają problemy ze sterami. Po za tym telefon bez możliwości instalacji tych wszystkich aplikacji traci sporo na atrakcyjności,

    • Ubuntu Touch

  4. Jak żyć? Ustawić w telefonie język Polski – żadna z powyższych komend na szczęście / niestety nie działa.

  5. Na polskich ustawieniach domyślnych nie zadziała, bo u nas nie ma akcji głosowych (tylko dyktowanie). Ktoś musi ręcznie sobie przestawić na angielski (lub inny obsługiwany język), żeby takie coś przeszło.

  6. Nie wiem jakoś boje się poświęcić choćby laptopa systemowi Canocial :D Ten dash to istne narzędzie diabła zabijające mój słaby komputer. A telefon też nie jest z najwyższej pulki :)

    • Kup BlackBerry :D Nie wiem czy na wszystkim działa, ale jest taki system jak Jolla Mobile (Sailfish OS) – twórców MeGo i Symbiana (o ile się nie mylę).

  7. Hm, a Google nie loguje gdzieś aktywności na koncie? https://history.google.com/history/ np nie pokazuje tych komend, czy gdzieś na dashboardzie? Wtedy dałoby się wykryć, że jakieś nieautoryzowane akcje leciały, niezależnie od tego, jak sprytnie zrobiony atak. Gorzej z dojściem, która aplikacja zawiniła…

  8. > Google Text-to-Speech (TTS). Chociaż usługa ta działa przez internet, to aplikacja która z niej korzysta nie musi wymagać androidowego uprawnienia “dostęp do internetu”.

    google text-to-speech działa offline. online są ewentualnie (jednorazowo, jeśli nie mamy) pobierane dane do syntezy w danym języku.

  9. “niepodatni są jedynie ci, którzy na swoim smartphonie mają zainstalowany Cyanogen-Mod” – a co z tymi, którzy mają zainstalowany MIUI?

    • Wystarczy dowolny “custom” ROM bez GApps’ów, lub z okrojonymi bez GVS.

  10. czy czasem nie wystarczy wiec wyciszyc dzwiekow dla “apps & media”?

    o ile aplikacja nie poprosi o “modify system settings” nie bedzie w stanie wygenerowac zadnego dzwieku dla mic. right?

  11. Eee, ten przykład z podsłuchem jest amatorski. To nie lepiej wysłać parę płatnych SMS, albo zadzwonić na wysoko opłacany numer?

  12. Okazuje się, że tak samo jak na PC, najlepsza polityka bezpieczeństwa to nie instalować wszystkiego jak leci ;)

    • A mówili że na linuksa ma nie być wirusów.

    • I to nie jest wirus. Wirus implikuje, że się zainstaluje “sam z siebie”, tu idiota (użyszkodnik, lamer, luser – jak zwał tak zwał) sam musi sobie to zainstalować.

      A jak ktoś instaluje badziewie i jeszcze nie blokuje ekranu, to zasługuje żeby być shackowanym, tak samo jak osoba która nie zamyka drzwi do domu/mieszkania i wpuszcza bylekogo zasługuje na to aby zostać okradziona.

      Może się czegoś po takim wypadku nauczy.

  13. A ludzie się martwią jakimiś backdoorami NSA w iPhone…. lol

  14. A co jesli calkowicie wyciszam telefon (tylko wibra)? Czy aplikacja bez zadnych uprawnien moze sama zwiekszyc poziom glosnosci?

    • Z tego co się orientuję, to o ile apka nie ma dostępu do SuperUsera, to nie może.

  15. I oto cała różnica :-) na androida MUSISZ ŚCIĄGNĄĆ LEWĄ APLIKACJĘ a tymczasem fapple swobodnie rozdaje dane nsa i innym xD oczywiście to bardzo bezpieczny telefon jest…

  16. Nie mam uprawnień, a robię złe rzeczy
    Ściągasz niewinną aplikację.

    Jaką aplikacje?Co to za kalumie?Bo ja instaluje wyłącznie to co potrzebuje.No i z kąd ja ją niby ściągam i dlaczego ją instaluje?
    Przekroczono ilość odtworzeń -ta no jasne odrazu pobieram,na taki wyssany z palca atak może nabiorą sie tacy co logują sie gdziekolwiek w specjalnie spreparowanym mailu,trzeba naprawde być naiwnym by tak robić.
    Te dzisiejsze opisy tych niby ataków ograniczają sie do najpierw sam zainstaluj aplikacje,ale jakoś tych ataków nie widać,większość by sie na to nie nabrała.To jakaś androidowa teoria spiskowa.hue hue hue!

    • … Takie złośliwe zachowanie można zaprogramować w appce, która jest pożądana przez usera. Szczególnie, że to podejrzane działanie nie potrzebuje _żadnych_ dodatkowych uprawnień, więc user tym bardziej nic nie zauważy. (A ‘normalne’ uprawnienia appki mogą nawet rozszerzyć działanie złośliwego kodu.)
      To tak samo jak nie masz pewności, czy jakiś dowolny program na twoim komputerze nie ma backdoora, bo a) NSA, b) firma sobie zostawiła, c) jakiś drobny programista w firmie gdzieś takowego nie zaszył, d) jakiś hakier zmienił źródła, e) cokolwiek.
      Nikt nie mówi, że sam atak będzie aplikacją, która nic nie robi, tylko sobie jest, tak jak w artykule. Badacze się nie bawią w to jak zaciemnić dodatkowo aplikację, tylko szukają podatności i po prostu patrzą jak można je wykorzystać.

  17. Można też zainstalować xprivacy i zablokować dostęp do mikrofonu dla GVS (jeśli nie chcemy jej odinstalowywac)

    • To jak wtedy GVS będzie działać?

    • xprivacy ma już backdoora

    • @ron jakieś konkrety?

  18. Zeby to zadzialalo, trzeba:
    – wlaczyc Audio History
    – wlaczyc “Ok Google” Detection
    – miec wlaczona opcje Speech output (w przypadku wykradania danych)

    Nie wiem czy te opcje sa domyslnie wlaczone, ale moglibyscie wspomniec o mozliwosci ich wylaczenia zamiast blednie pisac, ze tylko z alternatywnym ROMem nie jest sie podatnym.

    • bzdury piszesz. nie trzeba niczego wlaczac. dziala na domyslnych ustawieniach Androida poza tym cyanogenmodem, jak napisal NB, bo tam nie ma po prostu tej apki … no ale da sie ja doinstalowac wiec nawet i na cyanogenmodzie pojdzie ten atak jak ktos doinstalowal

  19. Wlasciwie, to przy wlaczonych tych opcjach wystarczy wejsc do autobusu czy innego zatloczonego miejsca i krzyknac OK GOOGLE CALL 070xxxxxxx, nie trzeba wcale nic instalowac. A moze zaczac jezdzic po miescie i puszczac to zapetlone przez zewnetrzne glosniki? ;)

  20. Łideła nie da sie obejrzeć :/
    “Teraz nie można odtworzyć tego filmu. Przekroczono liczbę dozwolonych odtworzeń. Spróbuj ponownie później.”

  21. Czy można prosić o wyjaśnienie kilku zdań w artykule? Czemu inne custom ROMy są podatne, a Cyanogen akurat nie jest? Używam OmniROM bez gappsów i niezbyt rozumiem, czemu jestem zagrożony (wydaje mi się, że nie mam tego GVS)

  22. Albo root i zamrożenie Google Search (które przy okazji psuje GEL-a, więc trzeba też inny launcher)

  23. Proszę o wrzucenie na inny hosting. Ten przekroczył transfer.

  24. Twierdzenie że aplikacja “wykrada dane, wykonuje połączenia bez twojej wiedzy” w momencie gdy telefon musi wydać na głos bardzo długie polecenie głosowe jest trochę przesadzone. Poza tym jedyne niebezpieczeństwo jakie tu widzę to możliwość wysłania SMS’ów co może wiązać się z dodatkowymi kosztami. Jak zwykle cały temat wydaje się trochę rozdmuchany.

  25. Ale przecież, gdy się wyłączy transmisję danych, to Google Search nic nie da, bo on korzysta do rozpoznawania mowy połączenia z siecią. Poza tym na noc to ja przełączam telefon na flight mode.

  26. Sugeruję zainstalowanie Xposed Framework i modułu Xprivacy. Można poblokować te świństwa. Tylko jedno ale: trzeba mieć roota.

  27. Które wersje androida podatne są na atak?

  28. :) :) :) Dobre! Zmasowany atak. Można pójść dalej i puścić komendę “OK Google…” przez głośniki w pociągu, autobusie, albo… radiu, TV. Jeśli program ma oglądalność liczoną w milionach osób, to parę osób może by się złowiło

Odpowiadasz na komentarz olo

Kliknij tu, aby anulować

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: