Anda di halaman 1dari 11

PROTECCION Y SEGURIDAD (Temas a Desarrollar) AMENAZAS POR SEGURIDAD 1.1 AMENAZAS POR PROGRAMAS 1.1.1 Caballo de Troya 1.1.

.2 Puerta Secreta (Trap Door) 1.2 AMENAZAS AL SISTEMA 1.2.1 Gusanos El Gusano de Morris 2. PROTECCIN 2.1 AUTENTIFICACIN DEL USUARIO 2.1.1 Contraseas 2.2 DOMINIOS DE PROTECCION 2.2.1 Estructura de Dominios 2.3 MATRIZ DE ACCESO 2.4 IMPLEMENTACION DE LA MATRIZ DE ACCESO 2.4.1 Tabla Global 2.4.2 Lista de acceso para objetos 3. INTRUSOS 4. VIRUS PROTECCION Y SEGURIDAD Los mecanismos de proteccin, proporcionan un acceso controlado limitando los tipos de acceso a archivos que los diferentes usuarios pueden ejecutar. Tambin se requiere proteccin para asegurar que slo los procesos que hayan obtenido la autorizacin debida del sistema operativo, puedan operar no solo con los archivos, sino tambin con los segmentos de memoria, CPU y otros recursos. La proteccin se proporciona con un mecanismo que controla el acceso de los programas, procesos o usuarios a los recursos definidos por el sistema de computacin. Dicho mecanismo debe permitir especificar los controles que se impondrn y hacer cumplir las restricciones. El sistema de seguridad impide el acceso no autorizado a un sistema que podra dar pie a la destruccin o alteracin mal intencionada de los datos. La seguridad se encarga de validar a los usuarios del sistema para proteger la integridad de la informacin almacenada en el sistema (tanto datos, cdigo); as como los recursos fsicos del sistema de computacin. AMENAZAS DE SEGURIDAD Los archivos, contienen con frecuencia, informacin muy valiosa para sus usuarios. Los trminos "seguridad" y "proteccin" se utilizan a menudo en forma confusa. Sin embargo, es til hacer una distincin entre los problemas generales relativos a la garanta de que los archivos no sean ledos o modificados por personal no autorizados, por un lado, y los sistemas especficos usados por el sistema operativo para proporcionar la seguridad, por el otro. Para evitar la confusin, se usar el trmino "seguridad" para referirse al problema general y el trmino "mecanismo de proteccin" para referirse a los mecanismos especficos del sistema utilizados para resguardar la informacin de la computadora.

Primero, se hablaremos de la seguridad. La seguridad tiene muchas facetas. Dos de las ms importantes son la prdida de datos, y los intrusos (de los cuales se habla ms adelante). Algunas de las causas ms comunes de la prdidas de datos son: Actos Divinos: incendios, inundaciones, terremotos, guerras, revoluciones, o ratas que roen las cintas o discos flexibles. Errores de Hardware o de Software: mal funcionamiento de la CPU , discos o cintas ilegibles, errores de telecomunicacin o errores en el programa. Errores Humanos: Entrada incorrecta de datos, mal montaje de una cinta o disco, ejecucin incorrecta del programa, prdida de cintas o discos. La mayora de estas causas se pueden enfrentar con el mantenimiento de los respaldos adecuados; de preferencia en un lugar alejado de los datos originales. Se dice que un sistema es seguro, si sus recursos se usan y acceden como es debido en todas las circunstancias. Por desgracia, en general, no es posible llegar a una seguridad total. No obstante debemos contar con mecanismos, para hacer que las violaciones de seguridad sea un suceso poco comn. Las violaciones de seguridad (mal uso del sistema) se pueden clasificar como intencionales (maliciosas) o accidentales. Es ms fcil protegerse contra un mal us9o accidental que contra un abuso malintencionado. Entre las formas de acceso malintencionado estn: Lectura no autorizada de datos. 2. Modificacin no autorizada de datos. 3. Destrucciones no autorizadas de datos. AMENAZAS POR PROGRAMAS En un entorno en el que un programa escrito por un usuario podra ser utilizado por otro usuario, existe un posibilidad de abuso que podra dar pie a un comportamiento inesperado. Ahora se muestran dos mtodos comunes para causar tal comportamiento: los caballos de Troya y las puertas secretas. 1.1.1 Caballo de Troya Muchos sistemas cuentan con mecanismos que permiten a un usuario ejecutar programas escritos por otros usuarios. Si tales programas se ejecutan un dominio que proporciona los derechos de acceso del usuario ejecutante, podran abusar de esos derechos Por ejemplo, un programa editor de textos podra contener cdigo para buscar ciertas palabras clave en el archivo que se va a editar. Si se encuentran, todo el archivo podra copiarse en un rea especial accesible para el creador del editor de textos. Un segmento de cdigo que abusa de su entorno se denomina caballo de troya. El problema del caballo de troya se agrava si los caminos de bsqueda son largos (cosa comn en los sistemas Unix). El camino de bsqueda lista el conjunto de directorios en el que se debe buscar cuando se da un nombre de programa ambiguo. Se busca en el camino un archivo con ese nombre, y se ejecuta el archivo. Todos los directorios del camino de bsqueda deben ser seguros, pues de lo contrario se podra introducir un caballo de troya en el camino del usuario y ejecutarse accidentalmente. Por ejemplo, consideremos el uso del carcter . en un camino de bsqueda. Ese carcter le dice al shell que incluya el directorio actual en la bsqueda, cambia su directorio actual al de un amigo e introduce el nombre de una orden normal del sistema, la orden podra ejecutarse desde el directorio del amigo. El programa se ejecutara dentro del dominio del usuario y le permitira hacer todo lo que el usuario est autorizado para hacer, incluso eliminar sus archivos, por ejemplo. Una variacin del caballo de troya sera un programa que emula un programa de ingreso al sistema (login). Un usuario confiado comienza a ingresar en el sistema desde una terminal y se da cuenta de que al parecer tecle mal su contrasea. El usuario lo intenta de nuevo y tiene xito. Lo que ha sucedido es que su clave de validacin y su contrasea han sido

robados por el emulador de login que el delincuente dej ejecutndose en el terminal. El emulador guard la contrasea, exhibi en la pantalla un mensaje de error de login, y termin. A partir de ese momento, el usuario interactu con el verdadero programa de login. Este tipo de ataque puede bloquearse si el sistema operativo imprime un mensaje de utilizacin al trmino de una sesin interactiva o si se usa una secuencia de teclas no atrapable, como la combinacin control-alt-suprimir que usa windows NT. 1.1.2 Puerta Secreta (Trap Door) El diseador de un programa o sistema podra dejar un agujero en el software que slo el puede usar. Este tipo de violacin de la seguridad se mostr en la pelcula juegos de guerra. Por ejemplo, el cdigo podra verificar que el identificador de usuario o la contrasea tengan un valor especfico, y podra burlar los procedimientos de seguridad normales Ha habido caos de programadotes que han sido arrestados por desfalco de banco mediante la inclusin de errores de redondeo en su cdigo, haciendo que de vez en cuando medio centavo se abone a sus cuentas. stos abonos pueden sumar cantidades apreciales de dinero si consideramos el numero de transacciones que un banco grande ejecuta. Podra incluirse una puerta secreta ingeniosa en un compilador. El compilador podra generar cdigo objeto estndar y tambin un a puerta secreta, independientemente del cdigo fuente que est compilando. Tal actividad es particularmente insidiosa, ya que un examen del cdigo fuente del programa no revela problema alguno. Slo el cdigo fuente del compilador contendra la informacin. Las puertas secretas son un problema difcil porque para detectarlas es preciso analizador todo el cdigo fuente de todos los componentes de un sistema. Dado que los sistemas de software pueden consistir en millones de lneas de cdigo, tal anlisis no se efecta con mucha frecuencia. 1.2 AMENAZAS AL SISTEMA La mayor parte de los sistemas operativos cuentan con un mecanismo para que un proceso engendre otros procesos. En un entorno as, es posible crear una situacin en que se abuse de los recursos del sistemas operativo y de los archivos de usuario. Los dos mtodos ms comunes para lograr tal abuso son los gusanos y los virus (de los que se hablarn ms adelante). 1.2.1 Gusanos Un gusano es un proceso que usa el mecanismo de engendrar para dar al traste con el desempeo del sistema. El gusano engendra copias de si mismo, ocupando recursos del sistema y tal vez impidiendo a todos los dems procesos usar el sistema. En as redes de computadores los gusanos son especialmente potentes, ya que pueden reproducirse entre los sistemas y paralizar toda la red. Un suceso as ocurri en 1988 en los sistemas Unix de la red mundial internet y caus prdidas por millones de dlares en tiempo de cmputo y de programador. La internet enlaza miles de computadoras gubernamentales, acadmicos, de investigacin e industriales internacionalmente, y funciona como infraestructura para el intercambio electrnico de informacin cientfica. Al trmino de la jornada de labores el 2 de noviembre de 1988, Robert Tappan Morris, Jr., un estudiante de postgrado de primer ao de la ornell University solt un programa gusano en una o ms anfitriones conectados a Internet. El gusano, que atacaba las estaciones de trabajo Sun 3 de Sun Microsystems y los computadores VAX que ejecutaban variantes de Unix versin 4 BSD, rpidamente se extendi a grandes distancias, unas cuantas horas despus de su liberacin, el gusano haba consumido recursos de sistema hasta el punto de hacer caer las mquina afectadas. Aunque Robert Morris dise el programa auto-replicante de modo que se reprodujera y distribuyera rpidamente, algunas de las caractersticas del entorno de red Unix permitieron al gusano propagarse por todo el sistema. Es probable que Morris haya escogido para la infeccin inicial un anfitrin de Internet que se haba dejado abierto y accesible para usuarios externos. Desde ah, el programa gusano aprovech defectos en las rutinas de seguridad del sistema operativo Unix y utiliz rutinas de Unix que hacen mas

sencillo compartir recursos en redes de rea local para obtener acceso no autorizado a varios miles de sitios interconectados. El Gusano de Morris Desde el punto de vista tcnico, el gusano contaba de dos programas, el "arrancador" y el gusano propiamente dicho. El arrancador era un archivo de 99 lneas en C llamado l1.c. Se compilaba y ejecutaba en el sistema por atacar. Una vez ejecutado, se conectaba con la mquina de la que provena, cargaba el gusano principal y lo ejecutaba. Despus de ciertos problemas para ocultar su existencia, el gusano buscaba en las tablas de rutas el nuevo anfitrin para saber las mquinas que estaban conectadas con ste e intentaban diseminar el arrancador a esas mquinas. Existan tres mtodos para intentar infectar las nuevas mquinas. El mtodo 1 intentaba ejecutar un Shell remoto mediante el comando rsh. Algunas mquinas confan en otras, por lo que podran ejecutar rsn sin Autentificacin alguna. Si esto funcionaba, el Shell remoto cargaba el programa del gusano y segua infectando las dems mquinas a partir de ese punto. El mtodo 2 utilizaba un programa presente en todos los sistemas BSD, llamado finger, el cual permite a cualesquiera de los usuarios de Internet escribir finger name@site y poder recibir la informacin relativa a una persona en una instalacin dada. Esta informacin incluye por lo general el nombre real de la persona, clave de acceso, direcciones de su casa y su oficina, nombre de la secretaria y nmero telefnico, nmero de fax y otra informacin semejante. Es un equivalente electrnico del directorio telefnico. Finger funciona de la siguiente manera. En cada instalacin BSD, un proceso secundario llamado finger daemon se ejecuta todo el tiempo con el fin de enviar y contestar todas las solicitudes de todas las partes de Internet. Lo que hizo el gusano fue llamar a finger con una cadena especialmente diseada de 536 bytes como parmetro. Esta cadena sobrepasaba la capacidad del bffer de daemon y escriba sobre su pila. El error que se utilizaba aqu era el hecho de que daemon no verificaba si se exceda la capacidad del bffer . Cuando daemon regresaba del procedimiento en el que se encontraba cuando recibi la solicitud, no regresaba a main, sino a un procedimiento dentro de la cadena de 536 bytes de la pila. Este procedimiento intentaba ejecutar /bin/sh. Si lo lograba, el gusano dispona entonces, de un Shell que se ejecutaba en la mquina atacada. El mtodo 3 dependa de un error en el sistema de correo sendmail, que permita enviar una copia del arrancador, adems de la ejecucin de este. Una vez establecido, el gusano intentaba romper con las contraseas de usuario. Morris no tuvo que realizar una gran investigacin para poder llevar esto a cabo. Lo nico que hizo fue pedirle a su padre, un experto en seguridad de la National Security Agency, la agencia de EE.UU. encargada de romper los cdigos, un ejemplar de un artculo clsico del tema, que el propio padre de Morris y Ken Thompson escribieron una dcada antes en Bell Laboratories. Cada contrasea rota permita que el gusano penetrara en otras mquinas donde el poseedor de la contrasea tuviera cuentas. Cada vez que el gusano lograba el acceso a una nueva mquina, verificaba si en ella existan copias activas del mismo. En tal caso, la nueva copia sala, excepto una vez por cada siete que entraba a la mquina, tal vez por un intento de mantener al gusano en propagacin incluso en el caso de que el administrador del sistema tuviera su propio gusano para engaar al gusano real. El uso de 1 por cada 7 cre un nmero enorme de gusanos y fue la razn por la que las mquinas infectadas fueron obligadas a parar: estaban totalmente infectadas por gusanos. Si Morris no hubiera hecho esto ltimo, y slo obligara a salir si se vea otro gusano, tal vez ste hubiera pasado desapercibido. Morris fue capturado cuando uno de sus amigos habl con el reportero del rea de computacin del New York Time, Jhon Markoff para intentar convencerlo de que todo haba sido un accidente, que el gusano no provocaba daos y que el autor estaba arrepentido. El amigo dej entrever de manera inadvertida que la clae de acceso del responsable era rtm. La conversin rtm a nombre del autor fue sencilla: slo haba que

ejecutar finger. A da siguiente, la historia estaba e la primera plana, incluso por encima del tema de la eleccin presidencia que se llevara a cabo tres das despus. Morris fue juzgado y condenado en una corte federal. Fue sentenciado a una multa de 10000 dlares, 3 aos de libertad condicional y 400 horas de servicio a la comunidad. Sus gastos legales, tal vez excedieron a los 15000 dlares. Esta sentencia gener una gran controversia. Muchas de las personas de la comunidad de las computadoras sentan que l era un brillante estudiante graduado cuya broma inocente se sali de su control. Ningn aspecto del gusano sugera que Morris intentaba robar o daar algo. Otros pensaron que era un criminal serio y debi ser encarcelado. PROTECCIN La proteccin se refiere a un mecanismo para controlar el acceso de los programas, procesos o usuarios a los recursos definidos por un sistema de computacin. Este mecanismo debe permitir especificar los controles que se impondrn, y deben contar con alguna forma de hacerlos cumplir. A medida que los sistemas de computacin se vuelvan ms complejos y omnipresentes en sus aplicaciones, tambin ha crecido la necesidad de proteger su integridad. La proteccin se concibi originalmente, como un adjunto de los sistemas operativos con multiprogramacin, para que usuarios poco confiables pudieran compartir sin peligro un espacio de nombres lgico comn, como un directorio de archivos, o un espacio de nombres fsico comn, como la memoria. Los conceptos de proteccin modernos han evolucionado para aumentar la confiabilidad de cualquier sistema complejo que usa recursos compartidos. AUTENTIFICACIN DEL USUARIO Muchos de los esquemas de proteccin se basan en la hiptesis de que el sistema conoce la identidad de cada usuario. El problema de la identificacin de los usuarios cuando estn conectados al sistema se conoce como la autentificacin del usuario. Muchos de los mtodo de autentificacin se basan en la identificacin de datos conocidos del usuario, algo que posee el usuario, o algo que es el usuario. Contraseas La forma de autentificacin que ms se utiliza es pedirle al usuario que escriba una contrasea. La proteccin mediante contraseas es fcil de comprender e implantar. La autentificacin mediante contraseas es fcil de vencer. Uno puede leer con frecuencia acerca de grupos de bachillerato, o incluso de secundaria quienes, con ayuda de su computadora casera, penetraron a un sistema de total secreto en una gigantesca corporacin o agencia gubernamental. Casi siempre, la forma de penetracin consisten pruebas de combinaciones de nombres y contraseas. Cuando el usuario se identifica con un identificador de usuario o nombre de cuenta, se le pide una contrasea. Si la contrasea que el usuario proporciona coincide con la que est almacenada en el sistema, ste supone que el usuario est autorizado. Es comn usar contraseas para proteger objetos del sistema de computacin cuando no se cuenta con esquemas de proteccin ms completos. Las contraseas se pueden considerar como un caso especial de las llaves o las capacidades (que veremos ms adelante). Por ejemplo, podra asociarse una contrasea por cada recurso (un archivo, por ejemplo), cada vez que se solicite usar el recurso, se deber proporcionar la contrasea. Si est correcta, se concede el acceso, podran asociarse diferentes contraseas a diferentes tipos de acceso. Por ejemplo, distintas contraseas para leer, anexar y actualizar un archivo. Aunque hay problemas asociados al uso de contraseas, stas son muy comunes porque son fciles de entender y usar. Los problemas con las contraseas tienen que ver con la dificultad para mantener secreta una contrasea. Las contraseas pueden perder sus utilidad si se adivinan, exponen accidentalmente o transfieren indebidamente de un usuario autorizado a uno no autorizado, como se vera en seguida.

Hay dos formas comunes de adivinar una contrasea. Una es que el intruso (sea humano o programa) conozca al usuario o tenga informacin acerca de l. Con demasiada frecuencia, la gente usa informacin obvia (digamos los nombres de sus gatos o cnyuges) como contraseas. La otra forma es usar fuerza bruta, probando todas las posibles combinaciones de letras, nmeros y signos de puntuacin hasta hallar la contrasea. Las contraseas cortas no tienen suficientes opciones para impedir que se adivinen mediante intentos repetidos. Por lo tanto, una contrasea de cuatro dgitos decimales, slo tiene 10000 variaciones. En promedio bastarn 5000 pruebas para lograr un acierto. Si se puede escribir un programa que pruebe una contrasea cada milisegundo, slo se tardara 5 segundos en adivinar una contrasea de cuatro dgitos. Las contraseas ms largas, son menos susceptibles a ser adivinadas por enumeracin, y los sistemas que permiten entre letras maysculas y minsculas, y que permiten usar nmero y todos los signos de puntuacin en las contraseas hacen mucho ms difcil la tarea de adivinar la contrasea. Desde luego, los usuarios deben aprovechar el espacio de contrasea ms grande y no usar, por ejemplo, slo letras minsculas. DOMINIOS DE PROTECCION Un sistema de computacin es una coleccin de procesos y objetos. Con objetos nos referimos tanto a objetos de hardware (como la CPU, segmentos de memoria, impresoras, discos y unidades de cinta) como se software (archivos, programas y semforos). Cada objeto tiene un nombre nico que lo distingue de todos los dems objetos del sistema, y slo se puede acceder a cada uno empleando operaciones bien definidas y significativas. En esencia, los objetos son tipos de datos abstractos. Las operaciones posibles podran depender del objeto. Por ejemplo, con una CPU slo puede efectuarse ejecucin. Los segmentos de memoria pueden leerse y escribirse, mientras que un lector de tarjetas slo puede leerse. Las unidades de cinta pueden leerse, escribirse y rebobinarse. Los archivos de datos pueden crearse, abrirse, leerse, escribirse y rebobinarse. Los archivos de datos pueden crearse, abrirse, leerse, escribirse, cerrarse y eliminarse; los archivos de programa pueden leerse, escribirse, ejecutarse y eliminarse. Queda claro que aun proceso slo debe permitrsele acceder a los recursos para los cuales tiene autorizacin de acceso. Adems, en un instante dado, el proceso slo deber poder acceder a los procesos que necesita para llevar a cabo su tarea. Este requisito, conocido como el principio de la necesidad de conocer, es til para limitar la cantidad de dao que un proceso que falla podra causar en el sistema. Por ejemplo, si el proceso P invoca al procedimiento A, slo deber permitirse al procedimiento acceder a sus propias variables y a los parmetros formales que se le pasaron; no deber poder acceder a todas las variables del proceso P. As mismo, consideremos el caso en que el proceso P invoca un compilador para compilar un archivo dado. el compilador no deber poder acceder a cualquier archivo arbitrario, sino slo a un subconjunto bien definido de archivos (como el archivo fuente, el archivo listado y dems) relacionado con el archivo que se va a compilar. Por otro lado, el compilador podra tener archivos privados que se usan para fines de contabilizacin u optimizacin, a los cuales el proceso P no deber tener acceso. Estructura de Dominios Para facilitar este esquema, introducimos el concepto de dominio de proteccin. Un proceso opera dentro de un dominio de proteccin, que especifica los recursos a los que el proceso puede acceder. Cada dominio define un conjunto de objetos y los tipos de operaciones que se pueden invocar para cada objeto. La capacidad para ejecutar una operacin con un objeto es un derecho de acceso. Un Dominio es una coleccin de derechos de acceso, cada uno de los cuales es un par ordenado <nombre del objeto, conjunto de derechos>. Por ejemplo, si el dominio D tiene el derecho de acceso <archivo F, {leer, escribir}>, un proceso que se ejecute en el dominio D podr leer y escribir en el archivo F, pero no podr realizar ninguna otra operacin con ese objeto. Los dominios no necesitan ser disyuntos; pueden compartir derechos de acceso. Por ejemplo, en la Figura 1 se tienen 3 dominios: D1, D2, y D3. D2 y D3 comparten el derecho de acceso <O4, {imprimir}>, lo que implica que un proceso que se ejecuta en cualquiera de

esos dominios puede imprimir el objeto O4. Observe que un proceso tiene que ejecutarse en el dominio D1 para leer y escribir el objeto O1. Por otra parte, slo los procesos del dominio D3 pueden ejecutar el objeto O1. La asociacin entre un proceso y un dominio podra ser esttica (si el conjunto de recursos de que dispone un proceso no cambia durante toda la existencia del proceso) o dinmica. Como cabra esperar, los problemas inherentes a establecer dominios de proteccin dinmicos requieren una resolucin ms cuidadosa que los problemas ms sencillos del caso esttico. Si la asociacin entre dominios y procesos es fija, y queremos respetar el principio de necesidad de conocer, necesitaremos un mecanismo para cambiar el contexto de un dominio. Un proceso podra ejecutarse en dos fases distintas. Por ejemplo, podra requerir acceso de lectura en una fase y acceso de escritura en otra. Si un dominio es esttico, deberemos definir el dominio de modo que incluyo acceso tanto de lectura como de escritura. Sin embargo, este esquema proporciona ms derechos de los que se necesitan en cada una de las dos fases, puesto que tenemos derecho de lectura en la fase en la que slo necesitamos acceso de escritura, y viceversa. Esto viola el principio de necesidad de conocer. Debemos permitir la modificacin del contenido de un dominio, de modo que siempre refleje los derechos de acceso mnimos necesarios. Si la asociacin es dinmica, se cuenta con un mecanismo para que un proceso ueda cambiar de un dominio a otro. Tambin podramos querer permitir que se modifique el contenido de un dominio. Si no podemos modificar el contenido de un dominio. Si no podemos modificar el contenido de un dominio, podemos lograr el mismo efecto creando un nuevo dominio con un nuevo contenido, y cambiando a ese nuevo dominio cuando queramos modificar el contenido del dominio. Hay varias formas de establecer dominios: Cada usuario podra ser un dominio. En este caso, el conjunto de objetos al que se puede acceder depende de la identidad del usuario. Hay conmutacin de dominio cuando cambia el usuario (generalmente, cuando un usuario termina una sesin y otro usuario inicia una sesin). Cada proceso podra ser un dominio. En este caso, el conjunto de objetos a los que se puede acceder depende de la identidad del proceso. La conmutacin de dominio corresponde a que un proceso enva un mensaje a otro proceso, y luego espera la respuesta. Cada procedimiento podra ser un dominio. En este caso, el conjunto de objetos a los que se puede acceder corresponde a las variables locales definidas dentro del procedimiento. La conmutacin de dominio ocurre cuando se invoca un procedimiento. MATRIZ DE ACCESO Nuestro modo de proteccin puede visualizarse de forma abstracta como una matriz, llamada matriz de acceso. Las filas de la matriz de acceso representan dominios, y las columnas, objetos. Cada entrada de la matriz consiste en un conjunto de derechos de acceso. Dado de que la columna define explcitamente el objeto, podemos omitir el nombre del objeto en el derecho de acceso. La entrada a acceso(i,j) define el conjunto de operaciones que un proceso que se ejecuta en el dominio Di puede invocar con el objeto Oj. Para ilustrar estos conceptos, consideremos la matriz de acceso que se muestra en la Figura 2. Hay cuatro dominios y cuatro objetos: tres archivos (F1, F2 y F3) y una impresora lser. Cuando un proceso se ejecuta en el dominio D1, puede leer los archivos F1 y F3. Un proceso que se ejecuta en el dominio D4 , tiene los mismos privilegios que en el dominio D1, pero adems, puede escribir en los archivos F1 y F3. Slo los procesos que se ejecutan en el dominio D2 tienen acceso a la impresora. El esquema de matriz de acceso nos proporciona el mecanismo para especificar diversas polticas. El mecanismo consiste en implementar la matriz de acceso y asegurar que se

cumplan realmente las propiedades semnticas que bosquejemos. En trminos ms especficos, debemos asegurar que un proceso que se ejecuta en el dominio Di, pueda acceder slo a los objetos especificados en la fila i, y slo como lo especifican las entradas de la matriz de acceso. Las decisiones de poltica relativas a la proteccin se pueden implementar con la matriz de acceso. Dichas decisiones se refieren a qu derechos deben incluirse en la (i,j)-sima entrada. Tambin debemos decidir en qu dominio se ejecutar cada proceso. Esta ltima decisin de poltica generalmente corresponde al sistema operativo. Los usuarios normalmente deciden el contenido de las entradas de la matriz de acceso. Cuando un usuario crea un objeto nuevo Oj, se aade la columna Oj a la matriz de acceso con las entradas iniciales apropiadas, a gusto del creador. El usuario podra decidir colocar algunos derechos en algunas entradas de la columna j y otros derechos en otras entradas, segn sus necesidades. La matriz de acceso proporciona un mecanismo apropiado para definir e implementar un control estricto de la asociacin tanto esttica como dinmica entre procesos y dominios. Cuando conmutamos un proceso de un dominio a otro, estamos ejecutando una operacin (conmutar) con un objeto (el dominio). Podemos controlar la conmutacin de dominios incluyendo dominios entre los objetos de la matriz de acceso. As mismo, cuando modificamos el contenido de la matriz de acceso, estamos realizando una operacin con un objeto: la matriz de acceso. Una vez ms, podemos controlar estos cambios incluyendo la matriz de acceso misma como un objeto. En realidad, puesto que cada entrada de la matriz de acceso se puede modificar individualmente, debemos considerar cada entrada de la matriz de acceso como un objeto que debe protegerse. Ahora bien, slo tenemos que considerar las operaciones que son posibles con estos nuevos objetos (dominios y la matriz de acceso) y decidir cmo queremos que los procesos puedan ejecutar dichas operaciones. Los procesos debern poder cambiar de un dominio a otro. Se permite la conmutacin del dominio Di al dominio D j si y slo si el derecho de acceso conmutar acceso(i,j). As, en la Figura 3, un proceso que se ejecuta en el dominio D 2 puede cambiar al dominio D 3 o al D 4. Un proceso del dominio D 4 puede cambiar a D 1 , y uno del dominio D 1 puede cambiar al dominio D 2. Para poder modificar de forma controlada el contenido de las entradas de la matriz de acceso se requieren tres operaciones adicionales: copiar (copy), dueo (owner) y control. La capacidad para copiar un derecho de acceso de un dominio (fila) de la matriz de acceso a otro se denota con un asterisco (*) aadido al derecho de acceso. El derecho copiar permite copiar el derecho de acceso slo dentro de la columna (esto es, el objeto) para la cual se define el derecho. Por ejemplo, en la Figura 4.a, un proceso que se ejecuta en el dominio D2 puede copiar la operacin de leer en cualquier entrada asociada al archivo F2 . As, la matriz de acceso de la Figura 4.a se puede modificar a la que se muestra en la Figura 4.b. Este esquema tiene dos variantes: Se copia un derecho de acceso(i,j) a acceso(k,j); luego se elimina de acceso(i,j); esta accin es una transferencia de un derecho, ms que una copia. La propagacin del derecho de copiar podra estar limitada. Es decir, cuando el derecho R* se copia de acceso(i,j) a acceso(k,j), slo se crea el derecho R (No R*). Un proceso que se ejecute en el dominio Dk no podr copiar el derecho R. Un sistema podra seleccionar solo uno de estos tres derechos de copiar, o podra ofrecer los tres identificndolos como derechos distintos: copiar, transferir y copiar limitado. El derecho copiar permite a un proceso copiar algunos derechos de una entrada de una columna a otra entrada de la misma columna. Tambin necesitamos un mecanismo para aadir nuevos derechos y quitar algunos derechos. El derecho de dueo controla estas operaciones. Si acceso(i,j) incluye el derecho dueo, un proceso que se ejecuta en el

dominio Di puede quitar y agregar derechos en cualquier entrada de la columna j. Por ejemplo, en la Figura 5.a, el dominio D1 es el dueo de F1 , por lo tanto, puede agregar y eliminar cualquier derecho vlido de la columna F1. De forma similar, el dominio D2 , es el dueo de F2 y F3, y por lo tanto, puede agregar y quitar cualquier derecho vlido dentro de estas dos columnas. As, la matriz de acceso de la figura 5.a se puede transformar en la que se muestra en la Figura 5.b. Los derechos copiar y dueo permiten a un proceso modificar las entradas de una columna. Tambin se requiere un mecanismo para modificar las entradas de una fila. El derecho control solo aplica a los objetos dominio. Si acceso(i,j), incluye el derecho control, un proceso que se ejecuta en el dominio Di, puede quitar cualquier derecho de acceso a la fila j. Por ejemplo, supongamos que, en la Figura 6 incluimos el derecho control en acceso(D2, D4). Entonces un Proceso que se ejecuta en el dominio D2 podra modificar al dominio D4 , como se muestra en la Figura 6. Aunque los derechos copiar y dueo proporcionan un mecanismo para limitar la propagacin de los derechos de acceso, no ofrecen las herramientas apropiadas para evitar la propagacin de informacin (es decir, la revelacin de informacin). El problema de garantizar que ninguna informacin que inicialmente est contenida en un objeto pueda migrar fuera de su entorno de ejecucin se denomina problema de confinacin. Este problema no puede resolverse en el caso general. En s, estas operaciones con los dominios y la matriz de acceso no son demasiado importantes. Lo que es ms importante es que ilustran la capacidad del modelo de la matriz de acceso para implementar y controlar las necesidades de proteccin dinmica. Es posible crear dinmicamente objetos y dominios nuevos e incluirlos en le modelo de la matriz de acceso. Sin embargo, slo hemos mostrado la existencia del mecanismo bsico; bajo las decisiones de poltica sobre qu dominios habrn de tener acceso a qu objetos y de qu maneras corresponden a los diseadores y usuarios del sistema. IMPLEMENTACION DE LA MATRIZ DE ACCESO Cmo puede implementarse de forma efectiva la matriz de acceso? En general, la matriz estar poco poblada; es decir, la mayor parte de las entradas estarn vacas. Aunque existen tcnicas de estructuras de datos para representar matrices poco pobladas, no son muy tiles para esta aplicacin a causa de la forma en que se usa el recurso de proteccin. Tabla Global La implementacin ms sencilla de la matriz de acceso es una tabla global que consiste en un conjunto de tripletas ordenadas <dominio, objeto, conjunto de derechos>. Cada vez que una operacin M se ejecuta con un objeto Oj dentro del dominio Di; se busca en la tabla global una tripleta <Di, Oj, Rk> , donde M est en Rk. Si se encuentra tal tripleta, se permite que la operacin contine; si no, se genera una condicin de excepcin (error). Esta implementacin tiene varias desventajas. La tabla suele ser grande y por tanto no puede mantenerse en memoria principal, por lo que requiere E/S adicional. Es comn usar tcnicas de memoria virtual para manipular esta tabla. Adems, es difcil aprovechar agrupamientos especiales de objetos o dominios. Por ejemplo, si todo mundo puede leer un objeto en particular, deber tener una entrada individual de cada dominio. Lista de acceso para objetos Cada columna de la matriz de acceso se puede implementar como una lista de acceso para un objeto. Obviamente, las entradas vacas pueden desecharse. La lista resultante para cada objeto consiste en pares ordenados <dominio, conjunto de derechos>, que definen todos los dominios con un conjunto no vaco de derechos de acceso para eso objeto. Este enfoque puede extenderse con facilidad para definir una lista mas un conjunto por omisin de derechos de acceso. Si se intenta una operacin M, con un objeto Oj, en el dominio Di, examinamos la lista de acceso para el objeto Oj, en busca de una entra <Di,

Rk> con M que est en Rk. Si se encuentra la entrada, permitimos la operacin; si no, examinamos el conjunto por omisin. Si M est en ese conjunto, permitimos el acceso, sino, negamos el acceso y ocurre una condicin de excepcin. Por eficiencia, podramos examinar primero la lista por omisin, y luego la lista de acceso. INTRUSOS Saber que hacer con los intrusos en el sistema, es un tema bien interesante. Estos son dos: Los Intrusos Pasivos. Slo desean leer los archivos que no estn autorizados para leer. Los Intrusos Activos. Son ms crueles. Desean hacer cambios no autorizados a los datos. Si se desea disear un sistema seguro contra los intrusos, es importante tener en cuenta el tipo de intruso contra el cual se quiere tener proteccin. Algunas categoras comunes son: Curiosidad casual de usuarios no tcnicos. Muchas personas tienen en sus escritorios terminales para sistemas con tiempo compartido y, por la naturaleza humana, algunos de ellos leern el correo electrnico de los dems, u otros archivos si no existen barreras enfrente de ellos. Por ejemplo, el sistema Unix, tiene predefinido que todos los archivos se pueden leer de manera pblica. Conocidos husmeando. Algunos estudiantes, programadores de sistemas, reparadores y dems personal tcnico consideran como un reto personal romper la seguridad del sistema de cmputo local. A menudo son muy calificados, y estn dispuestos a invertir una cantidad sustancial de su tiempo en este esfuerzo. Un intento deliberado por hacer dinero. Algunos programadores en bancos han intentado penetrar un sistema bancario con el fin de robarle al banco. Los esquemas han cambiado desde cambiar el software para truncar y no redondear el inters, para quedarse con una pequea fraccin de dinero, hasta sacar dinero de las cuentas que no se han utilizado en aos o el "correo negro" ("dame dinero o destruir todos los registros del banco"); Espionaje comercial o militar. El espionaje indica un intento serio y fundamentado por parte de un competidor u otro pas por robar programas, secretos comerciales, patentes, tecnologas, diseos de circuitos, planes de comercializacin, etc. A menudo, este intento implica la cobertura de cables o el levantamiento de antenas dirigidas hacia la computadora con el fin de recoger su radiacin electromagntica. Debe quedar claro que el intento por mantener secretos militares aislados, y el intento por evitar que un estudiante gracioso inerte mensajes graciosos en el sistema, son un poco distintos. La cantidad de esfuerzo que alguien pone en la seguridad y la proteccin depende que quien se piense que sea el enemigo. 4. VIRUS Otra forma de atacar las computadoras son los virus. Al igual que los gusanos, los virus estn diseados para extenderse hacia otros programas y pueden producir daos graves en un sistema, como modificar y destruir archivos y causar cadas del sistema y fallos en los programas. Mientras que un gusano est estructurado como un programa completo y autnomo, un virus es un fragmento de cdigo incrustado en un programa legtimo. Los virus son un problema importante para los usuarios de los computadores, sobre todo, de los microcomputadores. Los computadores multiusuario generalmente no son tan vulnerables a los virus porque el sistema operativo protege los programas ejecutables contra escritura. An si un virus llega a infectar un programa, no habr mucho que pueda hacer porque otros aspectos del sistema estn protegidos. Los sistemas monousuario no cuentan con tales protecciones , y por ello un virus tiene rienda suelta. Los virus generalmente se difunden cuando los usuarios descargan programas infectados de tableros pblicos o intercambian disquetes que contienen alguna infeccin. Un caso de

febrero de 1992 en el que intervinieron 2 estudiantes de la Cornell University es ilustrativo. Los estudiantes haban desarrollado tres programas de juegos para Macintosh con un virus incrustado que distribuyeron a colecciones de software en todo el mundo a travs de Internet. El virus se descubri cuando un profesor de matemticas de Gales descarg los juegos y los programas y un antivirus de sus sistema le avis que haba una infeccin. Cerca de otros 200 usuarios tambin haban descargado los juegos. Aunque el virus no estaba diseado para destruir datos, poda difundirse a archivos de aplicaciones y causar problemas como largas esperas y fallos del programa. Fue fcil dar con los autores, porque los juegos se haban enviado por correo electrnico desde una cuenta en Cornell. Las autoridades del estado de New York arrestaron a los estudiantes acusndolos del delito menor de intervencin de computadores y es posible que posteriormente hayan presentado cargos adicionales. En otro incidente, un programador de California, cuya esposa estaba promoviendo el divorcio le dio un disco para que ella lo cargara en un computador que estaba en disputa. El disco tena un virus y borr todos los archivos del sistema. El esposo fue arrestado y se le acus de destruccin de propiedad. A veces, las infecciones virales inminentes se anuncian en eventos muy publicitados. Tal fue el caso del virus Miguel Angel, que estaba programado para borrar los archivos de los discos duros infectados el 6 de marzo de 1992, el cumpleaos 517 del artista renacencista. A causa de la extensa publicidad que rode al virus, la mayor parte de los sitiios estadounidenses haban localizado y destruido el virus antes de que se activara, as que casi no caus daos. Tales casos ponen sobre aviso y al mismo tiempo, alertan al pblico en general a cerca del problema de los virus. Los programas antivirus se venden como pan caliente. La mayor parte de los paquetes comerciales slo son eficaces contra virus especficos conocidos. Estos programas examinan todos los programas del sistema en busca del patrn de instrucciones especfico que se sabe constituye el virus; cuando encuentran un patrn conocido, eliminan las instrucciones "desinfectando" el programa. Estos paquetes comerciales tienen cientos de catlogos de virus que buscan. La mejor proteccin contra los virus de computador es la prevencin, o la prctica de computacin segura. Comprar software empacado de fbrica y sin abrir, y evitar copias gratuitas o piratas de fuentes pblicas, o intercambios de disquetes es la forma ms segura de evitar infecciones. Sin embargo, ni siquiera las copias nuevas de aplicaciones de software legtimas son inmunes a la infeccin con virus: han existido casos en que empleados vengativos de una compaa de software han infectado las copias maestras de los programas para causar daos econmicos a la compaa que vende el software. Dado que casi siempre se pasan de un sistema a otro, los gusanos y los virus generalmente se consideran como un problema de seguridad, no de proteccin.

Anda mungkin juga menyukai