¡Hola a todos! Especialmente para los estudiantes del curso hemos preparado la traducción de las preguntas frecuentes oficiales del proyecto SELinux. Creemos que esta traducción puede ser útil no solo para los estudiantes, por lo que la compartimos con ustedes.

Hemos intentado responder algunas de las preguntas más frecuentes sobre el proyecto SELinux. Actualmente, las preguntas se dividen en dos categorías principales. Todas las preguntas y respuestas se encuentran .
Reseña
Reseña
- ¿Qué es Linux con seguridad mejorada?
Linux con seguridad mejorada (SELinux — Security-enhanced Linux) es una implementación de referencia de la arquitectura de seguridad Flask para un control de acceso obligatorio flexible. Fue creado para demostrar la utilidad de mecanismos flexibles de control de acceso obligatorio y cómo tales mecanismos pueden ser incorporados en un sistema operativo. La arquitectura Flask luego se integró en Linux y se portó a varios otros sistemas, incluyendo el sistema operativo Solaris, el sistema operativo FreeBSD y el núcleo Darwin, generando una amplia gama de trabajos relacionados. La arquitectura Flask proporciona soporte general para la aplicación de muchos tipos de políticas de control de acceso obligatorio, incluyendo las basadas en los conceptos de Imposición de Tipo, Control de Acceso Basado en Roles y Seguridad Multinivel. - ¿Qué ofrece Linux con seguridad mejorada que el Linux estándar no puede ofrecer?
El núcleo de Linux con seguridad mejorada establece políticas de control de acceso obligatorio que limitan los programas de usuario y los servidores del sistema a un conjunto mínimo de privilegios que necesitan para realizar su trabajo. Con esta restricción, la capacidad de estos programas de usuario y demonios del sistema de causar daño en caso de compromiso (por ejemplo, debido a un desbordamiento de búfer o una configuración incorrecta) se reduce o se excluye. Este mecanismo de restricción funciona independientemente de los mecanismos tradicionales de control de acceso en Linux. No tiene el concepto de superusuario «root» y no comparte las deficiencias bien conocidas de los mecanismos de protección tradicionales de Linux (por ejemplo, la dependencia de archivos binarios setuid/setgid).
La seguridad de un sistema Linux no modificado depende de la corrección del kernel, de todas las aplicaciones privilegiadas y de cada una de sus configuraciones. Un problema en cualquiera de estas áreas puede comprometer todo el sistema. Por el contrario, la seguridad de un sistema modificado basado en un kernel de Linux con seguridad mejorada depende, sobre todo, de la corrección del kernel y de la configuración de su política de seguridad. Aunque los problemas de corrección o configuración de las aplicaciones pueden permitir una limitación de la compromisión de programas de usuarios individuales y demonios del sistema, no representan una amenaza de seguridad para otros programas de usuarios y demonios del sistema o para la seguridad del sistema en su conjunto. - ¿Para qué sirve?
Las nuevas funciones de Linux con seguridad mejorada están destinadas a garantizar la separación de información basada en requisitos de privacidad e integridad. Están diseñadas para prevenir procesos de lectura de datos y programas, falsificación de datos y programas, eludir mecanismos de seguridad de aplicaciones, ejecutar programas no confiables o interferir en otros procesos en violación de la política de seguridad del sistema. También ayudan a limitar el daño potencial que pueden causar programas maliciosos o incorrectos. Además, deben ser útiles para permitir que un solo sistema sea utilizado por usuarios con diferentes permisos de seguridad para acceder a diferentes tipos de información con diversos requisitos de seguridad sin comprometer esos requisitos. - ¿Cómo puedo obtener una copia?
Muchas distribuciones de Linux incluyen soporte para SELinux, ya sea integrado como una función por defecto o como un paquete adicional. El código principal del espacio de usuario de SELinux está disponible en . Los usuarios finales generalmente deben utilizar los paquetes proporcionados por su distribución. - ¿Qué incluye su lanzamiento?
La versión de NSA SELinux incluye el código principal del espacio de usuario de SELinux. El soporte para SELinux ya está incluido en el núcleo principal de Linux 2.6, disponible en kernel.org. El código principal del espacio de usuario de SELinux consiste en una biblioteca para manipular políticas binarias (libsepol), un compilador de políticas (checkpolicy), una biblioteca para aplicaciones que proporcionan seguridad (libselinux), una biblioteca para herramientas de gestión de políticas (libsemanage) y varias utilidades relacionadas con políticas (policycoreutils).
Además del núcleo con soporte para SELinux y el código principal del espacio de usuario, necesitarás una política y algunos paquetes de espacio de usuario corregidos para SELinux para utilizarlo. La política se puede obtener de . - ¿Puedo instalar Linux con seguridad mejorada en un sistema Linux existente?
Sí, puedes instalar solo las modificaciones de SELinux en un sistema Linux existente o puedes instalar una distribución de Linux que ya incluya soporte para SELinux. SELinux consiste en un núcleo Linux con soporte para SELinux, un conjunto principal de bibliotecas y utilidades, algunos paquetes de usuario modificados y la configuración de la política. Para instalarlo en un sistema Linux existente que no tiene soporte para SELinux, debes poder compilar el software, así como tener otros paquetes del sistema necesarios. Si tu distribución de Linux ya incluye soporte para SELinux, no necesitas compilar ni instalar la versión de NSA SELinux. - ¿Qué tan compatible es Linux con seguridad mejorada con Linux sin modificar?
Linux con seguridad mejorada proporciona compatibilidad binaria con las aplicaciones existentes de Linux y con los módulos existentes del núcleo de Linux, pero algunos módulos del núcleo pueden requerir modificaciones para interactuar correctamente con SELinux. Estas dos categorías de compatibilidad se discuten en detalle a continuación:- Compatibilidad de aplicaciones
SELinux proporciona compatibilidad binaria con las aplicaciones existentes. Hemos ampliado las estructuras de datos del núcleo, incorporando nuevos atributos de seguridad y añadiendo nuevas llamadas a la API para aplicaciones que aseguran la seguridad. Sin embargo, no hemos modificado ninguna estructura de datos visible para las aplicaciones ni cambiado la interfaz de ninguna llamada al sistema existente, por lo que las aplicaciones actuales pueden funcionar sin cambios si la política de seguridad permite su ejecución. - Compatibilidad de módulos del núcleo
Inicialmente, SELinux proporcionaba compatibilidad de origen solo para los módulos existentes del núcleo; los módulos debían ser recompilados con los encabezados del núcleo modificados para acomodar los nuevos campos de seguridad añadidos a las estructuras de datos del núcleo. Dado que LSM y SELinux ahora están integrados en el núcleo principal de Linux 2.6, SELinux proporciona ahora compatibilidad binaria con los módulos existentes del núcleo. Sin embargo, algunos módulos del núcleo pueden interactuar mal con SELinux sin modificaciones. Por ejemplo, si un módulo del núcleo asigna directamente y establece un objeto del núcleo sin utilizar las funciones de inicialización estándar, el objeto del núcleo podría carecer de la información de seguridad adecuada. Algunos módulos del núcleo también pueden carecer del control de seguridad adecuado sobre sus operaciones; cualquier llamada existente a funciones del núcleo o funciones de permisos también activará las comprobaciones de permisos de SELinux, pero puede ser necesario un control más detallado o adicional para cumplir con las políticas MAC.
Linux con seguridad mejorada no debería crear problemas de interacción con los sistemas Linux comunes, siempre que todas las operaciones necesarias estén permitidas por la configuración de la política de seguridad.
- Compatibilidad de aplicaciones
- ¿Cuáles son los objetivos del ejemplo de configuración de la política de seguridad?
A un nivel alto, el objetivo es demostrar la flexibilidad y seguridad de los mecanismos de control de acceso forzado, así como proporcionar un sistema funcional simple con mínimas modificaciones en las aplicaciones. A un nivel más bajo, la política tiene una serie de objetivos descritos en la documentación de la política. Estos objetivos incluyen la gestión del acceso a datos no procesados, la protección de la integridad del núcleo, del software del sistema, de la información sobre la configuración del sistema y de los registros del sistema, la limitación del daño potencial que puede resultar del uso de una vulnerabilidad en un proceso que requiere privilegios, la protección de procesos privilegiados contra la ejecución de código malicioso, la protección del rol de administrador y del dominio contra el acceso sin autenticación del usuario, la prevención de la interferencia de los procesos de usuario normales en los procesos del sistema o procesos de administrador, y la protección de usuarios y administradores contra el uso de vulnerabilidades en su navegador por código móvil malicioso. - ¿Por qué se eligió Linux como plataforma base?
Se eligió Linux como plataforma para la implementación de referencia inicial de este trabajo debido a su creciente éxito y entorno de desarrollo abierto. Linux ofrece una excelente oportunidad para demostrar que esta funcionalidad puede ser exitosa en un sistema operativo principal y, al mismo tiempo, contribuir a la seguridad de un sistema ampliamente utilizado. La plataforma Linux también brinda una gran oportunidad para que este trabajo obtenga la visión más amplia posible y, posiblemente, sirva de base para investigaciones adicionales sobre seguridad por otros entusiastas. - ¿Por qué realizaste este trabajo?
La Agencia de Seguridad Nacional es responsable de la investigación y el desarrollo de tecnologías avanzadas necesarias para que la NSA pueda proporcionar soluciones, productos y servicios para garantizar la seguridad de la información de infraestructuras críticas para los intereses de la seguridad nacional de EE. UU.
La creación de un sistema operativo seguro y viable sigue siendo una de las tareas de investigación más importantes. Nuestro objetivo es desarrollar una arquitectura eficaz que proporcione el soporte necesario para la seguridad, ejecute programas de manera en gran medida transparente para el usuario y sea atractiva para los proveedores. Creemos que un paso importante para alcanzar este objetivo es demostrar cómo los mecanismos de control de acceso obligatorio pueden integrarse con éxito en el sistema operativo principal. - ¿Cómo se relaciona esto con investigaciones anteriores del sistema operativo de la NSA?
Investigadores de la Laboratorio Nacional de Seguridad de la Información de la NSA, en colaboración con Secure Computing Corporation (SCC), desarrollaron una arquitectura poderosa y flexible de control de acceso obligatorio basada en Type Enforcement, un mecanismo que fue diseñado por primera vez para el sistema LOCK. La NSA y SCC desarrollaron dos prototipos de esta arquitectura basados en Mach: DTMach y DTOS (). La NSA y SCC luego trabajaron con el grupo de investigación Flux de la Universidad de Utah para trasladar la arquitectura al sistema operacional de investigación Fluke. Durante esta transferencia, la arquitectura fue refinada para proporcionar mejor soporte para políticas de seguridad dinámicas. Esta arquitectura mejorada se denominó Flask (). Ahora la NSA ha integrado la arquitectura Flask en el sistema operativo Linux para transferir esta tecnología a una comunidad más amplia de desarrolladores y usuarios. - ¿Es Linux con mejoras de seguridad un sistema operativo confiable?
La frase «Sistema operativo de confianza» se refiere, por lo general, a un sistema operativo que proporciona un soporte adecuado para la protección en varios niveles y la verificación de la exactitud, cumpliendo así con un conjunto específico de requisitos gubernamentales. Linux con seguridad mejorada incorpora ideas útiles de estos sistemas, pero se enfoca en el control de acceso obligatorio. La tarea original del desarrollo de Linux con seguridad mejorada era crear funcionalidades útiles que proporcionen ventajas significativas en la protección en una amplia gama de entornos reales para demostrar esta tecnología. SELinux por sí solo no es un sistema operativo de confianza, pero proporciona una función crítica de protección: el control de acceso obligatorio, necesario para un sistema operativo de confianza. SELinux se ha integrado en distribuciones de Linux que han sido evaluadas de acuerdo con el Perfil de Protección de Seguridad Etiquetada. Puede encontrar información sobre productos verificados y evaluados en . - ¿Está realmente protegido?
El concepto de sistema protegido incluye múltiples atributos (por ejemplo, seguridad física, seguridad del personal, etc.), y Linux con seguridad mejorada aborda solo un conjunto muy limitado de estos atributos (es decir, los elementos de control de acceso obligatorio en el sistema operativo). En otras palabras, un «sistema protegido» es lo suficientemente seguro como para proteger cierta información en el mundo real de un adversario real del que el propietario y/o el usuario de la información son advertidos. Linux con seguridad mejorada está destinado únicamente a demostrar elementos de control obligatorios en un sistema operativo moderno como Linux, y por lo tanto, es poco probable que, por sí solo, cumpla con alguna definición interesante de sistema protegido. Creemos que la tecnología demostrada en Linux con seguridad mejorada será útil para quienes crean sistemas protegidos. - ¿Qué has hecho para mejorar las garantías?
El objetivo de este proyecto fue añadir controles de acceso obligatorio, realizando cambios mínimos en Linux. Este último objetivo limita significativamente lo que se puede hacer para mejorar la seguridad, por lo que no hubo trabajo dirigido a aumentar la garantía en Linux. Por otro lado, las mejoras se basan en trabajos anteriores sobre el desarrollo de una arquitectura de seguridad con un alto grado de fiabilidad, y la mayoría de estos principios de diseño se han trasladado a un Linux mejorado en términos de seguridad. - ¿Evaluará CCEVS Linux con seguridad mejorada?
Linux con seguridad mejorada por sí mismo no está diseñado para abordar el conjunto completo de problemas de seguridad presentados en el perfil de protección. Aunque sería posible evaluar solo su funcionalidad actual, creemos que dicha evaluación tendría un valor limitado. Sin embargo, hemos colaborado con otros para incluir esta tecnología en distribuciones de Linux que han sido evaluadas, así como en distribuciones que están en evaluación. La información sobre productos verificados y en verificación se puede encontrar en . - ¿Has intentado corregir alguna vulnerabilidad?
No, no hemos buscado ni encontrado vulnerabilidades en el transcurso de nuestro trabajo. Solo hemos realizado lo mínimo necesario para agregar nuestros nuevos mecanismos. - ¿Este sistema está aprobado para uso gubernamental?
Linux con seguridad mejorada no tiene ninguna aprobación especial o adicional para uso gubernamental en comparación con cualquier otra versión de Linux. Linux con seguridad mejorada no tiene un permiso especial o adicional para uso gubernamental sobre cualquier otra versión de Linux. - ¿En qué se diferencia esto de otras iniciativas?
Linux con seguridad mejorada tiene una arquitectura claramente definida para el control de acceso obligatorio flexible, que ha sido experimentalmente comprobada mediante varios sistemas prototipo (DTMach, DTOS, Flask). Se han realizado estudios detallados sobre la capacidad de la arquitectura para soportar una amplia gama de políticas de seguridad y están disponibles en y .
La arquitectura proporciona un control detallado sobre muchas abstracciones del núcleo y servicios que no son controlados por otros sistemas. Algunas de las características distintivas del sistema Linux con seguridad mejorada son:- Separación clara de políticas y derechos de aplicación
- Interfaces de políticas claramente definidas
- Independencia de políticas y lenguajes de políticas específicos
- Independencia de formatos y contenidos de etiquetas de seguridad específicos
- Etiquetas separadas y controles para objetos y servicios del núcleo
- Caché de decisiones de acceso para eficiencia
- Soporte para cambios en las políticas
- Control sobre la inicialización del proceso, herencia y ejecución del programa
- Gestión de sistemas de archivos, directorios, archivos y descriptores de archivos abiertos
- Gestión de sockets, mensajes e interfaces de red
- Control sobre el uso de las 'Capacidades'
- ¿Cuáles son las restricciones de licencia para este sistema?
Todo el código fuente disponible en el sitio , se distribuye bajo las mismas condiciones que los códigos fuente originales. Por ejemplo, parches para el núcleo de Linux y parches para muchas utilidades existentes disponibles aquí, se publican bajo los términos . - ¿Hay control de exportación?
Para Linux con seguridad mejorada, no hay controles de exportación adicionales en comparación con ninguna otra versión de Linux. - ¿Planea la NSA usarla dentro del país?
Por razones obvias, la NSA no comenta sobre el uso operativo. - ¿Cambia la declaración de garantías del 26 de julio de 2002 de Secure Computing Corporation la posición de la NSA sobre que SELinux fue proporcionado bajo la Licencia Pública General GNU?
La posición de la NSA no ha cambiado. La NSA sigue considerando que los términos y condiciones de la Licencia Pública General GNU regulan el uso, copia, distribución y modificación de SELinux. Ver . - ¿Apoya la NSA el software de código abierto?
Las iniciativas de la NSA para mejorar la seguridad del software abarcan tanto software propietario como de código abierto, y hemos utilizado con éxito tanto modelos propietarios como abiertos en nuestra investigación. El trabajo de la NSA para mejorar la seguridad del software está motivado por una simple consideración: utilizar nuestros recursos de la manera más eficiente posible para ofrecer a nuestros clientes las mejores opciones de seguridad en los productos más utilizados. El objetivo del programa de investigación de la NSA es desarrollar avances tecnológicos que se puedan compartir con la comunidad de desarrolladores de software a través de varios mecanismos de transferencia. La NSA no apoya ni promueve ningún producto de software o modelo de negocio en particular. Por el contrario, la NSA contribuye a mejorar la seguridad. - ¿Apoya la NSA a Linux?
Como se mencionó anteriormente, la NSA no apoya ni promueve ningún producto de software o plataforma en particular; la NSA solo contribuye a mejorar la seguridad. La arquitectura Flask, demostrada en la implementación de referencia de SELinux, se ha portado a varios otros sistemas operativos, incluyendo Solaris, FreeBSD y Darwin, se ha adaptado al hipervisor Xen y se aplica a aplicaciones como X Window System, GConf, D-BUS y PostgreSQL. Los conceptos de la arquitectura Flask son ampliamente aplicables a una variedad de sistemas y entornos.
Colaboración
- ¿Cómo planeamos interactuar con la comunidad de Linux?
Tenemos , que servirá como nuestra principal forma de publicar información sobre Linux con seguridad mejorada. Si estás interesado en Linux con seguridad mejorada, te recomendamos unirte a la lista de correo de desarrolladores, revisar el código fuente y proporcionar tus comentarios (o código). Para unirte a la lista de correo de desarrolladores, consulta. . - ¿Quién puede ayudar?
SELinux ahora es apoyado y continuado por la comunidad de desarrolladores de software de código abierto de Linux. - ¿Financia la NSA algún trabajo adicional?
Actualmente, la NSA no está considerando propuestas para trabajo adicional. - ¿Qué tipo de soporte está disponible?
Nuestra intención es resolver preguntas a través de la lista de distribución selinux@tycho.nsa.gov, pero no podremos responder a todas las preguntas relacionadas con un sitio específico. - ¿Quién ayudó? ¿Qué hicieron?
Un prototipo de Linux con seguridad mejorada fue desarrollado por la NSA en colaboración con socios de investigación de NAI Labs, Secure Computing Corporation (SCC) y MITER Corporation. Después del lanzamiento público inicial, hubo muchos otros materiales. . - ¿Cómo puedo aprender más?
Recomendamos que visite nuestras páginas web, lea la documentación y los trabajos de investigación anteriores, así como participar en nuestra lista de distribución selinux@vger.kernel.org
¿Encuentra útil la traducción? ¡Déjenos sus comentarios!
Fuente: habr.com
