In che modo SELinux influenza lo stack di rete del kernel Linux?

7

Sono interessato a come SELinux influenza l'elaborazione dei pacchetti attraverso lo stack di rete. Ho trovato le seguenti domande e risposte:

Criteri di rete in AppArmor / SELinux
Filtraggio dell'accesso alla rete su base utente / gruppo / processo

Il primo sembra implicare che SELinux possa taggare i pacchetti (un po 'come le VLAN di tagging), e l'elaborazione può essere diversa a seconda dei tag associati ai pacchetti. Questo ha senso per me. Tuttavia, la seconda domanda riguarda l'accesso alla rete tramite gruppi di utenti e controlli di accesso. Non è chiaro in base alla risposta e ai commenti se questo è vero o come è possibile.

Durante la lettura del codice sorgente del Kernel Linux (2.6.16, so che è vecchio ma molti dispositivi incorporati usano ancora il 2.6), si incontra il file /security/selinux/hooks.c . Questo ha funzioni come selinux_parse_skb_ipv4, selinux_socket_create, selinux_socket_bind, etc .

Le mie domande sono:

  1. Qualcuno può chiarire la seconda domanda? O rispondendo effettivamente a questa domanda o rispondendo qui.
  2. SELinux influenza lo stack di rete in altri modi?
  3. Con funzioni come quelle sopra elencate, SELinux è usato per creare il concetto astratto di "presa sicura"? Molto simile alla API di Windows fornisce chiamate di funzione a creare "socket sicuri".
posta RoraΖ 11.11.2014 - 20:42
fonte

1 risposta

1

L'accesso può essere controllato per i processi locali che accedono alle risorse di rete locali come ad esempio le porte di rete. Associando le etichette con gli oggetti port e gli userid, i groupid associati ai processi (anche singoli processi, consentendo di specificare se e in che modo le entità associate a determinate etichette possono operare o interagire con entità associate a determinate etichette. l'eccezione che non viene applicato alcun controllo di accesso per i socket di binding alle porte effimere.

In alternativa secmark consente di associare etichette con "non" risorse locali mentre entrano o escono usando la tabella di sicurezza netfilter. Quindi le etichette si applicano solo all'interno del sistema. (ad esempio un pacchetto è senza etichetta, viene associato a un'etichetta usando netfilter e quindi è possibile specificare regole su come le altre entità locali associate a determinate etichette possono operare sui pacchetti etichettati). Questa è una soluzione locale che utilizza netfilter.

Associare realmente etichette con pacchetti mentre attraversano la rete può essere fatto con netlabel o ipsec. Questo è usato per rafforzare la riservatezza su reti "fidate". Ipsec è preferito per questo credo piuttosto che netlabel (sicurezza a più livelli).

SELinux non è generalmente lo strumento ottimale per rafforzare i controlli sulla rete. Altre tecnologie sono generalmente una soluzione migliore. Tranne se vuoi imporre la riservatezza su reti fidate .

Generalmente l'idea è che SELinux ti permette di associare etichette di sicurezza con molte entità, che vanno da singoli gruppi di utenti, o anche singoli processi a risorse locali e non locali come ad esempio file e nodi di rete.

Sono consapevole che questo non risponde alla domanda e che le mie informazioni non sono completamente accurate e non sono certamente esaurienti, ma è qualcosa.

    
risposta data 20.03.2015 - 15:37
fonte

Leggi altre domande sui tag