Quando vi parliamo di modding e nuove Custom ROM sviluppate per gli smartphone, tendiamo a sottolineare se il SELinux è impostato su “Enforced” o su “Permissive”. Ma che cos’è il SELinux e perché è importante per la sicurezza di Android?
Cos’è il SELinux
Da come lo descrive Red Hat, Security-Enhanced Linux (SELinux) è “un’architettura di sicurezza per i sistemi Linux che offre agli amministratori un livello di controllo superiore sugli utenti autorizzati ad accedere al sistema. Essendo Android basato sul kernel Linux, riveste un’importanza molto elevata nella sicurezza generale”.
In particolare, il SELinux definisce i controlli di accesso per le applicazioni, i processi e i file su un sistema basandosi su criteri di sicurezza. Si tratta di una serie di regole che indicano gli elementi a cui è possibile accedere o meno, in modo da applicare il criterio di accesso consentito.
Che significa SELinux “Permissive”?
La modalità “Permissive” è anche una delle tre modalità in cui opera SELinux, ovvero “Enforcing”, “Permissive” e “Disabled”. Le modalità “Enforcing” e “Permissive” rientrano entrambe nella categoria “Enabled”. In altre parole, significa che ogni volta che SELinux è abilitato, funzionerà in modalità “Enforcing” o in modalità “Permissive”.
La modalità “Enforcing” funziona implementando tutte le regole che sono indicate nella policy di sicurezza di SELinux: blocca l’accesso di tutti gli utenti a cui non è consentito accedere a un particolare oggetto nella politica di sicurezza. Inoltre, questa attività viene anche registrata nel file di registro.
D’altra parte, la modalità “Permissive” non blocca l’accesso indesiderato, ma registra semplicemente tutte queste attività nel file di registro. Pertanto, questa modalità viene utilizzata principalmente per tenere traccia dei bug, controllare e aggiungere nuove regole per i criteri di sicurezza.
Consideriamo ora un esempio di un utente “A” che desidera accedere a una directory denominata “ABC”. È menzionato nella politica di sicurezza che all’utente “A” sarà sempre negato l’accesso alla directory “ABC”. Ora, se il SELinux è abilitato e sta operando in modalità “Enforcing”, ogni volta che l’utente “A” tenterà di accedere alla directory “ABC” l’accesso verrà negato e questo evento verrà registrato nel file di registro. Se invece il SELinux sta operando in modalità “Permissive”, allora l’utente “A” sarà autorizzato ad accedere alla directory “ABC” con la sola registrazione nel file di registro.
Perché è importante non avere un SELinux “Permissive”
Come abbiamo visto, il compito del SELinux è quello di garantire la sicurezza del sistema e che solamente gli utenti amministratori abbiano accesso a determinate parti della memoria.
Nel caso specifico delle Custom ROM, averlo in modalità “Permissive” è come lasciare aperta la porta di casa durante la notte: è un invito a nozze per gli hacker che non avrebbero alcuna difficoltà a impossessarsi dello smartphone e a installare malware, virus e altri codici malevoli.