Unidad 6 Protección y seguridad 6.1 Concepto y objetivos de protección
La proteccion es un mecanismo control de acceso de los programas, procesos o usuarios al sistema o recursos. 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.
Objetivos
1.- Inicialmente proteccion del SO frente a usuarios poco confiables. 2.- Proteccion: control cont rol para que cada componente activo ac tivo de un proceso proc eso solo pueda acceder a los recursos especificados, y solo en forma congruente con la politica establecida. 3.- La mejora de la proteccion implica tambien una mejora de la seguridad. 4.- Las politicas de uso se establecen:
Por el hardware. Por el administrador / SO. Por el usuario propietario del recurso.
5.- Principio de separacion entre mecanismo y politica:
Mecanismo → con que elementos (hardware y/o software) se realiza la proteccion. Politica → es el conjunto de decisiones que se toman para especificar como se usan esos elementos de proteccion.
6.- La politica puede variar • Dependiendo de la aplicacion, • A lo largo del tiempo.
7.-La proteccion no solo es cuestion del administrador, sino tambien del usuario. 8.-El sistema de proteccion debe:
Distinguir entre usos autorizados y no-autorizados. Especificar el tipo de control de acceso impuesto. Proveer medios para el aseguramiento de la proteccion.
6.2 Funciones del sistema de protección
Control de acceso que hace referencia a las caracteristicas de seguridad que controlan quien puede obtener acceso a los recursos de un sistema operativo. Las aplicaciones llaman a las funciones de control de acceso para establecer quien puede obtener acceso a los recursos especificos o controlar el acceso a los recursos proporcionados por la aplicacion. 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. 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. 6.3 Implantació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. o Abstractos: Abstractos: Ej.: estructuras de datos, de procesos, etc. o Dominios de protección
Un sistema de cómputos contiene muchos objetos que necesitan protección. Es evidente que se necesita una via para prohibir el acceso de los procesos a los objetos a los que no tiene permitido dicho acceso. Un dominio es un conjunto de parejas (objeto, derechos):
Cada pareja determina: Un objeto. o Un subconjunto de las operaciones que se pueden llevar a cabo en o el.
Matriz de acceso
El modelo de protección del sistema se puede ver en forma abstracta como una matriz, la matriz de acceso. Una matriz de acceso es una representación abstracta del concepto de dominio de protección. Los elementos básicos del modelo son los siguientes: • Sujeto: Una entidad capaz de acceder a los objetos. En general, el concepto de sujeto es equiparable con el de proceso. Cualquier usuario o aplicación consigue acceder en realidad a un objeto por medio de un proceso que representa al usuario o a la aplicación. • Objeto: Cualquier cosa cuyo acceso debe controlarse. Como ejemplo se incluyen los archivos, partes de archivos, programas y segmentos de memoria. • Derecho de acceso: la manera en que un sujeto accede a un objeto. Como ejemplo están Leer, Escribir y Ejecutar. Implementacion de la Matriz de Acceso
Tabla Global Sencilla. Se almacena una lista de ternas {...}.
Como el numero de objetos y dominios es posiblemente muy grande, se deberia guardar en memoria virtual → lento. Ver fig. 6.3.4
6.4 Protección basada en el lenguaje
La protección se logra con la ayuda del núcleo del SO que valida los intentos de acceso a recursos. El gasto de inspeccionar y validar todos los intentos de acceso a todos los recursos es muy grande, por lo tanto debe ser apoyada por hardware. Los diseñadores de aplicaciones mediante herramientas de los lenguajes de programación pueden declarar la protección junto con la tipificación de los datos. Ventajas:
Las necesidades de protección se declaran sencillamente y no llamando procedimientos del SO. Las necesidades de protección pueden expresarse independientemente de los recursos que ofrece el SO. El diseñador no debe proporcionar mecanismos para hacer cumplir la protección. Los privilegios de acceso están íntimamente relacionados con el tipo de datos que se declara.
Diferencias entre las distintas formas de protección:
Seguridad: La obligación de cumplimiento por núcleo ofrece un grado de seguridad que el código de seguridad ofrecido por el compilador. Flexibilidad: La flexibilidad de la implementación por núcleo es limitada. Si un lenguaje no ofrece suficiente flexibilidad, se puede extender o sustituir, perturbando menos cambios en el sistema que si tuviera que modificarse el núcleo.
Eficiencia: Se logra mayor eficiencia cuando el hardware apoya la protección. La especificación de protección en un lenguaje de programación permite describir en alto nivel las políticas de asignación y uso de recursos.
La especificación de protección en un lenguaje de programación permite describir en alto nivel las políticas de asignación y usode recursos.El programador de aplicaciones necesita un mecanismo de control de acceso seguro y dinámico para distribuir capacidades a losrecursos del sistema entre los procesos de usuario. Protección en java 2
La protección la maneja la máquina virtual (JVM) La JVM asigna un dominio de protección a una clase cuando la carga. El dominio de protección indica qué operaciones puede (y no puede) realizar la clase. Si se invoca un método de biblioteca y éste realiza una operación privilegiada, se examina el stack para asegurar que la biblioteca pueda realizar la operación.
La protección que se ofrece en los sistemas de computación existentes casi siempre se ha logrado con la ayuda del núcleo de un sistema operativo, que actúa como agente de seguridad que inspecciona y valida cada intento por acceder a un recurso protegido. 6.5 Concepto de seguridad
Los terminos seguridad y proteccion se utilizan en forma indistinta. Sin embargo, es util hacer una distincion entre los problemas generales relativos a la garantia de que los archivos no sea leidos o modificados por personal no autorizado, lo que incluye aspectos tecnicos, de administracion, legales y politicos, por un lado y los sistemas especificos del sistema operativo utilizados para proporcionar la seguridad, por el otro. Algunas de las causas causas mas comunes de la perdida perdida de datos son: 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 telecomunicacion o errores en el programa. • Errores Humanos: Entrada incorrecta de datos, mal montaje de las cintas o el disco, ejecucion incorrecta del programa, perdida de cintas o discos.
Un problema mas interesante es que hacer con los intrusos. Estos tienen dos variedades. Los intrusos pasivos solo desean leer archivos que no estan autorizados a leer. Algunas de las categoria categorias s comunes son: • Curiosidad casual de usuarios no tecnicos. Muchas personas tienen en sus escritorios terminales para sistemas con tiempo compartido y, por la naturaleza humana, algunos de ellos leeran el correo electronico de los demas u otros archivos, si no existen barreras en frente de ellos. • Conocidos husmeando. Algunos estudiantes, programadores de sistemas, operadores y demas personal tecnico consideran como un reto personal romper la seguridad del sistema de computo local. Conocidos husmeando. Algunos estudiantes, programadores de sistemas, operadores y demas personal tecnico consideran como un reto personal romper la seguridad del sistema de computo local.
• Un intento deliberado de hacer dinero. Algunos programadores en banco han intentado penetrar un sistema bancario con el fin de robarle al banco.
• Espionaje comercias o militar. El espionaje indica un intento serio y fundamentado por parte de un competidor u otro pais para robar programas, secretos comerciales, patentes, tecnologia, diseno de circuitos, planes de comercializacion, etc.
Para proteger un sistema, debemos optar las necesarias medidas de seguridad en cuatro niveles distintos: Fisico. El nodo o nodos que contengan los sistemas informaticos deben dotarse de medidas de seguridad fisicas frente a posibles intrusiones armadas o subrepticias por parte de potenciales intrusos. Humano. La autorizacion de los usuarios debe llevarse a cabo con cuidado, para garantizar que solo los usuarios apropiados tengan acceso al sistema. Sistema operativo. El sistema debe autoprotegerse frente a los diversos fallos de seguridad accidentales o premeditados. Red. Son muchos los datos en los modernos sistemas informaticos que viajen a traves de lineas arrendadas privadas, de lineas compartidas como Internet, de conexiones inalambricas o de lineas de acceso telefonico. 6.6 Clasificaciones 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 fisica. Seguridad operacional.
La seguridad fisica incluye:
Proteccion contra desastres(como inundaciones, incendios, etc.). Proteccion contra intrusos.
En la seguridad se guridad fisica son importantes import antes los mecanismos de deteccion , algunos ejemplos son:
Detectores de humo. Sensores de calor. Detectores de movimiento.
La proteccion contra desastres puede ser costosa y frecuentemente no se analiza en detalle; depende en gran medida de las consecuencias de la perdida. La seguridad fisica trata especialmente de impedir la entrada de intrusos:
Se utilizan sistemas de identificacion fisica: Tarjetas de identificacion. o Sistemas de huellas digitales. o Identificacion por medio de la voz. o
Seguridad Operacional
Consiste en las diferentes politicas y procedimientos procedimien tos implementados por la administracion de la instalacion computacional. La autorizacion determina que acceso se permite y a quien. La clasificacion divide el problema en subproblemas:
Los datos del sistema y los usuarios se dividen en clases: A las clases clases se conceden conceden diferentes diferentes derechos de acceso. acceso. o
Un aspecto critico es la seleccion y asignacion de personal:
La pregunta es si se puede confiar en la gente. El tratamiento tratam iento que generalmente se da al problema es e s la division de responsabilidades: Se otorgan distintos conjuntos de responsabilidades. o No es necesario que se conozca la totalidad del sistema para cumplir o con esas responsabilidades. Para poder comprometer al sistema puede ser necesaria la o cooperacion entre muchas personas: Se reduce la probabilidad de violar la seguridad. Debe instrumentarse un gran numero de verificaciones y balances en o el sistema para ayudar a la deteccion de brechas en la seguridad.
o
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 disenar 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 contramedidas contramedidas disponible disponibles. s.
6.7 Validación y amenazas al sistema Identificar cada usuario que esta trabajando en el sistema (usando los recursos).
Uso de contrasenas. Vulnerabilidad de contrasenas. 1.Que sean complejas y 2.- Cambiarlas de vez 3.- Peligro de perdida del secreto.
dificiles en
de
adivinar. cuando.
Proteccion por Contraseña
Las clases de elementos de autentificacion para establecer la identidad de una persona son: Algo sobre sobre la persona: o
Ej.: huellas digitales, registro de la voz, fotografia, firma, etc.
Algo poseido poseido por la persona: persona: Ej.: insignias especiales, tarjetas de identificacion, llaves, etc. o Algo conocido conocido por la persona: persona: Ej.: contrasenas, combinaciones de cerraduras, etc. o
El esquema mas comun de autentificacion es la proteccion por contraseña: El usuario elige una palabra clave, la memoriza, la teclea para ser admitido en el sistema computarizado: o
La clave no debe desplegarse en pantalla ni aparecer impresa.
Verificación de Amenazas
Es una tecnica segun 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 penetracion en el momento en que se o producen. Advertir en consecuencia consecuencia.. o
Amenazas relacionadas con los programas
Los procesos son junto con el kernel , el unico medio de realizar un trabajo util
en una computadora. Por tanto, un objetivo comun de los piratas informaticos consiste en escribir un programa que cree una brecha de seguridad. De hecho, las mayorias 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 util iniciar una sesion en un sistema sin autorizacion, normalmente es mucho mas util dejar un demonio de tipo puerta trasera que proporcione informacion o que permita un facil acceso incluso aunque se bloquee la brecha de seguridad original.
En esta seccion, s eccion, vamos a describir algunos metodos metod os comunes mediante m ediante los cuales los programas pueden provocar brechas de seguridad. seguridad. Hay que resaltar que existe una considerable variacion en lo que respecta a los convenios de denominacion de los agujeros de seguridad, y que en este texto utilizamos los terminos mas comunes o descriptivos. CABALLO DE TROYA
Un programa indudablemente util e inocente que contiene codigos escondidos que permiten la modificacion no autorizada y la explotacion o destruccion de la informacion. Los programas caballo de Troya se distribuyen por lo general por Internet. Los juegos, freeware y protectores de pantalla son los medios comunes que utilizan los caballos de Troya.
Se denomina troyano (o caballo de Troya , traduccion mas fiel del ingles Trojan horse aunque no tan utilizada) util izada) a un programa program a malicioso capaz de d e alojarse en computadoras y permitir el acceso a usuarios externos, a traves de una red local o de Internet, con el fin de recabar informacion o controlar remotamente a la maquina anfitriona. UERTA TRASERA
En la informatica, una puerta trasera (o en ingles backdoor ), es una secuencia especial dentro del codigo de programacion mediante el programador puede acceder o escapar de un programa en caso de emergencia o contingencia en algun problema. A su vez, estas puertas tambien pueden ser perjudiciales perjudiciales debido a que los crackers al descubrirlas pueden acceder a un sistema en forma ilegal y aprovecharse la falencia.
BOMBA LOGICA
Este tipo de delito forma parte de los sistemas informaticos que realizan ataques a la parte logica del ordenador. Se entiendo por bomba logica (en ingles denominado time bombs), aquel software, rutinas o modificaciones de programas que producen modificaciones, borrados de ficheros o alteraciones del sistema en un momento posterior a aquel en el que se introducen por su creador. VIRUS
Un virus informatico es un programa que se copia automaticamente y que tiene por objeto alterar el normal funcionamiento de la computadora, sin el permiso o
el conocimiento del usuario. Aunque popularmente se incluye al "malware" dentro de los virus, en el sentido estricto de esta ciencia los virus son programas que se replican y ejecutan por si mismos. Los virus, habitualmente, reemplazan archivos ejecutables por otros infectados con el codigo de este. Los virus pueden destruir, de manera intencionada, los datos almacenados en un ordenador, aunque tambien existen otros mas benignos, que solo se caracterizan por ser molestos.
Amenazas del Sistema y de la Red
Las amenazas basadas en programas utilizan tipicamente un fallo en los mecanismos de proteccion de un sistema para atacar a los programas. Por contraste, las amenazas del sistema y de la red implican el abuso de los servicios y de las conexiones de red. En ocasiones, se utiliza un ataque del sistema y de la red para lanzar un ataque de programa, y viceversa.
Las amenazas del sistema y de la red crean una situacion en la que se utilizan inapropiadamente los recursos del sistema operativo y los archivos del usuario. En
esta seccion vamos a analizar algunos ejemplos de estas amenazas, incluyendo los gusanos, el escaneo de puertos y los ataques por denegacion de servicio. GUSANOS
Un gusano es un virus informatico o programa auto replicante que no altera los archivos sino que reside en la memoria y se duplica a si mismo. Los gusanos utilizan las partes automaticas de un sistema operativo que generalmente son invisibles al usuario. Es algo usual detectar la presencia de gusanos en un sistema cuando, debido a su incontrolada replicacion, los recursos del sistema se consumen hasta el punto de que las tareas ordinarias del mismo son excesivamente lentas o simplemente no pueden ejecutarse.
Un gusano, al igual que un virus, esta disenado para copiarse de un equipo a otro, pero lo hace automaticamente. En primer lugar, toma el control de las caracteristicas del equipo que permiten transferir archivos o informacion. Una vez que un gusano este en su sistema, puede viajar solo. El gran peligro de los gusanos es su habilidad para replicarse en grandes numeros. Por ejemplo, un gusano podria enviar copias de si mismo a todos los usuarios de su libreta de direcciones de correo electronico, lo que provoca un efecto domino de intenso trafico de red que puede hacer mas lentas las redes empresariales e Internet en su totalidad. ESCANEO DE PUERTOS
El escaneo de puertos es una de las mas populares tecnicas utilizadas para descubrir y mapear servicios que estan escuchando en un puerto determinado.
Usando este metodo un atacante puede crear una lista de las potenciales debilidades y vulnerabilidades en un puerto para dirigirse a la explotacion del mismo y comprometer el host remoto Una de las primeras etapas en la penetracion / auditoria de un host remoto es primeramente componer una lista de los puertos abiertos utilizando una o mas de las tecnicas descritas abajo. Una ves establecida, los resultados ayudaran al atacante a identificar los servicios que estan corriendo en ese puerto utilizando una lista de puertos que cumplen con el RFC (la funcion /etc/services in UNIX, getservbyport() automaticamente hace esto) permitiendo comprometer el host remoto en la etapa de descubrimiento inicial. 6.8 Cifrado. En una computadora aislada, el sistema operativo puede determinar de manera fiable quienes son el emisor y el receptor de todas las comunicaciones interprocesos, ya que el sistema operativo controla todos los canales de comunicaciones de la computadora. En una red de computadoras, la situacion 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 aplicacion ha enviado esos bits. De forma similar, la propia computadora envia bits hacia la red sin tener ninguna forma de determinar quien puede llegar a recibirlos. Sistemas de cifrado simetrico.
Los sistemas de cifrado simetrico son aquellos que utilizan la misma clave para cifrar y descifrar un documento. El principal problema de seguridad reside en el intercambio de claves entre el emisor y el receptor ya que ambos deben usar la misma clave. Por lo tanto se tiene que buscar tambien un canal de comunicacion que sea seguro para el intercambio de la clave. Es importante que dicha clave sea muy dificil de adivinar ya que hoy en dia los ordenadores pueden adivinar claves muy rapidamente.
Sistemas de cifrado asimetrico.
Tambien son llamados sistemas de cifrado de clave publica. Este sistema de cifrado usa dos claves diferentes. Una es la clave publica y se puede enviar a cualquier persona y otra que se llama clave privada, que debe guardarse para que nadie tenga acceso a ella. Para enviar un mensaje, el remitente usa la clave publica del destinatario para cifrar el mensaje. Una vez que lo ha cifrado, solamente con la clave privada del destinatario se puede descifrar, ni siquiera el que ha cifrado el mensaje puede volver a descifrarlo. Por ello, se puede dar a conocer perfectamente la clave publica para que todo aquel que se quiera comunicar con el destinatario lo pueda hacer.