Back

Mapping tra Android Permissions e SELinux


In Android è stato introdotto ormai da tempo il supporto a Mandatory Access Control (MAC) per proteggere le app, estendendo così la precedente protezione che contava solo su Android Permissions (AP) e Discretionary Access Control (DAC).

Per poter usufruire delle sue proprietà di sicurezza addizionali ogni risorsa di Android è associata ad un'etichetta. Idealmente ogni etichetta associata ad un processo dovrebbe possedere il set minimo di permessi necessari al corretto funzionamento del processo (principio del privilegio minimo).

Tuttavia, in Android, tutte le app di terze parti sono associate alla medesima etichetta untrusted_app, alla quale di conseguenza vengono associati tutti i privilegi di cui un'app può necessitare. Un'app normalmente necessita solo di un sottoset di quei privilegi, ma nonostante questo viene associata ad una etichetta molto più permissiva che permette a tutte le app operazioni quali l’invio/ricezione di SMS e chiamate, lo storage di files, l’utilizzo della posizione geografica...

Per impedire alle applicazioni di effettuare operazioni non permesse, subentrano gli strati più alti del controllo: AP e DAC.

Questo è un brutto esempio di defense in-depth, in quanto lo strato superiore risulta più restrittivo di quello inferiore e peraltro viola anche il principio del privilegio minimo.


PREREQUISITI


MATERIALE


PROGETTI DI TESI