21:24
15/2/2012

W Google Wallet dla Androida instnieje podatność, pozwalająca na odczytanie PIN-u, który chroni płatności zbliżeniowe.

Google Wallet PIN hacking

Google Wallet to aplikacja na Androida, która pozwala zamienić telefon komórkowy w zbliżeniową kartę płatniczą (taką jak Mastercard PayPass). Rejestrujemy się w usłudze, dodajemy kartę, uruchamiamy aplikację Google Wallet i już możemy płacić w sklepie telefonem wyposażonym w chip NFC zupełnie tak jak kartą zbliżeniową.

Na marginesie, dlaczego telefon jest lepszą zbliżeniową kartą kredytową? Bo nie dotyczą go niektóre z opisywanych przez nas wielokrotnie zagrożeń związanych z transakcjami zbliżeniowymi.
Google Wallet Android

Google Wallet dla Androida - płatności telefonem w sklepie

Google Wallet Cracker, to aplikacja która łamie kod broniący dostępu do Google Wallet. Atakujący uzyskuje w ten sposób dostęp do podpiętej do konta ofiary karty kredytowej.

Czy jest się czego bać?

Początkowo uważano, że ryzyko jest minimalne, a podatność można wykorzystać do ataku tylko na “zrootowane” telefony — tylko wtedy atakujący ma swobodny dostęp do wszystkich plików na urządzeniu, w tym do pliku, w którym przechowywany jest PIN do Google Wallet. (m.in. dlatego Google nie zaleca instalowania Google Wallet na zrootowanych urządzeniach).

Sytuacja w której atakujący “rootuje” telefon ofiary nie była rozpatrywana jako zagrożenie, ponieważ w trakcie rootowana wszystkie pliki (w tym dane Google Wallet) są kasowane.

Teraz jednak okazuje się, że atak można przeprowadzić także na niezrootowanym telefonie. Jak? Rootując go nie w standardowy sposób, a przy pomocy znanej dziury pozwalającej na podniesienie uprawnień w Linuksie (PoC istnieje od Androida 4.0).


Dowiedz się, jak zabezpieczyć swoje dane i pieniądze przed cyberprzestępcami. Wpadnij na nasz kultowy ~3 godzinny wykład pt. "Jak nie dać się zhackować?" i poznaj kilkadziesiąt praktycznych i przede wszystkim prostych do zastosowania porad, które skutecznie podniosą Twoje bezpieczeństwo i pomogą ochronić przed atakami Twoich najbliższych. Uczestnicy tego wykładu oceniają go na: 9,34/10!

Na ten wykład powinien przyjść każdy, kto korzysta z internetu na smartfonie lub komputerze, prywatnie albo służbowo. Wykład prowadzimy prostym językiem, wiec zrozumie go każdy, także osoby spoza branży IT. Dlatego na wykład możesz spokojnie przyjść ze swoimi rodzicami lub mniej technicznymih znajomych. W najbliższych tygodniach będziemy w poniższych miastach:

Zobacz pełen opis wykładu klikając tutaj lub kup bilet na wykład klikając tu.

32 komentarzy

Dodaj komentarz
  1. Używam niemal wyłącznie gotówki, pewnie za 10 lat dla takich jak ja to tylko Guantanamo, albo mur opodal hipermarketu… :P

    • Jakie to egzaltowane. Gotówka jest po prostu mniej wygodna niż płatności bezgotówkowe, dlatego jest wypierana.

    • Niestety rzadzacy tego swiata chca pozbyc sie wogole istnienia gotowki… Gotowke ciezko jest kontrolowac. Gotowki nie zamroza nam na koncie… Gotowke mozna ukryc przez urzedem skarbowym…

      Jeszcze troche i gotowka bedzie reliktem przeszlosci…

      Pozdrawiam.

      Andrzej

    • Gotówka jest wypierana bo trudniej ją śledzić i kontrolować niż pieniądz wirtualny. Żeby uziemić człowieka, który lubi wygodnie wystarczy zablokować mu konto, lub kartę. Żeby skontrolować, wystarczy przejrzeć konta – widać czarno na białym gdzie chodzisz jakie interesy prowadzisz, że pożyczyłeś koledze kasę bez podatku xD. Dodatkowo na takiej wirtualnej kasie można robić cudne wałki w rodzaju “mam 10 złotych pożyczę jeleniom 210 złotych”, oczywiście jak jestem bankiem. Ale co ja tam się znam, egzaltowany jestem :). Dobrze sobie czasem zadać pytanie “cui bono?” a nie łykać jak gęś kaszę.

    • No i między innymi dlatego złoto idzie od 10 lat w górę. Ci co nas golą do gołej skóry gdzieś przecież chcą w ciszy, spokoju i bez rozgłosu skonsumować nagrabliennoje.

    • ITT: domorośli eksperci od ekonomii wychowani na filmach z żółtymi napisami oraz okołotematyczny globalizacyjny FUD.

  2. Brakuje mi w tym tekście analizy ryzyka związanej z tą podatnością. W szczególności porównania ryzyka związanego ze zgubieniem/kradzieżą portfela a zgubieniem/kradzieżą telefonu z Google Wallet.

    • Osobiście wolałbym zgubić telefon niż portfel. Dane na telefonie mam lepiej zabezpieczone niż dane (dokumenty) w portfelu.
      Kilkukrotne błędne wpisanie hasła czyści telefon. Dodatkowo, mogę go próbować zdalnie zlokalizować (szansa na znalezienie złodzieja). A taka karta kredytowa z portfela, mimo, że bez technologii płatności zbliżeniowych to i tak mogłaby zostać wykorzystana do zapłacenia “na żelazku” np. w taksówce – ale korzyść złodzieja pewnie byłaby mniejsza niż ze sprzedaży telefonu w “komisie”.

      Z drugiej strony zgubienie telefonu to ok. 1k PLN straty dla mnie, a zgubienie portfela nie kosztowałoby mnie praktycznie nic (poza opłatami za wyrobienie prawa jazdy, kosztem nowego portfela, kosztem wydania nowej karty w banku (chyba zwracają po wykonaniu opłat za X) ~= 100PLN).

      Podsumowując zgubienie telefonu finansowo jest dla mnie bardziej bolesne niż zgubienie portfela, ale jednocześnie pod “danych wrażliwych/osobowych” zgubienie telefonu jest dla mnie mniej bolesne niż zgubienie portfela.

    • Poza tym w przypadku wielu kart zbliżeniowych istnieje limit transakcji, które można wykonać. Jednym ze scenariuszy wykorzystania Google Wallet jest karta prepaid, wówczas tracisz maksymalnie tyle, ile sobie na kartę załadowałeś. Pod warunkiem, że komuś się będzie chciało bawić w łamanie PIN (umówmy się, że jeśli ktoś ma fizyczną, nieograniczoną kontrolę nad urządzeniem i jest wystarczająco zmotywowany, to najprawdopodobniej jednak dobierze się do danych).

      Jeśli zgubię portfel z pieniędzmi (gotówką), to o tych pieniądzach mogę zapomnieć. Jeśli chodzi o karty (niezbliżeniowe), to potencjalnie “znalazca” może mieć z tego więcej korzyści, przy czym prawdopodobnie ja na tym nie stracę (chyba, że jestem na tyle głupi, by zapisać sobie PIN i zostawić karteczkę w portfelu), jeśli zdąży z nich skorzystać przed ich zablokowaniem przeze mnie.

      Innymi słowy – gdybym miał telefon z Google Wallet, to w przypadku jego utraty właśnie sam sprzęt byłby główną stratą.

      Przy okazji ciekawostka – jeśli w portfelu znajduje się zdjęcie bobasa, to podnosi to szanse na to, że w przypadku zgubienia portfela, zostanie on zwrócony do właściciela (co nie znaczy, że w komplecie). Ciekawe czy podobną zależność można zauważyć w przypadku telefonów ze zdjęciem bobasa na tapecie? :)

    • Czy jest taka aplikacja na androida która wyczyściłaby telefon po kilkukrotnym podaniu złego hasła?

      A czy szyfrowanie karty SD już jakoś działa…?

      Ja dużo bardziej wolałbym zgubić portfel, niż telefon. Właściwie to nawet wolę sobie nie wyobrażać, do czego miałby dostęp ew. złodziej telefonu…

    • @PK dodaj jeszcze do tego czasochłonność i upierdliwość zastrzegania dokumentów/kart i wyrabiania nowych. telefon to w sumie tylko zgłoszenie na policji i załatwianie spraw u operatora. portfel to policja, banki, UM, cholera wie co jeszcze, sporo bieganiny, papierkologii i jeszcze trochę czasu oczekiwania na nowe dokumenty/karty. a i potem jeszcze trzeba uaktualnić dane typu nr seryjny i ważność dowodu/prawa w bankach, u operatora tel., skarbówce, gusie i zusie jak masz działalność i innych instytucjach o których na daną chwilę zapomniałem.

    • O transakcje w “żelazku” chyba nie trzeba się obawiać. Sprzedawca chwyci za telefon i zadzwoni do centrum a tam odmówią mu autoryzacji a nawet… każą kartę zatrzymać! Ponadto po zgłoszeniu utraty bank przejmuje odpowiedzialność za dokonane transakcje.

  3. załatane

  4. Przecież to oczywiste, że na pewno istnieje jakaś luka, która umożliwi dostęp do tego pliku, całkiem możliwe, że nawet w przeglądarce. Czemu inżynierowie Googla założyli, że jest inaczej? I tak swoją drogą, czy konieczne jest zapisywanie tego PINu?

    • Nie mam Androida, ale nie wierzę, że na Androidzie da się instalować aplikacje bez znajomości czyjegoś hasła do Marketu/Google Account/Kodu dostępu lub, że to hasło jest cache’owane na telefonie. W iOS do instalacji oprogramowania potrzeba hasła, o hasło jest się pytanym przy każdej próbie instalacji aplikacji. Pomijam przypadki priviliedge escalation, gdzie wystarczy wejść na stronę, żeby zrootować tel. ;) por. https://niebezpiecznik.pl/post/jailbreakme-com-exploit-pdf-jailbreak-iphonea-przez-www/

    • No właśnie mam na myśli privilege escalation, nie jestem jakimś ekspertem bezpieczeństwa, ale przecież w przypadku tego typu aplikacji jak te zarządzające pieniędzmi powinno się chyba zawsze zakładać najgorsze, a z powyższego filmiku wynika, że ten PIN jest trzymany na telefonie, tak, że się go da odczytać. Chociaż w sumie, jak już włamywacz będzie miał dostęp do naszego telefonu, to równie dobrze może jakiegoś touchloggera zainstalować. Jeszcze mam inne pytanie. Samo posiadanie PINu coś da? Czy da się skopiować z jednego telefonu na drugi pliki z Google Wallet i będzie działać, czy jest to zabezpieczone jakimś kluczem sprzętowym? Cały czas wierzę, że Google zabezpieczyło to odpowiednio

    • @Piotr – w Androidzie, hasło do konta podajesz raz, podczas konfiguracji danego konta. Jest ono zapisane gdzieś i nie musisz go podawać przed instalacją appek z Marketplace

    • Nie, nie powinno się zakładać najgorszego, tylko należy analizować ryzyko. Jeśli Google Wallet jest bezpośrednim odpowiednikiem karty zbliżeniowej, to problem byłby wtedy, gdyby bezpieczeństwo Google Wallet było mniejsze, niż wspomnianej karty.

      Koszty na “bezpieczeństwo” nie mogą być większe, niż wartość, która ma być chroniona, przy czym koszty należy rozumieć szeroko, również jako np. wygodę użytkowania. Dodatkowo scenariusz wykorzystania tej podatności nie jest trywialny w tym sensie, że ktoś musi wejść w posiadanie tego telefonu, wyciągnąć plik, złamać PIN, potem z niego skorzystać. Strasznie dużo roboty jeśli oczekiwany zysk jest mniejszy, niż ten ze sprzedania skradzionego/znalezionego telefonu w komisie.

      Zupełnie inną kwestią jest to, że rzeczywiście PIN nie powinien być składowany w taki sposób (tu jest opisany alternatywna metoda: http://intrepidusgroup.com/insight/2012/02/wallet-pin-storage-best-practices/)

    • Standardowo Android nie wymaga autoryzacji podczas instalacji aplikacji z marketu czy z *.apk. Nie wiem czy istnieje jakieś zabezpieczenie tego typu natomiast rootując telefon można użyć aplikacji typu SUDO która będzie wymagała hasła. Nadal pozostaje privilege escalation … :)

    • Nie sprawdzałem tego ale myślę, że samo hasło do konta Google w Androidzie nie jest zapisywane a jedynie ID sesji coś w rodzaju ciasteczka.

    • @Paweł Co do SE, czyli miejsca gdzie powinien być składowany PIN to chyba mieli problem z tym, że kod musi być popisany a potem z “prawem i polityką” :)


      The first issue related to the SE. The SE can only run code that is digitally signed by the manufacturer. Google had to update the code that would run inside the SE and get it approved and signed by the SE manufacturers. This obviously takes some time, but was not a significant hurdle.

      The next issue was much more significant. Basically, by moving the PIN verification into the SE itself, this might constitute a “change of agency” responsible for keeping the PIN secure. The fear is that Google might no longer be responsible for the security of the PIN, but rather the banks themselves. If this is in fact the case, then the banks may need to follow their own policies and regulations regarding ATM PIN security which obviously, and rightly, receive a great deal of scrutiny.

  5. BTW, inny ciekawy błąd implementacyjny w Google Wallet – mając dostęp do telefony, wyczyszczenie danych w ustawieniach (znajomość pinu niepotrzebna) powoduje reset konta Google Wallet – można ustawić nowy PIN: http://forum.xda-developers.com/showthread.php?t=1412136

  6. co to znaczy, że podatność “instnieje”? To jakaś nowa metoda? ;)

    • Istnieje bug w systemie ktory pozwala na eskalacje permisji i dostep do plikow gdzie przechowywane sa dane / pin walleta bez rootowania telefonu. Dzieki temu da sie zlamac pin do Google Walleta na niezrootowanych telefonach. Ot taka sobie podatnosc…

      Pozdrawiam.

      Andrzej

  7. Ten post będzię trochę na granicy tematu ;)
    Otóż jako, że android ma tyle możliwości zdobycia szkodliwych aplikacji/wirusów to może czas się zaiteresować systeme “bada os” opartym na specjalnym frameworku c++ oraz linuxie..
    PS. Mobyexplorer.jar zainstalowany bada os=możliwość tworzenia stron internetowych nawet w php na telefonie :D tak samo jest wiele alternatywnych programów na ten telefon, które zrównują, niektóre braki funkcji z innych softów..
    PS.2. Czekam, aż powstanie jakiś artykuł o konkurentach androida, iOS, symbiana, gdyż nikt ich nie dostrzega..

  8. Nie dość że zbliżeniowe, to jeszcze powiązane z kartą. Małe ułatwienie, a ryzyko dużo większe.
    Ja wyobrażam sobie wallet na takiej zasadzie jak to jest na Steamie – wpłacam pieniądze i nic ponad to nie da się z niego wyciągnąć.

  9. Fajny ten PoC

  10. […] do bezstykowego przesyłania sobie wizytówek lub nawet płatności. Korzystający z NFC Google Wallet posiadał już błędy. Warto także wspomnieć o aplikacji na telefony z Androidem wyposażone w czytniki NFC […]

  11. jest taka sytuacja….. kupuję coś w grze,(przez telefon)jest napisane ze zostanie to dopisane do rachunku Play,po czym dostaje maila ze zostało to opłacone przez google wallet…spodziewam się wyższego rachunku za telefon ale takiego nie dostaje…. o co chodzi?? zakupy w aplikacji robie juz 3 miesiac i nic…. nikt sie o nic nie upomina

Odpowiadasz na komentarz Paweł Goleń

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: