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
L’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
Se 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]