miércoles, 26 de noviembre de 2008

INDICE

UNIDAD V
SISTEMA DE ARCHIVOS

5.1 Concepto
5.2 Noción de archivo real y virtual.
5.3 Componentes de un sistema de archivos
5.4 Organización lógica y física
5.5 Mecanismos de acceso a los archivos
5.6 Manejo de espacio en memoria secundaria
5.7 Modelo jerárquico
5.8 Mecanismos de recuperación en caso de falla

UNIDAD VI
PROTECCIÓN Y SEGURIDAD

6.1 Concepto y objetivos de protección
6.2 Funciones del sistema de protección.
6.3 Implantación de matrices de acceso
6.4 Protección basada en el lenguaje
6.5 Concepto de seguridad
6.6 Clasificaciones de la seguridad
6.7 Validación y amenazas al sistema
6.8 Cifrado

Introducción

Introducción


Todas las aplicaciones computarizadas necesitan almacenar y recuperar la información
La solución es el almacenamiento de la información en discos y otros medios externos en unidades llamadas archivos:
Los archivos deben ser persistentes, es decir que no deben verse afectados por la creación o terminación de un proceso.

Los archivos son una colección de datos con nombre.
Los elementos de datos individuales dentro del archivo pueden ser manipulados por operaciones como: read, write, update, insert, delete.

El “Sistema de Archivos” es la parte del sistema de administración del almacenamiento responsable, principalmente, de la administración de los archivos del almacenamiento secundario.

Es la parte del S. O. responsable de permitir “compartir controladamente” la información de los archivos.
Otras de las funciones del SO es la protección de unos usuarios contra otros: ni por malicia ni por descuido un usuario deberá acceder a la información de otro.

La protección, consiste en evitar que se haga un uso indebido de los recursos que están dentro del ámbito del SO. Para ello deben existir políticas y mecanismos que aseguren que los usuarios sólo acceden a sus propios recursos (archivos, zonas de memoria, etc.).

UNIDAD V SISTEMAS DE ARCHIVOS


5.1 Concepto.

STALLINGS, William “Sistemas Operativos” (2001). Explica que los sistemas de archivos (filesystem en inglés), estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro) de una computadora, que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos poseen su propio sistema de archivos.

Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud. El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. Un sistema de archivos también puede ser utilizado para acceder a datos generados dinámicamente, como los recibidos a través de una conexión de red (sin la intervención de un dispositivo de almacenamiento).

5.2 Noción de archivo real y virtual.

5.2 Noción de archivo real y virtual.

MILENKOVIC, Milan, “Sistemas Operativos: Conceptos y Diseño”, (1994). Considera que la mayoría de usuarios de computadoras comprenderán con mucha facilidad el término archivo relacionándolo directamente con ejemplos tales como los archivos de texto que se pueden generar con cualquier procesador de texto. Una característica de este tipo de archivos es que a mayor texto que almacena el archivo, mayor es el espacio en disco que consume dicho archivo. Por ejemplo, una línea corta de texto ocupa menos espacio en disco que esa misma línea copiada cien veces. Sin embargo al hablar de “archivos virtuales” las cosas son diferentes, pues este tipo de archivos no consumen espacio en el disco duro, sino que se almacenan en la memoria volátil, es decir la aquel tipo de memoria cuya información se pierde al interrumpirse el flujo de corriente eléctrica, esto es, la memoria RAM.

5.3 COMPONENTES DEL SISTEMA DE ARCHIVOS.

5.3 COMPONENTES DEL SISTEMA DE ARCHIVOS.

A. S. Tanenbaum. “Sistemas Operativos Modernos” (1993). Determina que en general, un Sistema de Archivos está compuesto por: Métodos De Acceso, Administración De Archivos, Administración De Almacenamiento Secundario, Mecanismos De Integridad.
Métodos De Acceso. Se ocupan de la manera en que se tendrá acceso a la información almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc.

Administración De Archivos. Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos, así como para hacer referencia a ellos.

Administración De Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos en los dispositivos de almacenamiento secundario.

Mecanismos De Integridad. Se ocupan de garantizar que no se corrompa la información de un archivo, de tal manera que solo la información que deba estar en el, se encuentre ahí.

5.4 ORGANIZACIÓN DE ARCHIVOS.

5.4 ORGANIZACIÓN DE ARCHIVOS.

J. L. Peterson; A. Silberschatz (1991) Se refiere a las diferentes maneras en las que puede ser organizada la información de los archivos, así como las diferentes maneras en que ésta puede ser accesada. Dado que hay 2 niveles de visión de los archivos (físico y lógico), se puede hablar también de 2 aspectos de organización de archivos: Organización de archivos lógicos y de archivos físicos.

DE ARCHIVOS LOGICOS. Contempla la organización desde el punto de vista lógico. Por ejemplo, secuencial, directo, etc.

DE ARCHIVOS FISICOS. Contempla la administración de archivos desde la perspectiva física, particularmente la organización del almacenamiento en disco a nivel de pistas y sectores.
Este tipo de organización muestra a su vez, 2 aspectos importantes: Métodos De Asignación De Espacio Libre y Asignación De Espacio De Almacenamiento Del Archivo.
También J. L. Peterson; A. Silberschatz menciona los siguientes métodos de asignación:

METODOS DE ASIGNACION DE ESPACIO LIBRE
Un método de asignación de espacio libre determina la manera en que un Sistema Operativo controla los lugares del disco que no están siendo ocupados. Para el control del espacio libre se puede utilizar como base alguno de los métodos teóricos: Vector de Bits, Lista Ligada, Por Agrupación y por Contador.

VECTOR DE BITS
Se tiene un arreglo de bits, el número de bits que tiene, representa cada sector del disco, o sea que si los sectores 10 y 11 están ocupados su representación será:

LISTA LIGADA
Existe una cabecera en la que se tiene la dirección del primer sector vació, ese sector a su vez, tiene un apuntador al siguiente bloque, y así sucesivamente hasta que se encuentre una marca indicando que ya no hay espacio libre.

POR AGRUPACION
Es similar a la lista ligada, solo que en este se tiene por cada sector, un grupo de apuntadores a varios espacios vacíos, al final de cada bloque se tiene un apuntador a otro grupo de apuntadores.
POR CONTADOR
Aquí, por cada conjunto de bloques contiguos que estén vacíos, se tiene por cada apuntador, un número de inicio y el tamaño del grupo de sectores vacíos.

5.5 Mecanismos de Acceso a los Archivos

5.5 Mecanismos de Acceso a los Archivos


DEITEL, Harvey, “Sistemas Operativos” (1993) Determina que existen varios mecanismos para acceder los archivos: directorios, descriptores de archivos, mecanismos de control de acceso y procedimientos para abrir y cerrar archivos.

Descriptores de archivos: A cada uno de los archivos se le asigna un descriptor el cual contendrá toda la información que necesitará el sistema de archivos para ejecutar con él los comandos que se le soliciten. El descriptor se mantendrá en memoria principal desde que el archivo es abierto hasta que sea cerrado, y debe tener al menos la siguiente información:

Identificación del archivo
Lugar de almacenamiento
Información del modo de acceso

Identificación del archivo: Consiste de dos partes que es el nombre simbólico que es el que le da el usuario y un identificador interno que es asignado por el sistema operativo (número).

Lugar de almacenamiento así como el tamaño del archivo.

Modo de acceso: Se debe indicar en forma explícita quien puede accesar el archivo y con que derecho.
Método de Acceso Secuencial: El acceso secuencial significa que un grupo de elementos es accedido en un predeterminado orden secuencial. El acceso secuencial es a veces la única forma de acceder a los datos, por ejemplo en una cinta de cassette. También puede ser el método de acceso elegido, para simplemente procesar una secuencia de datos en orden.

Método de Acceso Secuencial Indexado: Método de acceso secuencial indexado. Método común de acceso a disco que almacena datos en forma secuencial, al tiempo que mantiene un índice de campos claves para todos los registros en el archivo para acceso directo. El orden secuencial sería el más comúnmente usado para el procesamiento por lotes y la impresión (número de cuenta, nombre, etc.).

SILBERSCHATZ, Abraham; GALVIN, Peter, “Sistemas Operativos” (1999). Comentan que los tipos de acceso más conocidos son:
Acceso Secuencial: el proceso lee en orden todos los registros del archivo comenzando por el principio, sin poder:

Saltar registros.
Leer en otro orden.
Acceso Aleatorio: el proceso puede leer los registros en cualquier orden utilizando dos métodos para determinar el punto de inicio de la lectura:

Cada operación de lectura (read) da la posición en el archivo con la cual iniciar.
Una operación especial (seek) establece la posición de trabajo pudiendo luego leerse el archivo secuencialmente.

5.6 Manejo de espacio en memoria secundaria.

5.6 Manejo de espacio en memoria secundaria.

A. S. Tanenbaum. “Sistemas Operativos Modernos” (1993). Comenta que el sistema de archivos se ocupa primordialmente de administrar el espacio de almacenamiento secundario, sobre todo el espacio en disco. El manejo del espacio libre en disco se lleva a cabo de la siguiente manera:
Vector de bits
Lista ligada (lista libre)
Por conteo (agrupación)
Vector de bits

El espacio libre en disco es frecuentemente implementado como un mapa de bits, donde cada sector es representado por un bit y si el sector es libre el bit es cero de lo contrario está asignado.

Asignación ligada

En este método, cada archivo es una lista ligada de bloques de disco. En el directorio hay un apuntador al bloque de inicio y un apuntador al bloque final para cada archivo. En cada uno de los bloques donde se encuentra un archivo hay un apuntador al siguiente bloque de la lista.

Asignación indexada

Cada archivo tiene su bloque índice, El cual es un arreglo de direcciones de bloques de disco. La i-ésima entrada en el bloque índice apunta al i-ésimo bloque que conforma el archivo.

5.7 Modelo jerárquico

5.7 Modelo jerárquico


Javier Fernández Rivera “modelo de datos” 2003 comenta que a este modelo se le llama árbol ya que se usa una estructura de árbol invertida con las raíces en la parte superior del diseño para su representación. Es similar al modelo en red ya que los datos se representan mediante registros llamados nodos y las relaciones se suelen llamar lazos o enlaces.


Sus características son:
· Una colección de arbole forman una BD
· Padre es un nodo vinculado a otros de nivel inferior
· Gemelos son los nodos al mismo nivel y tienen el mismo padre
· Hojas son los nodos que no tienen hijos
· Altura es la cantidad de niveles
· Camino son las líneas que unen los nodos no puede haber mas de un camino al mismo sitio o nodo
· Rama es un camino que termina en una hoja
· Familia es el conjunto de padres e hijos, etc.
· Momento es el numero total de nodos en un árbol
· Peso es la cantidad de hojas que tiene el árbol
Michael González, J. Javier Gutiérrez (1998) Afirman que generalmente un sistema de archivos tiene directorios que asocian un nombre de archivo a cada archivo, usualmente conectando el nombre de archivo a un índice en una tabla de asignación de archivos de algún tipo (como FAT en sistemas de archivos MS-DOS o los inodos de los sistemas Unix).

Fig. 1.- Normalmente los archivos y carpetas se organizan jerárquicamente





La estructura de directorios suele ser jerárquica, ramificada o "en árbol", aunque en algún caso podría ser plana. En algunos sistemas de archivos los nombres de archivos son estructurados, con sintaxis especiales para extensiones de archivos y números de versión. En otros, los nombres de archivos son simplemente cadenas de texto y los meta datos de cada archivo son alojados separadamente.


En los sistemas de archivos jerárquicos, usualmente, se declara la ubicación precisa de un archivo con una cadena de texto llamada "ruta" (o path en inglés). La nomenclatura para rutas varía ligeramente de sistema en sistema, pero mantienen por lo general una misma estructura. Una ruta viene dada por una sucesión de nombres de directorios y subdirectorios, ordenados jerárquicamente de izquierda a derecha y separados por algún carácter especial que suele ser una barra ('/') o barra invertida ('\') y puede terminar en el nombre de un archivo presente en la última rama de directorios especificada.


Ejemplo de 'ruta' en un sistema Unix
Así, por ejemplo, en un sistema tipo Unix como GNU/Linux, la ruta para la canción llamada "cancion.ogg" del usuario "pedro" sería algo como:/home/pedro/musica/cancion.ogg
Donde:
· '/' representa el directorio raiz donde está montado todo el sistema de archivos.
· 'home/pedro/musica/' es la ruta del archivo.
· 'cancion.ogg' es el nombre del archivo.

Ejemplo de 'ruta' en un sistema Windows
Un ejemplo análogo en un sistema de archivos de Windows(específicamente en Windows XP) se vería como:C:\Documents and Settings\pedro\MisDocumentos\Mi música\canción.ogg


Donde:
· 'C:\' es la unidad de almacenamiento en la que se encuentra el archivo.
· 'Documents and Settings\pedro\Mis Documentos\Mi música\' es la ruta del archivo.
· 'canción.ogg' es el nombre del archivo.
· '.ogg' es la extensión del archivo, este elemento, parte del nombre, es especialmente relevante en los sistemas Windows, ya que sirve para identificar qué aplicación está asociada con el archivo en cuestión, es decir, con qué programa se puede editar o reproducir el archivo.


El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados.

DIRECTORIO JERARQUICO


A. S. Tanenbaum. “Sistemas Operativos Modernos” (1993). Explica que los archivos son almacenados por medio de directorios, esta clasificación se de acuerdo a la conveniencia del usuario o de la empresa. La estructura tiene una forma de árbol con raíz, este método es el más utilizado debido a que la revisión o búsqueda se realiza de forma sencilla.


Para acceder a los archivos que se almacenan en un sistema jerárquico, el usuario debe indicar el o los directorios que se deben recorrer para localizar el archivo deseado, a esto se le denomina ruta de acceso del archivo. La ruta de acceso puede ser de dos formas:
Ruta absoluta.- Este tipo de ruta de acceso inicia siempre con una diagonal invertida [ ]


C:\Edit c:\SOS\sistemas\report.txt
Ruta relativa.- Este tipo de ruta de acceso realiza la búsqueda del archivo en el directorio de trabajo actual, si el archivo no se localiza aquí, el S.O. lo buscará en los directorios especificados en el PATH de un archivo con extensión .BAT.
C:\Edit report.txt

5.8 Mecanismos de recuperación en caso de falla


5.8 Mecanismos de recuperación en caso de falla


DEITEL, Harvey, “Sistemas Operativos” (1993) Afirma que 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). Etc.

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.

UNIDAD VI PROTECCIÓN Y SEGURIDAD

UNIDAD VI PROTECCIÓN Y SEGURIDAD

6.1 Concepto y objetivos de protección.
Protección
J. Boria. “Construcción de Sistemas Operativos” (1987) Explica que los sistemas operativos proveen algunos mecanismos de protección para poder implementar políticas de seguridad. Las políticas definen qué hay que hacer (qué datos y recursos deben protegerse de quién; es un problema de administración), y los mecanismos determinan cómo hay que hacerlo. Esta separación es importante en términos de flexibilidad, puesto que las políticas pueden variar en el tiempo y de una organización a otra. Los mismos mecanismos, si son flexibles, pueden usarse para implementar distintas políticas.

Los mecanismos que ofrece el sistema operativo necesariamente deben complementarse con otros de carácter externo. Por ejemplo, impedir el acceso físico de personas no autorizadas a los sistemas es un mecanismo de protección cuya implementación no tiene nada que ver con el sistema operativo.

J. Boria. Menciona algunos objetivos y políticas de la protección:
Objetivos de la Protección

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

6.2 Funciones del sistema de protección.

6.2 Funciones del sistema de protección.

L. Joyanes Aguilar (1996) afirma que dado que los sistemas de cómputo 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.

6.3 IMPLANTACION DE MATRICES DE ACCESO.


Andrew S. Tanenbaum. “Sistemas Operativos Modernos” (1993) define que un modelo de protección puede ser visto abstractamente como una matriz, llamada matriz de derecho. Los renglones de la matriz representan dominios y las columnas representan objetos. Cada entrada en la matriz contiene un conjunto de derechos de acceso. Dado que los objetos son definidos explícitamente por la columna, se puede omitir el nombre del objeto en el derecho de acceso. La entrada "Matriz[i, j]" define el conjunto de operaciones que un proceso ejecutándose en el dominio "Dj" puede realizar sobre el objeto "Oj".
Considérese la siguiente matriz de acceso:




Hay 4 dominios y 5 objetos: 3 Archivos ("A1", "A2", "A3") 1 Puerto Serial y 1 impresora. Cuando un proceso se ejecuta en O1, puede leer los archivos "A1" y "A3".
Un proceso ejecutándose en el dominio "D4" tiene los mismos privilegios que en "D1", pero además puede escribir en los archivos. Nótese que en el puerto serial y la impresora solo se pueden ser ejecutados por procesos del dominio "D2".
H. M. Deitel. “Introducción a los Sistemas Operativos” (1987). Explica una matriz de acceso:
Matriz de Acceso

• Es una representación abstracta del concepto de dominio de protección.
• Matriz con;

· Tantas columnas como objetos / recursos.
· Tantas filas como dominios.
· Las celdas contienen los accesos: son los derechos de acceso que tienen los procesos que se ejecutan en ese dominio sobre el correspondiente objeto.

El mecanismo de protección es la matriz, junto con todos los elementos que se han de añadir para que se cumplan de manera efectiva todas las restricciones de acceso a los objetos.

• La política consiste en decidir cómo rellenar las distintas celdas de la matriz.
• La MA permite implementar operaciones de cambio de domino.

o El objeto sobre el que trabajamos es el Dominio aparecen tantas columnas como dominios haya en el sistema.
o La operación es la conmutación de un dominio a otro.

6.4 Protección Basada en Lenguaje

6.4 Protección Basada en Lenguaje

De acuerdo a Andrew S. Tanenbaum (1993) 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.

SILBERSCHATZ, Abraham; GALVIN, Peter, “Sistemas Operativos” (1999). Comentan que 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.

6.5 Concepto de seguridad

6.5 Concepto de seguridad

Como menciona FLYNN, IDA M. y MCHOES, ANN MCIVER en su libro “S.O. Seguridad en entorno” (1998): 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 han 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 intencionado, y la introducción accidental de inconsistencia.

6.6 Clasificaciones de la seguridad

6.6 Clasificaciones de la seguridad

Schwinmmer “Security systems”. (2006) explica que la clasificación de los sistemas de computación según sus requisitos de seguridad ha sido un tema ampliamente discutido desde los años setenta. La disparidad de criterios existentes se ha ampliado más con la conexión de las computadoras para formar redes de computación que pueden compartir recursos.
En esta clasificación especifica, hay cuatro niveles de seguridad: a, b, c y d… a continuación, se describen estos niveles de seguridad y las características de cada uno.
Nivel D es el Sistemas con protección mínima o nula no pasan las pruebas de seguridad mínima. MS-DOS y Windows 3. 1 son sistemas de nivel d. Puesto que están pensados para un sistema mono proceso y mono usuario, no proporcionan ningún tipo de control de acceso ni de separación de recursos.
Nivel C a la Capacidad discrecional para proteger recursos, La aplicación de los mecanismos de protección depende del usuario, o usuarios, que tienen privilegios sobre los mismos. Entonces esto significa que un objeto puede estar disponible para lectura, escritura o cualquier otra operación. Y entonces casi todos los sistemas operativos comerciales de propósito general, como Unix, Linux o Windows NT se clasifican en este nivel.es decir dos son:
1. Control de acceso por dominios.
2. Control de acceso individualizado.
Nivel B es el Control de acceso obligatorio en este nivel, los controles de acceso no son discrecionales de los usuarios o los dueños de los recursos, que deben existir obligatoriamente. Esto significa que todo objeto controlado debe tener protección sea del tipo que sea. Es decir que son tres y son:
1. Etiqueta de seguridad obligatoria.
2. Protección estructurada.
3. Y el dominio de seguridad.
Nivel A es el Sistemas de seguridad certificados para acceder a este nivel, la política de seguridad y los mecanismos de protección del sistema deben ser verificados y certificados por un organismo autorizado para ello.es decir dos tipos:
1. Diseño verificado.
2. Desarrollo controlado.

6.7 Validación y amenazas al sistema

DEITEL, Harvey, “Sistemas Operativos” (1993) determina las siguientes amenazas para un sistema y algunas técnicas de prevención y detección de intrusos:

Amenazas a la seguridad en el acceso al sistema:
· Intrusos.
· programas malignos.
Intrusos:
· Piratas o hackers: individuos que acceden al sistema sin autorización.
· Los sistemas presentan agujeros por donde los hackers consiguen colarse.
· Técnicas de intrusión:
- Averiguar contraseñas (más del 80% de las contraseñas son simples).
- Probar exhaustivamente.
- Descifrar archivo de contraseñas.
- Intervenir líneas.
- Usar caballos de Troya.

Técnicas de prevención de intrusos:
Establecer una buena estrategia de elección de contraseñas:
- Contraseñas generadas por ordenador (difícil memorización).
- Inspección activa (proceso periódico de averiguación).
- Inspección proactiva (decidir si es buena en su creación.

Técnicas de detección de intrusos:
Investigar actividades inusuales:
- Detección de anomalías estadísticas.
- Uso de registros de auditoría que recogen información del comportamiento de cada usuario.
- Detección basada en reglas.
- Conjunto de reglas empleadas para decidir si una actividad es inusual.
Tipos de amenazas:

Amenazas pasivas:

• Revelación del contenido del mensaje.
• Análisis del tráfico:
• En caso de que los mensajes vayan encriptados.
• Determinar las máquinas que se comunican y la frecuencia y longitud de los mensajes.

Amenazas activas:

• Alteración del flujo de mensajes.
• Privación del servicio:
• Impide el uso normal de los servicios de comunicaciones.
• Suplantación:
• Cuando una entidad finge ser otra diferente.



Clasificación de programas malignos:


Programas malignos que necesitan anfitrión:

Forman parte de un programa.
Trampillas:
• Punto de entrada secreto a un programa.
• Se usan para depuración y prueba.
• Pueden usarse para acceso no autorizado.
Bomba lógica:
• Se ejecutan cuando se cumplen ciertas condiciones.
• Ej: se borra el disco duro si programador no estáen nómina.
Caballo de Troya:
• Código dañino incrustado en programa que se ejecuta cuando se ejecuta el programa.

Programas malignos que no necesitan anfitrión:

Gusanos:
• Programas independientes.
• Se reproducen a través de la red.
• Además de propagarse pueden causar daños.
Bacterias:
• No dañan explícitamente.
• Su único objetivo es reproducirse.
• Se reproducen exponencialmente agotando la capacidad del procesador.

Virus:
• Código incrustado en un programa.
• Se reproducen e insertan en otros programas.
• Pueden causar daños.

Algoritmo de virus muy simple (tan sólo se reproduce):
• Encontrar 1ª instrucción de un ejecutable del disco.
• Sustituirla por salto a posición siguiente a la última instrucción.
• Insertar copia del código de virus (este algoritmo) en dicha posición.
• Hacer que el virus simule la instrucción sustituida por el salto.
• Saltar a la segunda posición.

6.8 Cifrado

6.8 Cifrado

MILENKOVIC, Milan, “Sistemas Operativos: Conceptos y Diseño”, (1994). Considera que el uso creciente de las redes de computadoras y la importancia del tráfico cursado hace necesario proteger a los datos
La Oficina Nacional de Estándares de EE. UU. (NBS) ha adoptado la norma de cifrado de datos (DES) para la transmisión de información federal delicada.
STALLINGS, William “Sistemas Operativos” (2001). Explica que la criptografía es el uso de la transformación de datos para hacerlos incomprensibles a todos, excepto a los usuarios a quienes están destinados.
El problema de la intimidad trata de cómo evitar la obtención no autorizada de información de un canal de comunicaciones.
El problema de la autentificación trata sobre cómo evitar que un oponente:
Modifique una transmisión.
Le introduzca datos falsos.
El problema de la disputa trata sobre cómo proporcionar al receptor de un mensaje pruebas legales de la identidad del remitente, que serían el equivalente electrónico de una firma escrita.
Un Sistema de Intimidad Criptográfica
El remitente desea transmitir cierto mensaje no cifrado (texto simple) a un receptor legítimo:
La transmisión se producirá a través de un canal inseguro:
Se supone que podrá ser verificado o conectado mediante un espía.
El remitente pasa el texto simple a una unidad de codificación que lo transforma en un texto cifrado o criptograma:
No es comprensible para el espía.
Se transmite en forma segura por un canal inseguro.
El receptor pasa el texto cifrado por una unidad de descifrado para regenerar el texto simple.
Criptoanálisis

H. M. Deitel. (1987) define al criptoanálisis como el proceso de intentar regenerar el texto simple a partir del texto cifrado, pero desconociendo la clave de ciframiento:
Es la tarea del espía o criptoanalista:
Si no lo logra, el sistema criptográfico es seguro.
Sistemas de Clave Pública
La distribución de claves de un sistema criptográfico debe hacerse por canales muy seguros.
Los sistemas de clave pública rodean el problema de distribución de claves:
Las funciones de cifrado y descifrado están separadas y utilizan distintas claves.
No es computacionalmente posible (en un tiempo “razonable”) determinar la clave de desciframiento “D” a partir de la clave de ciframiento “C”.
“C” puede hacerse pública sin comprometer la seguridad de “D”, que permanece privada:
Se simplifica el problema de la distribución de claves.

Firmas Digitales
Zúñiga C. Mario (2004) comenta que para que una firma digital sea aceptada como sustituta de una firma escrita debe ser:
Fácil de autentificar (reconocer) por cualquiera.
Producible únicamente por su autor.
En los criptosistemas de clave pública el procedimiento es:
El remitente usa la clave privada para crear un mensaje firmado.
El receptor:
Usa la clave pública del remitente para descifrar el mensaje.
Guarda el mensaje firmado para usarlo en caso de disputas.
Para mayor seguridad se podría actuar como sigue:
El remitente puede codificar el mensaje ya cifrado utilizando la clave pública del receptor.
La clave privada del receptor permite recuperar el mensaje cifrado firmado.
La clave pública del remitente permite recuperar el texto simple original.

Aplicaciones
William Sistemas Operativos (2001) afirma que la criptografía es especialmente útil en los sistemas multiusuario y en las redes de computadoras.
Se debe utilizar para proteger a las contraseñas, almacenándolas cifradas.
Se puede utilizar también para proteger todos los datos almacenados en un sistema de computación; se debe considerar el tiempo de cifrado / descifrado.
También es aplicable en los protocolos de redes de capas, que ofrecen varios niveles de cifrado.
En el cifrado de enlace la red asume la responsabilidad de cifrado / descifrado de cada nodo:
Los datos se transmiten cifrados entre los nodos.
En cada nodo se descifran, se determina a dónde transmitirlos y se los vuelve a cifrar.
En el cifrado punto a punto un mensaje se cifra en su fuente y se descifra solo una vez, en su destino:
Existen ciertas limitaciones tales como la legibilidad de la dirección de destino en cada nodo:
Debe ser legible para el encaminamiento del mensaje.
Ej.: sistemas de conmutación de paquetes de almacenamiento y reenvío con cifrado punto a punto; en este caso la dirección de destino asociada a un paquete no puede ser cifrada.

CONCLUSIÓN

CONCLUSIÓN

La seguridad de un sistema incluye la protección ante posibles daños físicos de los datos hasta el acceso indebido a los mismos, ataques contra la confidencialidad, la integridad o la disponibilidad de recursos en un sistema deben prevenirse y solventarse mediante la política y los mecanismos de seguridad de un sistema. De nada sirve tener mecanismos de protección buenos, si el SO no es capaz de identificar a los usuarios que acceden al sistema o si no existe una política que salvaguarde datos ante la rotura de un disco.

Es necesario comprobar que los recursos solo se usan por aquellos usuarios que tienen derechos de acceso a los mismos. Las políticas de protección y seguridad de hardware, software y datos deben incluirse dentro del SO pudiendo afectar a uno o varios componentes del mismo.

Bibliografía

Bibliografía

- H. M. Deitel. Introducción a los Sistemas Operativos. Addison-Wesley Iberoamericana, México, 1987, 1993.

- William Sistemas Operativos – Cuarta Edición. Madrid, Prentice-Hall, 2001.

- A. S. Tanenbaum. Operating Systems: Design And Implementation. Prentice Hall, NJ-USA, 1987.

- A. S. Tanenbaum. Sistemas Operativos Modernos. Prentice Hall Hispanoamericana, S.A., México, 1993.

- MILENKOVIC, Milan: Sistemas Operativos: Conceptos y Diseño – Segunda Edición. Madrid, McGraw-Hill, 1994.

- W. Stallings. Data and Computer Communications - Fifth Edition. Prentice Hall, NJ-USA, 1997.

- J. L. Peterson; A. Silberschatz. Operating Systems Concepts. Addison-Wesley, MA-USA, 1991

- J. Boria. “Construcción de Sistemas Operativos” (1987)