„Google Camera“ ir „Samsung Camera“ programos parodė savo fotoaparato ir vaizdo įrašų tikslus trečiųjų šalių programoms, todėl atsirado leidimo apėjimo pažeidžiamumas.
Palyginus su „iOS“, „Android“ programoms suteikia daug būdų sąveikauti tarpusavyje, todėl kūrėjai gali sukurti kai kurias įprasčiausias „Android“ funkcijas, kurių mes tikėjomės ir mėgstame. Tai įmanoma dėl „Android Intent“ sistemos, kuri leidžia bet kuriai programai siųsti bet kokius norimus ketinimus, o imtuvo programoms leidžia kūrybingai valdyti šiuos ketinimus. Tačiau, kaip paaiškėjo, „Google“ fotoaparato programa ir „Samsung“ fotoaparato programa paliko savo fotoaparato ir vaizdo įrašų tikslus trečiosioms šalims. programėlės, kurios palieka atviras duris galimam piktnaudžiavimui apeinant svarbius leidimus, kaip parodė saugumo tyrinėtojai Checkmarx.
Tikslai „Android“. yra apibūdinami kaip "pranešimų objektai, palengvinantys ryšį tarp programos komponentų“, o tai paprasčiau reiškia, kad „Intent“ leidžia programoms siųsti duomenis viena kitai. Pavyzdžiui, kai bandote bendrinti failą iš failų tvarkyklės su tokia programa kaip „WhatsApp“, siunčiate ketinimą į „WhatsApp“, naudodami failus kaip duomenis. Bet kuri programa gali siųsti bet kokius ketinimus, kurių nori, ir priimančioji programa turi nuspręsti, kokių ketinimų ji nori klausytis, apibrėždama tą patį savo manifesto faile. Gaunančioji programa taip pat nusprendžia, kaip reaguoti į tuos ketinimus. Be to, gaunanti programa taip pat gali užtikrinti, kad veiksmai būtų atliekami tik tada, kai ketinimas siunčiamas iš konkrečių į baltąjį sąrašą įtrauktų programų (aiškių ketinimų) arba iš programų, turinčių tam tikrus leidimus (apsaugotas ketinimai). Kaip paaiškėjo, neapsaugotus ketinimus minėtose fotoaparatų programėlėse gali išnaudoti blogi aktoriai.
Checkmarx nustatė, kad programos „Google“ fotoaparatas ir „Samsung Camera“ turėjo neapsaugotus ketinimus suaktyvinti tokius veiksmus, kaip fotografuoti ir įrašyti vaizdo įrašą. Neapsaugotas ketinimas šiame kontekste reiškia, kad gaunanti programa netikrina, ar ketinimą siunčianti programa turi reikiamą leidimą pačiai atlikti veiksmą. android.permission. KAMEROS tokiu atveju. Kameros veikla, com.google.android. GoogleCamera/com.android.camera. Kameros veikla, taip pat buvo eksportuota veikla, o tai reiškia, kad kitos programos galėjo to reikalauti. Dėl neapsaugoto ketinimo ir eksportuotos veiklos atsiranda leidimo apėjimo pažeidžiamumas.
Taigi gali būti sukurta kenkėjiška programėlė, kuri neturėtų leidimo KAMERA, tačiau vis tiek galėtų veikti tam tikrus fotoaparato funkcijas nukreipiant jas per šias fotoaparato programas ir pasinaudojant jų neapsaugotais tikslais bei eksportuotais veikla.
Kaip koncepcijos įrodymas, Checkmarx sukūrė fiktyvų orų programą, kuri neturėjo CAMERA leidimo, tačiau ji buvo su vieninteliu STORAGE leidimu, kuris neatrodė netinkamas orų programai. Be fotoaparato leidimo orų programa galėjo suaktyvinti „Google“ fotoaparatą ir „Samsung“ fotoaparatą, kad būtų galima fotografuoti ir įrašyti vaizdo įrašus. SAUGOJIMO leidimas naudojamas norint pasiekti šią ir visas kitas nuotraukas ir vaizdo įrašus, išsaugotus /DCIM – jis nereikalingas norint spustelėti nuotraukas ir įrašyti vaizdo įrašus.
Blogiausiu atveju šis pažeidžiamumas gali būti išnaudojamas norint, pavyzdžiui, įrašyti vartotojo vaizdo įrašą skambučio metu, nuskaityti vietą informacija iš nuotraukų GPS metaduomenų, jei fotoaparato programoje įgalintas vietos žymėjimas (ir efektyviai gauti dabartinę telefono vietą), ir dar.
Tiesa, vartotojo sąsaja rodo, kad prieiga prie fotoaparato, tačiau tai taip pat galima išspręsti sukuriant artumo jutiklio naudojimas norint įvertinti, kada telefono ekranas yra išjungtas ir tokiu būdu pabėgti nuo vartotojo dėmesį. Kenkėjiška programa taip pat gali nutildyti telefono garsą ir efektyviai nutildyti įrenginį, kai jis fotografuoja arba įrašo vaizdo įrašą.
Checkmarx teigia, kad pažeidžiamumas, pažymėtas CVE-2019-2234, egzistuoja ir kitų išmaniųjų telefonų pardavėjų fotoaparatų programose. Tačiau tyrėjai neįvardijo, kurie pardavėjai ir įrenginiai buvo paveikti, išskyrus „Google“ ir „Samsung“. Jei kitos fotoaparato programos eksportavo veiklą, kad pradėtų fotografuoti ir įrašyti vaizdo įrašus, ir turi neapsaugotų ketinimų, kurie netikrina skambinančiai programai prieinamo leidimo, jie taip pat yra paveiktas.
Kadangi tai nėra „Android“ platformos ar „Linux“ branduolio pažeidžiamumas, jis negali būti įtrauktas ir išleistas kaip dalis Android saugos biuletenis. Pažeidžiamumas buvo ištaisytas „Google“ fotoaparato programoje atnaujinus programą 2019 m. liepos mėn. buvo pataisyta programoje „Samsung Camera“, tačiau nėra konkrečios informacijos apie tai, kada šis naujinimas buvo išleistas išeiti.
Nepataisytose „Google“ fotoaparato versijose galite priversti filmuoti šį pažeidžiamumą, vykdydami šią ADB komandą:
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
Jei naudojate „Google“ fotoaparatą arba „Samsung“ fotoaparatą, įsitikinkite, kad įrenginyje atnaujinate į naujausią fotoaparato programos versiją, išleistą „Play“ parduotuvėje arba, atsižvelgiant į atvejį, per OTA.