web analytics

Mandatory Access Control AppArmor

Dopo avere dato un’occhiata al funzionamento di SELinux, ora ci concentriamo su un altro MAC: AppArmor.

Il funzionamento di questo MAC è basato su profili definiti in file di testo nei quali sono impostati i permessi consentiti e le regole di controllo degli accessi. I profili vengono poi utilizzati per porre limiti su come le applicazioni interagiscono con i file e i processi presenti nel sistema.

Un insieme di profili è disponibile “out-of-the-box” con il sistema operativo, mentre altri possono essere aggiunti o automaticamente dalle applicazioni durante la loro installazione o manualmente dall’amministratore di sistema.

Come utilizzarlo

Come SELinux, AppArmor gestisce i profili in due modalità: enforce e complain. In enforce mode viene dato alle applicazioni il minor numero di permessi possibili, il giusto per consentirne l’esecuzione, mentre in complain mode AppArmor permette alle applicazioni di svolgere azioni limitate, salvando le eventuali “lamentele” scaturite da tali operazioni in un registro (/var/log/kern.log,/var/log/audit/audit.log, e altri registri dentro a /var/log/apparmor).

Questi registri mostrano nelle line contenenti la parola audit gli errori che si sarebbero presentati se il profilo fosse stato eseguito in enforce mode. Tale possibilità permette di testare il comportamento di un’applicazione in complain mode e, in caso di errori, di fixarlo prima di rimetterlo in enforce mode.

Lo stato corrente può essere visualizzato utilizzando:

$ sudo apparmor_status

Apparmor-1L’immagine mostra che i profili /sbin/dhclient, /usr/sbin/, e /usr/sbin/tcpdump sono in enforce mode (su Ubuntu è di default).

Dato che non tutte le applicazioni includono i profili associati, il pacchetto apparmor-profiles  prevede altri profili non forniti dai pacchetti di confinamento. Di default, i profili sono configurati per la complain mode cosicché l’amministratore di sistema possa testarli e decidere quali sono quelli desiderati.

I profili sono semplici file di testo, quindi è possibile visualizzarli e studiarli per creare, in futuro, i propri profili.

I profili sono memorizzati dentro a /etc/apparmor.d. Diamo un’occhiata al contenuto di questa directory prima e dopo l’installazione di apparmor-profiles:

$ ls /etc/apparmor.d

Apparmor-2Se si chiama ancora il comando sudo apparmor_status, comparirà una lista più lunga di profili in complain mode. Si possono effettuare le seguenti operazioni:

Per cambiare la modalità di un profilo da enforce a complain:

$ sudo aa-complain /path/to/file

Il viceversa:

$ sudo aa-enforce /path/to/file

Inoltre:

$ sudo aa-complain /etc/apparmor.d/*

Commuterà tutti i profili interni a /etc/apparmor.d in complain mode, mentre:

$ sudo aa-enforce /etc/apparmor.d/*

Commuterà tutti i profili in enforce mode.
Per disabilitare interamente un profilo bisogna creare un symbolic link nella directory /etc/apparmor.d/disabled:

$ sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/

Per maggiori informazioni,  vi rimandiamo alla wiki ufficiale e alla documentazione fornita da Ubuntu.

[fonte]