Está en la página 1de 11

Sistemas Operativos I

Seguridad y proteccin de recursos


Los sistemas operativos proveen algunos mecanismos de proteccin para poder implementar polticas de seguridad. Las polticas definen qu hay que hacer (qu datos y recursos deben protegerse de quin; es un problema de administracin), y los mecanismos determinan cmo hay que hacerlo. Esta separacin es importante en trminos de flexibilidad, puesto que las polticas pueden variar en el tiempo y de una organizacin a otra. Los mismos mecanismos, si son flexibles, pueden usarse para implementar distintas polticas. Los mecanismos que ofrece el sistema operativo necesariamente deben complementarse con otros de carcter externo. Por ejemplo, impedir el acceso fsico de personas no autorizadas a los sistemas es un mecanismo de proteccin cuya implementacin no tiene nada que ver con el sistema operativo. Un aspecto importante de la seguridad es el de impedir la prdida de informacin, la cual puede producirse por diversas causas: fenmenos naturales, guerras, errores de hardware o de software, o errores humanos. La solucin es una sola: mantener la informacin respaldada, de preferencia en un lugar lejano. Otro aspecto importante de la seguridad, es el que tiene que ver con el uso no autorizado de los recursos:

Lectura de datos. Modificacin de datos. Destruccin de datos. Uso de recursos: ciclos de CPU, impresora, almacenamiento.

Aqu el sistema operativo juega un rol fundamental, ofreciendo mecanismos de autorizacin y autentificacin. Proteccin absoluta contra uso malicioso de los sistemas es imposible, pero si los costos de violar un sistema son superiores a los potenciales beneficios que se pueden obtener, entonces el sistema puede considerarse seguro. El problema es que esa proteccin no obstaculice el uso del sistema por parte de usuarios autorizados. Demasiada seguridad podra ser contraproducente si es muy engorrosa para los usuarios, pues estos tendern a eludir los procedimientos para facilitarse la vida. 2. Casos famosos Algunos de los Titanics y Hindenburgs de la seguridad en computadores son los siguientes: En Unix lpr -r archivo imprime archivo y despus lo elimina. En versiones antiguas de Unix se poda hacer lpr -r /etc/passwd, lo que terminaba con la eliminacin del archivo donde se registran los usuarios.

Profesor: Luis Monsalva

3 Corte

Pgina 1

Sistemas Operativos I
El comando mkdir xx era un programa que ejecutaba en modo superusuario, creando un nodo-i para el directorio xx, y luego cambiando el dueo de xx de root al del usuario. Con un sistema lento y un poco de suerte, se poda modificar el nodo-i para que apuntara a cualquier archivo (por ejemplo, el passwd), justo antes de que mkdir fijara el nuevo dueo. Otro ejemplo ilustrativo de lo fcil que es pensar que un sistema es seguro, cuando en realidad no lo es, es el del sistema operativo TENEX, usado en los DEC-10 de Digital. TENEX usaba memoria virtual, y para permitir al usuario monitorear el comportamiento de sus programas, ste poda especificar una rutina que el sistema ejecutara cada vez que hay una falta de pgina. Al mismo tiempo, los archivos en TENEX estaban protegidos por una clave: cada vez que se abra un archivo, deba especificarse su clave. El sistema operativo chequeaba las claves de un carcter a la vez, detenindose apenas un carcter difiriera. Gracias a eso y a que era posible saber cundo haba una falta de pgina, se poda descubrir la clave de cualquier archivo, de la siguiente manera: Poner primer carcter de posible clave en la ltima posicin de una pgina p, y arreglrselas para que la siguiente (la p+1) estuviera invlida (no presente en memoria fsica). Tratar de abrir el archivo, usando esa posible clave. El resultado esperado es un mensaje diciendo "clave incorrecta", pero dependiendo de si hubo falta de pgina o no en p+1, podemos saber si el primer carcter era correcto o no. Despus de unas pocas pruebas, se habr descubierto el primer carcter, y es cosa de seguir la misma idea para descubrir el resto. Si hay 128 caracteres posibles, necesitaremos 128n intentos para descubrir una clave de n caracteres, en lugar de 128n Aunque estos defectos han sido corregido, todava hay ms. En Unix, algunos nunca sern corregidos (si se corrigen, dejara de ser Unix). 3. Otras amenazas y ataques posibles

Un virus es parecido a un gusano, en cuanto se reproduce, pero la diferencia es que no es un programa por s slo, sino que es un trozo de cdigo que se adosa a un programa legtimo, contaminndolo. Cuando un programa contaminado se ejecuta, ejecutar tambin el cdigo del virus, lo que permitir nuevas reproducciones, adems de alguna accin (desde un simple mensaje inocuo hasta la destruccin de todos los archivos). Un caballo de Troya es un programa aparentemente til que contiene un trozo de cdigo que hace algo no deseado. Una puerta trasera es un punto de entrada secreto, dejado por los implementadores del sistema para saltarse los procedimientos normales de seguridad. La puerta trasera puede haberse dejado con fines maliciosos o como parte del diseo; en cualquier caso, son un riesgo. Dejar corriendo en un terminal un programa que pida "login:" y luego "password:", para engaar a los usuarios de modo que estos revelen su clave.

Profesor: Luis Monsalva

3 Corte

Pgina 2

Sistemas Operativos I

Solicitar recursos como pginas de memoria o bloques de disco, y ver qu informacin contienen; muchos sistemas no los borran cuando se liberan, de modo que se puede encontrar informacin "interesante". Sobornar o torturar al administrador para que suelte la clave.

4. Principios bsicos para la seguridad


Suponer que el diseo del sistema es pblico. El defecto debe ser: sin acceso. Chequear permanentemente. Los mecanismos de proteccin deben ser simples, uniformes y construidos en las capas ms bsicas del sistema. Los mecanismos deben ser aceptados sicolgicamente por los usuarios.

En cualquier caso, hay que tener presente que: Seguridad = 1/Conveniencia En otras palabras, mientras ms seguro es tu sistema, ms desdichado sers. 5. Mecanismos de autorizacin Un sistema de computacin puede verse como una coleccin de objetos (procesos, procesadores, segmentos de memoria, discos, impresoras, archivos, semforos). Cada objeto debe tener un nombre nico para poder identificarlo, y un nmero finito de operaciones que los procesos pueden efectuar sobre l (leer y escribir en archivos, P y V en semforos). Podemos ver a estos objetos como tipos abstractos de datos. Obviamente, un proceso no debe poder accesar objetos sobre los que no tenga autorizacin. Tambin debe ser posible restringir el uso de un objeto por parte de un proceso slo a ciertas operaciones. Por ejemplo, un proceso podra tener autorizacin para leer, pero no para escribir un determinado archivo. 6. Dominios de proteccin Un dominio de proteccin es un conjunto de pares (objeto, operaciones); cada par identifica un objeto y las operaciones permitidas sobre l. En cada instante, cada proceso ejecuta dentro de un dominio de proteccin. Los procesos pueden cambiar de un dominio a otro en el tiempo; el cmo depende mucho del sistema. En UNIX, se asocia un dominio a cada usuario+ grupo; dado un usuario y el grupo al cual pertenece, se puede construir una lista de todos los objetos que puede accesar y con qu operaciones. Cuando un usuario ejecuta un programa almacenado en un archivo de propiedad de otro usuario B, el proceso puede ejecutar dentro del dominio de proteccin de A o B, dependiendo del bit de dominio o SETUSERID bit del archivo. Este mecanismo se usa con algunos utilitarios. Por ejemplo, el programa password debe tener privilegios que un usuario comn no tiene, para poder modificar el archivo donde se guardan las
Profesor: Luis Monsalva 3 Corte Pgina 3

Sistemas Operativos I
claves. Lo que se hace es que el archivo /bin/password que contiene el programa es propiedad del superusuario, y tiene el SETUSERID encendido. Este esquema es peligroso: un proceso puede pasar de un estado en que tiene poco poder a otro en que tiene poder absoluto (no hay trminos medios). Cualquier error en un programa como password puede significar un gran hoyo en la seguridad del sistema. Cuando se hace una llamada al sistema tambin se produce un cambio de dominio, puesto que la llamada se ejecuta en modo protegido. 7. Matriz de acceso Ahora bien, cmo se las arregla el sistema para llevar la cuenta de quin puede accesar qu objetos y con qu operaciones? Conceptualmente al menos, podemos ver este modelo de proteccin como una gran matriz de acceso. Los cambios de dominio que un proceso puede hacer tambin podemos integrarlos a la matriz, tratando a los dominios como otros objetos, con una operacin: entrar. Una poltica de proteccin involucra decidir cmo se va a llenar esta matriz. Normalmente el usuario que crea un objeto es quin decide cmo se va a llenar la columna de la matriz correspondiente a ese objeto. La matriz de acceso es suficientemente general como para apoyar diversas polticas. Por ejemplo:

La capacidad para copiar o transferir un derecho de un objeto a otro dominio. Capacidad de un dominio para modificar los derechos en otros dominios (todos, o para un recurso especfico).

El problema es cmo almacenar esta matriz. Como es una matriz poco densa (muchos de los elementos son vacos), no resulta prctico representarla como matriz propiamente. Podramos usar una tabla con triples (dominio, objeto, derechos). Si un proceso dentro de un dominio D intenta efectuar una operacin M sobre un objeto O, se busca (D, O, C), y se verifica si M pertenece a C. De todas maneras, la tabla es grande, y el esquema no es muy eficiente. Adems, si un objeto puede ser, por ejemplo, ledo por todo el mundo, debe tener entradas para cada dominio. 8. Listas de acceso Alternativamente, podemos guardar la matriz por columnas (descartando las entradas vacas). Es decir, a cada objeto se le asocia una lista de pares (dominio, derechos). Es lo que se conoce como lista de acceso o ACL. Si pensamos en archivos de Unix, podemos almacenar esta lista en el nodo-i de cada archivo, y sera algo as como ((Juan, *, RW), (Pedro, Profes, RW), (*, Profes, R)) En la prctica, se usa un esquema ms simple (y menos poderoso), pero que puede considerarse an una lista de accesos, reducida a 9 bits. 3 para el dueo (RWX), 3 para el grupo, y 3 para el resto del mundo.
Profesor: Luis Monsalva 3 Corte Pgina 4

Sistemas Operativos I
Windows NT usa listas de accesos con todo el nivel de detalle que uno quiera: para cualquier usuario o grupo, se puede especificar cualquier subconjunto de derechos para un archivo, de entre {RWXDPO}. . Capacidades La otra posibilidad es almacenar la matriz por filas. En este caso, a cada proceso se le asocia una lista de capacidades. Cada capacidad corresponde a un objeto ms las operaciones permitidas. Cuando se usan capacidades, lo usual es que, para efectuar una operacin M sobre un objeto O, el proceso ejecute la operacin especificando un puntero a la capacidad correspondiente al objeto, en vez de un puntero al objeto. La sola posesin de la capacidad por parte del proceso quiere decir que tiene los derechos que en ella se indican. Por lo tanto, obviamente, se debe evitar que los procesos puedan "falsificar" capacidades. Una posibilidad es mantener las listas de capacidades dentro del sistema operativo, y que los procesos slo manejen punteros a las capacidades, no las capacidades propiamente. Otra posibilidad es cifrar las capacidades con una clave conocida por el sistema, pero no por el usuario. Este enfoque es particularmente adecuado para sistemas distribuidos, y es usado en Amoeba. Un problema de las capacidades es que puede ser difcil revocar derechos ya entregados. En Amoeba, cada objeto tiene asociado un nmero al azar, grande, que tambin est presente en la capacidad. Cuando se presenta una capacidad, ambos nmeros deben coincidir. De esta manera, para revocar los derechos ya otorgados, se cambia el nmero asociado al objeto. Problema: no se puede revocar selectivamente. Las revocaciones con ACL son ms simples y ms flexibles. 9. Mecanismos de autentificacin La autentificacin, que consiste en identificar a los usuarios que entran al sistema, se puede basar en posesin (llave o tarjeta), conocimiento (clave) o en un atributo del usuario (huella digital). Claves El mecanismo de autentificacin ms ampliamente usado se basa en el uso de claves o passwords; es fcil de entender y fcil de implementar. En UNIX, existe un archivo /etc/passwd donde se guarda los nombres de usuarios y sus claves, cifradas mediante una funcin one-way F. El programa login pide nombre y clave, computa F(clave), y busca el par (nombre, F(clave)) en el archivo. Con claves de 7 caracteres tomados al azar de entre los 95 caracteres ASCII que se pueden digitar con cualquier teclado, entonces las 957 posibles claves deberan desincentivar cualquier intento por adivinarla. Sin embargo, una proporcin demasiado grande de las claves escogidas por los usuarios son fciles de adivinar, pues la idea es que sean tambin fciles de recordar. La clave tambin se puede
Profesor: Luis Monsalva 3 Corte Pgina 5

Sistemas Operativos I
descubrir mirando (o filmando) cuando el usuario la digita, o, si el usuario hace login remoto, interviniendo la red y observando todos los paquetes que pasan por ella. Por ltimo, adems de que las claves se pueden descubrir, stas tambin se pueden "compartir", violando las reglas de seguridad. . En definitiva, el sistema no tiene ninguna garanta de que quien hizo login es realmente el usuario que se supone que es. 10. Identificacin fsica Un enfoque diferente es usar un elemento fsico difcil de copiar, tpicamente una tarjeta con una banda magntica. Para mayor seguridad este enfoque se suele combinar con una clave (como es el caso de los cajeros automticos). Otra posibilidad es medir caractersticas fsicas particulares del sujeto: huella digital, patrn de vasos sanguneos de la retina, longitud de los dedos. Incluso la firma sirve. Algunas medidas bsicas

Demorar la respuesta ante claves errneas; aumentar la demora cada vez. Alertar si hay demasiados intentos. Registrar todas las entradas. Cada vez que un usuario entra, chequear cundo y desde dnde entr la vez anterior. Hacer chequeos peridicos de claves fciles de adivinar, procesos que llevan demasiado tiempo corriendo, permisos errneos, actividades extraas (por ejemplo cuando usuario est de vacaciones). Para los ms paranoicos: poner trampas para descubrir intentos de uso no autorizado.

11. Criptografa Los mecanismos de proteccin que hemos visto hasta ahora muchas veces no son suficientes para mantener informacin confidencial adecuadamente resguardada. Con el uso masivo de las redes de computadores, ms y ms informacin se transmite por ella, y nadie puede estar seguro de que no hay mirones en el alambre. Los mtodos criptogrficos son los ms comnmente usados para proteger informacin confidencial. Lo que se enva por la red no es la informacin original, sino la informacin codificada, que carece de sentido salvo para el receptor, que puede decodificarla. Criptografa simtrica La criptografa simtrica se basa en un algoritmo general de codificacin C, un algoritmo general de decodificacin D, y una clave secreta k, tales que 1. 2. Dk (Ck(m)) = m. 3. Ck y Dk son computables eficientemente. 4. La seguridad depende slo de que la clave --no los algoritmos-- sea secreta.

Profesor: Luis Monsalva

3 Corte

Pgina 6

Sistemas Operativos I
Un esquema ampliamente usado es el DES (data encryption standard), creado por la NSA. El inconveniente de la criptografa simtrica es la distribucin de la clave. Si quiero enviar un texto confidencial por la red, lo envo cifrado, pero cmo le comunico la clave a mi interlocutor? Por otra parte, se requiere una clave por cada par de usuarios. Criptografa de clave pblica La criptografa de clave pblica es asimtrica. Se basa en mtodos que requieren una clave pblica para cifrar, y otra, distinta y privada, para descifrar. Supongamos que los procedimientos para cifrar y descifrar de los usuarios A y B, son, respectivamente CA, DA, CB y DB. Para que B enve mensaje m a A:

B averigua la clave pblica de A, en un directorio pblico. Enva CA(m) A descifra el mensaje con su clave: m=DA(CA(m)). Slo A puede hacerlo, pues es el nico que conoce la clave.

Los mtodos de criptografa de clave pblica tienen la interesante propiedad m=CA(DA(m)) que permite implementar tambin firmas digitales. Una firma digital debe ser dependiente del firmador y del mensaje que est firmando. Un mensaje m firmado por B es s=(DB(m)) Si se lo quiere mandar privadamente a B, adems lo cifra, enviando CA(s), pero esto es slo para privacidad. A primero recupera s, descifrando el mensaje como antes, si viene cifrado, y luego obtiene el mensaje original con m=CB(s) Y ahora A posee el par (m,s) que equivale a un documento firmado por B, puesto que:

B no puede negar que envi m, pues nadie ms que B puede haber creado s=(DB(m)). A puede convencer a un juez que m=CB(s). A no puede modificar m, pues la firma habra sido otra.

Profesor: Luis Monsalva

3 Corte

Pgina 7

Sistemas Operativos I
En particular, RSA opera de la siguiente manera: La clave pblica de cifrado es un par (c,n), y la clave privada un par (d,n). Cada mensaje se representa como un nmero entre 0 y n-1. Los procedimientos para cifrar y descifrar con esas claves son: C(m) = mc mod n = w D(w)= wd mod n El problema es escoger las claves. n es el producto de dos nmeros primos grandes (100 dgitos) p y q. d se escoge al azar como un nmero grande relativamente primo con (p-1)(q-1). Finalmente c se computa como el inverso de d en mdulo (p1)(q-1), o sea: c d mod (p-1)(q-1) = 1 A pesar de que n es pblica, p y q no lo son, y todo se basa en la suposicin de que es difcil factorizar un nmero grande. Criptografa hbrida Los mtodos de criptografa de clave pblica resuelven el problema del intercambio de claves, pero son bastante ms lentos (100 a 1000 veces) que los mtodos de criptografa simtrica. Se puede obtener lo mejor de ambos mundos con un esquema hbrido: se usa criptografa de clave pblica para acordar una clave privada, y el grueso de la comunicacin se cifra con esa clave usando criptografa simtrica. La Seguridad Fsica, slo es una parte del amplio espectro que se debe cubrir para no vivir con una sensacin ficticia de seguridad. Como ya se ha mencionado, el activo ms importante que se posee es la informacin, y por lo tanto deben existir tcnicas, ms all de la seguridad fsica, que la aseguren. Estas tcnicas las brinda la Seguridad Lgica. Es decir que la Seguridad Lgica consiste en la "aplicacin de barreras y procedimientos que resguarden el acceso a los datos y slo se permita acceder a ellos a las personas autorizadas para hacerlo." Existe un viejo dicho en la seguridad informtica que dicta que "todo lo que no est permitido debe estar prohibido" y esto es lo que debe asegurar la Seguridad Lgica. Los objetivos que se plantean sern: 1. Restringir el acceso a los programas y archivos.

Profesor: Luis Monsalva

3 Corte

Pgina 8

Sistemas Operativos I
2. Asegurar que los operadores puedan trabajar sin una supervisin minuciosa y no puedan modificar los programas ni los archivos que no correspondan. 3. Asegurar que se estn utilizados los datos, archivos y programas correctos en y por el procedimiento correcto. 4. Que la informacin transmitida sea recibida slo por el destinatario al cual ha sido enviada y no a otro. 5. Que la informacin recibida sea la misma que ha sido transmitida. 6. Que existan sistemas alternativos secundarios de transmisin entre diferentes puntos. 7. Que se disponga de pasos alternativos de emergencia para la transmisin de informacin. Controles de Acceso Estos controles pueden implementarse en el Sistema Operativo, sobre los sistemas de aplicacin, en bases de datos, en un paquete especfico de seguridad o en cualquier otro utilitario. Constituyen una importante ayuda para proteger al sistema operativo de la red, al sistema de aplicacin y dems software de la utilizacin o modificaciones no autorizadas; para mantener la integridad de la informacin (restringiendo la cantidad de usuarios y procesos con acceso permitido) y para resguardar la informacin confidencial de accesos no autorizados. Asimismo, es conveniente tener en cuenta otras consideraciones referidas a la seguridad lgica, como por ejemplo las relacionadas al procedimiento que se lleva a cabo para determinar si corresponde un permiso de acceso (solicitado por un usuario) a un determinado recurso. Al respecto, el National Institute for Standars and Technology (NIST)(1) ha resumido los siguientes estndares de seguridad que se refieren a los requisitos mnimos de seguridad en cualquier sistema:

Identificacin y Autentificacin

Roles El acceso a la informacin tambin puede controlarse a travs de la funcin o rol del usuario que requiere dicho acceso. Algunos ejemplos de roles seran los siguientes: programador, lder de proyecto, gerente de un rea usuaria, administrador del sistema, etc. En este caso los derechos de acceso pueden agruparse de acuerdo con el rol de los usuarios. Transacciones Tambin pueden implementarse controles a travs de las transacciones, por ejemplo solicitando una clave al requerir el procesamiento de una transaccin determinada. Limitaciones a los Servicios
Profesor: Luis Monsalva 3 Corte Pgina 9

Sistemas Operativos I
Estos controles se refieren a las restricciones que dependen de parmetros propios de la utilizacin de la aplicacin o preestablecidos por el administrador del sistema. Un ejemplo podra ser que en la organizacin se disponga de licencias para la utilizacin simultnea de un determinado producto de software para cinco personas, en donde exista un control a nivel sistema que no permita la utilizacin del producto a un sexto usuario. Modalidad de Acceso Ubicacin y Horario El acceso a determinados recursos del sistema puede estar basado en la ubicacin fsica o lgica de los datos o personas. En cuanto a los horarios, este tipo de controles permite limitar el acceso de los usuarios a determinadas horas de da o a determinados das de la semana. De esta forma se mantiene un control ms restringido de los usuarios y zonas de ingreso. Se debe mencionar que estos dos tipos de controles siempre deben ir acompaados de alguno de los controles anteriormente mencionados.

Control de Acceso Interno Control de Acceso Externo Administracin

Niveles de Seguridad Informtica El estndar de niveles de seguridad ms utilizado internacionalmente es el TCSEC Orange Book (2), desarrollado en 1983 de acuerdo a las normas de seguridad en computadoras del Departamento de Defensa de los Estados Unidos. Los niveles describen diferentes tipos de seguridad del Sistema Operativo y se enumeran desde el mnimo grado de seguridad al mximo. Estos niveles han sido la base de desarrollo de estndares europeos (ITSEC/ITSEM) y luego internacionales (ISO/IEC). Cabe aclarar que cada nivel requiere todos los niveles definidos anteriormente: as el subnivel B2 abarca los subniveles B1, C2, C1 y el D. Amoeba se puede referir:

Amoeba, Sistema Operativo Distribuido. Amoeba, gnero de protistas.

Profesor: Luis Monsalva

3 Corte

Pgina 10

Sistemas Operativos I
Esta es una pgina de desambiguacin, una ayuda a la navegacin que cataloga pginas que de otra forma compartiran un mismo ttulo. Si llegaste aqu a travs de un enlace interno, regresa por favor para corregirlo de modo que apunte al artculo apropiado.

Profesor: Luis Monsalva

3 Corte

Pgina 11

También podría gustarte