lunes, 4 de diciembre de 2017

6.5 Protección basada en el lenguaje.


A medida que ha aumentado la complejidad de los sistemas operativos, sobre todo al trata de ofrecer interfaces de más alto nivel con el usuario, lo objetivos de la protección se han vuelto mucho más refinados. En esta refinación observamos que los diseñadores de los diseñadores de los sistemas de protección se han apoyado mucho en ideas que se originaron en los lenguajes de programación y especialmente en los conceptos de tipos de datos abstractos y objetos. Los sistemas de protección ahora se ocupan no sólo de la identidad de un recurso al cual se intenta acceder, sino también de la naturaleza funcional de ese acceso. En los sistemas de protección más nuevos, el interés en la función que se invocará se extiende más allá de un conjunto de funciones definidas por el sistema, como los métodos de acceso a archivos estándar, para incluir funciones que también podrían ser definidas por el usuario.
Las políticas para el uso de recursos también podrían variar, dependiendo de la aplicación, y podrían cambiar con el tiempo. Por estas razones, la protección ya no puede considerarse como un asunto que sólo concierne al diseñador de un sistema operativo; también debe estar disponible como herramienta que el diseñador de aplicaciones pueda usar para proteger los recursos de un subsistema de aplicación contra intervenciones o errores.
Aquí es donde los lenguajes de programación entran en escena. Especificar el control de acceso deseado a un recurso compartido en un sistema es hacer una declaración acerca del recurso. Este tipo de declaración se puede integrar en un lenguaje mediante una extensión de su mecanismo de tipificación. Si se declara la protección junto con la tipificación de los datos, el diseñado de cada subsistema puede especificar sus necesidades de protección así debería darse directamente durante la redacción del programa, y en el lenguaje en el que el programa mismo se expresa. Este enfoque tiene varias ventajas importantes:

1. Las necesidades de protección se declaran de forma sencilla en vez de programarse como una secuencia de llamadas a procedimientos de un sistema operativo.
2. Las necesidades de protección pueden expresarse independientemente de los recursos que ofrezca un sistema operativo en particular.
3. El diseñador de un subsistema no tiene que proporcionar los mecanismos para hacer cumplir la protección.
4. Una notación declarativa es natural porque los privilegios de acceso están íntimamente relacionados con el concepto lingüístico de tipo de datos.


6.4 Implantación de matrices de acceso.

 Los derechos de acceso definen que acceso tienen varios sujetos sobre varios objetos. Los sujetos acceden a los objetos. Los objetos son entidades que contienen informacion. Losobjetos pueden ser:
Concretos:
Ej.: discos, cintas, procesadores, almacenamiento, etc.
Abstractos:
Ej.: estructuras de datos, de procesos, etc.
Los objetos están protegidos contra los sujetos. Las autorizaciones a un sistema se conceden a los sujetos.
Los sujetos pueden ser varios tipos de entidades:
Ej.: usuarios, procesos, programas, otras entidades, etc.
Los derechos de acceso más comunes son:
Acceso de lectura.
Acceso de escritura.
Acceso de ejecucion.
Una forma de implementación es mediante una matriz de control de acceso con:
Filas para los sujetos.
Columnas para los objetos.
Celdas de la matriz para los derechos de acceso que un usuario tiene a un objeto.
Una matriz de control de acceso debe ser muy celosamente protegida por el S. O.


6.3 Funciones del sistema de protección


¿Qué es el Dominio de Protección?
Un sistema computacional esta compuesto por procesos y objetos, los Objetos involucran Hardware y Software, cada objeto tiene un nombre único que lo diferencia y cada objeto puede ser accesado solamente mediante operaciones bien definidas.
Ejemplo:
El CPU se utiliza solamente para ejecución.
Los segmentos de memoria se pueden leer y escribir.
Un archivo puede ser leído, escrito, ejecutado y borrado.

6.2 Clasificación aplicada a la seguridad

Funciones de un Sistema de Protección.
Dado que los sistemas de computo se han venido haciendo cada vez más sofisticados en sus aplicaciones, la necesidad de proteger su integridad, también ha crecido. Los aspectos principales de protección en un Sistema Operativo son:
Protección de los procesos del sistema contra los procesos de usuario.
Protección de los procesos de usuario contra los de otros procesos de usuario.
Protección de Memoria.
Protección de los dispositivos.


6.1.- Concepto y Objetivos de Protección.


Los procesos en un sistema operativo deben protegerse de las actividades realizadas por otros procesos. Para proporcionar dicha protección, podemos utilizar diversos mecanismos para garantizar que sólo los procesos que hayan obtenido la adecuada autorización del sistema operativo puedan operar sobre los archivos, los segmentos de memoria, sobre la CPU y sobre otros recursos del sistema.
El concepto de protección hace referencia a un mecanismo para controlar el acceso de los programas, de los procesos o de los usuarios a los recursos definidos por el sistema informático. Este mecanismo debe proporcionar un medio de especificar los controles que hay que imponer, junto con un modo de imponerlos. Podemos distinguir entre los conceptos de protección y seguridad; este último es una medida de la confianza en que se puedan preservar la integridad de un sistema de sus datos.
Objetivos de la protección.
A medida que los sistemas informáticos se han hecho más sofisticados y a medida que su rango de aplicaciones se ha ido incrementando, también ha crecido la necesidad de proteger la integridad de esos sistemas. La protección se concebía originalmente como algo asociado a los sistemas operativos multiprogramados, de modo que a los usuarios que no fueran de confianza pudieran compartir de manera segura un espacio lógico de nombres común, como por ejemplo un directorio de archivos, o compartir un espacio físico de nombres común, como por ejemplo la memoria. Los conceptos modernos de protección han evolucionado para incrementar la fiabilidad de cualquier sistema complejo que haga uso de recursos compartidos.
Necesitamos proporcionar protección por diversas razones. La más obvia es la necesidad de impedir una violación maliciosa e intencionada de una restricción de acceso por parte de un usuario. Sin embargo, tiene una mayor importancia general la necesidad de garantizar que cada componente de programa activo en un sistema utilice los recursos del sistema sólo en ciertas formas que sean coherentes con las políticas establecidas. Este requerimiento tiene un carácter primordial si se quiere disponer de un sistema fiable.
Los mecanismos de protección pueden mejorar la fiabilidad detectando los errores latentes en las interfaces definidas entre los distintos subsistemas de componentes. La detección temprana de errores de interfaz puede a menudo impedir que un subsistema correcto se vea contaminado por otro que no esté funcionando adecuadamente. Un recurso no protegido no puede defenderse frente al uso (o mal uso) por parte de un usuario no autorizado o incompetente. Un sistema orientado a la protección proporcionará medios para distinguir entre el uso autorizado y el no autorizado.
El papel de protección en un sistema informático es proporcionar un mecanismo para la imposición de las políticas que gobiernen el uso de recursos. Estas políticas pueden establecerse de diversas formas. Algunas están fijas en el diseño de un sistema, mientras que otras se formulan al administrar ese sistema. Existen también otras que son definidas por los usuarios individuales para proteger sus propios archivos y programas. Un sistema de protección deberá tener la flexibilidad sificiente para poder imponer una diversidad de políticas.
Las políticas de uso de recursos pueden variar según la aplicación y también pueden variar a lo largo del tiempo. Por estas razones, la protección no es sólo cuestión del diseñador de un sistema operativo. El programador de aplicaciones necesita utilizar también los mecanismos de protección, para defender de un uso incorrecto los recursos creados y soportados por un subsistema de aplicación. En este capítulo, describiremos los mecanismos de protección que el sistema operativo debe proporcionar para que los diseñadores de aplicaciones puedan usarlos a la hora de diseñar su propio software de protección.
Observe que los mecanismos son distintos de las políticas. Los mecanismos determinan cómo se llevará algo a cabo; las políticas deciden qué es lo que hay que hacer. La separación entre políticas y mecanismos resulta importante si queremos tener una cierta flexibilidad. Es probable que las políticas cambien de un lugar a otro a lo largo del tiempo. En el caso peor, cada cambio de políticas requeriría un cambio en el mecanismo subyacente; la utilización de mecanismos generales nos permite evitar este tipo de situaciones.
La protección es un mecanismo control de acceso de los programas, procesos o usuarios al sistema o recursos. Hay importantes razones para proveer protección. La más obvia es la necesidad de prevenirse de violaciones intencionales de acceso por un usuario. Otras de importancia son, la necesidad de asegurar que cada componente de un programa, use solo los recursos del sistema de acuerdo con las políticas fijadas para el uso de esos recursos.
Un recurso desprotegido no puede defenderse contra el uso no autorizado o de un usuario incompetente. Los sistemas orientados a la protección proveen maneras de distinguir entre uso autorizado y desautorizado.
Inicialmente protección del SO frente a usuarios poco confiables.
Protección: control para que cada componente activo de un proceso sólo pueda acceder a los recursos especificados, y sólo en forma congruente con la política establecida.
La mejora de la protección implica también una mejora de la seguridad.
Las políticas de uso se establecen:
Por el hardware.
Por el administrador / SO.
Por el usuario propietario del recurso.

Principio de separación entre mecanismo y política:
Mecanismo con qué elementos (hardware y/o software) se realiza la protección.
Política es el conjunto de decisiones que se toman para especificar cómo se usan esos elementos de protección.

La política puede variar dependiendo de la aplicación, a lo largo del tiempo.
La protección no sólo es cuestión del administrador, sino también del usuario.


Unidad 6 Protección y seguridad


Introducción.
Los mecanismos de protección controlan el acceso a un sistema limitado los tipos de acceso a archivos permitidos a los usuarios. Además, los mecanismos de protección deben garantizar que sólo los preocesos que hayan obtenido la adecuada autorización del sistemaoperativo puedan operar sobre los segmentos de memoria, CPU y otros recursos.
La protección se proporciona mediante un mecanismo que controla el acceso de los programas, de los procesos ode los usuarios a los recursos definidos por un sistema informático. Este mecanismo debe proporcionar un medio para especificar los controles que hay que imponer, junto con algún modo de imponerlos.
La seguridad garantiza la autenticación de los usuarios del sistema, con el fin de proteger la integridad de la información almacenada en el mismo (tanto datos como código), así como la de los recursos físicos del sistema informático. El sistema de seguridad impide los accesos no autorizados, la destrucción o manipulación maliciosas de los datos y la introducción accidental de incoherencias.


5.8.- Mecanismos de Recuperación en Caso de Falla.


Mécanismos de Recuperación en Caso de Fallas.
Debido a que los archivos se mantienen tanto en memoria principal como en el disco, debemos asegurarnos de que un fallo del sistema no de por resultado la perdida de datos o inconsistencia en los mismos.
La destrucción de la información, ya sea accidental o intencional, es una realidad y tiene distintas causas:
Fallas de hardware y de software
Fenómenos meteorológicos atmosféricos
Fallas en el suministro de energía
Incendios e inundaciones
Robos, vandalismo (incluso terrorismo)
Esta posible destrucción de la información debe ser tenida en cuenta por:
Los sistemas operativos en general
Los sistemas de archivos en particular
Una técnica muy usada para asegurar la disponibilidad de los datos es realizar respaldos periódicos:
Hacer con regularidad una o más copias de los archivos y colocarlas en lugar seguro.
Todas las actualizaciones realizadas luego del último respaldo pueden perderse.
Otra técnica es pasar todas las transacciones a un archivo, copiándolas en otro disco:
Genera una redundancia que puede ser costosa
En caso de fallas en el disco principal, puede reconstruirse todo el trabajo perdido si el disco de reserva no se dañó también
También existe la posibilidad del respaldo incremental:
Durante una sesión de trabajo los archivos modificados quedan marcados.
Cuando un usuario se retira del sistema (deja de trabajar), un proceso del sistema efectúa el respaldo de los archivos marcados.
Se debe tener presente que es muy difícil garantizar una seguridad absoluta de los archivos.
El método correcto de manejar fallos consiste básicamente en detectarlos a tiempo y de forma correcta. La inclusión de equipos de test en el sistema es esencial para mantener esta capacidad de monitorización.
En cualquier caso, la caída total o parcial del sistema se puede subsanar en parte si hay puntos de restauración del sistema (chkpt). Esta posibilidad aumenta la disponibilidad de recuperación en caso de fallos.
Mecanismos de Protección
Dominios de Protección
Muchos objetos del sistema necesitan protección, tales como la cpu, segmentos de memoria, unidades de disco, terminales, impresoras, procesos, archivos, bases de datos, etc.
Cada objeto se referencia por un nombre y tiene habilitadas un conjunto de operaciones sobre él.
Un dominio es un conjunto de parejas (objeto, derechos):
Cada pareja determina:
Un objeto.
Un subconjunto de las operaciones que se pueden llevar a cabo en él.
Un derecho es el permiso para realizar alguna de las operaciones.
Es posible que un objeto se encuentre en varios dominios con “distintos” derechos en cada dominio.
Un proceso se ejecuta en alguno de los dominios de protección:
Existe una colección de objetos a los que puede tener acceso.
Cada objeto tiene cierto conjunto de derechos.

Una forma en la que el S. O. lleva un registro de los objetos que pertenecen a cada dominio es mediante una matriz :
Los renglones son los dominios.
Las columnas son los objetos.
Cada elemento de la matriz contiene los derechos correspondientes al objeto en ese dominio, por ej.: leer, escribir, ejecutar.
Listas Para Control de Acceso
Las “matrices de protección” son muy grandes y con muchos lugares vacíos Desperdician espacio de almacenamiento.
Existen métodos prácticos que almacenan solo los elementos no vacíos por filas o por columnas.
La lista de control de acceso (ACL: access control list):
Asocia a cada objeto una lista ordenada con:
Todos los dominios que pueden tener acceso al objeto.
La forma de dicho acceso (ej: lectura ®, grabación (w), ejecución (x)).
Una forma de implementar las ACL consiste en:
Asignar tres bits (r, w, x) para cada archivo, para:
El propietario, el grupo del propietario y los demás usuarios.
Permitir que el propietario de cada objeto pueda modificar su ACL en cualquier momento:
Permite prohibir accesos antes permitidos.
Posibilidades
La matriz de protección también puede dividirse por renglones.
Se le asocia a cada proceso una lista de objetos a los cuales puede tener acceso.
Se le indican las operaciones permitidas en cada uno.
Esto define su dominio.
La lista de objetos se denomina lista de posibilidades y los elementos individuales se llaman posibilidades. Cada posibilidad tiene:
Un campo tipo:
Indica el tipo del objeto.

Un campo derechos:
Mapa de bits que indica las operaciones básicas permitidas en este tipo de objeto.

Un campo objeto:
Apuntador al propio objeto (por ej.: su número de nodo-i).