Aplikacije Google Camera i Samsung Camera izložile su svoje Camera i Video namjere aplikacijama trećih strana, što je dovelo do ranjivosti zaobilaženja dopuštenja.
U usporedbi s iOS-om, Android aplikacijama pruža mnoštvo načina međusobne interakcije, omogućujući razvojnim programerima da izgrade neke od uobičajenih značajki Androida koje očekujemo i volimo. To je omogućeno zahvaljujući Androidovom sustavu namjera, koji omogućuje bilo kojoj aplikaciji da pošalje bilo koju namjeru koju želi, a aplikacijama primateljima omogućuje rukovanje tim namjerama na kreativan način. No kako se ispostavilo, aplikacije Google Camera i Samsung Camera ostavile su svoje kamere i video namjere izložene trećim stranama aplikacija, što ostavlja otvorena vrata za potencijalnu zlouporabu zaobilazeći kritična dopuštenja, kao što su pokazali sigurnosni istraživači na Checkmarx.
Namjere na Androidu opisani su kao "objekti za razmjenu poruka koji olakšavaju komunikaciju između komponenti aplikacije", što jednostavnije rečeno znači da Intent aplikacijama omogućuje međusobno slanje podataka. Na primjer, kada pokušate podijeliti datoteku iz upravitelja datoteka s aplikacijom kao što je WhatsApp, šaljete namjeru WhatsAppu s datotekama kao podacima. Svaka aplikacija može poslati bilo koju namjeru koju želi, a na aplikaciji koja prima je da odluči koje namjere želi slušati, definirajući iste u svojoj datoteci manifesta. Aplikacija koja prima također odlučuje kako će reagirati na te namjere. Nadalje, aplikacija koja prima također može osigurati da se radnje izvode samo kada je poslana namjera određene aplikacije s popisa dopuštenih (eksplicitne namjere) ili iz aplikacija koje imaju određena dopuštenja (zaštićene namjere). Kako se pokazalo, nezaštićene namjere u gore spomenutim aplikacijama kamere mogu iskoristiti loši glumci.
Checkmarx otkrili su da su aplikacije Google Camera i Samsung Camera imale nezaštićene namjere pokretanja radnji poput snimanja fotografije i videozapisa. Nezaštićena namjera u ovom kontekstu znači da aplikacija primateljica ne provjerava ima li aplikacija koja šalje namjeru potrebno dopuštenje za poduzimanje same radnje -- android.dopuštenje. FOTOAPARAT u ovom slučaju. Aktivnost kamere, com.google.android. GoogleCamera/com.android.camera. CameraActivity, također je bila izvezena aktivnost, što znači da su je druge aplikacije mogle tražiti. Nezaštićena namjera i izvezena aktivnost stoga dovode do ranjivosti zaobilaženja dopuštenja.
Tako bi se mogla konstruirati zlonamjerna aplikacija koja ne bi imala dopuštenje za KAMERU, ali bi ipak mogla upravljati određenim funkcije kamere usmjeravajući ih kroz ove aplikacije kamere i iskorištavajući njihove nezaštićene namjere i izvozeći aktivnost.
Kao dokaz koncepta, Checkmarx stvorio lažnu aplikaciju za vremensku prognozu koja nije imala dozvolu za KAMERU, ali je došla s jednom dozvolom za POHRANU, onom koja se nije činila neispravnom za aplikaciju za vremensku prognozu. Bez dopuštenja kamere, vremenska aplikacija uspjela je pokrenuti Google Camera i Samsung Camera za snimanje fotografija i videozapisa. Dopuštenje STORAGE dolazi u obzir pri pristupu ovoj, kao i svim drugim fotografijama i videozapisima spremljenim na /DCIM -- nije potrebno za radnje klikanja fotografija i snimanja videozapisa.
U najgorem slučaju, ova se ranjivost može iskoristiti za radnje poput snimanja korisnikovog videa tijekom poziva, struganja lokacije informacije iz GPS metapodataka fotografija ako je označavanje lokacije omogućeno u aplikaciji kamere (i učinkovito dobivanje trenutne lokacije telefona), i više.
Doduše, korisničko sučelje pokazuje da se kameri pristupa, ali to se također može riješiti tako da se napravi korištenje senzora blizine za mjerenje kada je zaslon telefona isključen i na taj način izbjeći korisnikov pažnja. Zlonamjerna aplikacija također može utišati glasnoću telefona i učinkovito utišati uređaj dok snima fotografiju ili video.
Checkmarx tvrdi da ranjivost, označena kao CVE-2019-2234, također postoji u aplikacijama za kameru drugih proizvođača pametnih telefona. No istraživači nisu naveli koji su dobavljači i uređaji pogođeni, osim Googlea i Samsunga. Ako su druge aplikacije kamere izvezle aktivnosti za početak snimanja fotografija i video zapisa, i jesu nezaštićene namjere koje ne provjeravaju dopuštenje dostupno aplikaciji za pozivanje, također su pogođeni.
Budući da ovo nije ranjivost unutar Android platforme ili Linux kernela, ne može se uključiti i razviti kao dio Androidov sigurnosni bilten. Ranjivost je ispravljena u aplikaciji Google Camera putem ažuriranja aplikacije u srpnju 2019., a isto je također popravljeno u aplikaciji Samsung Camera, iako nema konkretnih informacija o tome kada je ovo ažuriranje pokrenuto van.
Na verzijama Google Camera bez zakrpa, možete prisilno snimiti video kroz ovu ranjivost pokretanjem sljedeće ADB naredbe:
adb shell am start-activity -n
com.google.android.GoogleCamera/com.android.camera.CameraActivity --ez
extra_turn_screen_ontrue-aandroid.media.action.VIDEO_CAMERA--ez
android.intent.extra.USE_FRONT_CAMERAtrue
Ako koristite Google Camera ili Samsung Camera, provjerite jeste li ažurirali na najnoviju verziju aplikacije kamere na svom uređaju, uvedenu putem Trgovine Play ili putem OTA-e, ovisno o slučaju.