Prostě na úrovni systému chybí správa přístupu ke kritickým funkcím - zasílání SMS, přístup na Internet, volání, přístup ke zprávám apod. Jistě by to šlo vyřešit i pro uživatele bez roota, přes nějaké přístupové heslo. Pak můžeme aplikacím odsouhlasit cokoliv, stejně se k požadované funkci (kterou třeba vůbec nepotřebují k běžné činnosti) nedostanou. Například nyní po mně požaduje aktualizace Google Mapy přístup ke kontaktům, takže aktualizace neprovedena.
Ta aplikace se jmenuje Permission Manager https://play.google.com/store/apps/details?id=com.appaholics.applauncher
Sice to v CM pouzivam, ale je to tak trocha paskvil. Ved ten manifest sluzi hlavne na to, aby bol po nainstalovani a odsuhlaseni beh aplikacie uz konzistentny. Teraz, ked aplikacii napriklad zakazem pristup do addresbooku a ona sa tam potom pokusi pristupit, tak ju system zhodi - ja viem preco a nevadi mi to, ale uz sa to neda pouzit pre nastavenie nejakemu kamosovi, ktory sa detailami zaoberat nemieni.
Mozno by sa to dalo trocha vylepsit tym, ze by sa miesto zhodenia aplikacie dalo aplikacii podstrcit falosne potvrdenie (napriklad falosny telefonny zoznam alebo falosne potvrdenie, ze SMSka bola poslana, aj ked poslana nebola), co by pre mna osobne bolo este lepsie pretoze by mi to dalo viac moznosti, ale zase by to rozhasilo konzistenciu este viac (mohli by zacat "cudesne" problemy s aplikaciami keby si tam uzivatel poklikal nejake nezmysly).
Jadro problemu je ale niekde tam, kde to naznacil autor clanku: aplikacie skratka ziadaju prilis vela opravneni, bez ktorych by sa deklarovana funkcionalita mohla obist. Ja vidim 3 rizikove kategorie: platene mobilne sluzby (volania, SMSky), systemove nastavenia (napriklad ovladanie wifi, mobilneho pripojenia, bluetooth, ...) a funkcie suvisiace so sukromim (nacitanie uctov/autentikacia, citanie logov, pristup k telefonnemu zoznamu, ...).
A tu by naozaj pomohol asi len "tak trocha fasizmus" zo strany Google, kedy by boli zvazene ziadane opravnenia aplikacie vzhladom na deklarovanu funkcionalitu a podla toho by aplikacia bola oznacena bud za kvalitnu (ziadane opravnenia su odovodnene), za mierne rizikovu (nezobrazovala by sa beznemu BFU uzivatelovi, iba tym, co si v nastaveni Play naklikali, ze chcu vidiet aj rizikove aplikacie), alebo by ani do Play aplikacia nebola schvalena (s transparentnym odovodnenim, preco nebola schvalena a nech si to drsnaci instaluju mimo Play, ked maju na to gule - aj ked do tejto kategorie by IMHO mal spadnut aj mobilny Firefox za to hafo opravneni, co vyzaduje).
Plus samozrejme pri znamych menach by mal Play vyzadovat overenie, ze dany publisher pouziva to meno opravnene (eliminacia napriklad toho falosneho flashu) a opat indikacia v Play overeny publisher/neovereny publisher.
Bohuzial, Google sa podla vsetkeho vydal nejakym inym smerom. Napriklad uz nejaky cas sa na webovej verzii Play neda volne zistit, akeze to opravnenia aplikacia vyzaduje (predtym to bolo jednoducho viditelne, teraz sa clovek musi minimalne prihlasit a ist postupom instalacie a az v poslednom kroku pred zaverecnym potvrdenim sa to zobrazi - to fakt nebudem robit pri kazdom citani clanku o nejakej novej aplikacii).
V podstate nejde az tak o povest Androidu ako systemu. Ten je pre mna najlepsi z momentalne dostupnych mobilnych OS. Tu ide hlavne o povest Google Play - a ta je na tom omnoho horsie, nez applovsky Store. A tu povest rozhodne nevylepsia nejake "antiviraky" (skor ju zhorsia - vid Windoze).
Jinak řečeno říkáte, že rozhodovat má Google, protože uživatel je hloupý. Předřečník naopak říká, že rozhodovat má uživatel, protože Google je hloupý.
To je filozofická otázka. Moje, neříkám univerzální, odpověď je:
Vzhledem k tomu, že Google nereviduje deklarovaná oprávnění aplikací, že některé aplikace lze používat jen z části, kdy další oprávnění není třeba, že se uživatel vydává na milost jediné firmě a že máme aplikace instalované mimo repozitář Googlu, tak já hlasuji pro zodpovědnost uživatele.
To trocha mystifikujes. Nikde som nepisal, ze Google ma rozhodovat za uzivatela. Len to, ze ma poskytovat omnoho vacsiu pomoc pre menej znalych (ci uplne neznalych) uzivatelov. Od tych neznalych uzivatelov sa v sucasnosti neda "vyzadovat zodpovednost", pretoze skratka nemaju dost informacii na zodpovedne rozhodovanie sa. To je fakt, dnesny stav.
Mne je viac-menej jedno, ci Google vylepsi informacie pre BFU, lebo ja mam aj dost znalosti a aj dost sebadiscipliny na to, aby som neinstaloval vselijake somariny ktore sa tvaria akoze perfektne, ale vyzaduju hafo opravneni... Ale tym BFU by to rozhodne pomohlo a v konecnom dosledku by som z toho trocha profitoval aj ja, pretoze by tvorcovia aplikacii vdaka takemuto tlaku Google neboli taki pahltni, co sa tych opravneni tyka.
Dokial v Androide existuje moznost instalovat aplikacie mimo Play (toto je prave urobene dobre, standardne vypnute a s varovanim kvoli BFU, ale pokrocily si to moze zapnut), tak si Google moze sprisnovat pravidla v Play kolko chce, mne to vadit nebude. Je to jeho obchod, nech si s nim robi co chce. Ale moj telefon som si kupil a zaplatil ja, tak si tam chcem instalovat co ja chcem. A to na Androide robit mozem, preto mi vyhovuje ako system (aj to som pisal).
Lenze o tom som povodne nehovoril. A ani clanok. Cele je to o tom, ze Google si sice zaviedol nejaky obchod, ale predava tam hned vedla cibule aj cyankali a tvari sa, ze je to uplne v poriadku, lebo na krabicke s cyankali je predsa malym pismom napisane, ze "blokuje primárne bunkove dychanie ireverzibilnou blokadou cytochromoxidazy c", takze je len na zodpovednosti kupujuceho, ci sa rozhodne to kupit alebo nie (a na tej cibuli vedla je zase malym pismom napisane, ze "moze uvolnovat thiopropanal S-oxid" a na kazdom tovare je napisane nieco podobne - a vacsina ludi nerozumie tomu, co to vlastne znamena). No a obcas sa niekto postazuje, ze to vlastne nie je az take perfektne, ze vacsina ludi aj tak vlastne netusi, co im ten tovar moze sposobit a niektori uz si odtial doniesli aj fakt nebezpecne veci, ktore im naozaj ublizili...
Google ma skratka moznosti, ako terajsi stav zlepsit. Naproti tomu je nerealisticke ocakavat, ze sa namiesto toho vzdelaju vsetci uzivatelia.
Inak povedane, stacilo by to spravit tak, ako to ma uz nejaky cas "ten horsi" iOS :) Ked si aplikacia napriklad zaziada prvy krat o pristup ku kontaktom, system sa spyta. Ak uzivatel povie "NIE", system data neposkytne. Pokial developer aplikacie nie je uplne vypatlany, tak to tak na 99% pripadov nespadne. A vsetci su spokojni.
A takto to funguje so vsetkymi citlivymi datami. Cize pre lokalizacne sluzby, kalendar, kontakty, poznamky, fotky v telefone, bluetooth sharing, mikrofon...
Ja viem tak, ze nizka granularita je iba pri pytani si prav. A ked si dve aplikacie pytaju "prava na pristup k SD karte", tak jedna aplikacia v skutocnosti moze ziadat o zapisovanie si na svojom piesocku na SD karte, zatial co druha aplikacia si ziada povolenie k pristupu a manipulacii so vsetkymi udajmi na SD karte.
Takze clovek vie, ze povoluje nejake akcie v danej oblasti, ale uz nevie o ake akcie sa naozaj jedna.
Já bych použil princip manifestů používaných už v Java ME před více než 10 lety. Tam manifest byl pouze deklarací toho co si aplikace může vyžádat a uživatel rozhodl, zda to aplikaci povolí (manifest byl podepsaný, takže nešel dodatečně měnit). Pokud se aplikace pokusila přistoupit třeba k seznamu kontaktů a neměla to v manifestu, tak jí systém ukončil. Jenže tohle by byl konec spousty aplikací na androidu, protože mají hlavní účel špehovat uživatele.
Takhle už ale androidí manifesty fungují, akorát aplikace Google Play to neumí použít. Proti změně je nehlídá podpis (který lze celkem snadno přidat i do aplikace), ale oprávnění souborového systému. Systém ty aplikace neukončuje, ale vyhodí SecurityException, kterou je možné odchytit a pokračovat bez daného práva.
chtelo by to takovy bezpecnostni audit jenze google asi nema chut ani kapacitu to prto milion aplikaci rucne delat, navic ne kazda aplikace se da jasne zaradit jen do jedne skatulky typu "webovy prohloizec - ten ma mit jen to a to ..". Asi to bude chtit udelat nejak automaticky - asi nejaky emulator android telefonu sa snadboxem kde se proste vyzkousej vsechny funkce vcetne easter eggu a funkci co se projevej az po nejakem time-delay (posouvani casu v mobilu) a podivat se o co se ta aplikace vlastne pokousi
ono by stacilo kdyby na playstoru proste byla specialni kolonka ohledne opravneni co aplikace pozaduje kde by uzivatele mohli psat zvlastni varovani .. oni by si to pak autori rozmysleli kvuli strachu ze snizeni ratingu ...
Google Play obsahuje App Check, což je docela schopný anti-malware, AFAIK včetně toho emulátoru. Také proto naprostá většina malware pro Android nepochází z Google Play.
U AppStore je to spíše psychologická bariéra, než že by to byla skutečně účinná ochrana, celkem snadno lze totiž aplikaci nechat projít schválením a až potom ji přes net instruovat, aby začala páchat nepravosti. Právě tak prošel ten zatím jediný malware v AppStoru.
Ono stačí ty ratingy vůbec číst :-)
Přitom tohle už bylo před dávnými časy krásně vyřešeno v S40 od Nokie. U podepsaných aplikací bylo možné u každého oprávnění nastavit, zda se má daná akce automaticky povolit, zda se má mobil vždy předtím zeptat, nebo zda se má vždy zakázat. U nepodepsaných aplikací pak nešlo nastavit automatické povolení.
Sten má zřejmě na mysli dodatečnou revokaci práv, která byla v CyanogenMod 7.x (možná i dřív, ale tu jsem nepoužíval). Fungovalo to tak, že se aplikace nainstalovala a dodatečně se pak dalo v nastavení aplikace jednotlivá práva revokovat. Občas to ale opravdu nefungovalo až tak dobře, protože když aplikace s odmítnutím přístupu nepočítala, tak spadla. Takže často jsem skončil třeba jen u revokace připojení k síti.
U CyanogenMod 9.x to ale úplně zmizelo, z čehož jsem byl docela smutný. Nicméně v 10.1 už je zase schopná náhrada. Jmenuje se to Privacy Guard a funguje tak, že aplikace, pro kterou se povolí, vidí místo citlivých údajů velké houby. A nespadne. Nenašel jsem (málo jsem hledal), co všechno blokuje, ale měly by to určitě být kontakty, SMS a z vlastní zkušenosti vím, že blokuje i polohu. V CyanogenModu 10.2 už by snad měla být možnost nastavovat aplikacím i jednotlivá oprávnění.
Jinak pro rootnuté telefony existuje aplikce XPrivacy, díky které umí telefon lhát úplně o všem, včetně třeba MAC adresy. Podrobný článek zde: http://www.svetandroida.cz/xprivacy-omezte-aplikacim-jejich-prava-201308
Obecně mám za to, že granularita nastavení oprávnění je u Androidu katastrofální (např. takové oprávnění "Čtení stavu a identity telefonu" je fakt chuťovka a přitom to chce každá druhá aplikace).
Osobně na Adnoidu používám Privacy Guard ve spojení s firewallem ve white-list režimu a kde Privacy Guard není, tak mám aktivní alespoň ten firewall. Vedlejším efektem je to, že pokud aplikace nepotřebuje internet ke své funkci, tak pak neukazuje ani reklamy.
Čtení stavu a identity telefonu je zrovna docela jasné oprávnění: aplikace může číst IMEI, jméno operátora, sílu signálu a typ mobilní sítě; typicky to autoči používají pro IMEI, protože neznají Android ID. Horší je to spíš u té SD karty, tam by se hodilo rozlišit obecný přístup na SD kartu, přístup do getExternalFilesDir a přístup do getExternalStoragePublicDirectory.
Ano, tohle oprávnění je jasné a je mi i jasné k čemu ty aplikace IMEI chtějí. Budiž... Ale narážel jsem na to, že toto oprávnění umožňuje zjistit i moje telefonní číslo a zda zrovna telefonuji (a možná i s kým - to nevím a do dokumentace teď koukat nehodlám).
A ano, přístup na SD kartu je další z vypečených oprávnění...
lucky patcher (asi jen pro rootnuty telefony) ma mnoho funkci (jiz z nazvu) a mimo jine ex post umozni po nainstalovani aplikace ji odebirat prava dle libosti - otazka je jestli pak aplikace zustane funkcni - je to dost ruska ruleta metoda pokus omyl tohle jeste muzu odebrat tohle uz ne ...
Musím doporučit XPrivacy. Řeší to přesně ten problém, který mě štval u Androidu odjakživa - aplikace si říkají o oprávnění, která jim nenáleží. Kolikrát je to i kvůli reklamám. Jako WTF - odkdy třeba textový editor potřebuje znát údaje o poloze, android ID a přístup k internetu?
V XPrivacy je několik skupin práv, a každá má i podskupiny - vše se dá dost precizně omezit. Samozřejmě to znamená trochu víc práce při instalaci aplikací, ale stojí to za to.
Sice mě Android svým systémem práv a kontrol, jestli/na co jsou potřeba dost vytáčí, ale jestli máte u Google kontakty, tak zrovna toto nechápu. Vydavatel app Mapy je Google, takže už kontakty stejně má a oprávnění je evidentně na to, aby se dala spustit navigace na adresu kontaktu nebo jí ukázat na mapě. Pokud máte všechny kontakty jen lokálně v telefonu, tak se to dá pochopit.
Tak v telefone moze byt cast kontaktov (napriklad ta fyzicka adresa, telefonne cislo, datum narodenia), kym u Google budu len mailove adresy (ktore ma tak ci tak)... Adresar to vie spojit a ukaze ti to ako jeden kontakt, aj ked cast je len vo fone a cast synchronizovana s Google.
No a takisto je tento pristup (mapova aplikacia si zoberie kontakt z adresara) dost zly. Ma to byt opacne, teda: Chcem k niekomu ist, otvorim si adresar, zobrazim kontakt a pri adrese kliknem na "zobraz polohu na mape" (a potom uz v mapovej aplikacii si mozem vybrat "naviguj na dane miesto" atd). Rozdiel je zasadny: Jednak mi mapova aplikacia nemoze "vykradnut" cely telefonny zoznam a poslat ho "niekam na net". A tiez rozumna adresarova aplikacia posle do mapovej aplikacie len adresu (mesto, ulicu, cislo), ale uz nie cely kontakt (meno cloveka, datum narodenia, telefonne cislo, e-mail, ...).
Takze mapova aplikacia, pytajuca si pristup do kontaktov, je aj u mna zaradena v skatulke "aplikacie ziadajuce prilis vela opravneni".
Podobne napriklad prekladac - naco by mal prekladac citat SMSky (tym padom vsetky SMSky, aj s casmi odoslania a od koho/komu)? Na preklad? Zase zle: Prekladac ma poskytovat sluzbu prekladu a z SMSkovej aplikacie si v pripade potreby kliknem na "preloz text" a do prekladaca poslem len to, co chcem (teda typicky text jednej SMSky).
Mám na Gmailu jednu schránku bez jediného kontaktu, kam si nechávám posílat pouze svinstvo které je vnucované za nějaké registrace. Třeba u her. Jinak tam nechodí nic. A jméno tam mám nesmyslné a jiné údaje tam Velký Bratr Google nevyčenichá. Ať si tam Google počte! Jinak blokuju reklamy na plné pecky, protože nevím proč bych měl dávat při instalaci map nebo nějaké hry instalované aplikaci svolení k použití mých telefonních kontaktů! Viry z velké části vyvíjejí sami vývojáři aplikací a nebo výrobci antivirů!