Aplikacije Google Camera in Samsung Camera sta svoje namene za fotoaparat in video razkrili aplikacijam tretjih oseb, kar je povzročilo ranljivost obvoda dovoljenj.
V primerjavi z iOS ponuja Android aplikacijam veliko načinov za medsebojno interakcijo, kar razvijalcem omogoča, da zgradijo nekatere pogostejše funkcije Androida, ki smo jih pričakovali in oboževali. To je mogoče zaradi Androidovega sistema namena, ki omogoča kateri koli aplikaciji, da pošlje kakršen koli namen, in omogoča aplikacijam prejemnikom, da te namere obravnavajo na kreativen način. Toda kot se je izkazalo, sta aplikaciji Google Camera in aplikaciji Samsung Camera svoje namene kamere in videa pustili izpostavljeni tretjim osebam aplikacij, kar pušča odprta vrata za morebitno zlorabo z obidenjem kritičnih dovoljenj, kot so pokazali varnostni raziskovalci na Checkmarx.
Nameni v sistemu Android so opisani kot "predmeti za sporočanje, ki olajšajo komunikacijo med komponentami aplikacije«, kar preprosteje rečeno pomeni, da Intent aplikacijam omogoča pošiljanje podatkov druga drugi. Na primer, ko poskušate dati datoteko v skupno rabo iz upravitelja datotek v aplikacijo, kot je WhatsApp, pošljete namen WhatsAppu z datotekami kot podatki. Vsaka aplikacija lahko pošlje kateri koli namen, ki ga želi, in prejemna aplikacija se odloči, katere namere želi poslušati, tako da jih definira v svoji datoteki manifesta. Prejemna aplikacija se tudi odloči, kako se bo odzvala na te namere. Poleg tega lahko sprejemna aplikacija tudi zagotovi, da se dejanja izvajajo le, ko je poslana namera določene aplikacije na seznamu dovoljenih (izrecni nameni) ali iz aplikacij, ki imajo določena dovoljenja (zaščiteno namere). Izkazalo se je, da lahko nezaščitene namere v zgoraj omenjenih aplikacijah za kamero izkoristijo slabi akterji.
Checkmarx ugotovili, da imata aplikaciji Google Camera in aplikacija Samsung Camera nezaščitene namene sprožiti dejanja, kot sta fotografiranje in snemanje videa. Nezaščiten namen v tem kontekstu pomeni, da aplikacija, ki prejema, ne preverja, ali ima aplikacija, ki pošilja namen, potrebno dovoljenje za samo izvedbo dejanja -- android.permission. KAMERA v tem primeru. Dejavnost kamere, com.google.android. GoogleCamera/com.android.camera. CameraActivity, je bila tudi izvožena dejavnost, kar pomeni, da so jo lahko zahtevale druge aplikacije. Nezaščiten namen in izvožena dejavnost tako vodita do ranljivosti obvoda dovoljenj.
Tako bi lahko izdelali zlonamerno aplikacijo, ki ne bi imela dovoljenja KAMERA, vendar bi še vedno lahko upravljala določene funkcije kamere tako, da jih usmerite skozi te aplikacije kamere in izkoristite njihove nezaščitene namere ter izvozite dejavnost.
Kot dokaz koncepta, Checkmarx ustvaril navidezno vremensko aplikacijo, ki ni imela dovoljenja CAMERA, vendar je prišla z enim samim dovoljenjem STORAGE, ki ni bilo videti nepravilno za vremensko aplikacijo. Brez dovoljenja kamere je vremenska aplikacija lahko sprožila Google Camera in Samsung Camera za fotografiranje in snemanje videoposnetkov. Dovoljenje STORAGE pride v poštev pri dostopu do tega in tudi do vseh drugih fotografij in videoposnetkov, shranjenih v /DCIM - ni potrebno za dejanja klikanja fotografij in snemanja videoposnetkov.
V najslabšem primeru je mogoče to ranljivost izkoristiti za stvari, kot je snemanje videoposnetka uporabnika med klicem, strganje lokacije informacije iz metapodatkov GPS fotografij, če je v aplikaciji kamere omogočeno označevanje lokacije (in dejansko pridobite trenutno lokacijo telefona), in več.
Resda uporabniški vmesnik kaže, da se do kamere dostopa, vendar je to mogoče rešiti tudi tako, da naredite uporaba senzorja bližine za merjenje, kdaj je zaslon telefona izklopljen, in tako ubežati uporabnikovemu pozornost. Zlonamerna aplikacija bi lahko tudi utišala glasnost telefona in učinkovito utišala napravo, ko ta fotografira ali snema video.
Checkmarx trdi, da ranljivost z oznako CVE-2019-2234 obstaja tudi v aplikacijah za kamere drugih proizvajalcev pametnih telefonov. Toda raziskovalci niso navedli, kateri prodajalci in naprave so bili prizadeti, razen Googla in Samsunga. Če so druge aplikacije kamere izvozile dejavnosti za začetek zajemanja fotografij in snemanja videa, in so nezaščiteni nameni, ki ne preverjajo dovoljenja, ki je na voljo aplikaciji za klicanje, so tudi prizadeti.
Ker to ni ranljivost v platformi Android ali jedru Linuxa, je ni mogoče vključiti in razviti kot del Varnostni bilten za Android. Ranljivost je bila odpravljena v aplikaciji Google Camera s posodobitvijo aplikacije julija 2019, enako pa je tudi je bila popravljena v aplikaciji Samsung Camera, čeprav ni posebnih informacij o tem, kdaj je bila ta posodobitev uvedena ven.
V različicah Google Camera brez popravkov lahko prisilite, da se videoposnetek posname skozi to ranljivost, tako da zaženete naslednji ukaz ADB:
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
Če uporabljate Google Camera ali Samsung Camera, se prepričajte, da ste posodobili na najnovejšo različico aplikacije kamere v vaši napravi, ki je uvedena prek Trgovine Play ali prek OTA, odvisno od primera.