Risposte:
Apparmor è un sistema di controllo di accesso obbligatorio (o MAC). Utilizza i miglioramenti del kernel LSM per limitare i programmi a determinate risorse. AppArmor lo fa con i profili caricati nel kernel all'avvio del sistema. Apparmor ha due tipi di modalità profilo, applicazione e reclamo. I profili in modalità di imposizione applicano le regole di quel profilo e segnalano tentativi di violazione in syslog
o auditd
. I profili in modalità di reclamo non applicano regole del profilo, ma solo i tentativi di violazione.
In Ubuntu Apparmor è installato di default. Limita le applicazioni ai profili per determinare a quali file e autorizzazioni deve accedere un programma. Alcune applicazioni arriveranno con le loro proprietà e altre possono essere trovate nel apparmor-profiles
pacchetto.
È possibile installare apparmor-profiles
eseguendo sudo apt-get install apparmor-profiles
.
Ho trovato un buon esempio di Apparmor nei forum di Ubuntu che ho riscritto per questo post.
Apparmor è un framework di sicurezza che impedisce alle applicazioni di diventare malvagie. Ad esempio: se
home
eseguo Firefox e visito un sito errato che tenta di installare malware che eliminerà la mia cartella, Apparmor ha dei limiti su Firefox, sebbene gli impedisca di fare tutto ciò che non desidero (come accedere alla mia musica, documenti, ecc.). In questo modo, anche se l'applicazione è compromessa, non è possibile fare alcun danno.
Il apparmor-utils
pacchetto contiene strumenti da riga di comando per la configurazione di Apparmor. Usandolo puoi cambiare la modalità di esecuzione di Apparmor, trovare lo stato di un profilo, creare nuovi profili, ecc.
Questi sono i comandi più comuni:
Nota: i profili sono memorizzati in/etc/apparmor.d/
sudo apparmor_status
. Verrà visualizzato un elenco di tutti i profili * caricati, tutti i profili in modalità di applicazione, tutti i profili in modalità di reclamo, quali processi sono definiti in applicazione / reclamo, ecc. sudo aa-complain /path/to/bin
, dov'è /path/to/bin
la bin
cartella dei programmi . Ad esempio, in esecuzione: sudo aa-complain /usr/bin/firefox
metterà Firefox in modalità di reclamo.sudo aa-enforce /path/to/bin
per imporre un profilo di programmi. sudo aa-complain /etc/apparmor.d/*
e sudo aa-enforce.d/*
rispettivamente. Per caricare un profilo nel kernel dovresti usare apparmor_parser
. È possibile ricaricare i profili utilizzando il -r
parametro
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
che stampa efficacemente il contenuto del profile.name
parser di Apparmor.-r
parametro, in questo modo:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
sudo service apparmor reload
Per disabilitare un profilo che si collega a /etc/apparmor.d/disable/
utilizzare ln
in questo modo: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/
quindi eseguire: sudo apparmor_parser -R /etc/apparmor.d/profile.name
.
Nota: non confondereapparmor_parser -r
conapparmor_parser -R
NON SONO LE STESSE COSE!
/etc/apparmor.d/disable/
e caricarlo utilizzando il -a
parametrosudo rm /etc/apparmor.d/disable/profile.name
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
sudo service apparmor stop
e rimuovere il modulo del kernel usandosudo update-rc.d -f apparmor defaults
sudo service apparmor start
e caricare i moduli del kernel consudo update-rc.d apparmor defaults
I profili sono memorizzati /etc/apparmor.d/
e prendono il nome dal percorso completo dell'eseguibile che profilano, sostituendo '/' con '.'. Ad esempio /etc/apparmor.d/bin.ping
è il profilo di ping
in /bin
.
Esistono due tipi principali di voci utilizzate nei profili:
Le voci del percorso determinano a quali file può accedere un'applicazione.
Le voci di capacità determinano quali privilegi può utilizzare un processo.
Vediamo il profilo di ping
, situato in etc/apparmor.d/bin.ping
, come esempio.
#include <tunables/global>
/bin/ping flags=(complain) {
#include <abstractions/base>
#include <abstractions/consoles>
#include <abstractions/nameservice>
capability net_raw,
capability setuid,
network inet raw,
/bin/ping mixr,
/etc/modules.conf r,
}
#include <tunables/global>
Include il file global
nella directory tunables
, ciò consente di inserire in un file comune le istruzioni relative a più applicazioni.
/bin/ping flags=(complain)
imposta il percorso del programma profilato e imposta la modalità per lamentarsi.
capability net_raw
consente all'applicazione di accedere alla CAP_NET_RAW Posix.1e
funzionalità.
/bin/ping mixr
consente all'applicazione di leggere ed eseguire l'accesso al file.
/etc/modules.conf r,
Il r
dà l'applicazione di lettura privilegi per/etc/modules.conf
Nota: dopo aver creato / modificato un profilo, è necessario ricaricare il profilo per rendere effettive le modifiche.
Ecco un elenco di autorizzazioni che è possibile utilizzare:
r
- leggere w
- Scrivi ux
- Esegui senza vincoli Ux
- Unconstrained Execute - scrub the environment px
- Esegui profilo discreto Px
- Esegui profilo discreto: pulisci l'ambiente ix
- Eredita eseguire m
- consentire PROT_EXEC
con le mmap(2)
chiamate l
- linkAppArmor è un sistema di controllo dell'accesso obbligatorio (MAC) che è un miglioramento del kernel (LSM) per limitare i programmi a un insieme limitato di risorse. Il modello di sicurezza di AppArmor è di associare gli attributi di controllo dell'accesso ai programmi piuttosto che agli utenti. Il confinamento di AppArmor viene fornito tramite profili caricati nel kernel, in genere all'avvio. I profili AppArmor possono essere in una di due modalità: applicazione e reclamo. I profili caricati in modalità di imposizione comporteranno l'applicazione della politica definita nel profilo, nonché i tentativi di violazione della politica di segnalazione (tramite syslog o auditd). I profili in modalità di reclamo non applicheranno la politica ma segnaleranno invece i tentativi di violazione della politica.
AppArmor è diverso da alcuni altri sistemi MAC su Linux in quanto è basato sul percorso, consente la miscelazione di profili di modalità di reclamo e di imposizione, usa i file include per facilitare lo sviluppo e ha una barriera molto più bassa all'ingresso rispetto ad altri sistemi MAC popolari.
AppArmor è una tecnologia consolidata vista per la prima volta in Immunix e successivamente integrata in Ubuntu, Novell / SUSE e Mandriva. La funzionalità Core AppArmor è nel kernel principale di Linux dalla 2.6.36 in poi; AppArmor, Ubuntu e altri sviluppatori stanno lavorando per unire le funzionalità AppArmor aggiuntive nel kernel mainline.
Ho alcuni link più utili a te: Wiki.Ubuntu.com Ubuntuforums.org
Guide Apparmor per Ubuntu 12.04 e Ubuntu 12.10
Spero che ti possa aiutare.
Ecco una citazione dal wiki di Apparmor :
AppArmor è un sistema di sicurezza delle applicazioni Linux efficace e facile da usare. AppArmor protegge in modo proattivo il sistema operativo e le applicazioni da minacce esterne o interne, anche dagli attacchi zero-day, applicando un buon comportamento e impedendo lo sfruttamento anche di difetti di applicazioni sconosciute. Le politiche di sicurezza di AppArmor definiscono completamente a quali risorse di sistema possono accedere le singole applicazioni e con quali privilegi. Numerosi criteri predefiniti sono inclusi in AppArmor e, utilizzando una combinazione di analisi statica avanzata e strumenti basati sull'apprendimento, i criteri AppArmor per applicazioni anche molto complesse possono essere implementati con successo nel giro di poche ore.