viernes, 14 de noviembre de 2014

6.7 Validación y amenazas al sistema.

Identificar cada usuario que está 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 pérdida del secreto.

•  La contraseña debe guardare cifrada.

Protección por Contraseña
Las clases de elementos de autentificación 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 más común de autentificación 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 fehacientemente 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 más ú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 más comunes o descriptivos.

CABALLO DE TROYA

Definición.- Un programa indudablemente útil e inocente que contiene códigos escondidos que permiten la modificación no autorizada y la explotación o destrucción de la información. 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, traducción más fiel del inglés Trojan horse aunque no tan utilizada) a un programa malicioso capaz de alojarse en computadoras y permitir el acceso a usuarios externos, a través de una red local o de Internet, con el fin de recabar información o controlar remotamente a la maquina anfitriona.

Un troyano no es de por sí, un virus, aun cuando teóricamente pueda ser distribuido y funcionar como tal. La diferencia fundamental entre un troyano y un virus consiste en su finalidad. Para que un programa sea un "troyano" solo tiene que acceder y controlar la maquina anfitriona sin ser advertido, normalmente bajo una apariencia inocua. Al contrario que un virus, que es un huésped destructivo, el troyano no necesariamente provoca danos porque no es su objetivo.

Suele ser un programa pequeño alojado dentro de una aplicación, una imagen, un archivo de música u otro elemento de apariencia inocente, que se instala en el sistema al ejecutar el archivo que lo contiene. Una vez instalado parece realizar una función útil (aunque cierto tipo de troyanos permanecen ocultos y por tal motivo los antivirus o anti troyanos no los eliminan) pero internamente realiza otras tareas de las que el usuario no es consciente, de igual forma que el Caballo de Troya que los griegos regalaron a los troyanos.

Habitualmente se utiliza para espiar, usando la técnica para instalar un software de acceso remoto que permite monitorizar lo que el usuario legítimo de la computadora hace (en este caso el troyano es un spyware o programa espía) y, por ejemplo, capturar las pulsaciones del teclado con el fin de obtener contraseñas (cuando un troyano hace esto se le cataloga de keylogger) u otra información sensible.

La mejor defensa contra los troyanos es no ejecutar nada de lo cual se desconozca el origen y mantener software antivirus actualizado y dotado de buena heurística; es recomendable también instalar algún software anti troyano, de los cuales existen versiones gratis aunque muchas de ellas constituyen a su vez un troyano. Otra solución bastante eficaz contra los troyanos es tener instalado un firewall.

Otra manera de detectarlos es inspeccionando frecuentemente la lista de procesos activos en memoria en busca de elementos extraños, vigilar accesos a disco innecesarios, etc.

Lo peor de todo es que últimamente los troyanos están siendo diseñados de tal manera que es imposible poder detectarlos excepto por programas que a su vez contienen otro tipo de troyano, inclusive y aunque no confirmado, existen troyanos dentro de los programas para poder saber cuál es el tipo de uso que se les y poder sacar mejores herramientas al mercado llamados también "troyanos sociales"

Los troyanos están actualmente ilegalizados, pero hay muchos crackers que lo utilizan.

PUERTA TRASERA
En la informática, una puerta trasera (o en ingles backdoor), es una secuencia especial dentro del código de programación mediante el programador puede acceder o escapar de un programa en caso de emergencia o contingencia en algún problema.
A su vez, estas puertas también pueden ser perjudiciales debido a que los crackers al descubrirlas pueden acceder a un sistema en forma ilegal y aprovecharse la falencia.

A pesar de que no se consideran propiamente como virus, representan un riesgo de seguridad importante, y usualmente son desconocidas la inmensa gama de problemas que estas puedan llegar a producir. Al hablar de estas nos referimos genéricamente a una forma "no oficial" de acceso a un sistema o a un programa.

Algunos programadores dejan puertas traseras a propósito, para poder entrar rápidamente en un sistema; en otras ocasiones existen debido a fallos o errores.
Ni que decir tiene que una de las formas típicas de actuación de los piratas informáticos es localizar o introducir a los diversos sistemas una puerta trasera y entrar por ella.

El término es adaptación directa del inglés backdoor que comúnmente significa “puerta de atrás”.
Lo usual en estos programas los cuales no se reproducen solos como los virus, sino que nos son enviados con el fin de tener acceso a nuestros equipos muchas veces a través del correo electrónico, por lo que la mayoría de las veces no son fáciles de detectar y por si solos no siempre causan danos ni efectos inmediatos por su sola presencia, siendo así pueden llegar a permanecer activos mucho tiempo sin que nos percatemos de ello.

Generalmente estos se hacen pasar por otros, es decir, se ocultan en otro programa que les sirve de caballo de Troya para que el usuario los instale por error.

Lo peor que puede pasarle cuando está en el Messenger o en el ICQ
no es que contraiga su PC un virus. Lo peor es que alguien instale un backdoor en su PC. Las puertas traseras son fáciles de entender.

Como todo en Internet se basa en la arquitectura cliente / servidor, solo se necesita instalar un programa servidor en una máquina para poder controlarla a distancia desde otro equipo, si se cuenta con el cliente adecuado, esta puede bien ser la computadora de un usuario descuidado o poco informado.

Las puertas traseras (backdoors) son programas que permiten acceso prácticamente ilimitado a un equipo de forma remota. El problema, para quien quiere usar este ataque, es que debe convencerlo a usted de que instale el servidor.

Por eso, si aparece un desconocido ofreciéndole algún programa maravilloso y tentador, no le crea de inmediato. Lo que están probablemente a punto de darle es un troyano, un servidor que le proporcionara a algún intruso acceso total a su computadora.

Con todo el riesgo que esto implica, hay una forma simple y totalmente segura de evitarlo: no acepte archivos ni mucho menos ejecute programas que le hayan mandado siendo estos sobre todo de procedencia dudosa.

Los programas que se clasifican como “backdoors” o "puertas traseras" son utilerías de administración remota de una red y permiten controlar las computadoras conectadas a esta.

El hecho que se les clasifique como software malévolo en algunos casos, es que cuando corren, se instalan en el sistema sin necesidad de la intervención del usuario y una vez instalados en la computadora, no se pueden visualizar estas aplicaciones en la lista de tareas en la mayoría de los casos.

Consecuentemente un backdoor puede supervisar casi todo proceso en las computadoras afectadas, desinstalar programas, descargar virus en la PC remota, borrar información y muchas cosas más.

Recomendación para estar a salvo de las puertas traseras y el delicado riesgo para la seguridad que estas representan. A saber:
1.- Es recomendable asegurarnos de que cada cosa que ejecutamos este bajo nuestro control. Una buena guía para ello es el sentido común (el menos común de los sentidos).
2.- Procure no ejecutar programas de los que no sepamos su procedencia, tanto en anexos de correo, ICQ, Messenger y descargas de Internet (ya sean vía Web o FTP).
3.- La información nos protege. Es recomendable enterarse un poco de las noticias de virus y programas dañinos relacionados, visitando por lo menos las páginas de las distintas empresas antivirus o suscribiéndose a algunos boletines.
4.- Es necesario instalar un antivirus y mantenerlo actualizado. En la
actualidad se protege al usuario no solo contra virus, sino también
contra gusanos, programas de puerta trasera, troyanos y algunos programas maliciosos.
5.- Es bueno tener presente que existen virus y troyanos que pueden
aparentar ser amigables (una simple tarjeta de San Valentín), o que provienen de gente que conoces (como es el caso del gusano Sircam). Siendo así, no confíes en ningún programa ni en nada que recibas hasta no revisarlo con el Antivirus.
6.- Mantenga al día todas las actualizaciones de seguridad de Microsoft, para todas y cada una de las distintas aplicaciones
  •  

VIRUS

Un virus informático es un programa que se copia automáticamente 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 sí mismos. Los virus, habitualmente, reemplazan archivos ejecutables por otros infectados con el código de este. Los virus pueden destruir, de manera intencionada, los datos almacenados en un ordenador, aunque también existen otros más benignos, que solo se caracterizan por ser molestos.

Los virus informáticos tienen, básicamente, la función de propagarse, replicándose, pero algunos contienen además una carga dañina (payload) con distintos objetivos, desde una simple broma hasta realizar danos importantes en los sistemas, o bloquear las redes informáticas generando trafico inútil.

El funcionamiento de un virus informático es conceptualmente simple. Se ejecuta un programa que está infectado, en la mayoría de las ocasiones, por desconocimiento del usuario. El código del virus queda residente (alojado) en la memoria RAM de la computadora, aun cuando el programa que lo contenía haya terminado de ejecutarse. El virus toma entonces el control de los servicios básicos del sistema operativo, infectando de, manera posterior, archivos ejecutables que sean llamados para su ejecución. Finalmente se añade el código del virus al del programa infectado y se graba en disco, con lo cual el proceso de replicado se completa.

GUSANOS
Un gusano es un virus informático o programa auto replicante que no altera los archivos sino que reside en la memoria y se duplica a sí mismo. Los gusanos utilizan las partes automáticas 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 replicación, 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 diseñado para copiarse de un equipo a otro, pero lo hace automáticamente. En primer lugar, toma el control de las características del equipo que permiten transferir archivos o información. 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 números. Por ejemplo, un gusano podría enviar copias de sí mismo a todos los usuarios de su libreta de direcciones de correo electrónico, lo que provoca un efecto domino de intenso tráfico de red que puede hacer más lentas las redes empresariales e Internet en su totalidad.

Cuando se lanzan nuevos gusanos, se propagan muy rápidamente. Bloquean las redes y posiblemente provocan esperas largas (a todos los usuarios) para ver las páginas Web en Internet.

Gusano Subclase de virus. Por lo general, los gusanos se propagan sin la intervención del usuario y distribuye copias completas (posiblemente modificadas) de sí mismo por las redes. Un gusano puede consumir memoria o ancho de banda de red, lo que puede provocar que un equipo se bloquee.
Debido a que los gusanos no tienen que viajar mediante un programa o archivo "host", también pueden crear un túnel en el sistema y permitir que otro usuario tome el control del equipo de forma remota. Entre los ejemplos recientes de gusanos se incluyen: Sasser y Blaster.

6.6 Clasificaciones de la seguridad.

La seguridad interna está 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 sus problemas:
  • Los datos del sistema y los usuarios se dividen en clases:
    • A las clases se conceden diferentes derechos de acceso.
Un aspecto crítico 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 número 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 qué grado de seguridad se desea (y cuanto se está dispuesto a gastar en seguridad).
  • Analizar las contra-medidas disponibles.

6.5 Concepto de seguridad.

H.Deitel. (1987) Menciona que un concepto de seguridad está definido como el un conjunto de medidas tomadas para protegerse contra robos, ataques, crímenes y espionajes o sabotajes. La seguridad implica la cualidad o estado de estar seguro, es decir, la evitación de exposiciones a situaciones de peligro y la actuación para quedar a cubierto frente a contingencias adversas.

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 término seguridad para referirnos al problema general y el término mecanismo de protección para referirnos a los mecanismos específicos del sistema operativo utilizado para resguardar la información de la computadora. Sin embargo, la frontera entre ellos no está bien definida. Primero nos fijaremos en
La seguridad; más adelante analizaremos la protección.

La seguridad tiene muchas facetas. Dos de las más importantes son la perdida de datos y los intrusos. Algunas de las causas más 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.


6.4 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 Implantación de matrices de acceso.

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.

Este modelo fue propuesto por Lampson [4] como una descripción generalizada de mecanismos de protección en sistemas operativos. Es el modelo más utilizado, del que existen numerosas variaciones, especialmente en su 
implementació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á Leer, Escribir y Ejecutar.
El modelo considera un conjunto de recursos, denominados objetos, cuyo acceso debe ser controlado y un conjunto de sujetos que acceden a dichos objetos. Existe también un conjunto de permisos de acceso que especifica los diferentes permisos que los sujetos pueden tener sobre los objetos (normalmente lectura, escritura, etc., aunque pueden ser diferentes, en general, dependiendo de las operaciones que puedan realizarse con el objeto).


Se trata de especificar para cada pareja (sujeto, objeto), los permisos de acceso que el sujeto tiene sobre el objeto. Esto se representa mediante una matriz de acceso M que enfrenta todos los sujetos con todos los objetos. En cada celda M [i, j] se indican los permisos de acceso concretos que tiene el sujeto i sobre el objeto j.

La figura 6.3.1 representa una matriz de acceso, y la figura 6.3.2 es una matriz de acceso derivada de la figura 6.3 de dominios de protección.



El mecanismo de protección es la matriz, junto con todos los elementos que se han de añadir para que se cumplan de manera efectiva todas las restricciones de acceso a los objetos.

•  La política consiste en decidir cómo rellenar las distintas celdas de la matriz.
•  La MA permite implementar operaciones de cambio de domino.
•  El objeto sobre el que trabajamos es el Dominio → aparecen tantas columnas como dominios haya en el sistema.
•  La operación es la conmutación de un dominio a otro.
•  También la MA es un objeto que se puede modificar. 

De este modo podemos definir tres operaciones:

•  Copiar derechos de acceso de una celda a otra dentro de la misma columna. Consiste en pasar el derecho de acceso a un objeto de un Dominio que lo tiene, a otro donde originalmente no lo tenía. Se señala con un asterisco (*).
•  Copia ilimitada con propagación del propio derecho de copia.
•  Copia limitada sin propagación.
•  Movimiento de derecho.

•  Dueño. Un proceso ejecutándose en un dominio que tiene derecho de “dueño” sobre un objeto, puede repartir cualquier derecho de acceso sobre cualquier dominio para dicho objeto.

•  Control. Opera solo sobre dominios. Ejercer el control sobre un dominio implica que se puede quitar cualquier derecho sobre una fila de dominio.
•  La MA también ha de ser protegida.

Implementación de la Matriz de Acceso

Tabla Global
Sencilla. Se almacena una lista de ternas {<dominio, objeto, permisos>...}.
Como el número de objetos y dominios es posiblemente muy grande, se debería guardar en memoria virtual.

Ejemplo de una tabla global

Lista de acceso para objetos (ACL)
Se expresa la MA por columnas {<dominio, permisos>,...}. Se descartan las entradas vacías.

Se puede crear una lista de permisos por defecto para hacer más fácil su uso.
Dado que cada vez que se va a usar un objeto hay que comprobar si hay o no permiso para hacerlo, es lógico poner la ACL allí donde estén descritos los atributos del objeto.
  • Asocia a cada objeto una lista ordenada con:
    • Todos los dominios que pueden tener acceso al objeto.
    • La forma de dicho acceso (ej.: lectura (r), grabación (w), ejecución (x)).
Una forma de implementar las ACL consiste en:
  • Asignar tres bits (r, w, x) para cada archivo, para:
    • El propietario, el grupo del propietario y los demás usuarios.
  • Permitir que el propietario de cada objeto pueda modificar su ACL en cualquier momento:
    • Permite prohibir accesos antes permitidos.


Lista de Capacidades
Se expresa la MA por filas. Cada dominio tiene una lista de la forma {<objeto, permisos>,...}

Para identificar el objeto se usa o bien su nombre lógico, o un puntero a él (la estructura de datos que le describe); a esta dirección se la llama capacidad.
Solo se podrá realizar la operación M sobre el objeto O si se dispone de la capacidad (puntero) al objeto. 


Ejemplo de una lista de capacidades

Mecanismo de Cerradura-Llave
Cada objeto tiene una lista de patrones llamados cerradura.
Cada dominio tiene una lista de patrones llamados claves.
Un proceso que se ejecuta en un dominio solo tendrá acceso a un objeto si el dominio contiene una llave que coincida con una de las cerraduras.

Comparación
La tabla global es una matriz dispersa, es ineficiente para su almacenamiento.
ACL → Cuando se accede a un objeto es fácil determinar si hay o no permiso para usarlo.
Capacidades → Las ACL están distribuidas, es difícil saber cuáles son los derechos de acceso para un proceso, cosa que si se puede hacer con la lista de capacidades.

Los sistemas reales suelen usar una mezcla de todos.
Ej. UNIX: Se abre un fichero, se verifica en la ACL si tiene permiso o no. Si lo tiene, se consigue un descriptor de fichero, es decir una capacidad que será lo que se use a partir de entonces.