La documentazione di Android su Gruppi di autorizzazioni afferma che
If an app requests a dangerous permission listed in its manifest, and the app already has another dangerous permission in the same permission group, the system immediately grants the permission without any interaction with the user. For example, if an app had previously requested and been granted the READ_CONTACTS permission, and it then requests WRITE_CONTACTS, the system immediately grants that permission.
Non è questo un rischio per la sicurezza? Leggere i contatti in modo che l'app mi permetta di condividere qualcosa con gli amici è meno rischioso che modificare i contatti esistenti, che possono essere usati maliziosamente, ad esempio, per cambiare l'indirizzo email di ogni contatto in qualcosa che assomiglia all'email originale, ma che in realtà porta all'account dell'attaccante, che può continuare a inoltrare lo scambio di e-mail, all'insaputa di entrambe le parti.
La documentazione enfatizza il punto più sotto:
Once again, the system just tells the user what permission groups the app needs, not the individual permissions
Il PHONE gruppo include CALL_PHONE e anche READ_CALL_LOG .
Ancora una volta, un'app di tipo Yelp dovrebbe essere in grado di chiamare un'azienda, oppure un'app di ordinazione può legittimamente effettuare una chiamata al corriere, ma ciò significa che l'app può anche leggere in silenzio i registri delle chiamate dell'utente e inviarli a qualunque adware è incluso in esso, poiché INTERNET è un normale permesso che non richiede il consenso dell'utente. I registri delle chiamate su determinati numeri possono essere usati come base per ricattare l'utente o (probabilmente più comunemente) possono servire come informazioni preziose per gli inserzionisti per capire il profilo demografico dell'utente e il social network.
Vari rapporti hanno mostrato che un Scaglionante numero di app phone home con dati che l'utente non si aspettava. Perché allora i permessi di Android sono così grossolani?
La comodità dell'utente (ovvero non disturbare troppo l'utente, nel sistema di permessi di runtime di Android M) sembra una ragione debole. Le app legittime senza un motivo per leggere il registro delle chiamate, non chiedono il permesso, quindi tutte le scelte di seguito richiederanno all'utente una sola volta, ma avranno risultati di sicurezza diversi:
- "Può questa app effettuare una telefonata" (autorizzazione individuale)
- "Questa app può accedere al telefono, reindirizzare le chiamate in uscita (!), e leggi l'elenco dei tuoi contatti "(permesso di gruppo corrente con parole precise, ma inutilmente spaventoso dato che la maggior parte delle app effettuerà solo chiamate)
- "Consenti a [questa app] di effettuare e gestire chiamate telefoniche" (dicitura per il permesso di gruppo in Android M, inutilmente vago)
Lo stesso per CALENDARIO - il permesso di sola scrittura per creare eventi è relativamente innocuo , ma leggere gli eventi privati dell'utente molto meno. Ecc.
Ci sono buoni motivi per cui le autorizzazioni non devono essere più granulari?