stringtranslate.com

Módulos de seguridad de Linux

Los módulos de seguridad de Linux ( LSM ) son un marco que permite que el kernel de Linux admita sin prejuicios una variedad de modelos de seguridad informática . LSM tiene la licencia según los términos de la Licencia pública general GNU y es una parte estándar del kernel de Linux desde Linux 2.6. AppArmor , SELinux , Smack y TOMOYO Linux son los módulos de seguridad actualmente aprobados en el kernel oficial.

Diseño

LSM fue diseñado para responder a todos los requisitos para implementar con éxito un módulo de control de acceso obligatorio , imponiendo al mismo tiempo la menor cantidad de cambios posibles en el kernel de Linux. LSM evita el enfoque de interposición de llamadas al sistema utilizado por Systrace porque no escala a núcleos multiprocesador y está sujeto a ataques TOCTTOU (raza). En cambio, LSM inserta " hooks " (llamadas al módulo) en cada punto del kernel donde una llamada al sistema a nivel de usuario está a punto de resultar con un acceso a un objeto interno importante del kernel como inodos y bloques de control de tareas.

LSM tiene un alcance limitado para resolver el problema del control de acceso , sin imponer un parche de cambio grande y complejo en el núcleo principal. No pretende ser un mecanismo general de " enganche " o " upcall ", ni admite virtualización a nivel de sistema operativo .

El objetivo de control de acceso de LSM está muy estrechamente relacionado con el problema de la auditoría del sistema, pero es sutilmente diferente. La auditoría requiere que se registre cada intento de acceso. LSM no puede ofrecer esto, porque requeriría muchos más ganchos para detectar casos en los que el núcleo " cortocircuita " llamadas al sistema fallidas y devuelve un código de error antes de acercarse a objetos importantes.

El diseño de LSM se describe en el artículo Módulos de seguridad de Linux: soporte de seguridad general para el kernel de Linux [1] presentado en USENIX Security 2002. [2] En la misma conferencia se publicó el artículo Uso de CQUAL para el análisis estático de la ubicación del gancho de autorización [3] que estudió el análisis estático automático del código del kernel para verificar que todos los enlaces necesarios realmente se hayan insertado en el kernel de Linux.

Adopción

Historia

En la Cumbre del Kernel de Linux de 2001, la NSA propuso que SELinux se incluyera en Linux 2.5. [5] Linus Torvalds rechazó SELinux en ese momento, porque observó que hay muchos proyectos de seguridad diferentes en desarrollo y, dado que todos difieren, la comunidad de seguridad aún no ha formado un consenso sobre el modelo de seguridad definitivo. En cambio, Linus encargó a la comunidad de seguridad "convertirlo en un módulo".

En respuesta, Crispin Cowan propuso [6] LSM: una interfaz para el kernel de Linux que proporciona suficientes "enganches" (llamadas ascendentes) desde dentro del kernel de Linux a un módulo cargable para permitir que el módulo aplique controles de acceso obligatorios. El desarrollo de LSM durante los dos años siguientes estuvo a cargo de la comunidad LSM, incluidas contribuciones sustanciales de Immunix Corporation , la NSA , McAfee , IBM , Silicon Graphics y muchos contribuyentes independientes. LSM finalmente fue aceptado en la corriente principal del kernel de Linux y se incluyó como parte estándar de Linux 2.6 en diciembre de 2003.

En 2006, algunos desarrolladores del kernel observaron que SELinux era el único módulo LSM ampliamente utilizado incluido en el árbol de fuentes del kernel de Linux. Se razonó que si solo iba a haber un módulo LSM ampliamente utilizado, entonces la dirección indirecta de LSM es innecesaria, y LSM debería eliminarse y reemplazarse con el propio SELinux. Sin embargo, hay otros módulos LSM mantenidos fuera del árbol del kernel principal ( AppArmor , Linux IntrusionDetection System , FireFlier, CIPSO, Multi ADM, etc.), por lo que este argumento condujo a dos resultados: 1. que los desarrolladores de estos módulos comenzaron a poner esfuerzo para mejorar sus respectivos módulos, y 2. en la Cumbre Kernel de 2006 , Linus afirmó una vez más que LSM se quedaría porque no quiere arbitrar cuál es el mejor modelo de seguridad.

Es probable que LSM permanezca ya que los módulos de seguridad adicionales Smack (versión 2.6.25), TOMOYO Linux (versión 2.6.30, junio de 2009) y AppArmor (versión 2.6.36) fueron aceptados en el kernel principal.

Referencias

  1. ^ "Módulos de seguridad de Linux: soporte de seguridad general para el kernel de Linux". 2002 . Consultado el 3 de febrero de 2007 .
  2. ^ "XI Simposio de seguridad USENIX". 2002 . Consultado el 3 de febrero de 2007 .
  3. ^ "Uso de CQUAL para el análisis estático de la colocación del gancho de autorización". 2002 . Consultado el 3 de febrero de 2007 .
  4. ^ Landlock: control de acceso sin privilegios
  5. ^ Stephen Smalley; Timoteo Fraser; Chris Vance. "Módulos de seguridad de Linux: ganchos de seguridad generales para Linux" . Consultado el 26 de octubre de 2015 .
  6. ^ Crispin Cowan (11 de abril de 2001). "Interfaz del módulo de seguridad de Linux". Lista de correo del kernel de Linux . Consultado el 3 de febrero de 2007 .

enlaces externos