Cos'è l'apparmor?

90

Ho sentito parlare molto di apparmor, voglio sapere quanto segue:

  • Cos'è l'apparmor?
  • Come funziona l'apparmor?
posta Alvar 05.01.2013 - 03:09
fonte

3 risposte

87

Che cos'è

L'apparmor è un sistema di controllo di accesso obbligatorio (o MAC). Utilizza i miglioramenti al kernel LSM per limitare i programmi a determinate risorse. AppArmor esegue questa operazione con i profili caricati nel kernel all'avvio del sistema. Apparmor ha due tipi di modalità profilo, applicazione e protesta. I profili in modalità di applicazione impongono le regole del profilo e i tentativi di violazione del rapporto in syslog o auditd . I profili in modalità reclamo non applicano alcuna regola del profilo, ma solo i tentativi di violazione del registro.

In Ubuntu Apparmor è installato per impostazione predefinita. Limita le applicazioni ai profili per determinare quali file e permessi a cui un programma ha bisogno di accedere. Alcune applicazioni avranno le loro proprietà e altre possono essere trovate nel pacchetto apparmor-profiles .

Puoi 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.

  

L'apparmor è una struttura di sicurezza che impedisce alle applicazioni di diventare malvagie. Ad esempio: se eseguo Firefox e visito un sito non valido che tenta di installare malware che eliminerà la mia cartella home , Apparmor ha dei limiti su Firefox, sebbene impedisca di fare qualcosa che non desidero (come l'accesso alla mia musica, ai documenti, eccetera). In questo modo, anche se la tua applicazione è compromessa, non si può fare del male.

Come funziona

Il pacchetto apparmor-utils contiene strumenti da riga di comando per la configurazione di Apparmor. Usandolo puoi modificare 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/

  • Puoi controllare lo stato di Apparmor con sudo apparmor_status . Otterrai un elenco di tutti i profili * caricati, tutti i profili in modalità enforce, tutti i profili in modalità reclamo, quali processi sono definiti in enforce / reclamare, ecc.

  • Per inserire un profilo nella modalità lamenta usi sudo aa-complain /path/to/bin , dove /path/to/bin è la cartella programmi bin . Ad esempio, in esecuzione: sudo aa-complain /usr/bin/firefox metterà Firefox in modalità lamentela.

  • Usa sudo aa-enforce /path/to/bin per forzare un profilo di programma.

  • Puoi caricare i profili tutti in modalità di reclamo / applicazione con sudo aa-complain /etc/apparmor.d/* e sudo aa-enforce.d/* rispettivamente.

Per caricare un profilo nel kernel si usa apparmor_parser . Puoi ricaricare i profili utilizzando il parametro -r .

  • Per caricare un profilo usa: cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a , che stampa efficacemente il contenuto di profile.name nel parser di Apparmor.

  • Per ricaricare un profilo, usa il parametro -r , in questo modo: cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r

  • Per ricaricare tutti i profili di Apparmor utilizza: sudo service apparmor reload

Per disabilitare un profilo collega a /etc/apparmor.d/disable/ usando ln come questo: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ quindi esegui: sudo apparmor_parser -R /etc/apparmor.d/profile.name .

NOTA: non confondere apparmor_parser -r con apparmor_parser -R NON SONO LA STESSA COSA!

  • Per riattivare un profilo, rimuovi il collegamento simbolico ad esso in /etc/apparmor.d/disable/ , quindi caricalo usando il parametro -a . sudo rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a

  • Puoi disattivare Apparmor con sudo service apparmor stop e rimuovere il modulo del kernel usando sudo update-rc.d -f apparmor defaults

  • Avvia l'apparmor con sudo service apparmor start e carica i moduli del kernel con sudo update-rc.d apparmor defaults

Profili

I profili sono memorizzati in /etc/apparmor.d/ e prendono il nome dal percorso completo dell'eseguibile profilo, sostituendo '/' con '.'. Ad esempio /etc/apparmor.d/bin.ping è il profilo per ping in /bin .

Ci sono due tipi principali di voci usate nei profili:

  1. Le voci di percorso determinano a quali file può accedere un'applicazione.

  2. Le voci
  3. Capacità determinano i privilegi che un processo può utilizzare.

Osserviamo il profilo per ping , che si trova in etc/apparmor.d/bin.ping , ad 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 posizionare le dichiarazioni relative a più applicazioni in un file comune.

/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 capacità CAP_NET_RAW Posix.1e .

/bin/ping mixr consente all'applicazione di leggere ed eseguire l'accesso al file.

/etc/modules.conf r, Il r fornisce i privilegi di lettura per /etc/modules.conf

NOTA: Dopo aver creato / modificato un profilo, è necessario ricaricare il profilo affinché le modifiche abbiano effetto.

Ecco un elenco di permessi che puoi usare:

  • r - leggi

  • w - scrivi

  • ux - Esecuzione non vincolata

  • Ux - Esecuzione non vincolata - scrub l'ambiente

  • px - Esegui profilo discreto

  • Px - Esegui profilo discreto - scrub l'ambiente

  • ix - Inherit execute

  • m - consenti PROT_EXEC con mmap(2) chiamate

  • l - link

FONTI:

link

link

link

link

    
risposta data Seth 05.01.2013 - 04:17
fonte
6
  

AppArmor è un sistema Mandatory Access Control (MAC) che è un kernel   (LSM) miglioramento per limitare i programmi a un insieme limitato di risorse.   Il modello di sicurezza di AppArmor è di associare gli attributi del controllo di accesso a   programmi piuttosto che agli utenti. Il confinamento di AppArmor è fornito tramite   profili caricati nel kernel, in genere all'avvio. Profili AppArmor   può essere in una delle due modalità: applicazione e protesta. Profili caricati   in modalità di applicazione comporterà l'applicazione della politica definita   nel profilo oltre a riportare i tentativi di violazione della politica (entrambi   tramite syslog o auditd). I profili in modalità reclamo non verranno applicati   criterio, ma segnala i tentativi di violazione delle norme.

     

AppArmor è diverso da altri sistemi MAC su Linux per quello   è basato sul percorso, consente il mix di applicazione e modalità di reclamo   i profili, gli usi includono i file per facilitare lo sviluppo e sono molto più bassi   barriera all'entrata rispetto ad altri sistemi MAC popolari.

     

AppArmor è una tecnologia consolidata vista per la prima volta in Immunix e in seguito   integrato in Ubuntu, Novell / SUSE e Mandriva. AppArmor principale   la funzionalità è nel kernel Linux mainline dalla 2.6.36 in poi;   il lavoro è in corso da AppArmor, Ubuntu e altri sviluppatori per unire   funzionalità aggiuntive di AppArmor nel kernel della linea principale.

Ho pochi altri link utili per te: Wiki.Ubuntu.com Ubuntuforums.org

Guide agli apparmori per Ubuntu 12.04 & amp; Ubuntu 12.10

Spero di aiutarti.

    
risposta data Ten-Coin 05.01.2013 - 04:13
fonte
3

Ecco una citazione dalla wiki di Apparmor :

  

AppArmor è un sistema di sicurezza per applicazioni Linux efficace e facile da usare. AppArmor protegge proattivamente il sistema operativo e le applicazioni da minacce esterne o interne, anche attacchi zero-day, rafforzando il comportamento e impedendo che vengano sfruttate anche le imperfezioni di applicazioni sconosciute. Le policy di sicurezza di AppArmor definiscono completamente quali risorse di sistema possono accedere alle singole applicazioni e con quali privilegi. Un certo numero di politiche predefinite sono incluse in AppArmor e, utilizzando una combinazione di analisi statiche avanzate e strumenti basati sull'apprendimento, le policy di AppArmor per applicazioni anche molto complesse possono essere implementate con successo in poche ore.

    
risposta data Adeline Dale 09.01.2013 - 08:09
fonte

Leggi altre domande sui tag