Powered By Blogger

martes, 11 de noviembre de 2014

6.8 Cifrado


Existen muchas defensas frente a los ataques informáticos, que abarcan toda la gama que va desde la metodología a la tecnología. La herramienta de carácter mas general que esta a disposición de los usuarios y de los diseñadores de sistemas es la criptografia. En esta sección vamos a explicar algunos detalles acerca de la criptografia y de su uso en el campo de la seguridad informática.

En una computadora aislada, el sistema operativo puede determinar de manera fiable quienes son el emisor y el receptor de todas las comunicaciones interpretaros, ya que el sistema operativo controla todos los canales de comunicaciones de la computadora. En una red de computadoras, la situación es bastante distinta. Una computadora conectada a la red recibe bits desde el exterior, y no tiene ninguna forma inmediata y fiable de determinar que maquina o aplicación ha enviado esos bits. De forma similar, la propia computadora envía bits hacia la red sin tener ninguna forma de determinar quien puede llegar a recibirlos.

Comúnmente, se utilizan las direcciones de red para inferir los emisores y receptores potenciales de los mensajes que circulan por la red. Los paquetes de red llegan con una dirección de origen, como por ejemplo una dirección IP. Y cuando una computadora envía mensajes, indica quienes es el receptor pretendido del mismo especificando una dirección de destino. Sin embargo, para aquellas aplicaciones en que la seguridad tenga importancia, correríamos el riesgo de meternos en problemas si asumiéramos que la dirección de origen o de destino de un paquete permite determinar con fiabilidad quien a enviado o recibido dicho paquete. Una computadora maliciosa podría enviar un mensaje con una dirección de origen falsificada y, asimismo, otras muchas computadoras distintas de la especificada por la dirección de destino podrían (y normalmente hacen) recibir un paquete. Por ejemplo, todos los encaminadores ubicados en la ruta hacia el destino recibirán también el paquete. ?como puede, entonces, decidir el sistema operativo si debe conceder una solicitud, cuando no puede confiar en el origen especificado en dicha solicitud? ?y como se supone que debe proporcionar protección para una solicitud o para un conjunto de datos, cuando no puede determinar quien recibirá la respuesta o el contenido del mensaje que envié a través de la red?

Generalmente, se considera impracticable construir una red (de cualquier tamaño) en la que se pueda “confiar” en este sentido en las direcciones de origen y destino de los paquetes. Por tanto, la única alternativa es eliminar, de alguna manera, la necesidad de confiar en la red; este es el trabajo de la criptografia. Desde un punto de vista abstracto, la criptografia se utiliza para restringir los emisores y/o receptores potenciales de un mensaje. La criptografia moderna se basa en una serie de secretos, denominados clave , que se distribuyen selectivamente a las computadoras de una red y se utilizan para procesar mensajes. La criptografia permite al receptor de un mensaje verificar que el mensaje ha sido creado por alguna computadora que posee una cierta clave: esa clave es el origen del mensaje. De forma similar, un emisor puede codificar su mensaje de modo que solo una computadora que disponga de una cierta clave pueda decodificar el mensaje, de manera que esa clave se convierte en el destino . Sin embargo, a diferencia de las direcciones de red, las claves están diseñadas de modo que no sea computacionalmente factible calcularlas a partir de los mensajes que se hayan generado con ellas, ni a partir de ninguna otra información publica. Por tanto, las claves proporcionan un medio mucho mas fiable de restringir los emisores y receptores de los mensajes. Observe que la criptografia es un campo de estudio completo por derecho propio, con una gran complejidad; aquí, vamos a explorar únicamente los aspectos mas importantes de aquellas partes de la criptografia que se relacionan con los sistemas operativos.

6.7 Validación y amenazas del sistema


• Identificar cada usuario que esta trabajando en el sistema (usando los recursos).


• Uso de contraseñas.
Vulnerabilidad de contraseñas.


o Que sean complejas y difíciles de adivinar.
o Cambiarlas de vez en cuando.
o Peligro de perdida del secreto.


• La contraseña debe guardare cifrada.


Protección por Contraseña


Las clases de elementos de autentificacion para establecer la identidad de una persona son:


Algo sobre la persona:


Ej.: huellas digitales, registro de la voz, fotografía, firma, etc.
Algo poseído por la persona:
Ej.: insignias especiales, tarjetas de identificación, llaves, etc.
Algo conocido por la persona:
Ej.: contraseñas, combinaciones de cerraduras, etc.


El esquema mas común de autentificacion es la protección por contraseña:


El usuario elige una palabra clave , la memoriza, la teclea para ser admitido en el sistema computarizado:


La clave no debe desplegarse en pantalla ni aparecer impresa.


La protección por contraseñas tiene ciertas desventajas si no se utilizan criterios adecuados para:


Elegir las contraseñas.


Comunicarlas fehaciente mente en caso de que sea necesario.
Destruir las contraseñas luego de que han sido comunicadas.
Modificarlas luego de algún tiempo.


Los usuarios tienden a elegir contraseñas fáciles de recordar:


Nombre de un amigo, pariente, perro, gato, etc.


Numero de documento, domicilio, patente del auto, etc.


Estos datos podrían ser conocidos por quien intente una violación a la seguridad mediante intentos repetidos, por lo tanto debe limitarse la cantidad de intentos fallidos de acierto para el ingreso de la contraseña.


La contraseña no debe ser muy corta para no facilitar la probabilidad de acierto.


Tampoco debe ser muy larga para que no se dificulte su memorización, ya que los usuarios la anotarían por miedo a no recordarla y ello incrementaría los riesgos de que trascienda.


Contraseñas de un solo uso


• Al final de cada sesión, se le pide al usuario que cambie la contraseña.


• Si alguien “roba una contraseña”, el verdadero usuario se dará cuenta cuando vaya a identificarse de nuevo, pues el impostor habrá cambiado la contraseña, con lo que el fallo de seguridad queda detectado.


Verificación de Amenazas


Es una técnica según la cual los usuarios no pueden tener acceso directo a un recurso :


Solo lo tienen las rutinas del S. O. llamadas programas de vigilancia.


El usuario solicita el acceso al S. O.
El S. O. niega o permite el acceso.
El acceso lo hace un programa de vigilancia que luego pasa los resultados al programa del usuario.
Permite:
Detectar los intentos de penetración en el momento en que se producen.
Advertir en consecuencia.


Amenazas relacionadas con los programas


Los procesos son junto con el kernel , el único medio de realizar un trabajo útil en una computadora. Por tanto, un objetivo común de los piratas informáticos consiste en escribir un programa que cree una brecha de seguridad. De hecho, las mayorías de las brechas de seguridad no relacionadas con programas tienen por objetivos crear una brecha que si este basada en un programa. Por ejemplo, aunque resulta útil iniciar una sesión en un sistema sin autorización, normalmente es mucho mas útil dejar un demonio de tipo puerta trasera que proporcione información o que permita un fácil acceso incluso aunque se bloquee la brecha de seguridad original. En esta sección, vamos a describir algunos métodos comunes mediante los que os programas pueden provocar brechas de seguridad. Hay que resaltar que existe una considerable variación en lo que respecta a los convenios de denominación de los agujeros de seguridad, y que en este texto utilizamos los términos mas comunes o descriptivos

6.6 Clasificación de la seguridad


La seguridad interna esta relacionada a los controles incorporados al hardware y al Sistema Operativo para asegurar los recursos del sistema.

Seguridad Externa

La seguridad externa consiste en:

  • Seguridad física.
  • Seguridad operacional.La seguridad física incluye:

Protección contra desastres(como inundaciones, incendios, etc.).
Protección contra intrusos.En la seguridad física son importantes los mecanismos de detección , algunos ejemplos son:

  • Detectores de humo.
  • Sensores de calor.
  • Detectores de movimiento.La protección contra desastres puede ser costosa y frecuentemente no se analiza en detalle; depende en gran medida de las consecuencias de la perdida.
La seguridad física trata especialmente de impedir la entrada de intrusos:

  • Se utilizan sistemas de identificación física:
  • Tarjetas de identificación.
  • Sistemas de huellas digitales.
  • Identificación por medio de la voz.

Seguridad Operacional

Consiste en las diferentes políticas y procedimientos implementados por la administración de la instalación computacional.

La autorización determina que acceso se permite y a quien.

La clasificación divide el problema en subproblemas:

  • Los datos del sistema y los usuarios se dividen en clases:
  • A las clases se conceden diferentes derechos de acceso.

Un aspecto critico es la selección y asignación de personal:

  • La pregunta es si se puede confiar en la gente.
  • El tratamiento que generalmente se da al problema es la división de responsabilidades:
  • Se otorgan distintos conjuntos de responsabilidades.
  • No es necesario que se conozca la totalidad del sistema para cumplir con esas responsabilidades.
  • Para poder comprometer al sistema puede ser necesaria la cooperación entre muchas personas:
  • Se reduce la probabilidad de violar la seguridad.
  • Debe instrumentarse un gran numero de verificaciones y balances en el sistema para ayudar a la detección de brechas en la seguridad.
  • El personal debe estar al tanto de que el sistema dispone de controles, pero:
  • Debe desconocer cuales son esos controles:
  • Se reduce la probabilidad de poder evitarlos.
  • Debe producirse un efecto disuasivo respecto de posibles intentos de violar la seguridad.

Para diseñar medidas efectivas de seguridad se debe primero:

Enumerar y comprender las amenazas potenciales.
Definir que grado de seguridad se desea (y cuanto se esta dispuesto a gastar en seguridad).
Analizar las contra medidas disponibles.

6.5 Concepto de Seguridad



Los términos seguridad y protección se utilizan en forma indistinta. Sin embargo, es útil hacer una distinción entre los problemas generales relativos a la garantía de que los archivos no sea leídos o modificados por personal no autorizado, lo que incluye aspectos técnicos, de administración, legales y políticos, por un lado y los sistemas específicos del sistema operativo utilizados para proporcionar la seguridad, por el otro. Para evitar la confusión, utilizaremos el termino seguridad para referirnos al problema general y el termino mecanismo de protección para referirnos a los mecanismos especificos del sistema operativo utilizado para resguardar la información de la computadora. Sin embargo, la frontera entre ellos no esta bien definida. Primero nos fijaremos en la seguridad; mas adelante analizaremos la protección.

La seguridad tiene muchas facetas. Dos de las mas importantes son la perdida de datos y los intrusos. Algunas de las causas mas comunes de la perdida de datos son:


• Actos divinos: Incendios, inundaciones, terremotos, guerras, revoluciones o ratas que roen las cintas o discos flexibles.

• errores de Hardware o Software: Mal funcionamiento de la CPU, discos o cintas ilegibles, errores de telecomunicación o errores en el programa.

• Errores Humanos: Entrada incorrecta de datos, mal montaje de las cintas o el disco, ejecución incorrecta del programa, perdida de cintas o discos.

La mayoría de estas causas se pueden enfrentar con el mantenimiento de los respaldos adecuados; de preferencia, en un lugar alejado de los datos originales.

Un problema mas interesante es que hacer con los intrusos. Estos tienen dos variedades. Los intrusos pasivos solo desean leer archivos que no están autorizados a leer. Los intrusos activos son mas crueles: Desean hacer cambios no autorizados a los datos. Si se desea diseñar un sistema seguro contra los intrusos, es importante tener en cuenta el tipo de intruso con el que se desea tener protección. Algunas de las categorías comunes son:


• Curiosidad casual de usuarios no técnicos. Muchas personas tienen en sus escritorios terminales para sistemas con tiempo compartido y, por la naturaleza humana, algunos de ellos leerán el correo electrónico de los demás u otros archivos, si no existen barreras en frente de ellos. Por ejemplo la mayoría de los sistema UNIS tienen pre definido que todos los archivos se pueden leer de manera publica.

• Conocidos husmeando. Algunos estudiantes, programadores de sistemas, operadores y demás personal técnico consideran como un reto personal romper la seguridad del sistema de computo local. A menudo son muy calificados y están dispuestos a invertir una cantidad sustancial de su tiempo en este esfuerzo. 

• Un intento deliberado de hacer dinero. Algunos programadores en banco han intentado penetrar un sistema bancario con el fin de robarle al banco. Los esquemas han variado desde cambiar el software para truncar y no redondear el interés, para quedarse con una pequeña fracción de dinero, hasta sacar dinero de las cuentas que no se han utilizado en anos o el "correo negro" .

• Espionaje comercias o militar. El espionaje indica un intento serio y fundamentado por parte de un competidor u otro país para robar programas, secretos comerciales, patentes, tecnología, diseño de circuitos, planes de comercialización, etc. A menudo, este intento implica la cobertura de cables o el levantamiento de antenas hacia la computadora con el fin de recoger su radiación electromagnética.

Debe quedar claro que el intento por mantener la KGB lejos de los secretos militares es un poco distinto del intento por evitar que los estudiantes inserten un mensaje gracioso en el sistema. La cantidad de esfuerzo que alguien pone en la seguridad y la protección depende claramente de quien se piensa sea el enemigo.

Otro aspecto del problema de la seguridad es la privacidad: la protección de las personas respecto del mal uso de la información en contra de uno mismo. Esto implica en forma casi inmediata muchos aspectos morales y legales.

6.4 Protección basada en el lenguaje

Protección basada en el lenguaje. 
  • 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.

6.3 Implementación de matrices de acceso


  • Los derechos de acceso definen que acceso tienen varios sujetos sobre varios objetos.
  • Los sujetos acceden a los objetos.
  • Los objetos son entidades que contienen información.
  • Los objetos pueden ser:
  • Concretos:
  • Ej.: discos, cintas, procesadores, almacenamiento, etc.
  • Abstractos:
  • Ej.: estructuras de datos, de procesos, etc.

  • Los objetos estan protegidos contra los sujetos.

  • Las autorizaciones a un sistema se conceden a los sujetos.

  • Los sujetos pueden ser varios tipos de entidades:

  • Ej.: usuarios, procesos, programas, otras entidades, etc.
Los derechos de acceso mas comunes son:

  • Acceso de lectura.
  • Acceso de escritura.
  • Acceso de ejecución.

Una forma de implementacion es mediante una matriz de control de acceso con:

  • Filas para los sujetos.
  • Columnas para los objetos.
  • Celdas de la matriz para los derechos de acceso que un usuario tiene a un objeto.
Una matriz de control de acceso debe ser muy celosamente protegida por el S. O.

Dominios de protección

Un sistema de cómputos contiene muchos objetos que necesitan protección. Estos objetos pueden ser el hardware, la CPU, los segmentos de memoria, terminales, unidades de disco o impresoras; o bien ser del software, como los proceso, archivos, bases de datos o semáforos.

Cada objeto tiene un único nombre mediante el cual se la hace referencia y un conjunto de operaciones que se pueden realizar en el. READ y WRITE son operaciones adecuadas para un archivo; UP y DOWN tiene sentido en un semáforo.

Es evidente que se necesita una vía para prohibir el acceso de los procesos a los objetos a los que no tiene permitido dicho acceso. Ademas, este mecanismo debe posibilitar la restricción de los procesos a un subconjunto de operaciones legales en caso necesario. Por ejemplo, puede permitirse que el proceso A lea el archivo F, pero no escriba en el.

Para tener una forma de analizar los distintos mecanismos de protección, es conveniente presentar el concepto de dominio. Un dominio es un conjunto de parejas (objeto, derechos). Cada pareja determina un objeto y cierto subconjunto de las operaciones que se pueden llevar a cabo en el. Un derecho es, en este contexto, el permiso para realizar alguna de las operaciones.

Una pregunta importante es la forma en que el sistema lleva un registro de los objetos que pertenecen a un dominio dado. Al menos una teoría, uno puede imaginar una enorme matriz, en la que los renglones son los dominio y las columnas son los objetos. Cada cuadro contiene los derechos correspondientes al objeto en ese dominio. Con esta matriz y el numero de dominio activo, el sistema puede determinar si se permite el acceso de cierta forma a un objeto dado desde un domino especifico.

6.2 Funciones del sistema de protección


Control de acceso que hace referencia a las características 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 específicos o controlar el acceso a los recursos proporcionados por la aplicación.

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 protección del sistema operativo encontramos:


• Controlar el acceso a los recursos

• Asegurarse que todos los accesos a los recursos del sistema estan controlados