Seda, mida me XDA-s kunagi nägime turvahaavatavuse tõestuseks, on nüüdseks kinnitanud Atlanta Georgia Tehnoloogiainstituudi arvutiteadlased. Meeskond täpsustab, mida nad kutsuvad "kuub ja pistoda" kasutab ära, mis võib võtta üle enamiku Androidi versioonide (sh 7.1.2) kasutajaliidese. Arvestades selle olemust, on seda raske parandada ja ka raske tuvastada.
Cloak and Dagger on ärakasutamine, mis kasutab kasutajaliidese juhtimiseks ära kahte luba, andmata kasutajale võimalust pahatahtlikku tegevust märgata. Rünnak kasutab kahte luba: SYSTEM_ALERT_WINDOW ("joonista peale") ja BIND_ACCESSIBILITY_SERVICE ("a11a"), mida Androidi rakendustes väga sageli kasutatakse.
Meil on kirjeldas seda varem, kuid selle haavatavuse teeb nii teravaks asjaolu, et rakendustele, mis taotlevad SYSTEM_ALERT_WINDOW, antakse see luba automaatselt, kui need installitakse Google Play poe kaudu. Mis puutub ligipääsetavuse teenuse lubamisse, siis pahatahtlik rakendus suudab kasutajat üsna lihtsalt sotsiaalselt suunata seda lubama. Pahatahtliku rakenduse võib isegi seadistada kasutama juurdepääsetavuse teenust pooleldi legitiimsel eesmärgil, näiteks jälgima, millal teatud rakendused on teatud seadete muutmiseks avatud.
Kui need kaks luba on antud, võib esineda palju rünnakuid. PIN-koodide, kahefaktoriliste autentimislubade ja paroolide varastamine või isegi teenuse keelamise rünnakud on kõik võimalikud. Seda tänu ülekatete kombinatsioonile, mis meelitab kasutajat arvama, et nad suhtlevad a seaduslik rakendus ja juurdepääsetavuse teenus, mida kasutatakse teksti pealtkuulamiseks ja puutesisendiks (või selle enda edastamiseks sisend).
Teoreetiliselt mõtlesime sellise haavatavuse kohta paar kuud tagasi, kus me loome kontseptsiooni tõendava rakenduse, mis kasutab SYSTEM_ALERT_WINDOW ja BIND_ACCESSIBILITY_SERVICE, et joonistada XDA Labsi rakenduses parooli sisestamise ekraanile ülekate ja püüda pühkimiseks klahvi sisestus paroolid. See rakendus, mille me ette kujutasime, on automaatse pööramise haldusrakendus, mis kasutaks ülekatet, et joonistada ekraanile nähtamatu kast. juhtida pööramist (mitte nõuda WRITE_SETTINGS, mis tõstaks lippe) ja juurdepääsetavuse teenust, mis võimaldab kasutajal juhtida profiilide automaatset pööramist rakenduses alus. Teoreetiliselt oleks see üks näide rakendusest, mis kasutab "mantli ja pistoda" kasutamist. Ükski meie meeskonnast ei tahtnud aga endaga riskida arendajakontodele, esitades väljakutse Google'i automatiseeritud rakenduste skannimissüsteemidele, et näha, kas meie kontseptsiooni tõestamise ärakasutamine on Plays lubatud Kauplus.
Igal juhul tegid need teadlased selle töö ära ja esitasid katsetaotlused tõestamaks, et nende kahe loa kasutamine võib tõepoolest olla suur turvaprobleem:
Nagu näete, on rünnakud kasutajatele nähtamatud ja võimaldavad seadme üle täielikku kontrolli. Praegu on selle suhtes haavatavad kõik Androidi versioonid alates Android 5.1.1 kuni Android 7.1.2 ära kasutada, arvestades asjaolu, et see kasutab ära kahte luba, mida muidu kasutatakse täiesti legitiimseks eesmärkidel.
Ärge oodake, et selle probleemi õige lahendus teie seadmesse niipea jõuaks, kuigi tuleb märkida, et SYSTEM_ALERT_WINDOW-sse tehtud muudatused Android O-s kõrvaldab selle vea osaliselt, keelates pahatahtlikel rakendustel kogu ekraani täielikult joonistada. Lisaks annab Android O nüüd märguandega märku, kui rakendus joonistab aktiivselt ülekatet. Nende kahe muudatusega on vähem tõenäoline, et pahatahtlik rakendus pääseb ärakasutamisest kui kasutaja on tähelepanelik.
Kuidas kaitsta end Android O-le eelnevates versioonides? Nagu alati, installige ainult usaldusväärsetest allikatest pärit rakendused, mida usaldate. Veenduge, et nende taotletavad load vastavad teie ootustele.
Mis puudutab sadu miljoneid tavakasutajaid Google'i pressiesindaja sõnul Play Store Protect pakub ka vajalikke parandusi, et vältida mantli ja pistoda rünnakuid. Kuidas see täpselt saavutab, on ebaselge, kuid loodetavasti hõlmab see mingil viisil tuvastamist, kui neid kahte luba kasutatakse pahatahtlikult. Ma kahtlen, kas see suudab kõiki selliseid juhtumeid tuvastada, nii et igal juhul on kõige parem jälgida, millised õigused igale installitud rakendusele antakse.