it-swarm.dev

Confronto tra AppArmor e Selinux

Stavo rivedendo diversi confronti tra AppArmor e SELinux che includono:

Da questi articoli concludo che AppArmor è meglio di SELinux basato su AppArmor che è molto meno complesso e la curva di apprendimento molto più breve. Quindi la maggior parte dei confronti è a favore di AppArmor ma come posso dire che AppArmor è più sicuro di SELinux?

66
Ali Ahmad

Questi sistemi di sicurezza forniscono strumenti per isolare le applicazioni l'una dall'altra ... e, a loro volta, isolano un attaccante dal resto del sistema quando un'applicazione è compromessa.

I set di regole di SELinux sono incredibilmente complessi ma con questa complessità hai un maggiore controllo su come i processi sono isolati. Generazione di questi criteri può essere automatizzato . Uno sciopero contro questo sistema di sicurezza è che è molto difficile verificarlo in modo indipendente.

AppArmor (e SMACK) è molto semplice. I profili possono essere scritti a mano da umani o generati usando aa-logprof. AppArmor utilizza il controllo basato sul percorso, rendendo il sistema più trasparente in modo che possa essere verificato in modo indipendente.

44
rook

l'insanitybit link è sul mio sito web. Vorrei solo giustificare la mia opinione qui :)

Se guardi SELinux e Apparmor, sono entrambi forti e deboli allo stesso modo. SELinux è "più forte" in quanto può ottenere un accesso ancora più preciso ai file, ma cosa guadagna un attaccante rispetto al fatto di essere in un profilo apparmor? Sei già significativamente limitato in un profilo apparmor. Quindi, guadagni davvero molto di più con SELinux?

Ciò che guadagni con SELinux (specialmente per la creazione di policy, molto più che auditing - anche se l'audit per consentire è anche doloroso) è una complessità aggiunta. Molto.

Il percorso di minor resistenza in un sandbox Linux, come SELinux o Apparmor, è il kernel . SELinux non fa niente più di Apparmor per proteggere il kernel.

Quindi se un utente malintenzionato vuole intraprendere la stupida strada per problemi di progettazione in Apparmor/SELinux, SELinux è potenzialmente più sicuro - ma presuppone che i profili siano costruito bene e, poiché SELinux è così complesso, in realtà abbiamo visto delle vulnerabilità introdotte con esso.

Se un attaccante è furbo, sceglierà il kernel, bypassando entrambi.

Quindi sono entrambi deboli allo stesso modo, entrambi forti in ogni modo che conta, e uno di questi è MOLTO più semplice.

Ecco.

La metafora del coltellino non funziona, dovrebbe essere ovvio.

26
IBit

AppArmor è più sicuro grazie alla sua semplicità che semplifica la revisione e la convalida dei criteri. È meno probabile che vengano commessi errori, più facili da individuare e un tentativo di backdoor è più difficile da nascondere.

8
evanxsummers

SELinux è sicuramente uno strumento di sicurezza più completo e ambizioso di AppArmor. SELinux è un universo vasto, permea ogni cosa, potenzialmente etichetta ogni oggetto nel sistema ed eleva concettualmente il sistema a un'infrastruttura di sicurezza più sofisticata, ti permette di implementare tutti i principali paradigmi di sicurezza nella teoria del controllo degli accessi; anche

le organizzazioni militari e governative possono usarlo per le loro rigorose esigenze di sicurezza. Con SELinux è possibile implementare MAC ("Controllo dell'accesso obbligatorio"), MLS ("Sicurezza multi-livello", con i modelli Bell-La Padula e Biba), MCS ("Sicurezza multi-categoria"), RBAC ("Basato sui ruoli Controllo degli accessi "), TE (" Applicazione del tipo "). Inoltre, SELinux si basa sul principio deny predefinito.

AppArmor, d'altra parte, consente semplicemente di definire ciò che una singola applicazione può e non può fare, secondo il principio del privilegio minimo ma senza l'implementazione di paradigmi di sicurezza completi.

5
bryn1u

In generale, non si può dire che appArmor sia migliore di SELinux. Questo perché molto dipende da cosa stai proteggendo e da cosa stai proteggendo e dalle capacità e preferenze individuali della persona/delle persone responsabili della manutenzione del sistema.

SELinux ha un maggiore controllo granulare. In alcune situazioni, ciò renderebbe più appropriato AppArmor. D'altra parte, AppArmor è probabilmente sufficientemente potente per la maggior parte degli utenti Linux. Inoltre, molti riferiscono che è più facile da capire e da usare, il che significa che è meno probabile che errori di configurazione causino buchi pericolosi che sono difficili da trovare. D'altra parte, fare in modo che qualcuno che abbia familiarità con SELinux usi AppArmor potrebbe facilmente causare errori di configurazione semplicemente perché non è il sistema che conosce.

Il punto è che devi valutare in base alla situazione specifica e ai set di abilità/preferenze delle persone coinvolte. Entrambi sono buoni sistemi: sta scegliendo lo strumento giusto per la giusta situazione che conta, non quale sia meglio dell'altra.

4
Tim X

Dalla mia esperienza personale con SElinux direi che non ha aggiunto alcuna complessità a GNU + Linux, l'unica cosa che ha fatto e lo considero un vantaggio è portarci la complessità già inerente al sistema operativo, che confonde molti di noi non ha nulla a che fare con il suo paradigma progettuale o la sua implementazione. In confronto con AppArmor (AA), SElinux ha un punto di vista più olistico e astratto per ciò che dovrebbe essere un sistema sicuro in cui AA ha una mentalità contenitore nel pensare alle applicazioni nella misura in cui sono specificati i percorsi dei profili AA per le risorse consentite che non è molto astratto. sì, potrebbe essere più semplice scrivere un profilo per ogni applicazione ma perdi la vista olistica del sistema. Ora praticamente SElinux funziona meglio con Fedora e RHEL in quanto viene pre-distribuito mentre AA funziona meglio su Ubuntu e SUSE, il che significa che sarebbe meglio imparare come usare SElinux nelle distribuzioni precedenti piuttosto che passare attraverso la seccatura di far funzionare AA su di loro e vice versa.

3
sami

punto intero del controllo di accesso obbligatorio è per consentire una configurazione a grana fine. La semplicità è completamente irrilevante a meno che i due non siano uguali su tutti gli altri aspetti. A volte la complessità è ciò che serve per portare a termine il lavoro.

Come succede, SELinux ha una granularità molto migliore, è più maturo, più ampiamente distribuito e secondo la mia opinione soggettiva, è meglio progettato. La tua conclusione è più simile alla cultura pop che a una vera valutazione.

(Concludo che un coltello da burro è meglio di una motosega, basato su un coltello da burro è molto meno complesso e meno pericoloso)

2
Craig

Asserisco coraggiosamente che AppArmor è superiore a SELinux in qualsiasi ambiente in cui viene utilizzato NFS, poiché SELinux non può proteggerlo. AppArmor è anche più facile da usare, ma questa è una chiara differenziazione oggettiva tra di loro.

0
Gaius