Conceptos básicos: Sistemas confiables.

**Clasificación de sistemas confiables**

Una forma de mejorar la
habilidad de un sistema de defensa contra intrusos y programas
maliciosos, es implementar tecnología de Sistemas Confiables (Trusted
Systems).

**Control de Acceso a Datos**

A través de procedimientos de
control de accesos de usuarios (log on), un usuario puede ser
identificado por el sistema. Asociado a cada usuario puede existir un
Perfil que especifica sus operaciones y accesos a archivos permitidos.
El sistema operativo puede aplicar reglas basadas en el perfil de
usuario.

Los Modelos generales de control de Acceso pueden ser:

– Matriz de Accesos.

– Lista de Control de Accesos.

– Lista de Capacidades.

Los Elementos básicos del modelo son:

– Sujeto (ó Subject): Una entidad capaz acceder objetos.

Concepto equivalente al de proceso.

– Objeto: Algo al que su acceso se controla (Ejemplo: archivos, programas y segmentos de memoria).

– Derechos de Acceso: El modo en que un objeto es accedido por un sujeto (Ejemplo: read, write, execute).

****– Un eje de la Matriz (Y): Consiste de los sujetos identificados que pueden intentar acceder a los datos.****

– El otro eje (X): Lista los objetos que pueden ser accedidos.

– Cada entrada en la matriz indica los derechos de acceso de cada sujeto para cada objeto.

### Lista de Control de Accesos

·        Descomposición de la matriz por columnas.

·        Lista los usuarios y sus derechos de accesos permitidos.

·        La lista puede contener una entrada pública ó por default.

       Descomposición de la matriz por filas.

·   Una Cuenta de capacidad especifica, objetos autorizados y operaciones para un usuario.

· Cada usuario tiene un número de Cuenta.

### Sistemas Confiables (Trusted)

Protección de datos y recursos en base a
niveles de seguridad, como en lo militar, donde la información se
categoriza como U (unclassified), C (confidential), S (secret) y TS (top
 secret).

Los usuarios pueden obtener permisos para acceder a ciertas categorías de datos.

• Seguridad Multinivel:
Definición cuando hay múltiples categorías ó niveles de datos. Un
sistema de seguridad multinivel debe aplicar las siguientes reglas:

\* No Read Up: Un sujeto sólo puede leer un objeto de nivel de seguridad igual ó menor (Simple Security Property).

\* No Write Down: Un sujeto sólo puede escribir en un objeto de nivel de seguridad igual ó mayor (\*.Property).

### Concepto de Monitor de Referencia

Aproximación de seguridad multinivel para un sistema de procesamiento de datos.

·
 Elemento de control en el hardware y sistema operativo de una
computadora que  regula el acceso de sujetos a objetos en base a
parámetros de seguridad.

· El Monitor tiene acceso a un archivo (Security Kernel Database).

·  Aplica las reglas de seguridad (no read up, no write down).

### Propiedades del Monitor

– Mediación Completa: Reglas seguridad se aplican en todo acceso.

– Aislación: El monitor de referencia y la DB están protegidos de modificaciones no autorizadas.

– Correctitud: La exactitud del monitor de referencia debe ser comprobable (matemáticamente).

Un sistema que pueda proveer tales verificaciones (ó propiedades), se puede referir como un Sistema Confiable.

### Defensa de Troyanos

Troyanos: Programa malicioso
que aparentando hacer algo normal, hará algo inesperado, a través de una
 Trampa ó un Ataque (acceder a una cuenta ó ejecutar comandos con
privilegios de otro usuario).

En la siguiente imagen se
muestra el ataque troyano de usuario a al b, que consigue acceso
legítimo al sistema e instala un troyano y un arch.privado para ser
usado en el ataque como un “back pocket”.

****Los Sistemas Operativos confiables y seguros, constituyen un modo de defensa contra ataques de troyanos (Trojan Horse Attacks).****

En la siguiente imagen muestra
un S.O. Seguro, donde el Monitor no permite a B escribir (no W down) el
string en un arch público (back pocket). Si B tiene nivel seguridad
sensitivo, y A nivel público, cuando B invoca al troyano, este programa
adquiere nivel seguridad de B.

### **8.2 Flujo de Información**

Uno de los servicios más importantes a nivel de red es la entrega de flujo confiable (Reliable Stream Transport).

En el nivel más bajo, las redes
 de comunicación proporcionan una entrega de paquetes no confiable. Los
paquetes se pueden perder o destruir debido a errores (falla el
hardware, sobrecarga de la red, etc). Las redes que rutean dinámicamente
 los paquetes pueden entregarlos en desorden, con retraso o duplicados.
En el nivel más alto, los programas de aplicación a menudo necesitan
enviar grandes volúmenes de datos de una computadora a otra. Utilizar un
 sistema de entrega de conexión y no confiable para transferencias de
grandes volúmenes de información resulta ser la peor opción. Debido a
esto, el TCP se ha vuelto un protocolo de propósito general para estos
casos.

La interfaz entre los programas
 de aplicación y la entrega confiable (es, decir, las características
del TCP) se caracterizan por cinco funciones:

* Servicio Orientado a Conexión: El servicio de entrega de

flujo en la máquina destino pasa al receptor exactamente la misma
secuencia de bytes que le pasa el transmisor en la máquina origen.

* Conexión de Circuito Virtual: Durante la transferencia, el

software de protocolo en las dos máquinas continúa comunicándose para
verificar que los datos se reciban correctamente. Si la comunicación no
se logra por cualquier motivo (v.q. falla el hardware de red), ambas
máquinas detectarán la falla y la reportarán a los programas apropiados
de aplicación. Se utiliza el término circuito virtual para describir
dichas conexiones porque aunque los programas de aplicación visualizan
la conexión como un circuito dedicado de hardware, la confiabilidad que
se proporciona depende del servicio de entrega de flujo.

* Transferencia con Memoria Intermedia: Los programas de

aplicación envían un flujo de datos a través del circuito virtual
pasando repetidamente bytes de datos al software de protocolo. Cuando se
 transfieren datos, cada aplicación utiliza piezas del tamaño que
encuentre adecuado, que pueden ser tan pequeñas como un byte. En el
extremo receptor, el software de protocolo entrega bytes del flujo de
datos en el mismo orden en que se enviaron, poniéndolos a disposición
del programa de aplicación receptor tan pronto como se reciben y se
verifican. El software de protocolo puede dividir el flujo en paquetes,
independientemente de las piezas que transfiera el programa de
aplicación. Para hacer eficiente la transferencia y minimizar el tráfico
 de red, las implantaciones por lo general recolectan datos suficientes
de un flujo para llenar un datagrama razonablemente largo antes de
enviarlo. Por lo tanto, inclusive si el programa de aplicación genera el
 flujo un byte a la vez, la transferencia a través de la red puede ser
sumamente eficiente. De forma similar, si el programa de aplicación
genera bloques de datos muy largos, el software de protocolo puede
dividir cada bloque en partes más pequeñas para su transmisión. Para
aplicaciones en las que los datos de deben entregar aunque no se llene
una memoria intermedia, el servicio de flujo proporciona un mecanismo de
 empuje o push que las aplicaciones utilizan para forzar una
transferencia. En el extremo transmisor, el push obliga al software de
protocolo a transferir todos los datos generados sin tener que esperar a
 que se llene una memoria intermedia. Sin embargo, la función de push
sólo garantiza que los datos se transferirán, por tanto, aún cuando la
entrega es forzada, el software de protocolo puede dividir el flujo en
formas inesperadas (el transmisor puede reducirlo en caso de
congestión).

* Flujo no estructurado: Posibilidad de enviar información de control junto a datos.
* Conexión Full Dúplex: Se permite la transferencia

concurrente en ambas direcciones. Desde el punto de vista de un proceso
de aplicación, una conexión full dúplex permite la existencia de dos
flujos independientes que se mueven en direcciones opuestas, sin ninguna
 interacción aparente. Esto ofrece una ventaja: el software subyacente
de protocolo puede enviar datagramas de información de control de flujo
al origen, llevando datos en la dirección opuesta. Este procedimiento de
 carga, transporte y descarga REDUCE EL TRÁFICO en la red.

### Control de Acceso a Red

Control de acceso a red (del inglés NAC)
es un enfoque de la seguridad en redes de computadoras que intenta
unificar la tecnología de seguridad en los equipos finales (tales como
antivirus, prevención de intrusión en hosts, informes de
vulnerabilidades), usuario o sistema de autenticación y reforzar la
seguridad de la red.

El control de acceso a red es
un concepto de ordenador en red y conjunto de protocolos usados para
definir como asegurar los nodos de la red antes de que estos accedan a
la red. NAC puede integrar el proceso de remedio automático (corrigiendo
 nodos que no cumplen las normativas antes de permitirles acceso) en el
sistema de red, permitiendo a la infraestructura de red como routers,
switches y firewalls trabajar en conjunto con el back office y el
equipamiento informático del usuario final para asegurar que el sistema
de información está operando de manera segura antes de permitir el
acceso a la red.

El objetivo del control de
acceso a red es realizar exactamente lo que su nombre implica: control
de acceso a la red con políticas, incluyendo pre-admisión, chequeo de
políticas de seguridad en el usuario final y controles post-admisión
sobre los recursos a los que pueden acceder en la red los usuarios y
dispositivos y que pueden hacer en ella.

### Objetivos del Control de Acceso a Red

El control de acceso a red (NAC)
representa una categoría emergente en productos de seguridad, su
definición es controvertida y está en constante evolución. Los objetivos
 principales de este concepto se pueden resumir en:

·        Mitigar ataques de día cero.

El propósito clave de una
solución NAC es la habilidad de prevenir en los equipos finales la falta
 de antivirus, parches, o software de prevención de intrusión de hosts y
 acceder así a la red poniendo en riesgo a otros equipos de
contaminación y expansión de gusanos informáticos.

·        Refuerzo de políticas.

Las soluciones NAC permiten a
los operadores de red definir políticas, tales como tipos de ordenadores
 o roles de usuarios con acceso permitido a ciertas áreas de la red, y
forzarlos en switches y routers.

·        Administración de acceso e identidad.

Donde las redes IPs
convencionales refuerzan las políticas de acceso con base en direcciones
 IP, los dispositivos NAC lo realizan basándose en identidades de
usuarios autenticados, al menos para usuarios finales de equipos
portátiles y sobremesa.

### Conceptos

Pre-admisión y Post-admisión.
Existen dos filosofías de un maje loco de diseño predominantes en NAC,
basadas en políticas de refuerzo antes de ganar acceso a la red o
después de hacerlo. En el primer caso denominado NAC de pre-admisión,
las estaciones finales son inspeccionadas antes de permitirles el acceso
 a la red. Un caso típico de NAC pre-admisión sería el prevenir que
equipos con antivirus no actualizados pudieran conectarse a servidores
sensibles. Alternativamente, el NAC post-admisión crea decisiones de
refuerzo basadas en acciones de usuario después de que a estos usuarios
se les haya proporcionado el acceso a la red.

Con agente vs sin agente. La
idea fundamental de la tecnología NAC es permitir a la red tomar
decisiones de control de acceso basadas en inteligencia sobre los
sistemas finales, por lo que la manera en que la red es informada sobre
los sistemas finales es una decisión de diseño clave. Una diferencia
clave entre sistemas NAC es si requieren agentes software para informar
de las características de los equipos finales, o si por el contrario
utilizan técnicas de escaneo e inventariado para discernir esas
características remotamente.

Solución, cuarentena y portal
cautivo. Los administradores de sistemas y redes despliegan productos
NAC con la esperanza de que a algunos clientes legítimos se les denegará
 el acceso a la red (si los usuarios nunca tuvieron antivirus
desactualizados y sus sistemas están siempre actualizados, NAC no sería
necesario). Por ello las soluciones NAC requieren de un mecanismo para
remediar el problema del usuario final que le ha sido denegado el acceso
 a la red; las dos estrategias comunes para este remedio son redes de
cuarentena y portales cautivos.

 ****8.4 Especificación, prueba y verificación.****

Especificación de sistema confiable.

****Antes de profundizar en
la arquitectura de un sistema confiable es necesario definir el contexto
 en que usamos  “confiable”. En el contexto de los sistemas confiables
que este término implica que: el propietario legítimo de la información
que cree que la información está siendo utilizada apropiadamente. Por
ejemplo, si necesito que JetBlue poder utilizar mi información personal,
 pero ninguna otra entidad tendrá acceso a mi información, entonces un
sistema de confianza se aseguraría de que esta creencia es correcta
(mediante la restricción de todos los demás usos distintos de los que me
 especifique). Como otro ejemplo, si una empresa pide mi dirección de
entrega que se utilizará para entregar bienes durante la semana que
viene, podría especificar que quiero que mi dirección destruida después
de una semana y en una “confianza” del sistema que esto pasaría.****

Posibles aplicaciones

Si todos los sistemas informáticos
conectados entre sí se podía confiar en que esto crearía una situación
que haría que la aplicación de políticas de privacidad muy sencillo. En
una red mundial como Internet podemos ver el caso en el que algunos de
los países ha decidido no aceptar las políticas. Por definición, ninguno
 de los sistemas de confianza que confiar en los demás sistemas, lo que
lleva a los sistemas que no formaban parte de la plataforma de confianza
 que tiene la adopción de la plataforma con el fin de seguir siendo una
parte de la red.
Un gran problema con la arquitectura actual es que una vez que damos un
pedazo de información a una entidad diferente, ya no tenemos control de
lo que sucede a esa información. Con direcciones de correo electrónico,
por ejemplo, una vez que una dirección se utiliza para compras en línea
de la entidad corporativa tiene la dirección y tiene el control total de
 los datos. Si yo quisiera revocar los derechos a mi dirección de correo
 electrónico, porque la entidad pronto se convirtió en mi enemigo, esto
no sería posible. Una vez que la información sale de su computadora,
usted no tiene control de ella. Con un sistema de confianza que esto
puede cambiar drásticamente. La propiedad de la información no cambia
sólo porque está en manos de otra persona. El sistema de confianza
todavía tiene que hacer cumplir las políticas para que le obligaba, en
el momento de la transferencia.

El concepto de monitor de referencia fue
presentado como un idea para llegar a un acceso controlado. “La función
del monitor de referencia es el de validar todos los referencias (por
ejemplo, las referencias a los programas, datos, periféricos) hecha por
los programas en ejecución contra los autorizados para el sujeto (por
ejemplo, el usuario). El monitor de referencia no sólo es responsable de
 asegurar que las referencias están autorizados a acceder a los objetos
compartidos de recursos sino también para asegurar que la referencia es
el tipo correcto (es decir, leer, o leer y escribir, etc.) ” Una
combinación de hardware, software y firmware que implementa el monitor
de referencia se llama el mecanismo de validación de referencia, para lo
 cual:

1. El mecanismo de validación de referencia debe ser a prueba de manipulaciones.
2. El mecanismo de validación de referencia siempre debe ser invocado.
3. El mecanismo de validación de referencia debe ser lo suficientemente
pequeño para ser sometido a análisis y pruebas para asegurarse de que es
 correcto.

### Pruebas y evaluación

 **Trusted Computer System Avaluation Criteria (TSCSEC) un apartado sobre
los mecanismos de las auditorías como requisito para cualquier sistema
de conﬁanza con un nivel de seguridad elevado. En este documento,
conocido bajo el nombre de Libro marrón (Tan book), se enumeran los
objetivos principales de un mecanismo de auditoría que podemos resumir
muy brevemente en los siguientes puntos:**

• Permitir la revisión de patrones de
acceso (por parte de un objeto o por parte de un usuario) y el uso de
mecanismos de protección del sistema.

• Permitir el descubrimiento tanto de intentos internos como externos de burlar los mecanismos de protección.

• Permitir el descubrimiento de la
transición de usuario cuando pasa de un nivel menor  de privilegios a
otro mayor (escalada de privilegios).

• Permitir el bloqueo de los intentos de los usuarios de saltarse los mecanismos de protección del sistema.
• Servir de garantía frente a los usuarios de que toda la información
que se recoja sobre ataques e intrusiones será suﬁciente para controlar
los posibles daños ocasionados en el sistema.

El proyecto Instrusion Detection Expert
System (IDES), desarrollado entre 1984 y 1986 por Dorothy Denning y
Peter Neumann fue uno de los primeros sistemas de detección de intrusos
en tiempo real. Este proyecto, ﬁnanciado entre otros por la marina
norteamericana, proponía una correspondencia entre actividad anómala y
abuso o uso indebido (entendiendo por anómala aquella actividad extraña o
 inusual en un contexto estadístico).

Un segundo sistema de detección de
ataques en tiempo real que hay que destacar fué Discovery, capaz de
detectar e impedir problemas de seguridad en bases de datos. La novedad
del sistema radicaba en la monitorización de aplicaciones en lugar de
analizar un sistema operativo al completo. Mediante la utilización de
métodos estadísticos desarrollados en COBOL, Discovery podía  detectar
posibles abusos.

Otros sistemas fueron desarrollados para ayudar a oﬁciales norteamericanos a encontrar
marcas de ataques internos en los ordenadores principales de sus bases aéreas. Estos or- ´
denadores eran principalmente servidores corporativos que trabajaban con información no clasiﬁcada pero muy conﬁdencial.

Uno de los últimos sistemas de esta época
 a destacar fue MIDAS (Multics Intrusion De-tection and Alerting
System), creado por la NCSC (National Computer Security Center). Este
sistema de detección fue implementado para monitorizar el  Dockmaster de
 la NCSC, en el que se ejecutaba uno de los sistemas operativos más
seguros de la ´ época\*. De la misma manera que IDES, MIDAS utilizaba un
sistema híbrido en el que se combinaba tanto la estadística de anomalías
 como las reglas de seguridad de un sistema experto. MIDAS utilizaba un
proceso de análisis progresivo compuesto por cuatro niveles de reglas.
Además de estas reglas, también contaba con una base de datos que
utilizaban para determinar signos de comportamiento atípico.

Sistemas de detección de intrusos actuales.
A partir de los años 90, el rápido crecimiento de las redes de
ordenadores provocó la aparición de nuevos modelos de detección de
intrusiones. Por otro lado, los daños provocados por el famoso gusano de
 Robert Morris en el 1988 contribuyeron a aunar esfuerzos entre
actividades comerciales y académicas en la búsqueda de soluciones de
seguridad en este campo. El primer paso fue la fusión de los sistemas de
 detección basados en la monitorización del sistema operativo (y
aplicaciones del sistema operativo) junto con sistemas distribuidos de
detección de redes, capaces de monitorizar en grupo ataques e
intrusiones a través de redes conectadas a internet.
El objetivo inicial de este sistema distribuido era proporcionar medios
que permitieran centralizar el control y la publicación de resultados en
 un analizador central.

Arquitectura general de un sistema de deteccion de intrusiones.

Desde el comienzo de la década de los
ochenta se han llevado a cabo multitud de estudios referentes a la
construcción de sistemas para la detección de intrusos. En todos estos
estudios se han realizado diferentes propuestas y diseños con el
objetivo de cumplir los siguientes requisitos:

• Precisión. Un sistema de detección de
intrusos no debe que confundir acciones legítimas con acciones
deshonestas a la hora de realizar su detección. Cuando las acciones
legítimas son detectadas como acciones maliciosas, el sistema de
detección puede acabar provocando una denegación de servicio contra un
usuario o un sistema legítimo. Este tipo de detecciones se conoce como
falsos positivos. Cuanto menor sea el número de falsos positivos, mayor
precisión tendrá el sistema de detección de intrusos.

• Eﬁciencia. El detector de intrusos debe
 minimizar la tasa de actividad maliciosa no detectada (conocida como
falsos negativos). Cuanto menor sea la tasa de falsos negativos, mayor
será la eﬁciencia del sistema de detección de intrusos. Este es un
requisito complicado, ya que en ocasiones puede llegar a ser imposible
obtener todo el conocimiento necesario sobre ataques pasados, actuales y
 futuros.

• Rendimiento. El rendimiento ofrecido
por un sistema de detección de intrusos debe ser suﬁciente como para
poder llegar a realizar una detección en tiempo real. La detección en
tiempo real responde a la detección de la intrusión antes de que ésta
llegue a provocar daños en el sistema. Según los expertos, este tiempo
debería de ser inferior a un minuto.

• Escalabilidad. A medida que la red vaya
 creciendo (tanto en medida como en velocidad), también aumentaría el
número de eventos que debera tratar el sistema. El detector tiene que
ser capaz de soportar este aumento en el número de eventos, sin que se
produzca pérdida de información. Este requisito es de gran relevancia en
 sistemas de ´
detección de ataques distribuidos, donde los eventos son lanzados en
diferentes equipos del sistema y deben ser puestos en correspondencia
por el sistema de detección de intrusiones.

• Tolerancia en fallos. El sistema de
detección de intrusiones debe ser capaz de continuar ofreciendo su
servicio aunque sean atacados distintos elementos del sistema incluyendo
 la situación de que el propio sistema reciba un ataque o intrusión).