Todo sistema en una computadora maneja información valiosa para sus propietarios, por lo que la seguridad es un elemento importante para los sistemas operativos, en este resumen se hablará de los siguientes temas: conceptos de seguridad y protección, problemas de la seguridad, políticas, diseño de sistemas operativos seguros, criptografía, clasificación de seguridad, seguridad y protección en sistemas operativos de propósito general, el sistema de seguridad Windows NT y Kerberos.
Conceptos de Seguridad y Protección
La seguridad en un sistema operativo se compone de múltiples facetas: protección ante posibles daños físicos, intrusos, fallos de confidencialidad, etc. El hardware, software y datos son objetos que pueden recibir ataques internos o externos dentro de un sistema y es obligación de un sistema operativo el tener en cuenta este tipo de eventos provenientes del entorno en el que se encuentra para poder tomar acciones para poder mantener un entorno seguro y bien protegido.
La protección consiste en evitar que se haga uso indebido de los recursos que están dentro del ámbito del sistema operativo (Archivos, zonas de memoria, etc.), además es necesario poder comprobar que los recursos solo se usan por usuarios que tienen derecho de acceso a ellos.
La seguridad se basa en tres aspectos de diseño:
· Evitar la pérdida de datos: La cual se puede dar por varias razones, entre las que podemos mencionar las catástrofes naturales o artificiales, errores del hardware o del software, errores humanos. Una solución a este tipo de problemas es mantener una copia o varias de los datos almacenadas en distintos lugares.
· Confidencialidad de los datos: Este tipo de control sobrepasa el ámbito de los sistemas operativos, aunque una parte del problema puede resolverse en su ámbito interno. La solución a este problema puede realizarse estableciendo actuaciones externas al sistema operativo, que pueden ser incluso policiales.
· Controlar acceso de los datos y recursos: Es competencia directa del sistema operativo, es necesario que los usuarios no puedan acceder a archivos a los que no tienen permisos de acceso, se deben ejecutar pruebas de seguridad exhaustivas para todos los elementos del sistema, controles de acceso (Autenticación de usuarios y protección frente a accesos indebidos).
Problemas de Seguridad
Los problemas más frecuentes en un sistema informático se describen a continuación:
· Uso indebido o malicioso de programas: Los problemas de seguridad generados por programas maliciosos son difíciles de detener y corregir, dos formas muy frecuentes de generar fallas de seguridad son los caballos de troya (Crear programa para que haga cosas no autorizadas en el sistema cuando actúa en el entorno adecuado) y las puertas de atrás (Crean un agujero de seguridad a través de un programa privilegiado que lo permite).
· Usuarios inexpertos o descuidados: Potencialmente peligrosos, pueden borrar archivos no deseados, dejar abierto el sistema durante largo tiempo, escribir en papel palabras clave junto a la computadora, etc.
· Usuarios no autorizados: Debe existir un proceso de autenticación de usuarios para evitar usuarios no autorizados, el correo electrónico puede usarse como portador de programas destructores, la existencia de sistemas abiertos da lugar a cuatro tipos de ataques de seguridad: virus, gusanos, rompedores de claves y bombardeos.
· Virus: Programas que se auto replican con fines destructivos o de violación de seguridad, necesitan un programa que los transporte y un agente que los transmita para poder infectar a otros programas. Existen varias formas de insertar un virus, se puede añadir, en medio, al principio o al final del programa, también puede reemplazarse completamente con otro programa y tomar el mismo nombre pero con un comportamiento totalmente distinto. Actualmente son muy comunes las propagaciones de los virus a través de la red, unidos a otros programas. Dos formas de solucionar virus serían las siguientes: Comprobación manual de todos los dispositivos para limpiarlos del virus o creación de un antídoto que también se propague y limpie el virus.
· Gusanos: Es un malware que tiene la propiedad de duplicarse a sí mismo. Los gusanos utilizan las partes automáticas de un sistema operativo que generalmente son invisibles al usuario, a diferencia de un virus un gusano no precisa alterar los archivos de programas, sino que reside en la memoria y se duplica a sí mismo. Los gusanos casi siempre causan problemas en la red (aunque sea simplemente consumiendo ancho de banda), mientras que los virus siempre infectan o corrompen los archivos de la computadora que atacan.
· Rompedores de sistemas de protección: Su objetivo es romper la seguridad de los sistemas (Generalmente remotos) y poder ejecutar accesos ilegales.
· Bombardeo: Ataques masivos a un servidor determinado que provocan que el servidor deniegue sus servicios a los clientes legales, pueden llegar a bloquear el servidor.
Políticas de Seguridad
Las políticas de seguridad son de suma importancia en las organizaciones, existen distintos tipos de políticas de seguridad, a continuación se describen algunas de ellas, aplicándolas al campo de los sistemas operativos:
· Política Militar: De las más populares, por lo que casi nunca se aplica en la actualidad, consiste en la clasificación de todos los objetos con requisitos de seguridad en uno de los cinco niveles siguientes: desclasificado, restringido, confidencial, secreto y alto secreto, califica también a los usuarios según el nivel al que pueden acceder. Solo se permite el acceso a datos sensibles a quien los necesita para hacer su trabajo, de esta forma se puede compartimentar a los usuarios, haciendo más estricta la regla general de acceso.
· Políticas Comerciales: Basándose en la política militar, pero generalmente debilitando las restricciones de seguridad, usan los principios de compartimentación de los usuarios y de clasificación de la información, además definen reglas similares para el trasvase de información entre los distintos niveles y compartimentos.
· Modelos de Seguridad: Es un mecanismo que permite hacer explícita una política de seguridad, existen modelos multinivel (Permiten representar rangos de sensibilidad y reflejar la necesidad de separar rigurosamente los sujetos de los objetos a los que no tienen acceso) y limitada (Se centran en responder formalmente las propiedades que un sistema seguro debe satisfacer, pero introduciendo restricciones a los sistemas de seguridad multinivel).
Diseño de Sistemas Operativos Seguros
Es necesario el diseñarlos para que admitan mecanismos de seguridad desde un principio, Saitzer y Schroeder extrajeron los criterios de diseño siguientes para dotar a un Sistema Operativo de mecanismos de seguridad:
· Diseño abierto (Para disuadir a posibles curiosos)
· Exigir permisos (Política de acceso restrictiva)
· Privilegios mínimos (Asignar únicamente prioridades necesarias)
· Mecanismos económicos (Sencillos, regulares y pequeños)
· Intermediación completa (Comprobación de acceso al sistema)
· Compartición mínima
· Fáciles de usar y aceptables (Aceptado por usuarios y fácil de usar)
· Separación de privilegios (Más de un mecanismo de protección, criptografía)
Técnicas de diseño de sistemas seguros:
· Separación de recursos (Física, temporal, criptográfica y lógica)
· Uso de entornos virtuales (Espacios múltiples de memoria virtual, máquinas virtuales) que proporcionan un entorno virtual completo para cada usuario.
· Diseño por capas: Varios niveles, donde los niveles interiores son los de más confianza
Controles de seguridad externos al sistema operativo:
· 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. 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.
· Controles de programación: El diseño y código del sistema deben ser revisados por un grupo de los diseñadores y programadores, 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 independientes, cualquier cambio o instalación de software en un sistema debe ser aprobado por el administrador.
· Uso de estándares para seguridad: Existen estándares que describen un sistema fiable, algunos controles serían el software viable, sospechar de procesos, registrar accesos, búsquedas periódicas de agujeros de seguridad, etc.
Criptografía
Esta se basa en que el emisor emite un mensaje en claro, que es tratado mediante un cifrador con la ayuda de una clave, para crear un texto cifrado. Este texto cifrado, por medio del canal de comunicación establecido, llega al descifrador que convierte el texto cifrado, apoyándose en otra clave, para obtener el texto en claro original. Las dos claves implicadas en el proceso de cifrado/descifrado pueden ser o no iguales dependiendo del sistema de cifrado utilizado.
Claves
Concepto básico de criptografía, la clave es el patrón que usan los algoritmos de cifrado y descifrado para manipular los mensajes en uno u otro sentido.
Sistemas de cifrado simétrico
Son aquellos que utilizan la misma clave para cifrar y descifrar un documento. El principal problema de seguridad reside en el intercambio de claves entre el emisor y el receptor ya que ambos deben usar la misma clave. Por lo tanto se tiene que buscar también un canal de comunicación que sea seguro para el intercambio de la clave.
Sistemas de cifrado asimétrico
Llamados de clave pública, usa dos claves diferentes, una es la clave pública y se puede enviar a cualquier persona y otra que se llama clave privada, que debe guardarse para que nadie tenga acceso a ella. Para enviar un mensaje, el remitente usa la clave pública del destinatario para cifrar el mensaje. Una vez que lo ha cifrado, solamente con la clave privada del destinatario se puede descifrar, ni siquiera el que ha cifrado el mensaje puede volver a descifrarlo.
Sistemas de cifrado híbridos
Es el sistema de cifrado que usa tanto los sistemas de clave simétrica como el de clave asimétrica. Funciona mediante el cifrado de clave pública para compartir una clave para el cifrado simétrico.
Clasificaciones de Seguridad
Tema ampliamente discutido desde los años 60, la disparidad de criterios existentes se ha ampliado más con la conexión de las computadoras para formar redes que comparten recursos.
Algunas clasificaciones:
· Clasificación del Departamento de Defensa de EEUU: Una de las más populares, especifica cuatro niveles de seguridad, siendo estos:
o Nivel D - Sistemas con protección nula, los cuales no pasan las pruebas de seguridad mínima (Ej.: MS-DOS, Windows 3.1)
o Nivel C - Capacidad discrecional para proteger recursos, la aplicación de los mecanismos de protección dependen del usuario con privilegios sobre los mismos.
§ Control de acceso por dominio
§ Control de acceso individualizado
o Nivel B – Control de acceso obligatorio, los controles de acceso no son discrecionales de los usuarios, sino que deben existir obligatoriamente.
§ Etiquetas de seguridad obligatorias
§ Protección estructurada
§ Dominios de seguridad
o Nivel A – Sistemas certificados
§ Diseño verificado
§ Desarrollo controlado
· Criterio Alemán
· Criterio Canadiense
· ITSEC o Criterio Común
Seguridad y Protección en Sistemas Operativos de Propósito General
Una de las funciones principales del Sistema Operativo es proteger los recursos de cada usuario para que pueda ejecutar en un entorno seguro, donde los mecanismos permiten controlar el acceso a los objetos del sistema permitiéndolo o denegándolo sobre la base de información.
La identificación del usuario (Autenticación)
El objetivo es determinar si un usuario es quien dice ser, existen diversas formas de controles como pedir información que solo él conoce a través de contraseñas, determinar características físicas del usuario o pedir un objeto que use el usuario por ejemplo. El proceso de autenticación pide tres valores:
· Identificación del usuario
· Contraseña
· Domino de protección al que pertenece el usuario
Palabras Clave
Es el método más usado actualmente para identificar a un usuario, consiste en un conjunto de caracteres alfanuméricos y especiales conocido únicamente por el usuario y por el sistema operativo sobre el que se ha llegado a un acuerdo para que sea usado como clave de acceso al sistema. Para la asignación de claves, la palabra clave es fijada por el usuario cuando entra en su cuenta y puede cambiarla en el momento que desee.
· Longitud y formato de claves: La longitud y el formato de las claves han ido cambiando a través del tiempo, principalmente debido a la detección de fallos asociados a las claves usadas en cada momento. Donde para aumentar la complejidad de la clave se puede hacer que el mandato que permite cambiar la contraseña obligue al usuario a meter caracteres no alfanuméricos y que fuerce la existencia de contraseñas de una longitud mínima añadiendo números aleatorios a la palabra antes de cifrarla.
· Almacenamiento de claves: Suelen almacenarse en archivos cifrados, esto con el objetivo de incrementar la seguridad.
· Duración de las claves: Se recomienda que sean válidas únicamente durante un cierto tiempo.
Dominios de Protección
Consiste en la relación entre objetos y derechos de acceso, es un conjunto de pares (Objeto, derechos) donde cada par especifica un objeto y las operaciones que pueden ejecutarse sobre el mismo. Un objeto puede pertenecer a varios dominios de protección simultáneamente.
Matrices de Protección
También denominada Matriz de Acceso, los dominios de protección son las filas de la matriz y los objetos son las columnas de la misma. El elemento (i, j) expresa las operaciones que el dominio i; puede ejecutar sobre el objeto j. Si la matriz de protección está completamente definida, los mecanismos de protección pueden saber siempre qué hacer cuando un proceso de un dominio solicita determinada operación sobre un objeto. Para que se resuelva el problema de complejidad y el número fijo de filas y columnas, la mayoría de los sistemas operativos implementan la matriz mediante estructuras dinámicas de datos (listas) a las que se puede añadir o quitar elementos sin tener que redefinir ninguna estructura de datos del sistema operativo.
Lista de Control de Acceso
Es necesario especificar qué tipos de acceso al objeto son posibles, a cada objeto se le asocia una lista de pares (Dominio, operaciones), cuando un usuario pide acceso a un objeto, se determina a qué dominio de protección pertenece y se recorre la lista para ver si se puede hacer la operación
· Unix: Implementación sencilla por la simplificación de dominios de protección llevada a cabo por el sistema operativo.
· Windows NT: Más sofisticado de Unix, todos los objetos tienen asignados descriptores de seguridad como parte de sus fichas de acceso.
Capacidades
La otra forma posible de implementar la matriz de protección es asociar a cada dominio un conjunto de descriptores que indiquen las operaciones que los componentes de ese dominio pueden efectuar sobre cada objeto del sistema. Estos descriptores se denominan capacidades y son una combinación de una referencia a un objeto con los permisos de acceso al mismo desde el dominio del poseedor de la capacidad.
· Son muy útiles para incluir información de protección para un proceso en particular.
· El mecanismo de comprobación de derecho es muy sencillo.
· Se adaptan muy bien a sistemas distribuidos.
Revocación de Derechos de Acceso
Un problema de las capacidades es que en un sistema dinámico, pueden existir cientos de capacidades concedidas para acceder a un objeto, lo que hace muy difícil su control. El revocar los derechos de acceso para un objeto en particular es complicado, el sistema debe buscar todas las capacidades existentes sobre el mismo para aplicar la revocación de derechos. Las capacidades se pueden implementar, para facilitar la revocación de derechos de acceso como lista de control de acceso en la cual se puede mantener una lista desde cada objeto a todas sus capacidades. Si hay modificaciones, se recorre dicha lista y se aplican, claves de versión donde cada objeto tiene una clave maestra que se copia en cada nueva capacidad sobre ese objeto.
Servicios de Protección y Seguridad
Varían dependiendo de la complejidad del sistema implementado, algunos ejemplos de servicios utilizados en Sistemas Operativos comunes:
Servicios Genéricos
Todos los sistemas operativos crean la información de protección cuando se crea un objeto, a continuación se muestra una descripción de los servicios genéricos:
· Crear un nuevo descriptor de protección, que inicialmente, puede no estar asignado a ningún objeto
· Elimina del sistema un descriptor de protección. No lo hace para aquellos objetos asociados al descriptor que están siendo utilizados o están abiertos.
· Abrir un descriptor de protección creado previamente para usarlo asociado a un objeto.
· Obtener información de protección: Permite a los usuarios conocer la información de protección de un objeto.
· Cambiar información de protección de un objeto, se deben tener permisos de acceso y modificación del descriptor de protección que se desea modificar.
· Fijar información de protección (Máscaras de protección) que se aplican por defecto a los objetos de un dominio, con esto, los usuarios pueden asegurarse de que sus recursos tienen unas características de protección prefijadas, incluso aunque se creen con descriptores de protección vacíos.
Servicios POSIX
Define servicios que se ajustan a los servicios genéricos ya descritos. No existen servicios específicos para crear, destruir o abrir descriptores de protección. A continuación se definen las más frecuentes:
· Comprobación de la posibilidad de acceder a un archivo con unos ciertos privilegios. Verifica si un archivo existe y se usa una función que devuelve cero si así lo es, o -1 en caso de error.
· Cambio de los derechos de acceso a un archivo. Sólo realizable por el dueño de un archivo o el súper usuario.
· Cambio del propietario de un archivo
· Obtención de los identificadores del propietario y su grupo
· Máscara de protección que será aplicada por defecto a todos sus objetos.
Servicios de Win32
Para implantar el modelo de seguridad, Windows NT usa un descriptor de seguridad y listas de control de acceso (ACL), que a su vez incluyen dos tipos de entradas de control de acceso (ACE):
· Las entradas de permisos
· Las entradas de negociaciones
Las más frecuentes:
· Iniciar el descriptor de seguridad de protección por defecto.
· Identificador de un usuario
· Información de seguridad de un archivo y cambio de la información
· Obtención de los identificadores del propietario de su grupo para un archivo
· Cambio de identificadores del propietario de su grupo para un archivo
· Llamadas que permiten iniciar una AOL y añadir entradas de concesión y denegación de accesos.
Sistema de Seguridad de Windows NT
Es una combinación de técnicas que aseguran un nivel de protección consistente contra los accesos no deseados. NT dispone de herramientas de auditoría que permiten conocer nuestros niveles de seguridad.
El modelo de seguridad de Windows NT, incluye los siguientes componentes: Procesos de logon, autoridad de seguridad local, gestor de cuentas de usuario y monitor de referencia de seguridad.
Clasificación de las áreas funcionales:
· Seguridad de red
· Seguridad a nivel de sistema operativo
· Encriptación de datos
Kerberos
Kerberos se basa en criptografía de clave simétrica y requiere un tercero de confianza. Además, existen extensiones del protocolo para poder utilizar criptografía de clave asimétrica. Es un protocolo de autenticación de redes de ordenador que permite a dos computadores en una red insegura demostrar su identidad mutuamente de manera segura. Sus diseñadores se concentraron primeramente en un modelo de cliente-servidor, y brinda autenticación mutua: tanto cliente como servidor verifican la identidad uno del otro. Los mensajes de autenticación están protegidos ataques de Replay.
Graxiias Buena informacion
ResponderEliminarnn
ResponderEliminar