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:
· 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.
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.
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.


No hay comentarios:
Publicar un comentario