¿Cómo afecta SELinux a la pila de redes del Kernel de Linux?

7

Estoy interesado en cómo SELinux efectúa el procesamiento de paquetes a través de la pila de redes. He encontrado las siguientes preguntas y respuestas:

Políticas de red bajo AppArmor / SELinux
Filtrando el acceso a la red en base a un usuario / grupo / proceso

El primero parece implicar que SELinux puede etiquetar paquetes (como el etiquetado de VLAN), y el procesamiento puede diferir dependiendo de las etiquetas asociadas con los paquetes. Esto tiene sentido para mí. Sin embargo, la segunda pregunta es sobre el acceso a la red a través de grupos de usuarios y controles de acceso. No está claro según la respuesta y los comentarios si esto es cierto o cómo es posible.

Al leer el código fuente del Kernel de Linux (2.6.16, sé que su antiguo pero muchos dispositivos integrados todavía usan 2.6), se encuentra con el archivo /security/selinux/hooks.c . Esto tiene funciones como selinux_parse_skb_ipv4, selinux_socket_create, selinux_socket_bind, etc .

Mis preguntas son:

  1. ¿Puede alguien aclarar la segunda pregunta para mí? Ya sea respondiendo esa pregunta o respondiéndola aquí.
  2. ¿Afecta SELinux a la pila de la red de alguna otra manera?
  3. Con funciones como las enumeradas anteriormente, ¿se utiliza SELinux para crear el concepto abstracto de un "socket seguro"? Al igual que la la API de Windows proporciona llamadas de función a crear "sockets seguros".
pregunta RoraΖ 11.11.2014 - 20:42
fuente

1 respuesta

1

El acceso se puede controlar para los procesos locales que acceden a los activos de la red local como, por ejemplo, los puertos de red. Al asociar las etiquetas con los objetos de puerto y los ID de usuario, los groupids asociados con los procesos (incluso los procesos individuales, lo que le permite especificar si las entidades asociadas con determinadas etiquetas pueden operar o interactuar con las entidades asociadas con las etiquetas particulares. Esto es generalmente bastante sólido. la excepción de que no se aplica ningún control de acceso para vincular sockets a puertos efímeros.

Alternativamente, secmark permite asociar etiquetas con activos locales "no" cuando entran o salen usando la tabla de seguridad de netfilter. Así que las etiquetas solo se aplican dentro del sistema. (por ejemplo, un paquete viene sin etiquetar, se asocia con una etiqueta que usa netfilter y luego puede especificar reglas sobre cómo otras entidades locales asociadas con etiquetas particulares pueden operar en los paquetes etiquetados). Esta es una solución local que utiliza netfilter.

La asociación real de etiquetas con paquetes a medida que atraviesan la red se puede hacer con netlabel o ipsec. Esto se utiliza para hacer cumplir la confidencialidad en las redes "confiables". Ipsec es el preferido para esto, creo que en lugar de netlabel (seguridad multinivel).

SELinux generalmente no es la herramienta óptima para imponer controles en la red. Otras tecnologías son generalmente una mejor solución. Excepto si desea imponer la confidencialidad en redes de confianza .

En general, la idea es que SELinux le permite asociar etiquetas de seguridad con muchas entidades, desde grupos de usuarios individuales o incluso procesos individuales a activos locales y no locales como, por ejemplo, archivos y nodos de red.

Soy consciente de que esto no responde a la pregunta y que mi información no es totalmente precisa y, ciertamente, no es exhaustiva, pero es algo.

    
respondido por el joe 20.03.2015 - 15:37
fuente

Lea otras preguntas en las etiquetas