sábado, 1 de diciembre de 2012

Clasificacion de Seguridad

La seguridad interna esta relacionada a los controles incorporados al hardware y al Sistema Operativo para asegurar los recursos del sistema.
Seguridad Externa
La seguridad externa consiste en:
  • Seguridad fisica.
  • Seguridad operacional.
La seguridad fisica incluye:
  • Proteccion contra desastres(como inundaciones, incendios, etc.).
  • Proteccion contra intrusos.
En la seguridad fisica son importantes los mecanismos de deteccion , algunos ejemplos son:
  • Detectores de humo.
  • Sensores de calor.
  • Detectores de movimiento.
La proteccion contra desastres puede ser costosa y frecuentemente no se analiza en detalle; depende en gran medida de las consecuencias de la perdida.
La seguridad fisica trata especialmente de impedir la entrada de intrusos:
  • Se utilizan sistemas de identificacion fisica:
    • Tarjetas de identificacion.
    • Sistemas de huellas digitales.
    • Identificacion por medio de la voz.
Seguridad Operacional
Consiste en las diferentes politicas y procedimientos implementados por la administracion de la instalacion computacional.
La autorizacion determina que acceso se permite y a quien.
La clasificacion divide el problema en subproblemas:
  • Los datos del sistema y los usuarios se dividen en clases:
    • A las clases se conceden diferentes derechos de acceso.
Un aspecto critico es la seleccion y asignacion de personal:
  • La pregunta es si se puede confiar en la gente.
  • El tratamiento que generalmente se da al problema es la division de responsabilidades:
    • Se otorgan distintos conjuntos de responsabilidades.
    • No es necesario que se conozca la totalidad del sistema para cumplir con esas responsabilidades.
    • Para poder comprometer al sistema puede ser necesaria la cooperacion entre muchas personas:
      • Se reduce la probabilidad de violar la seguridad.
    • Debe instrumentarse un gran numero de verificaciones y balances en el sistema para ayudar a la deteccion de brechas en la seguridad.
    • El personal debe estar al tanto de que el sistema dispone de controles, pero:
      • Debe desconocer cuales son esos controles:
        • Se reduce la probabilidad de poder evitarlos.
      • Debe producirse un efecto disuasivo respecto de posibles intentos de violar la seguridad.
Para disenar medidas efectivas de seguridad se debe primero:
  • Enumerar y comprender las amenazas potenciales.
  • Definir que grado de seguridad se desea (y cuanto se esta dispuesto a gastar en seguridad).
  • Analizar las contramedidas disponibles.

Concepto de Seguridad


Los terminos seguridad y proteccion se utilizan en forma indistinta. Sin embargo, es util hacer una distincion entre los problemas generales relativos a la garantia de que los archivos no sea leidos o modificados por personal no autorizado, lo que incluye aspectos tecnicos, de administracion, legales y politicos, por un lado y los sistemas especificos del sistema operativo utilizados para proporcionar la seguridad, por el otro. Para evitar la confusion, utilizaremos el termino seguridad para referirnos al problema general y el termino mecanismo de proteccion para referirnos a los mecanismos especificos del sistema operativo utilizado para resguardar la informacion de la computadora. Sin embargo, la frontera entre ellos no esta bien definida. Primero nos fijaremos en la seguridad; mas adelante analizaremos la proteccion.
La seguridad tiene muchas facetas. Dos de las mas importantes son la perdida de datos y los intrusos. Algunas de las causas mas comunes de la perdida de datos son:
•  Actos divinos: Incendios, inundaciones, terremotos, guerras, revoluciones o ratas que roen las cintas o discos flexibles.
•  errores de Hardware o Software: Mal funcionamiento de la CPU, discos o cintas ilegibles, errores de telecomunicacion o errores en el programa.
•  Errores Humanos: Entrada incorrecta de datos, mal montaje de las cintas o el disco, ejecucion incorrecta del programa, perdida de cintas o discos.
La mayoria de estas causas se pueden enfrentar con el mantenimiento de los respaldos adecuados; de preferencia, en un lugar alejado de los datos originales.
Un problema mas interesante es que hacer con los intrusos. Estos tienen dos variedades. Los intrusos pasivos solo desean leer archivos que no estan autorizados a leer. Los intrusos activos son mas crueles: Desean hacer cambios no autorizados a los datos. Si se desea disenar un sistema seguro contra los intrusos, es importante tener en cuenta el tipo de intruso con el que se desea tener proteccion. Algunas de las categorias comunes son:
•  Curiosidad casual de usuarios no tecnicos. Muchas personas tienen en sus escritorios terminales para sistemas con tiempo compartido y, por la naturaleza humana, algunos de ellos leeran el correo electronico de los demas u otros archivos, si no existen barreras en frente de ellos. Por ejemplo la mayoria de los sistema UNIS tienen pre definido que todos los archivos se pueden leer de manera publica.
•  Conocidos husmeando. Algunos estudiantes, programadores de sistemas, operadores y demas personal tecnico consideran como un reto personal romper la seguridad del sistema de computo local. A menudo son muy calificados y estan dispuestos a invertir una cantidad sustancial de su tiempo en este esfuerzo.  
•  Un intento deliberado de hacer dinero. Algunos programadores en banco han intentado penetrar un sistema bancario con el fin de robarle al banco. Los esquemas han variado desde cambiar el software para truncar y no redondear el interes, para quedarse con una pequena fraccion de dinero, hasta sacar dinero de las cuentas que no se han utilizado en anos o el "correo negro" .
•  Espionaje comercias o militar. El espionaje indica un intento serio y fundamentado por parte de un competidor u otro pais para robar programas, secretos comerciales, patentes, tecnologia, diseno de circuitos, planes de comercializacion, etc. A menudo, este intento implica la cobertura de cables o el levantamiento de antenas hacia la computadora con el fin de recoger su radiacion electromagnetica.
Debe quedar claro que el intento por mantener la KGB lejos de los secretos militares es un poco distinto del intento por evitar que los estudiantes inserten un mensaje gracioso en el sistema. La cantidad de esfuerzo que alguien pone en la seguridad y la proteccion depende claramente de quien se piensa sea el enemigo.
Otro aspecto del problema de la seguridad es la privacia: la proteccion de las personas respecto del mal uso de la informacion en contra de uno mismo. Esto implica en forma casi inmediata muchos aspectos morales y legales.
Para proteger un sistema, debemos optar las necesarias medidas de seguridad en cuatro niveles distintos:
  1. Fisico. El nodo o nodos que contengan los sistemas informaticos deben dotarse de medidas de seguridad fisicas frente a posibles intrusiones armadas o subrepticias por parte de potenciales intrusos. Hay que dotar de seguridad tanto a las habitaciones donde las maquinas residan como a los terminales o estaciones de trabajo que tengan acceso a dichas maquinas.
  2. Humano. La autorizacion de los usuarios debe llevarse a cabo con cuidado, para garantizar que solo los usuarios apropiados tengan acceso al sistema. Sin embargo, incluso los usuarios autorizados pueden verse “motivados” para permitir que otros usen su acceso (por ejemplo, a cambio de un soborno). Tambien pueden ser enganados para permitir el acceso de otros, mediante tecnicas de ingenieria social . Uno de los tipos de ataque basado en las tecnicas de ingenieria social es el denominado phishing ; con este tipo de ataque, un correo electronico o pagina web de aspecto autentico llevan a engano a un usuario para que introduzca informacion confidencial. Otra tecnica comunmente utilizada es el analisis de desperdicios , un termino autorizado a la computadora (por ejemplo, examinando el contenido de las papeleras, localizando listines de telefonos encontrando notas con contrasenas). Estos problemas de seguridad son cuestiones relacionadas con la gestion y con el personal, mas que problemas relativos a los sistemas operativos.
  3. Sistema operativo. El sistema debe autoprotegerse frente a los diversos fallos de seguridad accidentales o premeditados. Un problema que este fuera de control puede llegar a constituir un ataque accidental de denegacion de servicio. Asimismo, una cierta consulta a un servicio podria conducir a la revelacion de contrasenas o un desbordamiento de la pila podria permitir que se iniciara un proceso no autorizado. La lista de posibles fallos es casi infinita.
  4. Red. Son muchos los datos en los modernos sistemas informaticos que viajen a traves de lineas arrendadas privadas, de lineas compartidas como Internet, de conexiones inalambricas o de lineas de acceso telefonico. La interceptacion de estos datos podria ser tan danina como el acceso a un computador, y la interrupcion en la comunicacion podria constituir un ataque remoto de denegacion de servicio, disminuyendo la capacidad de uso del sistema y la confianza en el mismo por parte de los usuarios.
Si queremos poder garantizar la seguridad del sistema operativo, es necesario garantizar la seguridad en los primeros dos niveles. Cualquier debilidad en uno de los niveles altos de seguridad (fisico o humano) podria puentear las medidas de seguridad que son estrictamente de bajo nivel (del nivel del sistema operativo). Asi, la frase que afirma que una cadena es tan fuerte como el mas debil de sus eslabones es especialmente cierta cuando hablamos de seguridad de los sistemas. Para poder mantener la seguridad, debemos contemplar todos estos aspectos.
Ademas, el sistema debe proporcionar mecanismos de proteccion para permitir la implementacion de las caracteristicas de seguridad. Sin la capacidad de autorizar a los usuarios y procesos, de controlar su acceso y de registrar sus actividades, seria imposible que un sistema operativo implementara medidas de seguridad o se ejecutara de forma segura. Para soportar un esquema global de proteccion hacen falta mecanismos de proteccion hardware. Por ejemplo, un sistema donde la memoria no este protegida no puede nunca estar seguro.

Proteccion basada en el Lenguaje


El grado de protección que se proporciona en los sistemas informáticos existentes suele conseguirse inmediatamente en kernel del sistema operativo que actúa como agente de seguridad para inspeccionar y validar cada intento de acceder a un recurso protegido.
6.4.1 Imposición de Reglas Basadas en Compilador
Es aquí donde entra dentro del panorama de los lenguajes de programación. Especificar el control de acceso deseado a un recurso compartido con un sistema no es otra cosa que realizar un enunciado declaratorio acerca del recurso. Este tipo de enunciado puede integrarse en un lenguaje extendiendo su funcionalidad de definición de tipos.
La implementación de un lenguaje de programación puede proporcionar diversas técnicas para imponer la protección, pero todas estas técnicas dependen hasta cierto punto del soporte proporcionado por la maquina subyacente y por su sistema operativo.
6.4.2 Protección de Java
Como java fue diseñado para ejecutarse en un entorno distribuido la maquina virtual de java tiene muchos mecanismos de protección integrados. Los programas java están compuestos por clases, cada una de las cuales es una colección de campos de datos y funciones (denominadas métodos) que operan sobre esos campos.
Una de las características mas novedosas y útiles de java es su soporte para cargar dinámicamente clases que no sean de confianza a través de una red y para ejecutar clases que desconfían mutuamente una de otra dentro de una misma Java Virtual Machine (Maquina Virtual de Java).

Implementacion de Matrices de Acceso

Implementacion 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.
Los objetos pueden ser:
  • Concretos:
    • Ej.: discos, cintas, procesadores, almacenamiento, etc.
  • Abstractos:
    • Ej.: estructuras de datos, de procesos, etc.
Los objetos estan 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 mas comunes son:
  • Acceso de lectura.
  • Acceso de escritura.
  • Acceso de ejecucion.
Una forma de implementacion 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.
Dominios de protección
Un sistema de computos contiene muchos objetos que necesitan proteccion. Estos objetos pueden ser el hardware, la CPU, los segmentos de memoria, terminales, unidades de disco o impresoras; o bien ser del software, como los proceso, archivos, bases de datos o semaforos.
Cada objeto tiene un unico nombre mediante el cual se la hace referencia y un conjunto de operaciones que se pueden realizar en el. READ y WRITE son operaciones adecuadas para un archivo; UP y DOWN tiene sentido en un semaforo.
Es evidente que se necesita una via para prohibir el acceso de los procesos a los objetos a los que no tiene permitido dicho acceso. Ademas, este mecanismo debe posibilitar la restriccion de los procesos a un subconjunto de operaciones legales en caso necesario. Por ejemplo, puede permitirse que el proceso A lea el archivo F, pero no escriba en el.
Para tener una forma de analizar los distintos mecanismos de proteccion, es conveniente presentar el concepto de dominio. Un dominio es un conjunto de parejas (objeto, derechos). Cada pareja determina un objeto y cierto subconjunto de las operaciones que se pueden llevar a cabo en el. Un derecho es, en este contexto, el permiso para realizar alguna de las operaciones.
Una pregunta importante es la forma en que el sistema lleva un registro de los objetos que pertenecen a un dominio dado. Al menos una teoria, uno puede imaginar una enorme matriz, en la que los renglones son los dominio y las columnas son los objetos. Cada cuadro contiene los derechos correspondientes al objeto en ese dominio. Con esta matriz y el numero de dominio activo, el sistema puede determinar si se permite el acceso de cierta forma a un objeto dado desde un domino especifico.
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 el.
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 proteccion:
  • Existe una coleccion de objetos a los que puede tener acceso.
  • Cada objeto tiene cierto conjunto de derechos.
Los procesos pueden alternar entre los dominios durante la ejecucion.
Una llamada al S. O. provoca una alternancia de dominio.
En algunos S. O. los dominios se llaman anillos .
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.
Ver Figura 6.3.1
Fig. 6.3.1 Dominio de protección
Matriz de acceso
El modelo de proteccion del sistema se puede ver en forma abstracta como una matriz, la matriz de acceso.
Una matriz de acceso es una representacion abstracta del concepto de dominio de proteccion.
Este modelo fue propuesto por Lampson [4] como una descripcion generalizada de mecanismos de proteccion en sistemas operativos. Es el modelo mas utilizado, del que existen numerosas variaciones, especialmente en su implementacion.
Los elementos basicos del modelo son los siguientes:
 
•  Sujeto: Una entidad capaz de acceder a los objetos. En general, el concepto de sujeto es equiparable con el de proceso. Cualquier usuario o aplicacion consigue acceder en realidad a un objeto por medio de un proceso que representa al usuario o a la aplicacion.
•  Objeto: Cualquier cosa cuyo acceso debe controlarse. Como ejemplo se incluyen los archivos, partes de archivos, programas y segmentos de memoria.
•  Derecho de acceso: la manera en que un sujeto accede a un objeto. Como ejemplo estan Leer, Escribir y Ejecutar.
El modelo considera un conjunto de recursos, denominados objetos, cuyo acceso debe ser controlado y un conjunto de sujetos que acceden a dichos objetos. Existe tambien un conjunto de permisos de acceso que especifica los diferentes permisos que los sujetos pueden tener sobre los objetos (normalmente lectura, escritura, etc., aunque pueden ser diferentes, en general, dependiendo de las operaciones que puedan realizarse con el objeto).
Se trata de especificar para cada pareja (sujeto, objeto), los permisos de acceso que el sujeto tiene sobre el objeto. Esto se representa mediante una matriz de acceso M que enfrenta todos los sujetos con todos los objetos. En cada celda M[i, j] se indican los permisos de acceso concretos que tiene el sujeto i sobre el objeto j.
La figura 6.3.2 representa una matriz de acceso, y la figura 6.3.3 es una matriz de acceso derivada de la figura 6.3.1 de dominios de protección.
Fig. 6.3.2 Representación de una m atriz de acceso

Funciones de Sistema de Proteccion

Funciones del sistema de proteccion 

 


Control de acceso que hace referencia a las caracteristicas de seguridad que controlan quien puede obtener acceso a los recursos de un sistema operativo. Las aplicaciones llaman a las funciones de control de acceso para establecer quien puede obtener acceso a los recursos especificos o controlar el acceso a los recursos proporcionados por la aplicacion.
Un sistema de proteccion debera tener la flexibilidad suficiente para poder imponer una diversidad de politicas y mecanismos.
Existen varios mecanismos que pueden usarse para asegurar los archivos, segmentos de memoria, CPU, y otros recursos administrados por el Sistema Operativo.
Por ejemplo, el direccionamiento de memoria asegura que unos procesos puedan ejecutarse solo dentro de sus propios espacios de direccion. El timer asegura que los procesos no obtengan el control de la CPU en forma indefinida.
La proteccion se refiere a los mecanismos para controlar el acceso de programas, procesos, o usuarios a los recursos definidos por un sistema de computacion. Seguridad es la serie de problemas relativos a asegurar la integridad del sistema y sus datos.
Hay importantes razones para proveer proteccion. La mas 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 politicas 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 proteccion proveen maneras de distinguir entre uso autorizado y desautorizado.
Mecanismos y Politicas
El sistema de proteccion tiene la funcion de proveer un mecanismo para el fortalecimiento de las politicas que gobiernan el uso de recursos. Tales politicas se pueden establecer de varias maneras, algunas en el diseno del sistema y otras son formuladas por el administrador del sistema. Otras pueden ser definidas por los usuarios individuales para proteger sus propios archivos y programas.
Las politicas son diversas, dependen de la aplicacion y pueden estar sujetas a cambios a lo largo del tiempo.
Un principio importante es la separacion de politicas de los mecanismos. ‘Los mecanismos determinan como algo se hara. Las politicas deciden que se hara'.
La separacion es importante para la flexibilidad del sistema.
Dentro de las funciones del sistema de proteccion del sistema operativo encontramos:
 
•  Controlar el acceso a los recursos
•  Asegurarse que todos los accesos a los recursos del sistema estan controlados

UNIDAD 6 Proteccion y Seguridad


Los terminos seguridad y proteccion se utilizan en forma indistinta. Sin embargo, es util hacer una distincion entre los problemas generales relativos a la garantia de que los archivos no sea leidos o modificados por personal no autorizado, lo que incluye aspectos tecnicos, de administracion, legales y politicos, por un lado y los sistemas especificos del sistema operativo utilizados para proporcionar la seguridad, por el otro. Para evitar la confusion, utilizaremos el termino seguridad para referirnos al problema general y el termino mecanismo de proteccion para referirnos a los mecanismos especificos del sistema operativo utilizado para resguardar la informacion de la computadora. Sin embargo, la frontera entre ellos no esta bien definida. Primero nos fijaremos en la seguridad; mas adelante analizaremos la proteccion.
La seguridad tiene muchas facetas. Dos de las mas importantes son la perdida de datos y los intrusos. Algunas de las causas mas comunes de la perdida de datos son:
•  Actos divinos: Incendios, inundaciones, terremotos, guerras, revoluciones o ratas que roen las cintas o discos flexibles.
•  errores de Hardware o Software: Mal funcionamiento de la CPU, discos o cintas ilegibles, errores de telecomunicacion o errores en el programa.
•  Errores Humanos: Entrada incorrecta de datos, mal montaje de las cintas o el disco, ejecucion incorrecta del programa, perdida de cintas o discos.
La mayoria de estas causas se pueden enfrentar con el mantenimiento de los respaldos adecuados; de preferencia, en un lugar alejado de los datos originales.
Un problema mas interesante es que hacer con los intrusos. Estos tienen dos variedades. Los intrusos pasivos solo desean leer archivos que no estan autorizados a leer. Los intrusos activos son mas crueles: Desean hacer cambios no autorizados a los datos. Si se desea disenar un sistema seguro contra los intrusos, es importante tener en cuenta el tipo de intruso con el que se desea tener proteccion. Algunas de las categorias comunes son:
•  Curiosidad casual de usuarios no tecnicos. Muchas personas tienen en sus escritorios terminales para sistemas con tiempo compartido y, por la naturaleza humana, algunos de ellos leeran el correo electronico de los demas u otros archivos, si no existen barreras en frente de ellos. Por ejemplo la mayoria de los sistema UNIS tienen pre definido que todos los archivos se pueden leer de manera publica.
•  Conocidos husmeando. Algunos estudiantes, programadores de sistemas, operadores y demas personal tecnico consideran como un reto personal romper la seguridad del sistema de computo local. A menudo son muy calificados y estan dispuestos a invertir una cantidad sustancial de su tiempo en este esfuerzo.  
•  Un intento deliberado de hacer dinero. Algunos programadores en banco han intentado penetrar un sistema bancario con el fin de robarle al banco. Los esquemas han variado desde cambiar el software para truncar y no redondear el interes, para quedarse con una pequena fraccion de dinero, hasta sacar dinero de las cuentas que no se han utilizado en anos o el "correo negro" .
•  Espionaje comercias o militar. El espionaje indica un intento serio y fundamentado por parte de un competidor u otro pais para robar programas, secretos comerciales, patentes, tecnologia, diseno de circuitos, planes de comercializacion, etc. A menudo, este intento implica la cobertura de cables o el levantamiento de antenas hacia la computadora con el fin de recoger su radiacion electromagnetica.
Debe quedar claro que el intento por mantener la KGB lejos de los secretos militares es un poco distinto del intento por evitar que los estudiantes inserten un mensaje gracioso en el sistema. La cantidad de esfuerzo que alguien pone en la seguridad y la proteccion depende claramente de quien se piensa sea el enemigo.
Otro aspecto del problema de la seguridad es la privacia: la proteccion de las personas respecto del mal uso de la informacion en contra de uno mismo. Esto implica en forma casi inmediata muchos aspectos morales y legales.
Para proteger un sistema, debemos optar las necesarias medidas de seguridad en cuatro niveles distintos:
  1. Fisico. El nodo o nodos que contengan los sistemas informaticos deben dotarse de medidas de seguridad fisicas frente a posibles intrusiones armadas o subrepticias por parte de potenciales intrusos. Hay que dotar de seguridad tanto a las habitaciones donde las maquinas residan como a los terminales o estaciones de trabajo que tengan acceso a dichas maquinas.
  2. Humano. La autorizacion de los usuarios debe llevarse a cabo con cuidado, para garantizar que solo los usuarios apropiados tengan acceso al sistema. Sin embargo, incluso los usuarios autorizados pueden verse “motivados” para permitir que otros usen su acceso (por ejemplo, a cambio de un soborno). Tambien pueden ser enganados para permitir el acceso de otros, mediante tecnicas de ingenieria social . Uno de los tipos de ataque basado en las tecnicas de ingenieria social es el denominado phishing ; con este tipo de ataque, un correo electronico o pagina web de aspecto autentico llevan a engano a un usuario para que introduzca informacion confidencial. Otra tecnica comunmente utilizada es el analisis de desperdicios , un termino autorizado a la computadora (por ejemplo, examinando el contenido de las papeleras, localizando listines de telefonos encontrando notas con contrasenas). Estos problemas de seguridad son cuestiones relacionadas con la gestion y con el personal, mas que problemas relativos a los sistemas operativos.
  3. Sistema operativo. El sistema debe autoprotegerse frente a los diversos fallos de seguridad accidentales o premeditados. Un problema que este fuera de control puede llegar a constituir un ataque accidental de denegacion de servicio. Asimismo, una cierta consulta a un servicio podria conducir a la revelacion de contrasenas o un desbordamiento de la pila podria permitir que se iniciara un proceso no autorizado. La lista de posibles fallos es casi infinita.
  4. Red. Son muchos los datos en los modernos sistemas informaticos que viajen a traves de lineas arrendadas privadas, de lineas compartidas como Internet, de conexiones inalambricas o de lineas de acceso telefonico. La interceptacion de estos datos podria ser tan danina como el acceso a un computador, y la interrupcion en la comunicacion podria constituir un ataque remoto de denegacion de servicio, disminuyendo la capacidad de uso del sistema y la confianza en el mismo por parte de los usuarios.
Si queremos poder garantizar la seguridad del sistema operativo, es necesario garantizar la seguridad en los primeros dos niveles. Cualquier debilidad en uno de los niveles altos de seguridad (fisico o humano) podria puentear las medidas de seguridad que son estrictamente de bajo nivel (del nivel del sistema operativo). Asi, la frase que afirma que una cadena es tan fuerte como el mas debil de sus eslabones es especialmente cierta cuando hablamos de seguridad de los sistemas. Para poder mantener la seguridad, debemos contemplar todos estos aspectos.
Ademas, el sistema debe proporcionar mecanismos de proteccion para permitir la implementacion de las caracteristicas de seguridad. Sin la capacidad de autorizar a los usuarios y procesos, de controlar su acceso y de registrar sus actividades, seria imposible que un sistema operativo implementara medidas de seguridad o se ejecutara de forma segura. Para soportar un esquema global de proteccion hacen falta mecanismos de proteccion hardware. Por ejemplo, un sistema donde la memoria no este protegida no puede nunca estar seguro.

Mecanismo de Recuperacion en caso de Falla

Mecanismo de recuperacion en caso de falla

Recuperación
Los archivos y directorios se mantienen tanto en memoria principal como en disco, y debe tener. Se cuidado para que los fallos del sistema no provoquen una pérdida de datos o una incoherencia en los mismos.
Comprobación de coherencia.
Como hemos explicado en la Sección 11.3, parte de la información de directorios se almacena en la memoria principal (o en caché) para acelerar el acceso. La información de directorios en11a memoria principal está, generalmente, más actualizada que la correspondiente información en el disco, porque la información de directorios almacenada en caché no se escribe necesariamente en el disco nada más producirse la actualización.
Considere, entonces, el posible ejemplo de un fallo de la computadora. 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, y con él se perderán los cambios realizados en los directorios correspondientes a los archivos abiertos. Dicho suceso puede dejar el sistema de archivos en un estado incoherente. El estado real de algunos archivos no será el que se describe en la estructura de directorios.
Con frecuencia, suele ejecutarse un programa especial durante el reinicio para comprobar las posibles incoherencias del disco y corregidas.
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. Los algoritmos de asignación y de gestión del espacio libre dictan los tipos de problemas que el comprobador puede tratar de detectar y dictan también el grado de éxito que el comprobador puede tener en esta tarea. Por ejemplo, si se utiliza un sistema de asignación enlazada y existe un enlace entre cada bloque y el siguiente, puede reconstruirse el archivo completo a partir de los bloques de datos y volver a crear la estructura de directorios. 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.
Fig. 5.8.1 Errores
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 alojada en el sistema de archivos, efectuando los resguardos correspondientes.
De esta manera se evitan las consecuencias generalmente catastróficas de la pérdida de los sistemas de archivos.
Las pérdidas se pueden deber a problemas de hardware, software, hechos externos, etc.
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:
    • Lee la “lista de bloques defectuosos”.
    • Elige un bloque (o pista) de reserva para reemplazar los defectuosos.
    • Registra la asociación en la lista de bloques defectuosos.
    • 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”:
    • Esta constituido por los bloques defectuosos.
    • No debe ser leído ni escrito.
    • No se debe intentar obtener copias de respaldo de este archivo.
Respaldos (copias de seguridad o de back-up):
Fig. 5.8.2 Es necesario realizar respaldos para asegurar información
Es muy importante respaldar los archivos con frecuencia.
Los discos magnéticos fallan en ocasiones y es necesario tener cuidado para garantizar que los datos perdidos debido a esos fallos no se pierdan para siempre. Con este fin, pueden utilizarse programas del sistema para realizar una copia de seguridad de los datos del disco en otro dispositivo de almacenamiento, como por ejemplo un disquete, una cinta magnética, un disco óptico incluso otro disco duro. La recuperación de la pérdida de un archivo individual o de un disco completo puede ser entonces, simplemente, una cuestión de restaurar los datos a partir de la copia de seguridad.
Los respaldos pueden consistir en efectuar copias completas del contenido de los discos (flexibles o rígidos).
Una estrategia de respaldo consiste en dividir los discos en áreas de datos y áreas de respaldo , utilizándolas de a pares:
  • Se desperdicia la mitad del almacenamiento de datos en disco para respaldo.
  • Cada noche (o en el momento que se establezca), la parte de datos de la unidad 0 se copia a la parte de respaldo de la unidad 1 y viceversa.
Otra estrategia es el vaciado por incrementos o respaldo incremental :
  • Se obtiene una copia de respaldo periódicamente (por ej.: una vez por mes o por semana), llamada copia total.
  • Se obtiene una copia diaria solo de aquellos archivos modificados desde la última copia total; en estrategias mejoradas, se copian solo aquellos archivos modificados desde la última vez que dichos archivos fueron copiados.
  • Se debe mantener en el disco información de control como una “lista de los tiempos de copiado” de cada archivo, la que debe ser actualizada cada vez que se obtienen copias de los archivos y cada vez que los archivos son modificados.
  • Puede requerir una gran cantidad de cintas de respaldo dedicadas a los respaldos diarios entre respaldos completos.
Para minimizar la cantidad de datos que haya que copiar, podemos utilizar la información contenida en la entrada de directorio de cada archivo. Por ejemplo, si el programa de copia de seguridad sabe cuándo se realizó la última copia de seguridad de un archivo y la fecha de última modificación del archivo contenida en el directorio indica que el archivo no ha cambiado desde esa fecha, no será necesario volver a copiar el archivo. Así un plan típico de copia de seguridad podría ser el siguiente:
•  Día 1. Copiar en el soporte de copia de seguridad todos los archivos del disco. Esto se denomina copia de seguridad completa.
•  Día 2. Copiar en otro soporte físico todos los archivos que se hayan modificado desde el día 1. Esta es una copia de seguridad incremental.
•  Día 3. Copiar en otro soporte físico todos los archivos que se hayan modificado desde el día 2.
•  Día N. Copiar en otro soporte físico todos los archivos que se hayan modificado desde el día N - 1. Después, volver al día 1.
Podemos escribir las copias de seguridad correspondientes al nuevo ciclo sobre el conjunto anterior de soportes físicos o en un nuevo conjunto de soportes de copia de seguridad. De esta forma, podemos restaurar un disco completo comenzando la restauración con la copia de seguridad completa y continuando con cada una de las copias de seguridad incrementales. Por supuesto, cuanto mayor sea el valor de N, más cintas o discos habrá que leer para efectuar una restauración completa. Una ventaja adicional de este ciclo de copia de seguridad es que podemos restaurar cualquier archivo que haya sido borrado accidentalmente durante ese ciclo, extrayendo el archivo borrado de la copia de seguridad del día anterior. La longitud del ciclo será un compromiso entre la cantidad de soportes físicos de copia de seguridad requeridos y el número de días pasados a partir de los cuales podamos realizar una restauración. Para reducir el número de cintas que haya que leer para efectuar una restauración, una opción consiste en realizar una copia de seguridad completa y luego copiar cada día todos los archivos que hayan cambiado desde la última copia de seguridad completa. De esta forma, puede realizarse la restauración utilizando sólo la copia de seguridad incremental más reciente y la copia de seguridad completa, no necesitándose ninguna otra copia de seguridad incremental. El compromiso inherente a este sistema es que el número de archivos modificado se incrementa a diario, por lo que cada copia de seguridad incremental sucesiva contiene más archivos y requiere más espacio en el soporte de copia de seguridad.
Consistencia del sistema de archivos:
Muchos sistemas de archivos leen bloques, los modifican y escriben en ellos después.
Si el sistema falla antes de escribir en los bloques modificados, el sistema de archivos puede quedar en un “estado inconsistente”.
La inconsistencia es particularmente crítica si alguno de los bloques afectados son:
  • Bloques de nodos-i.
  • Bloques de directorios.
  • Bloques de la lista de bloques libres.
La mayoría de los sistemas dispone de un programa utilitario que verifica la consistencia del sistema de archivos:
  • Se pueden ejecutar al arrancar el sistema o a pedido.
  • Pueden actuar sobre todos o algunos de los discos.
  • Pueden efectuar verificaciones a nivel de bloques y a nivel de archivos.
  • La consistencia del sistema de archivos no asegura la consistencia interna de cada archivo, respecto de su contenido.
  • Generalmente pueden verificar también el sistema de directorios y / o de bibliotecas.
Generalmente los utilitarios utilizan dos tablas:
  • Tabla de bloques en uso.
  • Tabla de bloques libres.
  • Cada bloque debe estar referenciado en una de ellas.
Si un bloque no aparece en ninguna de las tablas se trata de una falla llamada bloque faltante:
  • No produce daños pero desperdicia espacio en disco.
  • Se soluciona añadiendo el bloque a la tabla de bloques libres.
También podría detectarse la situación de falla debida a un bloque referenciado dos veces en la tabla de bloques libres:
  • Esta falla no se produce en los sistemas de archivos basados en mapas de bits, sí en los basados en tablas o listas.
  • La solución consiste en depurar la tabla de bloques libres.
Una falla muy grave es que el mismo bloque de datos aparezca referenciado dos o más veces en la tabla de bloques en uso:
  • Como parte del mismo o de distintos archivos.
  • Si uno de los archivos se borra, el bloque aparecería en la tabla de bloques libres y también en la de bloques en uso.
  • Una solución es que el verificador del sistema de archivos:
    • Asigne un bloque libre.
    • Copie en el bloque libre el contenido del bloque conflictivo.
    • Actualice las tablas afectando el bloque copia a alguno de los archivos.
    • Agregue el bloque conflictivo a la tabla de bloques libres.
    • Informe al usuario para que verifique el daño detectado y la solución dada.
Otro error posible es que un bloque esté en la tabla de bloques en uso y en la tabla de bloques libres:
  • Se soluciona eliminándolo de la tabla de bloques libres.
Las verificaciones de directorios incluyen controles como:
  • Número de directorios que apuntan a un nodo-i con los contadores de enlaces almacenados en los propios nodos-i; en un sistema consistente de archivos deben coincidir.
Una posible falla es que el contador de enlaces sea mayor que el número de entradas del directorio:
  • Aunque se eliminaran todos los archivos de los directorios el contador sería distinto de cero y no se podría eliminar el nodo-i.
  • No se trata de un error serio pero produce desperdicio de espacio en disco con archivos que no se encuentran en ningún directorio.
  • Se soluciona haciendo que el contador de enlaces en el nodo-i tome el valor correcto; si el valor correcto es 0, el archivo debe eliminarse.