jueves, 30 de septiembre de 2010

Unidad nº4.1: Seguridad, protección y diseño de soluciones


SEGURIDAD y PROTECCION EN SISTEMAS OPERATIVOS DE PROPOSITO GENERAL 

Un sistema operativo puede dar soporte de ejecución a múltiples procesos de múltiples usuarios, que ejecutan de manera concurrente. Por ello, 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 tal como la identificación del usuario, el tipo de recurso, la pertenencia del usuario a cierto grupo de personas, las operaciones que puede ,hacer el usuario o el grupo con cada recurso, etc. 

MECANISMOS Y POLÍTICAS

La función de la protección en un sistema computacional es la de proveer un mecanismo para la aplicación de políticas que gobiernen el uso de los recursos. Estas políticas pueden ser establecidas de varias maneras. Algunas son fijadas durante el diseño del sistema, mientras que otras son formuladas como parte de la administración en la ejecución del sistema. Algunas otras son definidas por usuarios individuales para proteger sus archivos y programas. Un sistema de protección debe tener la flexibilidad para aplicar las políticas que sean declaradas para ello.

Las políticas para el uso de recursos puede variar, dependiendo de la aplicación y pueden estar sujetas a cambios. Por estas razones, la protección no puede ser considerada como un problema que solamente concierne al diseñador de un Sistema Operativo, sino que debe considerarse, como una herramienta para los programadores de aplicaciones, de manera que los recursos creados y soportados por un subsistema de aplicación, puedan ser protegidos contra el mal uso.

Un principio importante es la separación entre política y mecanismo. Los mecanismos determinan como será realizado algo. En contraste, las políticas deciden que es lo que se realizará. Es posible que las políticas cambien de lugar en lugar o de tiempo en tiempo. En el peor de los casos, cada cambio en la política requerirá un cambio en el subyacente mecanismo.

Dominios de protección

Cada proceso opera dentro de su dominio de protección, que indica las operaciones que el proceso puede hacer sobre un determinado conjunto de objetos. La habilidad de un proceso de ejecutar una operación sobre un objeto se denomina derecho (acces right). Un dominio es un conjunto de derechos cada uno de los cuales es un par ordenado <objeto, lista de derechos>
- Un dominio puede estar definido de varias formas:
- Un usuario es un dominio. El conjunto de objetos que pueden ser accedidos dependen de la identidad del usuario.
- Un proceso es un domino. El conjunto de objetos que pueden ser accedidos dependen de la identidad del proceso.
- Un procedimiento es un dominio.

Un sistema computacional es una colección de procesos y objetos. Los objetos involucran tanto  hardware (como CPU, segmentos de memoria, impresoras, etc.) y software (como archivos, programas, etc.). Cada objeto tiene un nombre único que lo diferencia de los demás objetos del sistema y cada una puede ser tener acceso solamente mediante operaciones bien definidas. Los objetos son esencialmente tipos de datos abstractos. Las posibles operaciones que realice un objeto, dependen de él mismo y sus características.
Por ejemplo, un CPU se utiliza solo para ejecución; en los segmentos de memoria se puede leer o escribir; los archivos de datos pueden ser creados, abiertos, escritos, leídos, cerrados y borrados; un archivo de programa puede ser leído, escrito, ejecutado y borrado.
Obviamente, un proceso tendrá permitido tener acceso solamente a aquellos recursos que está autorizado a tener acceso solamente a aquellos recursos que está autorizado a accesar. Además, en un momento dado podrá tener acceso a aquellos recursos que requiera para realizar su tarea. Este requerimiento comúnmente llamado el principio "Need_To_Know" es útil en la limitación de la cantidad de daño que un proceso defectuoso pueda causar al sistema.

MATRICES DE PROTECCIÓN 

La relación entre dominios y objetos se puede definir de forma completa mediante 6ba matriz de protección, también denominada de acceso.El modelo de protección puede ser visto mediante una matriz de acceso. Las filas representan dominios y las columnas representan objetos. Las entradas de la matriz representan el conjunto de derechos para el objeto en cuestión, para determinado dominio.

El elemento (i, j) expresa las operaciones que el dominio i ; puede ejecutar sobre el objeto j. Si la matriz de protección esta 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.
El modelo de matriz de protección, derivado del modelo teórico HRU punto devista conceptual, pero tiene inconvenientes para su implementación:
  • La matriz de un sistema complejo puede ser muy grande y muy dispersa.
  • Una matriz tiene un número fijo de filas (dominios) y columnas (objetos), lo que es muy poco flexible para sistemas cuyo número de dominios u objetos puede cambiar.
Para resolver estos problemas, 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. Para la implementación de la matriz mediante elementos dinámicos, los sistemas operativos usan dos enfoques: 

*Almacenar la matriz por columnas, con una lista por objeto que especifica qué operaciones puede hacer cada dominio sobre ese objeto. La lista resultante se denomina lista de control de acceso (ACL, Acces Control List). 

*Almacenar la matriz por filas, con una lista por dominio que especifique qué operaciones se pueden hacer sobre un objeto cuando se pertenece a ese dominio. La lista resultante se denomina lista de capacidades (capabilities).     

Listas de acceso para objetos (ACL)


Almacena la matriz por columnas. Asocia a cada objeto una lista ordenada de pares <dominio, conjunto_derechos>

- Ventaja: Fácil agrupar dominios
- Problema: Saber para un dominio dado, su conjunto
de <objeto, conjunto_derechos>


Cada columna de la matriz implementa una lista de acceso para cada objeto
         A cada archivo y directorio se le asignan un propietario, un grupo o posiblemente una lista de usuarios y para cada una de estas entidades se asigna una información de control de acceso.
          Un privilegio es el derecho de ejecutar una llamada al sistema o a usar una opción dentro de dicha llamada (abrir un archivo con acceso a escritura).
          A los usuarios se les asigna roles (adoptan roles) basándose en contraseñas  asignadas a los roles.
          Un usuario puede adoptar un rol que activa un privilegio, permitiendo al usuario ejecutar un programa para llevar a cabo una tarea específica.


 Listas de capacidades para dominios

Almacena la matriz por filas. Asocia a cada dominio una lista ordenada
de pares <objeto, conjunto_derechos>

- Cada elemento se denomina capacidad
- La listas de capacidades deben protegerse por el SO
- Cada fila de la matriz se implementa Lista de capacidades para cada dominio
- Una capacidad es un objeto que contiene los derechos de acceso a un objeto
- Una capacidad se representan usualmente como un puntero o dirección
- Posecion de la capacidad habilita el acceso
- Una capacidad generalmente no es accesible por el proceso q ue se ejecuta en el dominio (es un objeto protegido)

Mecanismo llave/cerradura 

Tambien se le dice protección por contraseña.

- Cada objeto tiene una lista de patrones de bits únicos
(cerrojos), y cada dominio otra lista (llaves)
- Un proceso en un dominio puede acceder a un objeto
si tiene una llave que se corresponde con uno de los
cerrojos del objeto

Hay tres clases de elementos para la verificación de autenticidad con los cuales puede establecerse la
identidad de un usuario de un sistema:
·  Algo característico de la persona. Esto incluye huellas dactilares, patrones de voz, fotografías y
firmas.
·  Algo que posee la persona. Esto incluye credenciales, tarjetas de identificación y claves.
·  Algo que sabe la persona. Esto incluye contraseñas y combinaciones de candados.
El esquema más común para la verificación de autenticidad es la simple protección por contraseña
utilizando una matriz de accesos sobre dominios de protección. El usuario escoge una palabra clave, la
memoriza y después la teclea para obtener acceso a un sistema de cómputo. La mayor parte de los
sistemas suprimen la impresión o despliegue de la contraseña mientras se teclea.

Pero la protección por contraseña tambien tiene puntos debilescomo, por ejemplo, cuando las contraseñas son muy faciles como los datos de familia, de esa forma seria muy facil para otros decifrarla, tambien en casos de que sean muy largas el usuario tenderia a anotarlas en algun lado siendo que tambien se podria tomar poseción de dicha contraseña. Y en cuanto a defensa contra esto se hizo  el bloqueo de intentos repetitivos los cuales les da a los usuarios un numero limitado de intentos a escribir la contraseña correcta y en el caso de fallarlas se detecta el intento de adivinar la contraseña.
La penetración de las defensas de un sistema operativo no resulta por fuerza un peligro significativo para
la seguridad. Por ejemplo, supóngase que alguien logra obtener acceso a la lista maestra de
contraseñas de un sistema. En general, esto significaría que el intruso podría obtener acceso a cualquier
información en el sistema. Para lograr que las contraseñas resulten inútiles para un intruso, se puede
usar el ciframiento. Así, la posesión de las contraseñas servirá de poco a menos que la persona cuente
también con la clave de desciframiento. Se recomienda a los usuarios cambiar sus contraseñas con
frecuencia; de este modo, aunque un intruso obtenga una contraseña, ésta podría haber cambiado antes
de que él logre hacer un verdadero daño.


Autenticación y autorización

Una de las mejores maneras de tener protegido un sistema es a travez de la autenticación y la autorización de usuarios.
La autenticación generalmente se da a través de esquemas de contraseñas , las cuales si no cuentan con una política robusta de generación y mantenimiento se vuelven fácilmente vulnerables.

* Se basa en uno o mas de tres aspectos:
     Posesión del Usuario (una llave o tarjeta).
     Conocimiento del Usuario (Contraseña).
     Atributo del usuario (Huella digital, firma).

CONTRASEÑAS:

     Son las más comunes.
     Protegen objetos en el sistema de cómputo, en ausencia de esquemas de protección más complejos.
     Se puede asociar una contraseña para cada recurso.
     Pueden estar asociadas con diferentes derechos de acceso.(Leer, anexar, actualizar).
     Son muy comunes, debido a que son fáciles de entender y usar.
     Dificultad de mantenerlas secretas.
     Se adivinan, se divulgan accidentalmente o se transfieren ilegalmente de un usuario autorizado a uno no autorizado.
     Biometricas: muy segura, pero limitada y costosa
     Basada en tokens: segura pero costosa
     Criptografia: arte de cifrar la información, lo más usado en sistemas distribuidos

* Se adivinan, se divulgan accidentalmente o se transfieren ilegalmente de un usuario autorizado a uno no autorizado.


  Un esquema  de autenticación seguro es kerberos, el cual se utiliza para autenticar el uso de servicios NFS, etc.
  Kerberos se basa en un esquema de boletos entregados para la autenticación y de dos llaves secretas una dada por kerberos  y otra por los usuarios para entrar al sistema.

CONTASEÑAS CIFRADAS

* Sistema Unix hace uso del cifrado para evitar la necesidad de mantener en secreto su lista de contraseñas.
* El sistema contiene una función: Dado un valor x, es fácil calcular el valor de la función f(x) , pero dado un valor f(x), es imposible calcular x.
* Sólo las contraseñas codificadas se almacenan.
* Deficiencia: El sistema ya no tiene control sobre las contraseñas.
* Buena Técnica: Generar contraseña utilizando la primera letra de cada palabra de una frase fácil de recordar, utilizando mayúsculas y minúsculas, insertando números o un signo de puntuación.

CONTRASEÑAS DE USO ÚNICO

* Conjunto de contraseñas pares.
* Un usuario teclea una contraseña, pero cualquier entidad que intercepte y trate de volver a utilizar dicha contraseña fracasa.
* Impiden una autenticación incorrecta debida a una exposición de la contraseña.
* Libro de códigos: Cada contraseña de la lista se utiliza, en orden, una vez, y luego se tacha y se borra.










 
 









 
                                                                                                         

6 comentarios:

  1. Informacion bastante completa, pero me gustaria agregar algo muy basico en comparacion con lo descrito anteriormente.

    Primero que todo para comprender un poco mas sobre a que se refiere " SEGURIDAD y PROTECCION EN SISTEMAS OPERATIVOS ".

    Los mecanismos de seguridad son instrumentos de protección contra amenazas a la seguridad.

    La protección se refiere a un mecanismo para controlar el acceso de programas, procesos o usuarios a los recursos definidos por un sistema de computación.

    _____ Alvaro Paredes _____ Rodrigo Rosas _____

    ResponderEliminar
  2. Bastante buena la explicación tomando en cuenta la carencia de imágenes. La seguridad de una maquina es algo primordial especialmente en la protección de archivos de gran importancia y también para una buena estabilidad del S.O. ya que hoy en día existen una gran variedad de amenazas como virus, malwares, software espías entre otras las afectan principalmente a windows y complican mucho el uso normal de un equipo por lo cual es muy necesario tener actualizado cada componente de seguridad como el antivirus y también lograr que el usuario tenga un buen uso de su ordenador.

    ResponderEliminar
  3. la seguridad es fundamental en los sistemas operativos por las distintas amenazas que pueden afectar su integridad; la información tiene un buen argumento y característica de los mecanismos de seguridad, solo falto agregar imágenes sobre el tema.

    ResponderEliminar
  4. Los tipos de contraseña y el sistema operativo a elegir son fundamentales al momento de almacenar una base de datos o elegir un sistema confiable en el cual uno pueda almacenar informacion valiosa ya sea para la empresa o particular.
    les falto agregar imagenes sobre el tema

    ResponderEliminar
  5. bueno concordamos con la pequeña explicacion que nos hizo "Proyecto Fundamentos" en cuanto a la definicion de seguridad y proteccion, pero tampoco hay que desmerecer el trabajo de investigar, bueno y para los que leen la informacion que suben... algo se logra aprender asi que cada grupo que de verdad se dedico a buscar info de diferentes lugares es un merito ya que cada uno aprende.

    wena xoros :)

    MAKUCO

    ResponderEliminar
  6. Muy buen resumen de informacion, deja muy en claro los conceptos de seguridad, como grupo nos ayudo mucho saber como trabaja el kerberos.

    Esperamos que en su proximo post coloken ejemplos graficos.

    ResponderEliminar