Myslím si, že to zdejších diskutérů vidí situaci špatně. Smartphone je zařízení pro masy, které nemají (a nechtějí mít) IT znalosti: pro managery, teenagery, matky v domácnosti, důchodce, prostě pro každého. Takové zařízení by mělo být možné používat stejně snadno, jako hloupý telefon nebo mikrovlnku, jen by toho měl umět víc. Výroky jako "uživatel musí být opatrný" jsou prostě z jiného světa.
Podobně nemá smysl aplikacím podstrkovat falešné seznamy kontaktů apod. Jednak se taková věc složitě administruje, a pak způsobuje nefunkčnost aplikací.
Řešení je přitom vcelku jednoduché: autoři aplikací musejí být k dohledání a musejí za své aplikace odpovídat. Aplikace musí důkladně testovat a schvalovat důvěryhodná autorita. A nejsou od věci ani různé záchranné brzdy v API. Například na WP aplikace nemůže odeslat SMS; nejvýš jí může připravit k odeslání ve standardním dialogu, který pak uživatel potvrdí.
Děláte hloupého, žil jste dlouho mimo civilizaci, nebo opravdu čtete jen Blesk, posloucháte jen Kiss rádio, a v TV sledujete jen seriály?
Např.: http://goo.gl/ikJ8Ut, http://goo.gl/gF5mst, http://goo.gl/inpwwl, http://goo.gl/7XXFST etc etc etc. Pokud víte co je to internetový vyhledávač, tak do něj stačí zadat např. klíčová slova microsoft, nsa, backdoor, prism, tpm a odentrovat.
Podobně nemá smysl aplikacím podstrkovat falešné seznamy kontaktů apod. Jednak se taková věc složitě administruje, a pak způsobuje nefunkčnost aplikací.
Aplikace dostane prázdný seznam kontaktů a evidentně nebude moct hledat, kde bydlí Franta Vomáčka. Co se na tom složitě administruje?
Řešení je přitom vcelku jednoduché
Pokud by to mělo být jednoduché, stačilo by, aby malware musel uživatele upozornit, že chce krást data. Bohužel svět není tak jednoduchý.
autoři aplikací musejí být k dohledání a musejí za své aplikace odpovídat
To chcete udělat jak?
Aplikace musí důkladně testovat a schvalovat důvěryhodná autorita.
A to je kdo?
Google samozřejmě aplikace testuje.
Navíc tohle otestování a schválení není pro malware moc omezující, aplikace celkem snadno může změnit chování i třeba rok po schválení.
A nejsou od věci ani různé záchranné brzdy v API. Například na WP aplikace nemůže odeslat SMS; nejvýš jí může připravit k odeslání ve standardním dialogu, který pak uživatel potvrdí.
Jak ukazuje malware pro Windows s UAC, když předtím aplikace uživateli řekne, že to má odeslat, tak to velká část i odešle. Tímhle totiž neříkáte nic jiného, než že uživatel musí být opatrný ;-)
Složitě se administruje to, že aplikaci na jedné straně povolíte přístup ke kontaktům, a na druhé straně nakonfigurujete, že přístup k těm kontaktům nemá.
Dohledatelnost autorů aplikací je možné zařídit celkem jednoduše: pouze ověřený autor je může umístit do obchodu s aplikacemi. Lze kontrolovat platnost kreditní karty, vyžádat si výpis z obchodního rejstříku, zkontrolovat že firma není anonymní, zkontrolovat kontakty (zavolat na číslo), nechat vývojáře naskenovat pas nebo občanku, zkontrolovat příslušnost dokladu k založené firmě, zkontrolovat jestli není na národním seznamu neplatných dokladů apod. Cílový stav je takový, že autor může být za případný malware dohledán a kriminálně stíhán.
Důvěryhodnou schvalovací autoritou může být například výrobce platformy. Google testuje aplikace velmi nedbale. Například FN-P1 a FN-P2 říká: App requests only the absolute minimum permissions that it needs to support core functionality. App does not request permissions to access sensitive data (such as Contacts or the System Log) or services that can cost the user money (such as the Dialer or SMS), unless related to a core capability of the app. Kdyby Google důsledně testoval byť jen tohle, většina malware by se do Google Play nedostala. Nová verze aplikace samozřejmě musí procházet znovu schvalovacím procesem.
Záchranná brzda v API má smysl. Pokud totiž vše ostatní selže a aplikace začne například posílat placené SMS, je velký rozdíl mezi tím když to na jedné straně dělá na pozadí, a když na druhé straně uživatel uvidí zprávu připravenou k odeslání a sám stiskne tlačítko Send stejně jako u normální SMS.
Složitě se administruje to, že aplikaci na jedné straně povolíte přístup ke kontaktům, a na druhé straně nakonfigurujete, že přístup k těm kontaktům nemá.
Nikoliv, pouze při instalaci zvolíte, že ta aplikace nemá mít ke kontaktům přístup. Aby nespadla (protože autor dost pravděpodobně takovou situaci netestoval), tak jí systém podvrhne prázdný seznam. Jde jen o implementační detail, uživatel nic navíc nastavovat nebude.
Dohledatelnost autorů aplikací je možné zařídit celkem jednoduše: pouze ověřený autor je může umístit do obchodu s aplikacemi. Lze kontrolovat platnost kreditní karty, vyžádat si výpis z obchodního rejstříku, zkontrolovat že firma není anonymní, zkontrolovat kontakty (zavolat na číslo), nechat vývojáře naskenovat pas nebo občanku, zkontrolovat příslušnost dokladu k založené firmě, zkontrolovat jestli není na národním seznamu neplatných dokladů apod. Cílový stav je takový, že autor může být za případný malware dohledán a kriminálně stíhán.
O identity theft jste asi ještě neslyšel, že? Pro založení Google Play účtu už teď potřebujete platnou kreditku. Ale ony i ty ukradené peníze z těch aplikací musí někam jít, nejčastěji na bankovní účty, které se kontrolují velmi podobně. Firmu s vlastníkem, který o ničem neví, s telefonem, který si můžete přes SIP přesměrovat kamkoliv na světě, s kopií občanky/pasu/řidičáku vlastníka a s bankovním účtem s platnou kreditkou jste si mohl snadno koupit na Silk Road. Často to i vyšlo levněji než ready-made firma.
Nová verze aplikace samozřejmě musí procházet znovu schvalovacím procesem.
Ale já nemluvím o nové verzi, mluvím o změně chování schválené verze. Pokud byste chtěl vynucovat oprávnění, jen pokud je nezbytné, tak to stačí skrýt do nějaké aplikace, která běžně stahuje data ze serveru (hra, messanger, lokalizace přes síť, klient pro file sharing, cokoliv, co může potřebovat připojení), a po roce od schválení (nebo třeba po dosažení určitého množství instalací) ji poslat potřebné instrukce.
Záchranná brzda v API má smysl. Pokud totiž vše ostatní selže a aplikace začne například posílat placené SMS, je velký rozdíl mezi tím když to na jedné straně dělá na pozadí, a když na druhé straně uživatel uvidí zprávu připravenou k odeslání a sám stiskne tlačítko Send stejně jako u normální SMS.
Ne, tohle plošně moc smysl nemá, strašně to otravuje při regulérním použití a dost užitečných věcí to i znemožňuje (třeba ovládání telefonu přes SMSky). Nakonec se lidi naučí, že když se tohle stane, tak se klikne na Odeslat, stejně jako se to naučili u UAC, jelikož se to bude dít tak často, že už nebudou kontrolovat, co se vlastně děje. Pokud chcete, aby takovéto zabezpečení mělo nějaký smysl, musí to jít u důvěryhodných aplikací vypnout. Čímž se to dostává zpět k otázkám práv a opatrnosti uživatelů.
pouze při instalaci zvolíte, že ta aplikace nemá mít ke kontaktům přístup - to by ale uživatel musel být schopný rozhodnout, co ta aplikace vlastně potřebuje. Například aplikace typu svítilny používá API foťáku, a může vyžadovat i připojení k netu, aby mohla zobrazovat reklamu, díky které může být zdarma. Jak se v tom má netechnický uživatel vyznat? Řešení je prosté: aplikace řekne co potřebuje, a uživatel to odsouhlasí při instalaci. A někdo za uživatele musí zkontrolovat, jestli aplikace nevyžaduje nesmysly (například svítilna nepotřebuje kontakty).
O identity theft jste asi ještě neslyšel - samozřejmě slyšel. Je na schvalující autoritě, aby to vychytala.
to stačí skrýt do nějaké aplikace - pokud aplikace takové chování umožňuje, je úkolem schvalující autority to odhalit. A když se to nepovede (což by se fakt nemělo stávat), je jejím úkolem aplikaci zablokovat a trestně stíhat autora.
Záchranná brzda v API... moc smysl nemá - pokud aplikace může posílat SMS bez interakce s uživatelem, přicházíte o velkou část ochrany. Uživatel snad dovede skouknout, že při placení jízdenky musí odkliknout tlačítko Send. Výměnou za to je garantováno, že aplikace určitě nepošle tisíc placených SMS denně bez vědomí uživatele. A to za jedno kliknutí navíc snad stojí.
to by ale uživatel musel být schopný rozhodnout, co ta aplikace vlastně potřebuje. Například aplikace typu svítilny používá API foťáku, a může vyžadovat i připojení k netu, aby mohla zobrazovat reklamu, díky které může být zdarma. Jak se v tom má netechnický uživatel vyznat? Řešení je prosté: aplikace řekne co potřebuje, a uživatel to odsouhlasí při instalaci. A někdo za uživatele musí zkontrolovat, jestli aplikace nevyžaduje nesmysly (například svítilna nepotřebuje kontakty).
Například navigace je může chtít, ale vy také můžete chtít jí je nedat. Jak to jen ten iPhone dělá, že svých uživatelů se ptá? :-)
Samozřejmě slyšel. Je na schvalující autoritě, aby to vychytala.
Můžete poradit, jak to má udělat? Banky by taky rády věděly, jak tomu zabránit. A tam nejde o tisíce korun, ale i o stovky milionů.
pokud aplikace takové chování umožňuje, je úkolem schvalující autority to odhalit. A když se to nepovede (což by se fakt nemělo stávat), je jejím úkolem aplikaci zablokovat a trestně stíhat autora.
Stahování dat z internetu, které mění chování aplikace, dělá spousta aplikací a jde o regulérní chování (např. mejlový klient stáhne filtrovací pravidla, kde může být přesměrování, hra stáhne novou položku, která může mít naskriptované chování, aplikace pro koupi SMS jízdenek aktualizuje databázi s telefonními čísly, možností je prakticky neomezeně). Schvalovací autorita asi těžko odhalí, že to může dopadnout i jinak, než bylo schváleno. To by rovnou mohla pro danou aplikaci vyřešit halting problem.
pokud aplikace může posílat SMS bez interakce s uživatelem, přicházíte o velkou část ochrany. Uživatel snad dovede skouknout, že při placení jízdenky musí odkliknout tlačítko Send. Výměnou za to je garantováno, že aplikace určitě nepošle tisíc placených SMS denně bez vědomí uživatele. A to za jedno kliknutí navíc snad stojí.
A bude to k něčemu, když tímto přístupem uživatele akorát naučíte, že na to má kliknout vždy, stejně jako je to naučilo UAC? Navíc takový netechnický uživatel, který nepozná, že svítilna nepotřebuje číst kontakty, asi těžko pozná, že se změnilo telefonní číslo, kam se ta SMS jízdenka posílá.
Většina malwaru dnes neposílá tisíce SMSek, maximálně tak jednotky (aby to nebylo podezřelé a vydržel tam déle) nebo odchytává autorizační SMSky pro internetové bankovnictví. Zato posílá spam, útočí na weby, prolamuje hesla. Zajímalo by mě, jakou má proti tomu Microsoft ochranu v API.