miércoles, 25 de noviembre de 2015

UNIDAD 6. PROTECCIÓN Y SEGURIDAD

6.5 Concepto de Seguridad.


La seguridad está definida en el diccionario como el conjunto de medidas tomadas para protegerse contra robos, ataques, crímenes y espionajes o sabotajes. La seguridad implica la cualidad o estado de estar seguro, es decir, la evitación de exposiciones a situaciones de peligro y la actuación para quedar a cubierto frente a contingencias adversas.

El uso creciente y la confianza en los computadores en todo el mundo ha hecho surgir una preocupación legítima con respecto a la seguridad informática. El uso de los computadores ha extendido en ambientes comerciales, gubernamentales, militares e incluso en los hogares. Grandes cantidades de datos vitales sensibles se están confiando y almacenado cada vez más en computadores. Entre ellos se incluyen registros sobre individuos, negocios y diferentes registros públicos y secretos gubernamentales y militares. Grandes transacciones monetarias tienen lugar diariamente en forma de transferencia electrónicas de fondos. Más recientemente, informaciones tales como notificaciones de propiedad intelectual y datos comerciales estratégicos son también almacenados, procesados y diseminados mediante computadores. Entre ellos se incluyen diseños de ventas, contratos legales y muchos otros.

La seguridad, no solo requiere un sistema de protección apropiado, sino también considerar el entorno externo en el que el sistema opera. La protección interna no es útil si la consola del operador está al alcance de personal no autorizado, o si los archivos se pueden sacar simplemente del sistema de computación y llevarse a un sistema sin protección. Estos problemas de seguridad son esencialmente de administración, no problemas del sistema operativo.

La información almacenada en el sistema, así como los recursos físicos del sistema de computación, tienen que protegerse contra acceso no autorizado, destrucción o alteración mal intencionada, y la introducción accidental de inconsistencia.


UNIDAD 6. PROTECCIÓN Y SEGURIDAD

6.4 Protección Basada en el Lenguaje.


La protección que se ofrece en los sistemas de computación existentes casi siempre se ha logrado con la ayuda del núcleo de un sistema operativo, que actúa como agente de seguridad que inspecciona y valida cada intento por acceder a un recurso protegido. Puesto que la validación de todos los accesos puede dar pie a un gasto extra considerable, debemos apoyarla con hardware para reducir el costo de cada validación o bien debemos aceptar que el diseñador del sistema podría inclinarse por sacrificar los objetivos de la protección. Es difícil satisfacer todos estos objetivos si los mecanismos de soporte con que se cuenta restringen la flexibilidad para implementar diversas políticas de protección. 



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.
Hay diversas técnicas que una implementación de lenguaje de programación puede utilizar para hacer cumplir la protección, pero cualquiera de ellas deberá depender hasta cierto punto del grado de soporte de una máquina subyacente y su sistema operativo.
¿Qué ventajas relativas tiene entonces el cumplimiento basado exclusivamente en un núcleo, en comparación con el cumplimiento forzado en gran medida por un compilador?
·                                                                     Seguridad: La obligación del cumplimiento por un núcleo ofrece un mayor grado de seguridad del sistema de protección mismo, que el que ofrece la generación de código de verificación de protección por un compilador. En un esquema apoyado por compilador, la seguridad depende de lo correcto que sea el traductor, de algún mecanismo subyacente de gestión de almacenamiento que proteja los segmentos desde los cuales se ejecuta el código compilador y, en última instancia, de la seguridad de los archivos desde los que se carga el programa.
·                                                                     Flexibilidad: Hay límites a la flexibilidad de un núcleo de protección para implementar una política definida por el usuario, aunque podría proporcionar recursos suficientes para que el sistema haga cumplir sus propias políticas. Con un lenguaje de programación, se puede declarar la política de protección y hacerse cumplir según sea necesario en una implementación.
·                                                                     Eficiencia: Se logra la eficiencia máxima cuando hardware apoya directamente el cumplimiento de la protección. En la medida en que se requiera soporte de software, el cumplimiento basado en el lenguaje tiene la ventaja de que es posible verificar el cumplimiento del acceso estático fuera de línea en el momento de la compilación.


En síntesis, la especificación de la protección en un lenguaje de programación permite describir un alto nivel de políticas de asignación y uso de recursos.

UNIDAD 6. PROTECCIÓN Y SEGURIDAD

6.3 Implantación de Matrices de Acceso.

¿Qué es el Dominio de Protección?


1.            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.


UNIDAD 6. PROTECCIÓN Y SEGURIDAD

6.2 Funciones del 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:
1.            Protección de los procesos del sistema contra los procesos de usuario.
2.            Protección de los procesos de usuario contra los de otros procesos de usuario.
3.            Protección de Memoria.

4.            Protección de los dispositivos. 


UNIDAD 6. PROTECCIÓN Y SEGURIDAD

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.

martes, 24 de noviembre de 2015

UNIDAD 5. SISTEMAS DE ARCHIVOS

5.8 Mecanismos de recuperación en caso de falla

Los archivos y directorios se mantienen tanto en memoria principal como en disco, y debe tenerse cuidado para que los fallos del sistema no provoquen una pérdida de datos o una incoherencia en los mismos.
Comprobación de coherencia.
 Parte de la información de directorios se almacena en la memoria principal (o en caché) para acelerar el acceso, porque la información de directorios almacenada en caché no se escribe necesariamente en el disco nada más producirse la actualización. . El contenido de la caché y de los búferes, así como de las operaciones de E/S que se estuvieran realizando en ese momento, pueden perderse, El comprobador de coherencia (un programa del sistema tal como fsck en UNIX o chkdsk en MS-DOS), compara los datos de la estructura de directorios con los bloques de datos del disco y trata de corregir todas las incoherencias que detecte.
Por el contrario, la pérdida de una entrada de directorio en un sistema de asignación indexada puede ser desastrosa, porque los bloques de datos no tienen ningún conocimiento acerca de los demás bloques de datos del archivo. Por esta razón, UNIX almacena en caché las entradas de directorio para las lecturas, pero todas las escrituras de datos que provoquen algún cambio en la asignación de espacio o en algún otro tipo de metadato se realizan síncronamente, antes de escribir los correspondientes bloques de datos. Por supuesto, también pueden aparecer problemas si se interrumpe una escritura síncrona debido a un fallo catastrófico.
La perdida de la información es uno de los factores que se le debe de dar mayor importancia, por la sencilla razón de que al perder información se puede perder lo que no nos podemos imaginar en cuanto a la misma y ocasionar perdidas hasta hablar de una gran cantidad de dinero. Para solucionar este o estos problemas todo sistema operativo cuenta con al menos una herramienta de software que nos permite recuperar información perdida hasta cierta medida, esto obedece de acuerdo al daño causado o los daños. Si el sistema no cuenta con la herramienta necesaria, deberá adquirirse el software apropiado de algún fabricante especializado en el ramo, por ejemplo Norton.
Es necesario proteger la información en el sistema de archivos, de esta manera se evitan la pérdida de los sistemas de archivos. Las pérdidas se pueden deber a problemas de hardware, software. Manejo de un bloque defectuoso: Se utilizan soluciones por hardware y por software.
La solución en hardware:
 Consiste en dedicar un sector del disco a la lista de bloques defectuosos.
 Al inicializar el controlador por primera vez:
    o Lee la “lista de bloques defectuosos”.
    o Elige un bloque (o pista) de reserva para reemplazar los defectuosos.
    o Registra la asociación en la lista de bloques defectuosos.
    o En lo sucesivo, las solicitudes del bloque defectuoso utilizarán el de repuesto.

La solución en software:
 Requiere que el usuario o el sistema de archivos construyan un archivo con todos los bloques defectuosos.
 Se los elimina de la “lista de bloques libres”.
 Se crea un “archivo de bloques defectuosos”:
      o Esta constituido por los bloques defectuosos.
      o No debe ser leído ni escrito.
      o No se debe intentar obtener copias de respaldo de este archivo.

UNIDAD 5. SISTEMAS DE ARCHIVOS

5.7 Modelo jerárquico


Un modelo de datos jerárquico es un modelo de datos en el cual los datos son organizados en una estructura parecida a un árbol. La estructura permite a la información que repite y usa relaciones padre/Hijo: cada padre puede tener muchos hijos pero cada hijo sólo tiene un padre. Todos los atributos de un registro específico son catalogados bajo un tipo de entidad. En una base de datos, un tipo de entidad es el equivalente de una tabla; cada registro individual es representado como una fila y un atributo como una columna. Los tipos de entidad son relacionados el uno con el otro usando 1: Trazar un mapa de n, también conocido como relacion de uno a varios. El ejemplo más aprobado de base de datos jerárquica modela es un IMS diseñado por la IBM.