22:55
17/8/2011

Dwójce naukowców, na podstawie logów z akcelerometru udało się odtworzyć klawisze, jakie na telefonie z Androidem wstukiwał jego użytkownik.

Keylogger dla Androida wykorzystujący akcelerometr

Ponieważ inżynierowie projektujący telefony komórkowe i tablety do tej pory nie przewidzieli (?) takiego wektora ataku, system operacyjny zapewnia każdej aplikacji swobodny dostęp do danych z akcelerometru. W skrócie, logi z akcelerometru to nie jest coś, co się jakoś specjalnie chroni. Strzeże się natomiast dostępu do “klawiatury” (ma do niej dostęp tylko aktywna aplikacja), co oznacza, że instalacja standardowego keyloggera na systemach mobilnych jest trudniejsza niż na Windows.

TouchLogger

TouchLogger - keylogger na telefony komórkowe korzystający z akcelerometru

Ale opracowany przez Hao Chen oraz Lian Cai atak typu side-channel nie jest standardowy. Polega na oszacowaniu miejsca na ekranie, w które palcem “stuknął” użytkownik. Dokładność pomiarów różni się w zależności od modelu telefonu (różne interwały odczytu danych z akcelerometru). Na dzień dzisiejszy badacze osiągają 71,5% skuteczność przy odczytach dla klawiatury numerycznej. Na potrzeby swojego eksperymentu stworzyli aplikację TouchLogger.

Na koniec warto sobie uświadomić, że akcelerometry coraz częściej wbudowywane są także w laptopy. Co więcej, dostęp do danych z akcelerometrów można uzyskać poprzez JavaScript z przeglądarki internetowej… Co to oznacza? Na przykład możliwość “odczytania” wstukiwanego na stronie WWW numeru karty kredytowej…

Macie pomysł jak można obronić się przed tym atakiem? My oczami wyobraźni już widzimy komunikaty smartphonowych aplikacji przy okienkach logowania: “aby bezpiecznie wpisać swoje hasło, skacz, kręć się, rób fikołki” ;)

Przeczytaj także:

53 komentarzy

Dodaj komentarz
  1. tak opcje moze dawac rowniez .. mikrofon? :)

    • Dodatkowo odczyt z kamery także może być pomocny — chociażby do wstępnego oszacowania położenia telefonu.

    • Mikrofon moze zostac wykorzystany do rejestrowania dzwiekow wciskanych klawiszy na klawiaturze. Nie wiem na ile jest to skuteczne w przypadku smartfonow z klawiaturami, ale w przypadku klasycznej klawiatury caly proces jest dosc skuteczny. Juz w latach 80tych (a moze wczeseniej) udowodniono, ze na podstawie tzw. widma akustycznego drukarki iglowej mozna odtworzyc drukowana tresc. W pozniejszych latach (chyba koniec 90tych) jakis gosc napisal o unowoczesnionej metodze wykorzystujaca lancuch Markowa. Proste zalozenie: kazdy wciskany i wyciskany klawisz ma charakterystyczny dla siebie dzwiek. Co pozwala zbudowac histogram, a potem na zasadzie metody czestosciowej (chyba tak sie nazywala) dopasowac czestosc wystepowania liter w przechwyconej tresci z histogramem danego jezyka (czyli takiego zestawienia ktore pokazuje jakie litery w danym jezyku sa najczesciej wykorzystywane) metoda ta byla juz stosowana kryptologii wieki temu ;) Na czym polagalo unowoczesnienie tej motody w oparciu o lancuch Markowa nie pamietam :P

  2. Z akcelerometru w laptopie odczytać numer karty kredytowej? To już chyba nadinterpretacja.

    • Z papierka: “W3C has recently published DeviceOrientation Event Specification [6] to allow web applications to access accelerometer and gyroscope sensors through Javascript, which both Android 3.0 and iOS4.2 will support. This suggests that our motion-based key logger can be delivered from a website, without requiring the user to install any application.”

    • To chyba zakladajac, ze uzytkownik wklepuje z klawiatry, a nie korzysta z klawiatury ekranowej…

    • Myślę, że chodziło o nadinterpretacje w sensie “za dużo klawiszy, za mała czułość”. Na telefonie klawiatura numeryczna jest ogromna, sam telefon dość mały, a skuteczność to i tak zaledwie 70%. Na laptopie będzie pewnie podobnie, tyko bez tego zera ;)

    • Miażdżąca większość userów korzysta z klawiatury fizycznej. A laptop na kolanach nie jest taki rzadki, choć stojący na biurku jest przed tym atakiem (chyba?) zabezpieczony.

    • Tu się z Wami nie zgodzę. Wg mnie istota ataku polega na tym, że próbując wcisnąć przyciski na telefonie mimowolnie nim “tłamsimy”. Zwłaszcza jak się pisze jedną ręką esa, to tel. lata na wszystkie strony, przechyla sie itd… co innego w laptopie. Ten sobie lezy spokojnie na biurku albo na kolanach i ten akcelerometr nie wtedy nawet czego rejestrować. Wiec myślę, że lapki są na to odporne. pozdro

    • Nie znam się na akcelerometrach, ale (burner ma rację) te wykresy pokrywają się z mimowolnym ruchem telefonu, gdy wciska się odpowiednie klawisze. Założę się, że gdy położy się telefon na stole czułość akcelerometru nie wystarczy, żeby z wystarczająco wysokim prawdopodobieństwem wskazać na wciśnięte klawisze. Także chyba nie potrzeba fikołków :)

  3. Pomysłowość ludzka nie zna granic ;-)

    • Pomysłowość ludzka i małpia nie zna granic.

  4. O ile położenie komórki może się zmieniać podczas naciskania poszczególnych guzików, to położenie laptopa już nie bardzo, nawet trzymanego na kolanach więc nie sądzę żeby w tym przypadku zagrożenie było realne.

    Teraz w poradnikach jak zabezpieczyć laptopa, będzie napisane połóż lapa na biurku :)

    Tak w ogóle, to jaki jest sens akcelerometru w laptopach?
    Ciężko mi sobie wyobrazić żeby ktoś stwierdził, że machanie laptopem jest wygodniejsze niż klawiatura.

    • Akcelerometr w laptopie może też wykrywać drgania/upadek. Myślę, że możemy założyć iż żyroskop/akcelerometr/inne czujniki podają różne odczyty dla wciśnięcia litery “a”, a różne dla litery “z” — pytanie na ile to powtarzalne i z jaką dokładnością można to odróżnić? Temat na kontynuację badania :-)

      Co do tego dlaczego akecelerometry i podobne czujniki montuje się w laptopach, to odpowiedź jest prosta: np. w dyskach twardych mają wykrywać spadek swobodny i blokować głowicę przed zderzeniem z ziemią. Oprócz tego, na myśl przychodzą mi laptopy-tablety, które być może z akcelerometrów korzystają do a) gier b) automatycznego obrotu ekranu.

      Natomiast najciekawsze wykorzystanie akcelerometru w Macbooku widziałęm tu: http://www.youtube.com/watch?v=q-waskBXGfw — klepnięcie matrycy LCD z lewej, przerzuca na wirtualny pulpit po prawej, klepnięcie matrycy z prawej strony, na wirtualny pulpit po lewej :-) How cool is that?

    • akcelerometr np Thinkpadach teoretycznie sluzy do wykrywania lotu laptopa(zeby glowica dysku mogla wrocic do bezpiecznego polozenia) i do Anti-Thief (jak za mocno ruszysz lapkiem to moze sie np zablokowac)

    • Dzięki za wyjaśnienie.
      Tablety, dyski i zabezpieczenie przed kradzieżą faktycznie mogą się przydać.
      Pukanie do zmiany pulpitu i innych cudów to fajny bajer, ale po pewnym czasie bardziej by mi przeszkadzał niż pomagał, chociaż trzeba przyznać, że wygląda świetnie.

      W komórce klawiszy jest 10 i skuteczność to na razie około 70%, w laptopie jest 47(cyferki, literki, interpunkcja, nawiasy, slashe, spacja), dodatkowo ruchy/drgania są mniejsze(tym mniejsze im większy i cięższy laptop), więc skuteczność będzie wynosić jakieś 14%, no chyba, że czujnik będzie czulszy.

    • W rzeczywistości będzie jeszcze mniejsza. Porównaj wielkość ekranu dotykowego w stosunku do całego urządzenia z wielkością przycisku na klawiaturze. Do tego jeszcze weź pod uwagę to, że w przypadku telefonu dociśnięcie ekranu jest dość dużym naciskiem na całą obudowę – w przypadku laptopa nacisk na obudowę jest znikomy. Wpływ klawiatury laptopa na odczyt z akcelerometru będzie na granicy szumu pomiarowego, jeśli nie jeszcze mniejszy…

    • http://www.youtube.com/watch?v=vrt7gyauuik po to akcelerometr w laptopie o!

  5. co do “obrony” może wystarczy podczas wpisywania tekstu podskakiwać na jednej nodze(mniejsza stabilność niż na 2).

  6. Może by tak wyłączyć Javascript dla strony banku?
    A swoją drogą gdyby logowanie odbywało się przez AJAX to pozostaje zmienić bank :P

  7. Bank nie potrzebuje keyloggera, by cię okraść :). Raczej wchodzi opcja że masz dwie strony odpalone.

  8. ciekawe jak sprawa wygląda w przypadku telefonów dotykowych.

  9. aby bezpiecznie wpisać swoje hasło, skakaj, kręć się, rób fikołki ;)

    … lub po prostu używaj swype ;)

    • Hasło znajdujące się w słowniku? Brawo. :P

  10. A kto Ci każe je tam dodawać? Po prostu nie wymyślaj haseł ze spacjami ;)

  11. Ciekawe, rozumiem że dla użytkownika leworęcznego wystarczy zamienić logi cyfr 1, 4 i 7 z 3, 6 i 9 ;)

  12. Sposobem na akcelerometr w laptopie może być “bezpieczna” klawiatura ekranowa. Panda oferuje coś takiego, inne firmy pewnie też. Co prawda to bez sensu, gdy ktoś może spojrzeć nam przez ramię.

  13. Thank you swype :)

  14. Pewnie niedługo pojawią się widgety wyłączające akcelerometr i jak będziesz chciał zrobić coś “tajnego” ze swoim telefonem, to poprostu go wyłączysz. Albo aplikacje będą wyłączały akcelerometr we “wrażliwych” momentach typu logowanie na stronach itp.

    • W iPhone akcelerometr w trakcie pisania jest potrzeby ;) Steve chce, żeby “szejknięcie” kasowało ostatnio wprowadzany wyraz. Myślisz, że iPhonowcy łatwo to oddadzą? :D

  15. IMHO troszkę przesada… otóż owszem, jeśli ktoś “wali” w klawiaturę ekranową jak w sprzętową (zgoda są tacy ludzie), to wtedy może to i działa. Ale jeśli są to “muśnięcia” palcem, to czułość tego ustrojstwa musiałaby być jakaś nieprawdopodobna, aby udało się coś skutecznie zalogować.

  16. Wkręć Pan najpierwej Smartfona w imadło i dopiero wstukuj. ;)

  17. Miałem w ThinkPadzie X60T (tablet/convertible) akcelerometr. Dysk był już wymieniony na sSD, ale świetnie grało się w Neverball. Muszę jednak powiedzieć, że do sterowania helikopterem w Search&Rescue się nie nadaje. :P
    Na szczęście większość nowych laptopów z SSD nie ma akcelerometrów. Na telefon z Androidem polecam Hacker’s Keyboard – lamerska nazwa, ale klawisze są mniejsze od standardowej ekranowej i ma wszystkie potrzebne rzeczy jak Ctrl.
    Co do JS – radzę wyłączyć i dodać wyjątek dla strony banku. Od razu mniej reklam się robi.

  18. Swype taki super bezpieczny też nie jest – smugi po palcach są bardzo łatwe do odczytania.
    Wyłączanie JS dla strony banku nic nie da – to tylko przykład, jeśli mamy odpalony w tle program sczytujący logi z akcelerometra, to choćbyśmy wyłączyli JS w ogóle, on będzie działał nadal.
    Zresztą nawet jeśli skuteczność dla jednego odczytu (tak to zrozumiałem) wynosi 70%, to prawdopodobieństwo odczytania 8-znakowego hasła jest już raczej marna ;)

  19. Jak się zabezpieczyć? Po prostu trzeba wpisywać hasło z błędami a następnie je korygować. Oczywiście przycisk kasowania też zostanie rozpoznany za pomocą drgania ale trzymając go dłużej i usuwając więcej niż jeden znak nie jest możliwe rozpoznanie gdzie zatrzymał się kursor. Podejrzewam, że w tej sytuacji pewny będzie tylko ostatni wpisany znak.
    Co do laptopów – myślę, że z jednej strony znacznie trudniej będzie zlokalizować precyzyjnie dany znak z uwagi na większą ich ilość na klawiaturze (ok 104 przy ok 30 na urządzeniu mobilnym), jednak rozmiary komputera sprawiają, że można bardziej precyzyjnie ustalić kąt pochylania urządzenia (większe “ramię”). Dokładność pomiaru samego akcelerometru będzie taka sama jak w telefonie – sam miałem kilka intrygujących aplikacji na komputerze wykorzystujących drgania i muszę przyznać, że ich precyzja jest podobna do tych w smartfonach. Rzecz jasna – stosowanie przyspieszeniometrów w komputerach jest ściśle związane z dyskiem twardym (z wirującymi talerzami) do awaryjnego parkowania głowicy w przypadku gwałtownego drgania (upadek, uderzenie) i teoretycznie powinny być mniej precyzyjne. Aby rzetelnie odpowiedzieć na wątpliwość zastosowania technologii odczytu lokalizacji uderzenia w komputerach trzebaby było dokładniej sprawę zbadać i przeprowadzić pewne testy.
    Trzeba przyznać, że pomysłowość ludzka jest nieogarniona i z tego samego powodu można być spokojnym, że na każdą metodę znajdzie się kontrmetoda.

    • s/przyspieszeniometrów/przyspieszeniomierzy/

  20. Klawiaturka na bluetooth i problem z głowy ;]

  21. No, “klawiaturka na bluetooth” faktycznie rozwiązuje problem… Zamiast instalować aplikację zawierającą keylogger korzystający z akcelerometru wystarczy wpisać hasło w jakimś miejscu publicznym, gdzie ktoś stojący kilka metrów dalej może sniffować komunikację bluetooth, i już podzieliliśmy się z nim swoim hasłem.

  22. Wasze wiedza na temat bluetooth i możliwość podsłuchu jest smutna, jest to możliwe jeżeli przejmie pierwszy pakiet podczas logowania, zobacz ile kanałów ma bluetooth.

    Widmo rozproszone, słyszeliście o tym? Jak działa? Kwestia, że sygnał jest poniżej szumu to naprawdę nie problem dla dzisiejszej komunikacji. Jest to wręcz wymagane i celowo wykorzystywany fakt.

    Dalej nie chce mi się pisać… Naukowcy ciekawy motyw przedstawili, a Wy takie prednie piszecie:X

  23. A może zamiast korzystania z natywnej klawiatury ekranowej wprowadzić jakiś widget z literkami i znakami, które by się przeciągało i upuszczało w polu wpisywania hasła czy innych wrażliwych danych. Po każdym upuszczeniu widget nieznacznie by przetasowywał znaki, dzięki czemu informacje z akcelerometru nic by napastnikowi nie dały, bo położenie znaków w danym momencie byłoby (pseudo)losowe.

    • banki jak NatWest czy BZ WBK zamiast tasować widżeta tasują, które znaki z hasła masz podać

  24. Na telefonach z klawiaturą ekranową to może działać (jesli wpisujemy hasło jedną ręką) – wtedy z logów faktycznie coś da się wyciągnąć.

    Jeśli przy klawiaturze NUMERYCZNEJ (co zostało podkreślone w newsie) skuteczność ‘zgadywania’ cyferek wynosi c.a. 70%, to przy wklepywaniu tekstu (też klawiatura ekranowa/dotykowa w telefonie) spadnie drastycznie.
    W laptopach ? Wolne żarty :D Skoro przy 9 cyferkach mają takie wyniki, to jak wyobrażacie sobie odczytywanie stuknięć na fizycznej klawiaturze ? Skuteczność w jakichś promilach wyjdzie…

  25. Własnie się zajmuję programowaniem na Android’a z użyciem odczytów z akcelerometru i powiem Wam, że nie wierzę w to z banalnego powodu – dokładność tych układów (a przynajmniej tych za 1$ montowanych w smartfonach) jest bardzo mała. Urządzenie leżąc nieruchomo na tole potrafi oscylować sobie +/- 1 m/s^2 co jest bardzo dużą wartością.
    Samo zagrożenie owszem jest, ale nie wierzę w jego praktyczną implemtację przynajmniej na dzisiejszych urządzeniach. A wyniki badań można sobie dowolnie fabrykować. Sam screen UI niczego nie dowodzi. Gdyby wypuścili APK to co innego.

  26. Poza tym nie z akcelerometru tylko czujnika położenia (choć w urządzeniach bez żyroskopu położenie jest pośrednio(!) wyliczane z akcelerometru ale nie tylko – również z kompasu). Jeśli już, to właśnie dla nowszych urządzeń wyposażonych w żyroskop, który ma większą dokładność pomiaru może to mieć zastosowanie, ale nadal nie wierzę w tak wysoką dokładność wyniku.

  27. […] Atak z kamerą termowizyjną to kolejny przykład ataków side-channel. Niedawno opisywaliśmy atak na telefony komórkowe pozwalający odczytać PIN przy pomocy akcelerometru. Ciekawe jakie wyniki dałoby zastosowanie kamery termowizyjnej w atakach na kody dostępu do […]

  28. wystarczy użyć menadżera haseł :p

  29. […] tak dawno pisaliśmy o tym, jak to akcelerometr w iPhone może zostać wykorzystany do przechwycenia PIN-u wprowadzanego na klawiaturze telefonu. Najnowsza publikacja zespołu z MIT pokazuje, że […]

  30. […] i na tej podstawie sondować, jakie hasło wpisał użytkownik a często wystarczy po prostu trzymać je w ręce w trakcie wprowadzania hasła… Ciekawe jakie jeszcze zastosowania smartphone’a zostaną odkryte w kontekście […]

  31. […] w telefon, jako przykładzie na świetne źródło ataków typu “side-channel” (por. Innowacyjny keylogger z akcelerometru oraz Telefon szpieg, ukradkiem sfotografuje twój dom i zrobi z niego model w 3D, przekazując go […]

  32. Kurde, zasłaniać pin przy bankomatach portfelem jeszcze
    rozumiem, trzymam palce na guzikach potem randomowych
    trzech-czterech również (jakby kamerka termowizyjna była:
    https://niebezpiecznik.pl/post/kamera-termowizyjna-ulatwia-ataki-na-bankomaty/).
    Ale kurde teraz każecie mi jeszcze sztucznie machać telefonem przy
    wpisywaniu pinu? Co raz bardziej boję się tego świata..

  33. […] 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 […]

  34. […] w pomieszczeniu z routerem. I na koniec klasyka ataków side-channelowych: keylogger na podstawie odczytów akceleratora z telefonu leżącego obok klawiatury oraz podsłuchiwanie wydruków mikrofonem skierowanym w […]

  35. […] nie nowość. Tę technikę przewidywania naciskanych klawiszy opisywaliśmy już na przykładzie odczytów z akcelerometru smartphona. Na szczęście do ich przeprowadzenia potrzebny jest dostęp do urządzenia (smartphonu lub […]

Twój komentarz

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

RSS dla komentarzy: