Sei sulla pagina 1di 22

Materia: Sistemas Operativos

Unidad: 6 Protección y seguridad.


Tema:
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.

Nombre: Roman Palacios José Juan


Fecha: 16 de Mayo de 2011

***********************************************************************************

PROTECCIÓN Y SEGURIDAD.

6.1 CONCEPTO Y OBJETIVOS DE PROTECCIÓN.

La seguridad en los sistemas de una computadora es un elemento muy importante en diseño de


los sistemas operativos ya que manejan información muy valiosa para sus propietarios. [1]

La seguridad de un sistema tiene múltiples facetas, desde la protección ante posibles daños
físicos de los datos (fuego, terremotos, etc.) hasta el acceso indebido a los mismos (intrusos, fallos de
confidencialidad, etc.).

Los 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. La seguridad debe tener en cuenta eventos tanto internos como externos (provenientes del
entorno en que opera el sistema), de nada sirve tener mecanismos de protección interna muy buenos, si
el sistema operativo no es capaz de identificar a los usuarios que acceden al sistema o si no existe una
política de salvaguarda de datos antes la rotura de un disco.

La protección, consiste en evitar que se haga un uso indebido de los recursos que están dentro
del ámbito del sistema operativo. Es necesario comprobar que los recursos (archivos, zonas de
memoria, etc.) solo se usan por aquellos usuarios que tienen derechos de acceso.

El sistema operativo debe proporcionar los medios para implementar políticas de protección
deseadas por el usuario.
La seguridad de un sistema operativo se basa principalmente en tres aspectos de diseño:

Evitar pérdida de datos


Controlar la confidencialidad
Controlar el acceso a los datos y recursos

La pérdida de datos puede deberse a catástrofes naturales o artificiales, a errores del hardware o
del software de la computadora (rotura de un disco) o a errores humanos. Una solución para estos
problemas es hacer que los administradores del sistema mantengan varias copias de los datos
almacenados en distintos lugares.

En el ámbito interno del sistema operativo hay operaciones que pueden violar la
confidencialidad de los datos. Una simple asignación de bloque de disco libre a un usuario le
proporcionará el bloque con el contenido del usuario anterior si el sistema operativo no tiene una
política definida para este tipo de situaciones. En estos casos, siempre hay que limpiar los recursos de
los datos anteriormente existentes.

Sin embargo la confidencialidad de los datos es un problema de seguridad que sobrepasa el


ámbito de los sistemas operativos.

En cuanto al control del acceso a datos y recursos, es necesario asegurar que los usuarios no
acceden archivos para los que no tienen permisos de acceso, a cuentas de otros usuarios o páginas de
memoria o bloques de disco que contienen información de otros usuarios.

Un sistema operativo puede dar soporte de ejecución a múltiples procesos de múltiples usuarios,
que ejecutan de manera concurrente. Por ello, una de las funciones principales del sistema operativo es
proteger los recursos de cada usuario para que pueda ejecutar en un entorno seguro. Donde los
mecanismos permiten controlar el acceso a los objetos del sistema permitiéndolo o denegándolo sobre
la base de información tal como la identificación del usuario, el tipo de recurso, la pertenencia del
usuario a cierto grupo de personas, las operaciones que puede ,hacer el usuario o el grupo con cada
recurso, etc. La existencia de los mecanismos de seguridad obliga a mantener un compromiso constante
entre separación y comparación. [2]

Autenticación de usuarios.

El objetivo de la identificación del usuario, también denominado autenticación, es determinar si


un usuario (persona, servicio o computadora) es quien dice ser. Para lo cual existen diversas formas de
establecer la identidad de un usuario, tales como:

Pedir información que solo él conoce a través de contraseñas, juegos de preguntas o algoritmos
de identificación.
Determinar características físicas del usuario tales como la pupila, la huella dactilar, el DNA, la
firma y etc.
Pedir un objeto que use el usuario, como puede ser una firma electrónica, unatarjeta con banda
magnética o con un chip.
Además, como criterio general de seguridad, los sistemas operativos modernos dan la
posibilidad de registrar todos los accesos al sistema, lo cual permite hacer controles interactivos ya
posteriori de dichos accesos.

El proceso de autenticación:

Habitualmente, cuando un usuario quiere acceder al sistema, aparece una pantalla o mensaje de
entrada. En el caso de Windows NT, la pantalla pide tres valores:

Identificación del usuario: nombre del usuario del sistema.


Palabra clave o contraseña: espacio para teclear la clave.
Dominio de protección al que pertenece el usuario.

Existen varios fallos posibles en el proceso de entrada al sistema, por lo que este proceso debe
ser robusto y no dar información a los intrusos. Donde un ataque a la seguridad del sistema relacionado
con el proceso de autenticación consiste en suplantar al proceso que pide los datos de entrada.

Palabras claves o contraseñas.

El método más usado actualmente para identificar a un usuario es el de contraseñas, o palabras claves.

Una contraseña es un conjunto de caracteres alfanuméricos y especiales conocido únicamente


por el usuario y por el sistema operativo sobre el que se ha llegado a un acuerdo para que sea usado
como clave de acceso al sistema. Normalmente, cuando se habilita un nuevo usuario en el sistema, este
introduce su contraseña, que puede cambiar posteriormente tantas veces como quiera. Dicha contraseña
se guarda cifrad en archivos especiales.

Este sistema es sencillo de implementar y de usar, funcionando de forma similar en todos los
sistemas operativos. Sin embrago es necesario tomar las siguientes cuatro decisiones básicas de diseño
para un sistema como este:

Asignación de claves:
La palabra clave es fijada por el usuario cuando entra en su cuenta y la puede cambiar tantas
veces como quiera.

Longitud y formato de claves:


La longitud y el formato de las claves han ido cambiando a través del tiempo, principalmente
debido a la detección de fallos asociados a las claves usadas en cada momento. Donde para aumentar la
complejidad de la clave se puede hacer que el mandato que permite cambiar la contraseña obligue al
usuario a meter caracteres no alfanuméricos y que fuerce la existencia de contraseñas de una longitud
mínima añadiendo números aleatorios a la palabra antes de cifrarla.

Almacenamiento de claves:
Las claves suelen almacenarse en archivos cifrados, con lo cual se incrementa la seguridad.

Duración de las claves:


Para dificultar la detección de contraseñas válidas por parte de posibles intrusos se puede
configurar el sistema operativo: los sistemas operativos permiten que las contraseñas de usuario sean
válidas únicamente durante un cierto tiempo.

Dominios de protección.
Para poder implementar mecanismos de protección sobre los objetos del sistema, que pueden
ser hardware (UCP, memoria, etc.) o software (procesos, archivos, semáforos, etc.), es necesario en
primer lugar disponer de identificadores únicos de usuarios y objetos.

La relación entre objetos y derechos de acceso se define usando dominios de protección. Un


dominio de protección es un conjunto de pares (objeto, derechos), donde cada par especifica un objeto
y las operaciones que puede ejecutar sobre el mismo.

Un objeto puede pertenecer a varios dominios de protección simultáneamente. En cada


momento, un proceso ejecuta un dominio de protección, pudiendo cambiar de un dominio a otro, si el
sistema operativo lo permite.

Matrices de protección.
La relación entre dominios y objetos se puede definir de forma completa mediante 6ba matriz
de protección, también denominada de acceso. Los dominios de protección son las filas de la matriz y
los objetos son las columnas de la misma. El elemento (i, j) expresa las operaciones que el dominio i ;
puede ejecutar sobre el objeto j. Si la matriz de protección esta completamente definida, los
mecanismos de protección pueden saber siempre qué hacer cuando un proceso de un dominio solicita
determinada operación sobre un objeto.

El modelo de matriz de protección, derivado del modelo teórico HRU punto devista conceptual,
pero tiene inconvenientes para su implementación:

La matriz de un sistema complejo puede ser muy grande y muy dispersa.


Una matriz tiene un número fijo de filas (dominios) y columnas (objetos), lo que es muy poco flexible
para sistemas cuyo número de dominios u objetos puede cambiar.

Para resolver estos problemas, la mayoría de los sistemas operativos implementan la matriz
mediante estructuras dinámicas de datos (listas) a las que se puede añadir o quitar elementos sin tener
que redefinir ninguna estructura de datos del sistema operativo. Para la implementación de la matriz
mediante elementos dinámicos, los sistemas operativos usan dos enfoques:

Almacenar la matriz por columnas, con una lista por objeto que especifica qué operaciones
puede hacer cada dominio sobre ese objeto. La lista resultante se denomina lista de control de acceso
(ACL, Acces Control List).
Almacenar la matriz por filas, con una lista por dominio que especifique qué operaciones se
pueden hacer sobre un objeto cuando se pertenece a ese dominio. La lista resultante se denomina lista
de capacidades (capabilities).

Lista de control de acceso.


Una forma frecuente de controlar los accesos a un objeto es usar el identificador del usuario
como criterio. Con listas de control de acceso es necesario especificar para cada dominio de protección,
e incluso para 'cada usuario, qué tipos de acceso al objeto son posibles. Para implementar esta solución,
a cada objeto (archivos, directorios, procesos, etc. I se le asocia una lista de pares:
(Dominio, operaciones).

Cuando un usuario pide acceso a un objeto, se determina a qué dominio de protección pertenece
y se recorre la lista para ver si se puede hacer la operación solicitada.

La lista de control de acceso se corresponde directamente con las necesidades de los usuarios.

Estas listas tienen dos problemas asociados:


Construir y mantener las listas es costoso en tiempo y recursos.
Es necesario disponer de estructuras de almacenamiento de tamaño variable porque las listas
pueden tener longitudes distintas dependiendo del objeto.

Listas de control de acceso en UNIX

En UNIX, solo existen tres dominios de protección: dueño, grupo, otros. Para cada dominio se
permiten tres tipos de operaciones sobre un objeto: leer (r), escribir (w) y ejecutar (x). Todas las
operaciones de interfaz Con el sistema operativo, estos permisos se indican Con números en octal. Se
usa un digito para cada dominio y el valor de loS bits de cada digito se pone a 1 si la operación es
posible a 0 si no lo es.

Los parámetros de protección de un objeto se pueden cambiar en UNIX mediante las llamadas
al sistema chmod y chown.

Listas de control de acceso en Windows NT

Todos los objetos de Windows NT tienen asignados descriptores de seguridad como parte de
sus fichas de acceso. La parte mas significativa de los descriptores de seguridad es la lista de control de
accesos.

Cada entrada de la ACL contiene los descriptores de seguridad de los distintos dominios del
sistema y los derechos de la ACL para permitir o denegar al acceso alobjeto.

El criterio de asignación de derechos en la ACL de un objeto nuevo en Windows NT es el siguiente:

Si el creador de un objeto proporciona una ACL de forma explicita, el sistema la incluye en la


ficha de acceso de dicho objeto.

Si no proporciona una ACL de forma explicita, pero el objeto tiene un nombre, el sistema
comprueba si el objeto debe heredar la de los objetos de su directorio. En ese caso se incluye en la fila
de acceso del objeto la ACL heredada de los objetos de su directorio.
Si ninguna de las dos condiciones anteriores se cumplen, el 'subsistema de seguridad aplica al objeto
una ACL por defecto.

Además, en los descriptores de seguridad de los objetos se puede activar un campo de auditoria
que indica al subsistema de seguridad que debe espiar al objeto y generar informes de seguridad cuando
algún usuario intente hacer un uso incorrecto del mismo.
Capacidades

La otra forma posible de implementar la matriz de protección es asociar a cada dominio un


conjunto de descriptores que indiquen las operaciones que los componentes de ese dominio pueden
efectuar sobre cada objeto del sistema. Estos descriptores se denominan capacidades (capabilities) y
son una combinación de una referencia a un objeto con los permisos de acceso al mismo desde el
dominio del poseedor de la capacidad. Las listas de capacidades son a su vez objetos, por 10 que
pueden ser incluidas dentro de otras listas de capacidades, facilitando la comparición de los objetos en
dominios y subdominios.

La mayoría de los sistemas que usan capacidades se basan en el hecho de que las listas de
capacidades están siempre dentro del espacio de memoria del sistema operativo, sin que exista
posibilidad de migrar a espacio de memoria de los procesos de usuario.

Una capacidad no pueda ser modificada. En casi todos los sistemas es necesario destruirla y
crear una nueva, siguiendo un esquema de uso de una única vez.
A nivel interno se han propuesto tres métodos para proteger las listas de capacidades:

Arquitectura etiquetada, en al cual la palabra de memoria tenga un bit de etiqueta adicional


diciendo si contiene o no una capacidad. En caso positivo, esa posición de memoria sólo puede ser
modificada por procesos que ejecuten dentro del núcleo del sistema operativo. Esta solución es cara y
poco adecuada para sistemas de propósito de general.
capacidades cifradas. La clave de cifrado es desconocida por los usuarios, que deben limitarse a
manipular las capacidades cifradas recibidas del sistema operativo. Este sistema se ajusta bien a las
necesidades de los sistemas operativos distribuidos.
Listas de control de acceso asociadas a cada capacidad.

Las capacidades no se corresponden directamente con las necesidades de los usuarios y son
menos intuitivas que las ACL. Debido a ello, la mayoría de los sistemas operativos proporcionan ACL
como mecanismo de protección. Sin embargo, las capacidades tienen varias ventajas:

Son muy útiles para incluir información de protección para un proceso en particular.
El mecanismo de comprobación de derecho es muy sencillo.
Se adaptan muy bien a sistemas distribuidos.

Su gran desventaja sigue siendo que la revocación de accesos a un objeto puede ser ineficiente
si se desea hacerla con criterios de selectividad entre dominios o para revocar derechos parciales.

Revocación de derechos de acceso:

El principal problema de las capacidades es que, en un sistema dinámico, pueden existir cientos
de capacidades concedidas para acceder a un objeto, lo que hace muy difícil su control. Por lo cual,
revocar los derechos de acceso para un objeto en particular es muy difícil, ya que el sistema debe
buscar todas las capacidades existentes sobre el mismo para aplicar la revocación de derechos.

Donde las capacidades se pueden implementar, para facilitar la revocación de derechos de


Acceso como:
Lista de control de acceso en la cual se puede mantener una lista desde cada objeto a todas sus
capacidades. Si hay modificaciones, se recorre dicha lista y se aplican.
Claves de versión donde cada objeto tiene una clave maestra que se copia en cada nueva
capacidad sobre ese objeto.
Indirecciones de manera que las capacidades no apunten directamente a los objetos, sino a una
tabla global intermedia desde la cual se apunta al objeto.

6.2 FUNCIONES DEL SISTEMA DE PROTECCIÓN. [3]

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

6.3 IMPLANTACIÓN DE MATRICES DE ACCESO. [4]

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 "D j"
puede realizar sobre el objeto "Oj".

Considérese la siguiente matriz de acceso:

Dominio \ Objeto A1 A2 A3 COM1 LPT1


D1 Leer Leer
D2 Leer Imprimir
D3 Leer Ejecutar
D4 Leer Escribir Leer Escribir

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

Estructuras de protección dinamicas.


Las matrices de acceso vistas hasta el momento, en las que no cambian los derechos en cada
dominio durante su ejecución, son un ejemplo de Estructuras de Protección Estáticas. Con el fin de
ofrecer flexibilidad y de implementar eficientemente la protección, un Sistema Operativo debe soportar
cambios en los derechos de acceso. Para esto se requiere implementar alguna estructura de protección
dinámica.

En este caso continuaremos considerando las matrices de acceso, aunque en su versión


dinámica. Básicamente se requieren cuatro nuevos derechos de acceso: Copia, Cambio, Propietario y
Control.

Derecho de acceso copia.


Este derecho de acceso da la facultad a un proceso de copiar derechos existentes en un dominio
hacia otro dominio para el objeto en cuestión. O sea, este derecho genera copias en columnas.
Por ejemplo, considérese la siguiente matriz de acceso:

Archivo 1 Archivo 1 COM1 Impresora


D1 Escribir Enviar+
D2 Leer+
Escribir
D3 Recibir
D4 Leer Imprimir

En este caso estará indicado el derecho copia añadiendo el signo (+) al nombre de los derechos
que pueden ser copiados.

En la tabla se indica que un proceso ejecutándose en el dominio 1 podrá copiar hacia cualquier
otro dominio, el derecho enviar sobre el objeto "COM1" y que un proceso ejecutándose en el dominio
"D2" podrá copiar el derecho "Leer" hacia cualquier otro dominio sobre el objeto "Archivo2".

De esta manera, en algún momento posterior, la situación de la tabla podría ser la siguiente:

Archivo 1 Archivo 2 COM 1 Impresora


D1 Escribir Leer Enviar+
D2 Leer+
Escribir
D3 Recibir
D4 Leer Enviar Imprimir

En la que se ha copiado el derecho "Enviar" del dominio "D1" al dominio "D4" sobre el objeto
"COM1" y se ha copiado el derecho "Leer" del dominio "D2" al dominio "D1" sobre el objeto
"Archivo 2".

Puede observarse que los derechos "copiados" no contienen el signo (+), o sea, se ha realizado
una copia limitada. En general se podría hablar de 3 variantes del derecho "copia": Copia Limitada,
Copia Completa, Translación.

COPIA LIMITADA. La copia no incluye el derecho "Copia", con lo que no se podrán hacer
copias sucesivas del derecho. Se puede indicar con el signo (+).

COPIA COMPLETA. La copia incluye el derecho "Copia", por lo que se pueden realizar copias
sucesivas del derecho. Se puede indicar con el signo (*).

TRANSLACIÓN. El derecho en cuestión junto con el derecho copia se eliminan del dominio
original y se coloca en el nuevo dominio. Esta es una forma básica de retirar derechos de un dominio
para asignarlo a otro. Se puede indicar con el signo (?).
Derecho de acceso cambio.
Este derecho de acceso indica la posibilidad de un proceso para cambiarse de un dominio a otro.
La operación cambio actúa sobre dominios, o sea, en este caso los dominios son los objetos. Entonces,
para considerar este derecho de acceso se deberán incluir los dominios como objetos adicionales en la
matriz de acceso. Considérese la siguiente matriz de acceso:

Arch1 Arch2 COM1 Impresora D1 D2 D3 D4


D1 Escribir Leer Enviar+ Cambio(a)
D2 Leer Cambio(b)
Escribir
D3 Recibir
D4 Leer Enviar Imprimir Cambio(c)

Esta tabla indica que un proceso ejecutándose en "D1" puede cambiarse al dominio "D4" (a); un
proceso ejecutándose en "D2" puede cambiarse a "D3"(b) y un proceso ejecutándose en el dominio
"D4" puede cambiarse a "D1"(c).

6.4 PROTECCIÓN BASADA EN EL LENGUAJE.

Protección basada en el lenguaje. [5]

La especificación de protección en un lenguaje de programación permite la descripción de alto


nivel de políticas para la asignación y uso de recursos.
La implementación del lenguaje puede proveer software para hacer cumplir la protección
cuando no se pueda validar si el hardware está soportado.
Interpretar las especificaciones de protección para generar llamadas en cualquier sistema de
protección provisto por el hardware y el SO.

Protección en java 2

La protección la maneja la máquina virtual (JVM)


La JVM asigna un dominio de protección a una clase cuando la carga.
El dominio de protección indica qué operaciones puede (y no puede) realizar la clase.
Si se invoca un método de biblioteca y éste realiza una operación privilegiada, se examina el
stack para asegurar que la biblioteca pueda realizar la operación.
Inspección del Stack

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.
[6]

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:
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.
Las necesidades de protección pueden expresarse independientemente de los recursos que
ofrezca un sistema operativo en particular.
El diseñador de un subsistema no tiene que proporcionar los mecanismos para hacer cumplir la
protección.
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.

6.5 CONCEPTO DE SEGURIDAD. [7]

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
intencionado, y la introducción accidental de inconsistencia.

6.6 CLASIFICACIONES DE LA SEGURIDAD. [8]

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.

Algunas de las clasificaciones existentes en la actualidad son la clasificación del Departamento


de Defensa (DoD) de los Estados Unidos de América, el criterio alemán, el criterio Canadiense, el
ITSEC o el criterio común.

Clasificación del Departamento de Defensa (DoD) de los Estados Unidos

Esta clasificación especifica 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 A. 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. Organismos de verificación
muy conocidos son el National Computer Security Center o el TEMPEST.

Clase Al. Diseño verificado. Clase B 1 mas modelo formal del sistema de seguridad. La
especificación formal del sistema debe ser probada y aprobada por un organismo certificador. Para ello
debe existir una demostración de que la especificación se corresponde con el modelo, una
implementación consistente con el mismo y un análisis formal de distintos problemas de seguridad.
Clase Ax. Desarrollo controlado. A1 más diseño con instalaciones y personal controlados. Se
podrían incluir requisitos de integridad de programas, alta disponibilidad y comunicaciones seguras.

NIVEL B. Control de acceso obligatorio.

En este nivel, los controles de acceso no son discrecionales de los usuarios o dueños de los
recursos, que deben existir obligatoriamente. Esto significa que todo objeto controlado debe tener
protección sea del tipo que sea. Este nivel se divide a su vez en tres subniveles:
Clase B1. Etiquetas de seguridad obligatorias. Cada objeto controlado debe tener su etiqueta de
seguridad.
Clase B2. Protección estructurada. Todos los objetos deben estar controlados mediante un
sistema de seguridad con diseño formal y mecanismos de verificación. Estos mecanismos permiten
probar que el sistema de seguridad se ajusta a los requisitos exigidos.
Clase B3. Dominios de seguridad. B2 ampliado con pruebas exhaustivas para evitar canales
encubiertos, trampas y penetraciones. El sistema debe ser capaz de detectar intentos de violaciones de
seguridad, para ello debe permitir la creación de listas de control de acceso para usuarios o grupos que
no tienen acceso a un objeto.

Nivel C. 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. Esto significa que un objeto puede estar disponible para lectura, escritura
o cualquier otra operación. Casi todos los sistemas operativos comerciales de propósito general, como
Unix, Linux o Windows NT se clasifican en este nivel. Este nivel a la vez se subdivide en dos niveles:

Clase CI. Control de acceso por dominios. No hay posibilidad de establecer qué elemento de un
determinado dominio ha accedido a un objeto. UNIX pertenece a esta clase. Divide a los usuarios en
tres dominios: dueño, grupo y mundo. Se aplican controles de acceso según los dominios, siendo todos
los elementos de un determinado dominio iguales ante el sistema de seguridad.
Clase C2. Control de acceso individualizado. Granularidad mucho más fina en el control de
acceso a un objeto. El sistema de seguridad debe ser capaz de controlar y registrar los accesos a cada
objeto a nivel de usuario. Windows NT pertenece a esta clase.

Nivel D. Sistemas con protección mínima o nula


No pasan las pruebas de seguridad mínima exigida en el DoD. MS-DOS y Windows 3. 1 son
sistemas de nivel D. Puesto que están pensados para un sistema monoproceso y monousuario, no
proporcionan ningún tipo de control de acceso ni de separación de recursos.

6.7 VALIDACIÓN Y AMENAZAS AL SISTEMA.

Deitel (1987) establece que la validación de datos es una de las áreas más importantes a tener en
cuenta, especialmente en el desarrollo de sistemas conectados a redes como internet. Validar datos hace
referencia a verificar, controlar o filtrar cada una de las entradas de datos que provienen desde el
exterior del sistema. [1]

La validación tiene que ver con:


La verificación y la auditoría del sistema.
La autentificación de los usuarios.

Los sistemas sofisticados de autentificación de usuarios resultan muy difíciles de evitar por
parte de los intrusos.

Un problema existente es la posibilidad de que el sistema rechace a usuarios legítimos:


Un sistema de reconocimiento de voz podría rechazar a un usuario legítimo resfriado.
Un sistema de huellas digitales podría rechazar a un usuario legítimo que tenga una cortadura o
una quemadura.
Deitel (1987) concluye que en definitiva, se debe identificar cada uno de los flujos de entrada,
verificar que el tipo de dato sea el esperado y no otro, verificar que no haya códigos ocultos, etc.

Amenazas a la seguridad de un sistema. [9]

Seguridad de la información debido a:


Expansión de los ordenadores.
Uso de Sistemas Distribuidos y Redes.

Diferenciación entre Seguridad y Protección:


Seguridad (política):
¿Qué accesos son permitidos?.
¿Qué usuarios tienen que tener qué accesos a qué recursos?
Protección (mecanismo):
¿Cómo controlar los accesos?.
Proporcionar los medios para llevar a cavo las políticas de seguridad.

Generalización del término “Seguridad”.


Mecanismo flexible para albergar políticas.

Requisitos a cumplir por el sistema:

Confidencialidad:
Los elementos del sistema sólo serán visibles por aquellos grupos autorizados.
Integridad:
Los elementos del sistema sólo serán modificados por los grupos autorizados.

Disponibilidad:
Los elementos del sistema sólo estarán disponibles para grupos autorizados.

Elementos amenazados:
Hardware.
Software.
Datos.
Líneas de comunicación
Elementos del sistema a los que afecta la seguridad:

Aspectos en que se agrupa la seguridad:

Seguridad en el uso de recursos y servicios: control de acceso. Utilizar un mecanismo de control


de acceso a los recursos que tan sólo permita el acceso si existe el permiso correspondiente.

Seguridad en el acceso al sistema:


Asegurar que sólo entran los usuarios autorizados.

Seguridad en el uso de redes:


Evitar que se puedan producir escuchas y alteraciones en los datos que viajan por la red.

Seguridad en el uso de recursos y servicios.

Evolución del control de acceso a recursos y servicios:


Ninguna protección: ej, MS-DOS.
Protección de recursos básicos:
Memoria, ficheros, modo usuario/supervisor.
Protección de servicios generales del sistema.
Protección de servicios proporcionados por los propios usuarios:
Arquitecturas cliente/ servidor.

Situación actual:
Heterogeneidad en la protección:
Base de computación fiable grande.
“Agujeros” por interacción no prevista entre mecanismos.
Inseguridad en distribución:
Falta de protección para interoperabilidad de objetos distribuidos.
Pocas y malas soluciones de seguridad.

Principios de Diseño de un Sistema de Seguridad:


Mínimo Privilegio:
Los derechos de acceso deben adquirirse sólo por permiso explícito; por omisión el acceso no
debe estar permitido.
Ahorro de Mecanismos:
Lo más simples y pequeños como sea posible.
Aceptación:
No deben interferir excesivamente en el trabajo de los usuarios.
Mediación Total:
Cada acceso debe ser cotejado con la información de control.
Diseño abierto.

Amenazas a la seguridad en el acceso al sistema. [10]

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.

La criptografía (del griego κρύπτω krypto, «oculto», y γράφως graphos, «escribir», literalmente
«escritura oculta») es la técnica, bien sea aplicada al arte o la ciencia, que altera las representaciones
lingüísticas de un mensaje. [11]

Concepto de Cifrado. [12]

El cifrado es un método que permite aumentar la seguridad de un mensaje o de un archivo


mediante la codificación del contenido, de manera que sólo pueda leerlo la persona que cuente con la
clave de cifrado adecuada para descodificarlo. Por ejemplo, si realiza una compra a través de Internet,
la información de la transacción (como su dirección, número de teléfono y número de tarjeta de
crédito) suele cifrarse a fin de mantenerla a salvo. Use el cifrado cuando desee un alto nivel de
protección de la información.

Métodos y Técnicas de Cifrado.

Cifrado de sustitución
El cifrado de sustitución consiste en reemplazar una o más entidades (generalmente letras) de un
mensaje por una o más entidades diferentes.

Existen varios tipos de criptosistemas de sustitución:

La sustitución monoalfabética consiste en reemplazar cada una de las letras del mensaje por otra
letra del alfabeto.
La sustitución polialfabética consiste en utilizar una serie de cifrados monoalfabéticos que son
re-utilizados periódicamente.
La sustitución homófona hace posible que cada una de las letras del mensaje del texto plano se
corresponda con un posible grupo de caracteres distintos.
La sustitución poligráfica consiste en reemplazar un grupo de caracteres en un mensaje por otro
grupo de caracteres.

Cifrado César
Este código de cifrado es uno de los más antiguos ya que su uso se remonta a Julio César. El
principio de cifrado se basa en la adición de un valor constante a todos los caracteres de un mensaje o,
más precisamente, a su código ASCII.
Cifrado ROT 13
El caso específico del cifrado César donde la clave de cifrado es N (la 13º letra del alfabeto) se
denomina ROT 13? (se eligió el número 13, la mitad de 26, para que sea posible cifrar y descifrar
fácilmente mensajes textuales).

Cifrado de Transposición
El método de cifrado por transposición consiste en reordenar datos para cifrarlos a fin de
hacerlos ininteligibles. Esto puede significar, por ejemplo, reordenar los datos geométricamente para
hacerlos visualmente inutilizables.

El Cifrado Simétrico.
El cifrado simétrico (también conocido como cifrado de clave privada o cifrado de clave
secreta) consiste en utilizar la misma clave para el cifrado y el descifrado.

El cifrado consiste en aplicar una operación (un algoritmo) a los datos que se desea cifrar
utilizando la clave privada para hacerlos ininteligibles. El algoritmo más simple (como un OR
exclusivo) puede lograr que un sistema prácticamente a prueba de falsificaciones (asumiendo que la
seguridad absoluta no existe).

El Cifrado Asimétrico.
El cifrado asimétrico (también conocido como cifrado con clave pública). En un criptosistema
asimétrico (o criptosistema de clave pública), las claves se dan en pares:

Una clave pública para el cifrado.


Una clave secreta para el descifrado.

En un sistema de cifrado con clave pública, los usuarios eligen una clave aleatoria que sólo ellos
conocen (ésta es la clave privada). A partir de esta clave, automáticamente se deduce un algoritmo (la
clave pública). Los usuarios intercambian esta clave pública mediante un canal no seguro.

Criptografía [13]

El uso creciente de las redes de computadoras y la importancia del trafico 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.

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

Es 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

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

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.

BIBLIOGRAFÍA

Libros:
[1] H. M. Deitel. Introducción a los Sistemas Operativos. Addison-Wesley Iberoamericana, México,
1987.

Paguinas web:

[1] http://profinal0.tripod.com/seguridad.htm
[2] http://profinal0.tripod.com/concepto.htm
[3] http://sistemasoperativos.angelfire.com/html/6.2.html
[4]http://sistemas.itlp.edu.mx/tutoriales/sistemasoperativos2/unidad3.htm#IMPLANTACION%20DE%
20MATRICES%20CON%20DERECHOS%20DE%20ACCESO.
[5] http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r43770.PDF
[6] http://www.mitecnologico.com/Main/ProteccionBasadaEnLenguaje
[7] http://www.mitecnologico.com/Main/ConceptoDeSeguridad
[8] http://profinal0.tripod.com/clasifica.htm
[9] http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r29417.PDF
[10] http://sistemadearchivo-corral.blogspot.com/2008/11/67-validacin-y-amenazas-al-sistema.html
[11] http://es.wikipedia.org/wiki/Criptograf%C3%ADa
[12] http://www.mitecnologico.com/Main/Cifrado
[13] http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO14.htm#Crip

Potrebbero piacerti anche