Unidad 4: Seguridad y Protección
Seguridad en los Sistemas Operativos
Uno de los mayores problemas que se presenta al almacenar información en un computador es la
seguridad de la misma, teniéndose que idear mecanismos que protejan esta información tanto de daños
físicos como de accesos inadecuados o mal intencionados. A menudo, los conceptos de seguridad y
protección se utilizan de forma indistinta y abarcan diferentes problemas. El término seguridad se suele
referir al problema general y el término mecanismo de protección a los procedimientos específicos
utilizados por el sistema operativo para asegurar la información del computador.
La seguridad de un sistema tiene múltiples facetas, incluyendo desde aspectos tales como la protección
ante posibles daños físicos (incendio, terremotos, etc.) de los datos 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 adecuados. La seguridad debe tener en cuenta eventos externos provenientes
del entorno en el que opera el sistema. La seguridad estudia cómo proteger la información almacenada
en el sistema (datos o código) contra accesos indebidos o no autorizados (intrusos, fallos de la
privacidad, etc.). Es la garantía de que los archivos no sean leídos o modificados por personal no
autorizado; esto incluye aspectos técnicos, de administración, legales y políticos. La finalidad de la
seguridad es brindar protección a los diferentes dispositivos electrónicos y a los usuarios, para disminuir
los ataques maliciosos que pudieran poner en peligro los datos sensibles.
La protección, sin embargo, consiste en controlar, y en su caso, evitar o impedir que se haga un uso
indebido (acceso no deseado o no permitido) de los recursos que están dentro del ámbito del S.O. Para
ello deben existir políticas y mecanismos que aseguren que los usuarios sólo acceden a sus “propios”
recursos (archivos, zonas de memoria, etc.). Además, es necesario comprobar que los recursos sólo son
utilizados por aquellos usuarios que tienen derechos de acceso a los mismos. Las políticas de protección
y seguridad de hardware, software y datos deben incluirse dentro del S.O. En cualquier caso, el sistema
operativo debe proporcionar medios para implementar la política de protección deseada por el usuario
y garantizar su correcto funcionamiento.
La seguridad se puede clasificar en:
Externa: se ocupa de proteger al sistema de intrusos y desastres (incendios, inundaciones).
Interna: se ocupa de garantizar el funcionamiento confiable y sin corrupción del sistema, como
así también la integridad de los programas y datos.
Dos de las más importantes facetas de la seguridad son:
La pérdida de datos
Los intrusos
Algunas de las causas más comunes de la pérdida de datos son:
Actos y hechos diversos, como incendios, inundaciones, terremotos, guerras, revoluciones,
roedores, etc.
1
Errores de hardware o de software, como fallas en la cpu, discos o cintas ilegibles, errores de
telecomunicación, errores en los programas, etc.
Errores humanos, por ej., entrada incorrecta de datos, mal montaje de cintas o discos, ejecución
incorrecta de programas, pérdida de cintas o discos, etc.
La mayoría de estas causas se pueden enfrentar con el mantenimiento de los respaldos (back-ups)
adecuados; debería haber copias en un lugar alejado de los datos originales.
Tipos de intrusos:
Curiosidad casual de usuarios no técnicos.
Conocidos (técnicamente capacitados) husmeando.
Intentos deliberados por hacer dinero.
Espionaje comercial o militar.
Otro aspecto del problema de la seguridad es la privacía: protección de las personas respecto del mal
uso de la información en contra de uno mismo. Implica aspectos legales y morales.
También debe señalarse la posibilidad del ataque del Caballo de Troya: Modificar un programa normal
para que haga cosas adversas además de su función usual. Arreglar las cosas para que la víctima utilice
la versión modificada.
Una forma de probar la seguridad de un Sistema es contratar un grupo de expertos en seguridad,
conocido como el equipo tigre o equipo de penetración, cuyo objetivo es intentar penetrar el sistema de
seguridad para descubrir sus falencias y proponer soluciones.
Para diseñar medidas efectivas de seguridad se debe primero:
Enumerar y comprender las amenazas potenciales.
Definir qué grado de seguridad se desea (y cuánto se está dispuesto a gastar en seguridad).
Analizar las contramedidas disponibles.
Finalidad de la Seguridad:
La finalidad de la seguridad del sistema consiste en proteger la información que se almacena en el
mismo garantizando al usuario:
Confidencialidad: capacidad de garantizar que la información, almacenada en el sistema
informático o transmitida por la red, solamente va a estar disponible para aquellas personas
autorizadas a acceder a dicha información.
Integridad: capacidad de garantizar que los datos no han sido modificados desde su creación sin
autorización. La información se dispone es válida y consistente.
Disponibilidad: capacidad de garantizar que tanto el sistema como los datos van a estar
disponibles al usuario en todo momento.
Privacidad: proteger a los individuos contra el mal uso de la información sobre ellos
Mecanismos de prevención:
2
Autentificación del usuario
La identificación de los usuarios se conoce como la autentificación de los usuarios. Muchos métodos de
autentificación se basan en:
La identificación de algo conocido por el usuario.
Algo que posee el usuario.
Algo que es el usuario.
Contraseña
Son la forma de autentificación más utilizada, de fácil comprensión e implementación. Una protección
adicional consiste en hacer ilegible el archivo de contraseñas encriptadas. Otra protección consiste en
que el Sistema sugiera a los usuarios contraseñas generadas según ciertos criterios; con esto se evita
que el usuario elija contraseñas muy sencillas. También es conveniente que el Sistema obligue al usuario
a cambiar sus contraseñas con regularidad.
Criptografía
Es el empleo de transformaciones de los datos a fin de hacerlos incomprensibles para todos con
excepción de sus usuarios autorizados.
Principios de Diseño de Seguridad:
Para dotar a un sistema operativo con mecanismos de seguridad es necesario diseñarlo para que
admitan estos mecanismos desde el principio. Incluir mecanismos de seguridad dentro de un sistema
operativo existente es muy difícil porque las repercusiones de los mecanismos de seguridad afectan
prácticamente a todos los elementos del sistema operativo.
Los criterios de diseño para dotar a un sistema operativo con mecanismos de seguridad son:
1- Mínimo privilegio: todos los programas y usuarios del sistema deben operar utilizando el menor
conjunto de privilegios necesarios para completar la labor. Los derechos de acceso deben
adquirirse solo por permiso explicito; por defecto, deberían ser "sin acceso".
2- Ahorro de mecanismos: los mecanismos de seguridad deben ser tan pequeños y simples como
sea posible, ayudando en su verificación. Esta exigencia suele suponer que deben ser una parte
integral del diseño, más que mecanismos añadidos a diseños existentes.
3- Aceptación: los mecanismos de seguridad no deben interferir excesivamente en el trabajo de los
usuarios, mientras cumplen al mismo tiempo las necesidades de aquellos que autoricen el
acceso. Si los mecanismos no son fáciles de usar, probablemente no van a ser usados o lo serán
de forma incorrecta.
4- Mediación total: cada acceso debe ser cotejado con la información de control de acceso
incluyendo aquellos accesos que suceden fuera de la operación normal, como la recuperación y
el mantenimiento.
5- Diseño abierto: la seguridad del sistema no debe depender de guardar en secreto el diseño de
sus mecanismos. De esta forma, los mecanismos podrán ser revisados por muchos expertos y
los usuarios podrán, por tanto, depositar una alta confianza en ellos.
3
Supervisión de Amenazas
El Sistema Operativo controla operaciones cruciales en lugar de ceder el control directamente a los
usuarios, es decir, es una técnica según la cual los usuarios no pueden tener acceso directo a un recurso.
En general, se produce un flujo de información desde un origen, como un archivo o una región de
memoria, hacia un destino, como otro archivo o usuario. En base a esta situación, se clasifican cuatro
categorías de amenazas:
1- Interrupción: se destruye un elemento del sistema o se hace inaccesible o inútil. Esta es una
amenaza a la disponibilidad.
2- Intercepción: una parte no autorizada consigue acceder a un elemento. Esta es una amenaza a
la confidencialidad. La parte no autorizada puede ser una persona, un programa o un
computador.
3- Alteración: una parte no autorizada no sólo consigue acceder, sino que falsifica un elemento.
Esta es una amenaza a la integridad.
4- Invención: una parte no autorizada inserta objetos falsos en el sistema. Esta es también una
amenaza a la integridad.
Cuando un usuario solicita el acceso al sistema, este lo niega o lo permite dependiendo de los
programas de vigilancia, los cuales se encargan de ejecutar las operaciones delicadas dentro del SO. Está
técnica se utiliza para proteger los recursos vitales o altamente clasificados del sistema, contra el acceso
no autorizado de los usuarios. Además, permite detectar los intentos de penetración en el momento
que se producen.
Penetración en los Sistemas
4
Las defensas de un Sistema Operativo deben ser capaces de resistir un intento de penetración por parte
de un usuario no privilegiado; hacer que un Sistema Operativo sea impenetrable es una tarea imposible,
lo que podemos esperar es que sea altamente resistente a la penetración.
La penetración definitiva puede consistir en cambiar el bit de estado de la máquina del estado problema
al estado supervisor; el intruso podrá así ejecutar instrucciones privilegiadas para obtener acceso a los
recursos protegidos por el Sistema Operativo.
Los estudios de penetración están diseñados para determinar si las defensas de un sistema contra
ataques de usuarios no privilegiados son adecuadas y descubrir deficiencias de diseño para corregirlas.
Uno de los objetivos de las pruebas de penetración consiste en estimar el factor de trabajo de
penetración, es decir indicar de cuánto esfuerzo y recursos son necesarios para conseguir un acceso no
autorizado a los recursos del sistema. Debería ser tan grande que resulte disuasivo.
La penetración en un sistema informático se puede hacer de diferentes formas y por diversos medios.
Entre los más conocidos podemos encontrar:
1- Bacteria: programa que consume recursos del sistema reproduciéndose a sí mismo.
2- Bomba Lógica: lógica incrustada en un programa de computador que se comprueba cuando se
presenta un cierto conjunto y condiciones en el sistema. Cuando se cumplan dichas condiciones,
ejecutara alguna función que provee a acciones no autorizadas.
3- Trampilla: punto de entrada secreto y no documentado a un programa, empleado para otorgar
el acceso fuera de los métodos usuales de autentificación.
4- La utilización por parte del intruso de la cuenta de un usuario legítimo. Para conseguirlo puede
usar un terminal con una sesión abierta o también, obteniendo la contraseña de un usuario,
para ello puede utilizar distintas técnicas, que van desde la adivinación y los ensayos de prueba
y error, al robo o intimidación, pasando por el engaño.
5- La ejecución de programas denominados "caballos de Troya" o “Troyanos”, los cuales ocultan
parte de su funcionalidad, frecuentemente destinada a obtener datos o derechos de acceso del
usuario.
6- La propagación de gusanos y virus informáticos. La diferencia entre un gusano y un virus está en
que el virus es parte del código de un programa, mientras que el gusano es un programa en sí
mismo. El gusano causará graves problemas al sistema debido a que carga en exceso al
computador, usando para su propagación recursos desproporcionados de procesamiento y
comunicación, con lo que el sistema puede denegar servicios a usuarios legítimos. Por el
contrario, el virus es un trozo de código de un programa, que infectará a otros programas
copiándose (cuando se arranca el programa, este examina todos los programas del disco, si
encuentra uno sin infectar, lo infecta añadiendo el código del virus al final del archivo del
programa y sustituyendo la primera instrucción por un salto a la primera instrucción del código
del virus.). Por lo general también realiza actividades dañinas, como eliminar archivos o
corromper los bloques de arranque del disco.
Modalidad de Penetración / Penetration Testing
5
Modalidad de penetración o Pentesting/ Penetration Testing es la práctica de atacar diversos entornos
con la intención de descubrir fallos, vulnerabilidades u otros fallos de seguridad, para así poder prevenir
ataques externos hacia esos equipos o sistemas.
Existen tres tipos de auditorías a realizar para un pentesting:
Black-box: El pentester no tiene conocimiento del sistema. En general se utiliza cuando se
contrata una empresa para que realice el trabajo desde el punto de vista de un posible atacante
externo.
White-box: El pentester tiene conocimiento del funcionamiento del sistema, arquitectura de la
red, sistemas operativos utilizados, etc. Si bien no representa la visión de un atacante externo, si
representa el peor escenario ya que es el caso en el que un atacante ya cuenta con información
antes de acceder al sistema.
Gray-box: Es la auditoría que mezcla características de las dos anteriores, posiblemente sea la
mejor porque simulemos un ataque y a la vez consigamos un mejor código de nuestras
aplicaciones, se puede dar a conocer parte de la información al auditor y pedirle que a partir de
ella intente “escalar” al resto del sistema además se puede intentar este test comenzando
desde varios puntos, red interna, red externa, a través del wifi, a través del puesto de un
empleado, a través de la extranet, etc.
Seguridad de la Red
Ya que en las primeras décadas las redes de computadoras eran utilizadas principalmente para el envío
de correos electrónicos y para compartir impresoras entre empleados, la seguridad no era importante,
pero actualmente con millones de usuarios realizando transacciones bancarias, compras y tratando con
datos sensibles, la seguridad es primordial, por lo tanto, hay que tomar las medidas que sean necesarias
para proteger los datos durante su transmisión y para garantizar que los datos transmitidos son
auténticos.
La seguridad de redes consiste en las políticas y prácticas adoptadas para prevenir y supervisar el acceso
no autorizado, el uso indebido, la modificación o la denegación de una red informática y sus recursos
accesibles. Se encarga de: proteger la red, como así también de proteger y supervisar las operaciones
que se realizan.
La mayoría de los problemas de seguridad son causados intencionalmente por gente que intenta ganar
algo o hacerle daño a alguien.
Tipos de ataques
Pasivos: La meta del oponente es la de obtener la información que está siendo transmitida. el
atacante sólo tiene que observar las transmisiones interviniendo la línea de comunicaciones.
Activos: El atacante tiene que disponer de control físico sobre una parte del enlace y ser capaz
de insertar y capturar las transmisiones. Suponen alguna modificación del flujo de datos o la
creación de flujos falsos. Los podemos clasificar en 4 categorías: enmascaramiento,
retransmisión, la modificación de mensajes y por último la denegación de servicio.
6
Ubicación de dispositivos de cifrado
El método más potente y habitual para contrarrestar las amenazas es el cifrado. Hace falta decidir qué
cifrar y dónde debe ubicarse el mecanismo de cifrado. Hay dos alternativas fundamentales:
Cifrado de enlaces
Cada enlace de comunicaciones vulnerable se equipa en ambos extremos con dispositivos de
cifrado, lo que asegura el tráfico de todos los enlaces.
Desventaja: los mensajes deben ser descifrados cada vez que entran en un conmutador de
paquetes para que éste pueda encaminarlo (debe leer su información para ello), lo que hace
vulnerable al mensaje en cada conmutación.
Cifrado de extremo a extremo
El proceso de descifrado se efectúa en los dos sistemas finales. El host de origen cifra los datos,
los cuales son transmitidos sin modificación por la red hacia el host de destino, quien comparte
una clave con el origen y así es capaz de descifrar los datos. Desventaja: con este cifrado, los
datos de usuario están seguros, pero la composición del tráfico no, porque las cabeceras de los
paquetes se transmiten en claro (sin cifrado, para que puedan ser encaminados).
Para lograr una seguridad mayor, se necesitan ambos métodos de cifrado. Cuando se emplean ambas
formas, el paquete está seguro, excepto durante el tiempo que está en la memoria de un conmutador
de paquetes, en el que la cabecera del paquete está en claro.
Distribución de la clave
Para que el cifrado funcione, ambas partes de un intercambio deben disponer de la misma clave, que
debe estar protegida del acceso de otras partes.
Existen distintas formas, para dos partes A y B:
1.- A puede elegir una clave y entregarla físicamente a B.
2.- Una tercera parte puede elegir una clave y entregarla físicamente a A y B.
3.- Si A y B han empleado una clave recientemente, una parte puede transmitirle a la otra la nueva
clave, cifrada con la antigua.
4.- Si A y B tienen una conexión cifrada con una tercera parte C, C puede entregar una clave a A y B
por los enlaces cifrados.
Tráfico de relleno
Es una función que produce una salida cifrada continuamente, incluso en la ausencia de texto en claro.
Se genera un flujo continuo de datos aleatorios que, en ausencia de texto en claro, se cifran y
transmiten. Esto hace imposible distinguir entre flujos de datos verdaderos y ruido, lo que imposibilita
deducir la cantidad de tráfico.
Protección
Los mecanismos de protección surgieron con la multiprogramación, con la intención de que los
programas de cada uno de los usuarios estuvieran en la partición de memoria asignada e impedir así que
7
los programas traspasaran sus límites a otras particiones y las dañaran. Pero la necesidad de compartir
objetos tanto en memoria principal como en la memoria secundaria motivó que los mecanismos de
control de acceso se hicieran más complejos.
Es importante distinguir entre política de protección y mecanismo de protección. La diferencia está en
que los mecanismos dicen cómo se hará algo, mientras que la política dice qué se hará.
La protección de las redes se puede lograr tanto con hardware o con software.
Tipos de protección
1. Antivirus y antispyware.
2. Firewall: para bloquear el acceso no autorizado a su red.
3. Sistemas de prevención de intrusiones (IPS), para identificar las amenazas de rápida
propagación.
4. Redes privadas virtuales (VPN), para proporcionar acceso remoto seguro
Dominios de Protección
Un sistema de cálculo es un sistema complejo que se puede idealizar como un conjunto de procesos y
objetos. Por objetos se entienden tanto las distintas unidades del computador (CPU, segmentos de
memoria, discos, etc.) como las diferentes informaciones que almacenan (archivos, programas, etc.).
Cada objeto es un tipo abstracto de dato con un único nombre que lo distingue de los demás objetos, y
sólo es posible acceder a él por medio de operaciones útiles y bien definidas. Las operaciones pueden
depender del objeto en cuestión, así read y write son operaciones adecuadas para un archivo, mientras
que up y down lo son para un semáforo.
Lógicamente, un proceso sólo debe poder acceder a aquellos recursos para los cuales está autorizado y
que necesita en ese momento para completar su tarea. Este requisito se denomina principio de la
necesidad de saber, y es útil para limitar los posibles daños que puede causar en el sistema un proceso
con errores.
Para analizar los mecanismos de protección es conveniente incorporar el concepto de dominio de
protección. Así cada proceso trabaja dentro de un dominio, el cual especifica los recursos a los cuales
puede tener acceso. Cada dominio define un conjunto de objetos y las operaciones que se les pueden
aplicar. La capacidad para ejecutar una operación sobre un objeto es un derecho de acceso. Un dominio
es un conjunto de derechos de acceso, cada uno de los cuales está formado por un par de la forma:
<nombre del objeto, conjunto de sus derechos>. Cada par especifica un objeto y cierto subconjunto de
las operaciones que se pueden realizar en él. Un dominio puede corresponder a un solo usuario o a más,
indicando a los mismo, lo que puede hacer y lo que no.
Matrices de Protección
Las relaciones entre dominios y objetos se pueden representar de forma abstracta mediante una matriz
denominada matriz de acceso. Las filas de la matriz de acceso representan dominios y las columnas
objetos. Cada entrada en la matriz indica los derechos de acceso que un sujeto tiene sobre dicho objeto.
Con esta matriz y el número del dominio, el sistema puede determinar qué tipo de acceso se permite a
8
un objeto específico. El problema es cómo realizar de una forma eficaz esta matriz. En la práctica raras
veces se almacena la matriz, ya que es extensa y escasa. La mayoría de los dominios no tienen acceso a
la mayoría de los objetos, por lo que se desperdicia mucho espacio en disco al almacenar una matriz
muy grande y en su mayor parte vacía.
Por ello una forma sencilla de realizarla es mediante una tabla global, consistente en tripletas ordenadas
(dominio, objeto, derechos). Cuando un proceso ejecuta una operación se busca en la tabla global la
tripleta. Si se encuentra esta tripleta se permite la operación y el proceso puede continuar, sino se
produce una condición de error.
Este diseño presenta varios inconvenientes. La tabla suele ser grande y no se puede conservar en
memoria principal, por lo que requiere operaciones adicionales de entrada/salida.
Listas de control de acceso
Una técnica disponible para subsanar el desperdicio producido por las matrices grandes consiste en
asociar con cada objeto una lista (ordenada) que contenga todos los dominios que pueden acceder al
objeto, y la forma de hacerlo. A esta lista se le conoce como Lista de control de acceso (Access Control
List, o ACL)
Ejemplo:
programa 1: (D1, leer-escribir), (D3, ejecutar)
archivo 1: (D¡, leer)
archivo2: (D2, escribir)
archivo3: (D3, leer-escribir)
impresora: (D2, escribir), (D3, escribir)
El principal inconveniente de las listas de accesos es el retardo que se provoca con la búsqueda para
verificar la autoridad de un sujeto para acceder al objeto solicitado.
Para evitar búsquedas de listas potencialmente muy largas de usuarios autorizados y ahorrar espacio de
almacenamiento, algunos sistemas dividen a los usuarios en grupos y sólo almacenan los derechos de
acceso de los grupos. Este esquema ahorra almacenamiento y agiliza el procesamiento reduciendo la
flexibilidad y limitando el número de dominios.
Estructura de Protección Dinámica
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 consideraremos las matrices de acceso en su versión dinámica. Básicamente se requieren
cuatro nuevos derechos de acceso: Copia, Cambio, Propietario y Control.
9
Derecho de acceso de 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.
Derecho de acceso de 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.
Derecho de propietario
Indica la necesidad de que los usuarios se autentiquen al momento de iniciar sesión. Después de todo, si
el sistema operativo no puede estar seguro de quién es el usuario, tampoco puede saber a qué archivos
y otros recursos puede acceder.
Ataques más comunes
Los ataques que sufren los Sistemas Operativos son:
Robo de información mediante la interceptación de mensajes
Modificación del contenido y secuencia de los mensajes transmitidos
Análisis del tráfico: observar los datos y el tipo de tráfico transmitido a través de redes
informáticas
Ataques de suplantación de la identidad
Captura de cuentas de usuario y contraseñas
Modificaciones del tráfico y de las tablas de enrutamiento
Conexión no autorizada a equipos y servidores
Introducción en el sistema de “malware” (código malicioso)
Fraudes, engaños y extorsiones
Denegación del Servicio (Ataques DoS – Denial of Service): Estos ataques consisten en distintas
actuaciones que persiguen colapsar determinados equipos o redes informáticos, para impedir
que puedan ofrecer sus servicios a sus clientes y usuarios.
10