Make your own free website on Tripod.com

Diseño de sistemas operativos seguros:

Para dotar a un sistema operativo con mecanismos de seguridad es necesario diseñarlo para que admitan estos mecanismos desde el principio. Incluir mecanismos de seguridad dentro de u sistema operativo existente es muy difícil porque las repercusiones de los mecanismos de seguridad afectan prácticamente a todos os elementos del sistema operativo.

Un sistema será confiable si el conjunto de mecanismos de protección, incluyendo hardware, software y firmdware, proporciona una política de seguridad unificada en el sistema. 

Principios de diseño y aspectos de seguridad

Los criterios de diseño para dotar a un sistema operativo con mecanismos de seguridad son:

1. Diseño abierto. El diseño del sistema debería ser público para disuadir a posibles curiosos, recurriendo para ello a la reducción de aspectos ocultos al mínimo.

2. Exigir permisos. Es mejor identificar que objetos son a accesibles y cómo identificar los que no. De esta forma se tienen mecanismos para pedir permisos de acceso a todos 105 objetos. ,

3. Privilegios mínimos. Se les debe conceder únicamente la prioridad necesaria para llevar a cabo su tarea. Este principio permite limitar los daños en casos de ataques maliciosos.

4. Mecanismos económicos. Los mecanismos de protección deberían de ser sencillos, regulares y pequeños. Un sistema así se puede analizar, verificar, probar y diseñar fácilmente. ,

5. Intermediación completa. Cada intento de acceso al sistema debe ser comprobado, tanto los directos como los indirectos. Si se relaja este principio de diseño de forma que no se comprueben todos los accesos a un objeto, es necesario comprobar los permisos de los usuarios de forma periódica y no sólo cuando se accede al recurso por primera vez.

6. Comparición mínima. Los sistemas que usan la separación física o lógica de los usuarios permiten reducir el riesgo de comparición ilegal de objetos. La separación debe aplicarse cuidadosamente cuando se asignan a un usuario objetos libres que antes fueron de otro usuario, parar evitar que se conviertan en canales de comunicación encubiertos.

7. Fáciles de usar y aceptables. El esquema de protección debe ser aceptado por los usuarios y fácil de usar. Si un mecanismo es sencillo, y no es desagradable, existen menos posibilidades de que los usuarios traten de evitarlo.

8. Separación de privilegios. Si se quiere diseñar un sistema seguro, los accesos a cada objeto deben depender de más de un mecanismo de protección.

En general un sistema operativo multiprogramado lleva a cabo las siguientes tareas relacionadas con la seguridad del sistema:.

  • Autenticación de usuarios. En un sistema operativo debe existir un método seguro y fiable de identificar a los usuarios y cada usuario debe tener una identidad única.
  • Asignación de recursos. Los objetos de un 8.0 deben ser asignados a los procesos que los solicitan sin que hay conflictos, violaciones de normas de seguridad, problemas de comparición o fallos de confidencialidad a través de recursos reusables.
  • Control de accesos a los recursos del sistema. El dueño de un objeto tiene un cierto grado de libertad para establecer quién y cómo puede acceder a un objeto.
  • Control de la comparición y la comunicación entre procesos. Para que se puedan aplicar controles de acceso, hay que controlar todos los accesos, incluyendo la comunicación entre procesos y la reutilización de elementos.
  • Protección de datos del sistemade protección en sí mismo. Es necesario tener estos recursos bien protegidos para que el acceso a los mismos no facilite violaciones de seguridad.  

Técnicas de diseña de sistema seguros 

Estas son:

  • Separación de recursos. Hay cuatro formas básicas de separación entre procesos:

1. Física. Los recursos ejecutan en distintas plataformas hardware, dependiendo de sus restricciones de seguridad.

2. Temporal. Ocurre cuando los procesos se ejecutan a distintas horas.

3. Criptográfica. Para asegurar que los datos de distintos usuraos no sean inteligibles para los demás, aunque puedan acceder a dichos datos.

4. Lógica, Los sistemas proporcionan múltiples espacios lógicos de ejecución, asignando uno a cada proceso.  

  • Uso de entornos virtuales. Permiten proporcionar separación lógica de forma natural,ósea, que los entornos virtuales deben apoyarse en recursos reales, p~ro el sistema operativo puede proporcionar a los usuarios los recursos virtuales y controlar el acceso a los mismos. Ejemplos de mecanismos virtuales importantes son. múltiples de memoria virtual y las máquinas virtuales. 
  • Diseño por Capas. Consiste en una técnica de diseño de sistemas que consiste en asemejar la visión de un sistema seguro a una serie de círculos concéntricos donde los niveles interiores son de más confianza y cada capa sólo tiene acceso a las capas adyacentes. Este diseño permite relajar el concepto de núcleo de seguridad, repartiendo sus funciones por las distintas capas del sistema, ocultar datos entre niveles y reducir daños en caso de fallo de seguridad. En cada capa se incluye la funcionalidad a los elementos de esta capa; en caso de un fallo de seguridad solo esos elementos se verán afectados.  

Controles de Seguridad externos al Sistema Operativo 

Los tres tipos de controles externos al sistema operativo que se aplican más frecuentemente para prevenir fallos de seguridad durante las etapas de desarrollo y de prueba de un sistema operativo son:

  1. Equipos de penetración y limitación de acceso

Para tratar de detectar el mayor número de fallos posible es habitual usar equipos de penetración, en donde su misión es llevar a cabo todos los ataques de seguridad sobre un sistema. El conjunto de pruebas de seguridad debe ser complejo y riguroso, sobre todo si se trata de sistemas que están conectados en red por la posibilidad de difusión de virus e intento de adquisición de palabras de acceso al sistema mediante programas que descifran dichos códigos (crackers). La complejidad de las comprobaciones y el registro de acceso aumentan en los sistemas conectados a una red; en tal caso la seguridad se enfrenta a múltiples puntos de ejecución y canales de comunicación expuestos, por tal motivo se debe utilizar algún mecanismo de protección como el firewall, que consiste en limitar el acceso a la red interna y solo poder realizarlo a través de una máquina determinada denominada cortafuegos.

  1. Controles de Programación 

Existen métodos para asegurar la calidad de programación en el desarrollo de un sistema operativo:

    • Diseño detallado y contrastado de las tareas a programar: el diseño y código del sistema deben ser revisados por un grupo de los diseñadores y programadores para que el grupo se involucre en la corrección y seguridad del producto para detectar errores de programación, código malicioso, etc.
    • Aplicar el principio de aislamiento a cada componente del sistema: se puede aplicar a los programas encapsulando datos y métodos de un objeto de forma que sólo se puedan acceder por métodos verificados e interfaz definida.
    • Pruebas por parte de probadores independientes no relacionados con los miembros del equipo: importantes para la seguridad del sistema contra los códigos maliciosos por parte de algún programador.
    • Gestión de Configuración: cualquier cambio o instalación de software en un sistema debe ser aprobado por el administrador, este control protege frente amenazas no intencionadas.
  1. Uso de estándares para Seguridad. 

Un Sistema Operativo es un proyecto de programación grande que requiere controles necesarios en su desarrollo. Existen estándares que describen un sistema fiable, como por ejemplo DoD-2167 A, el SSE-CMM y ellSO 9000. .

Controles de seguridad del sistema operativo 

Algunos controles de seguridad que se deben aplicar en el sistema operativo son:

  • Ejecutar software viable: es aquel que ha sido desarrollado y analizado de forma que se puede confiar en que hará lo que se espera. Es la base sobre las que se ejecutan aplicaciones no fiables. Las bibliotecas de interfaz del 8.0. como los generadores de código deben ser fiables.
  • Sospechar de los Procesos: se desarrolló para describir las relaciones entre dos procesos. los sistemas que sospechan se ejecutan como si los otros procesos fueran maliciosos, por lo tanto en todos los módulos se aplica el encapsulamiento y ocultación de información. Una técnica de sospecha es monitorizar los procesos para ver si tiene patrones de ejecución sospechosos.
  • Ejecutar los procesos con confinamiento: técnica utilizada por los 8.0. para reducir los daños en caso de fallos de seguridad o código malicioso. Un proceso confinado tiene limitados los recursos del sistema a los que puede acceder. Es útil para proteger el sistema ante virus ya que si se aplica estrictamente el virus sólo puede dañar el compartimiento al que tiene acceso.
  • Registrar los accesos: se origina una lista de los usuarios que acceden a los objetos del sistema especificando cuándo y cómo se realizan esos accesos. En el registro de accesos se pueden efectuar auditorias periódicas para detectar fallos de seguridad como el uso de cerrojos sobre un archivo para crear un canal encubierto.
  • Buscar periódicamente agujeros de seguridad: el 8.0. debe comprobar que no hay intentos de violación de la seguridad del sistema. Algunas comprobaciones son: palabras clave cortas o sencillas, programas con prioridad indebida, programas no autorizados en directorios del sistema.

 

 

 

Pagina Principal | | ©2005 Universidad Tecnologica de Panama |