IIC 2332 -- Sistemas Operativos
Apuntes 25
1er Semestre 1996
- En Unix el archivo de passwords guarda los passwords en forma
codificada que todos pueden leer. Se usa una función que no se puede
invertir para generar el código de un password. Pero es peligroso
tener el archivo público. ¿Por qué?
- Estos pretenden proveer la seguridad de múltiples niveles.
- Tienen dos principios fundamentales:
- Sin lectura superior: no se pueden leer los objetos que
están en niveles de seguridad más altos.
- Sin escritura inferior: no se pueden escribir objetos que
tienen un nivel de seguridad más bajo.
¿De qué problema sufre esto?
- En un sistema de confianza todos los accesos entre un
proceso y un objeto deben ser monitoreado. ¿Cuál es la consecuencia
para la velocidad del sistema?
- El monitor de seguridad y su base de datos deben ser completamente
protegidos de accesos de afuera. También, se debe verificar la
correctitud del monitor.
- Las redes están vulnerables a ataques en puntos numerosos. Un
enfoque para combatirlo es la codificación.
- Con la codificación de enlace, se codifica el mensaje al
punto de dejar cada interruptor de paquetes, y se descodifica en el
próximo interruptor. Se requiere mucha codificación y
decodificación, y el mensaje está vulnerables en cada nodo.
- Con la codificación entre extremos (end-to-end encryption),
se codifica los datos de usuario y entonces se transmite el mensaje
con el encabezamiento en texto limpio. Pero el modelo de tráfico es
visible.
- Entonces se necesitan ambos: la codificación de enlace y entre
extremos. El paquete es siempre codificado, excepto el encabezamiento
cuando en un interruptor.
- Para apoyar la codificación convencional las dos partes de un
intercambio deben compartir una clave que no está conocida por otras.
Además se deben cambiar la clave frecuentemente para limitar los daños
si un atacador sabe la clave. ¿Cómo se pueden distribuir las claves?
- Una clave puede ser seleccionada por A y entregada físicamente a
B.
- Una tercera parte les puede entregar físicamente la clave a A y
B.
- Si A y B ya tienen una clave, pueden transmitir una nueva
codificada por la antigua.
- Si A y B cada uno tiene una conexión codificada con C, C les
puede entregar una clave sobre enlaces codificados.
- Los dos primeros son incómodos la codificación entre
extremos, ya que los extremos pueden cambiar frecuentemente.
- El tercero sufre del rompimiento de una clave, que descubre todas
las otras.
- El cuarto es preferible. A y B tienen claves permanentes para la
comunicación con C. Se pueden manejar las claves permanentes usando
la codificación de claves públicas.
- El rellenar de tráfico es un método de evitar el análisis de
tráfico. Mientras que no haya mensajes de transmitir, se codifica y
transmite un flujo continuo de bit aleatorios.
- Puerta secreta. Una puerta secreta es un punto secreto de
entrada en un programa que puede burlar los procedimientos normales de
seguridad. Pueden ser útiles durante la depurificación y desarrollo
de un sistema, o para manejar el caso cuando rompa el sistema de
validación, pero son un hueco real de seguridad.
- Cuando un equipo de prueba (tiger team) de las Fuerzas
Aéreas de USA estaba tratando de romper Multics, un táctico que usaba
era mandar una actualización falsa del sistema operativo a un sitio de
Multics. La actualización instaló una puerta secreta en el sistema
que se podía usar más tarde.
- Caballo de Troya. Es un programa aparentemente útil que
contiene código oculto que hace algo no deseado. Un enfoque
interesante es escribir un compilador que es un caballo de Troya. El
compilador puede vigilar a programas específicos (como login) y
modificarlos especialmente. El código de fuente no revelará nada.
- Se pueden disminuir los ataques de caballos de Troya con sistemas
de confianza. Los programas ejecutados por un usuario de confianza no
pueden escribir información privada para el atacador porque no pueden
escribir abajo (el archivo de atacador debe ser modificable por
todos).
- Canal encubierto (covert channel). Un usuario con
privilegios puede usar un canal encubierto para comunicarse con un
usuario sin privilegios. Por ejemplo, los resúmenes de tablas
accesibles por el usuario sin privilegios pueden generar TOTAL vs.
TOTALES, proveyendo un canal de un bit.
Last edited July 3, 1996, by knabe@ing.puc.cl