Seguridad
Amenazas a componentes del sistema
- Hardware
- Peligro de disponibilidad
- No tiene mucho riesgo de manipulación remota
- Software
- Es fácil de borrar o corromper (disponibilidad)
- Lo más peligroso es que se modifique su comportamiento (integridad, autenticación)
- Se puede copiar fácilmente (privacidad)
- Datos
- Es fácil de borrar, modificar o corromper (disponibilidad, integridad)
- Se puede copiar fácilmente (privacidad)
- Líneas de comunicaciones y redes
- Ataques pasivos (espionaje, monitoreo de transmisiones)
- Ataques activos (modificaciones en los flujos)
- Enmascaramiento: Hacer pasar un elemento por otro malicioso
- Reenvío: Captura (pasiva) de datos y retransmisión
- Modificación de mensajes
- Denegación de servicio
Niveles de protección
En sistemas de multiprogramación, se deben compartir recursos como la memoria, dispositivos, datos. Estos recursos pueden seguir protegerse en alguno de estos niveles por el SO:
- Sin protección
- Aislamiento: Cada proceso opera separado de los demás, sin comunicar ni compartir nada
- Compartición con limitaciones: El SO verifica los permisos de acceso para cada usuario sobre cada objeto
- Acceso con capacidades dinámicas: Permite crear derechos de acceso dinámicamente
- Uso limitado de objetos: Limita, además del acceso al recurso, las acciones aprobadas sobre él
Protección de la memoria
- Cuando el SO hace paginación debe asegurarse que cada proceso sólo pueda acceder a memoria asignada por él mismo
- Si un proceso segmentado quiere compartir memoria, un mismo segmento debe repetirse en las tablas de acceso necesarias de cada proceso
Control de acceso
- Orientado a usuario
- Se usa un sistema de usuarios con contraseña y sólo se permite acceso a los recursos si el usuario es válido y conoce la clave
- Se puede hacer de forma...
- Centralizada: Un solo sistema de credenciales guarda un usuario por persona real, y tendrá el acceso permitido o bloqueado a cada recurso individualmente
- Por ejemplo: podés usar una misma credencial de Google para acceder a Gmail, Youtube, etc.
- Descentralizada: Cada nodo (servidor o servicio) de la red es transparente a los demás. Cada uno tiene su propio conjunto de credenciales con los permisos para el servicio que ofrece
- Por ejemplo: Un servidor ofrece una web app de música y carpetas compartidas en un dominio de Windows. La web app de música tiene su propia base de datos de usuario, y el dominio de Windows tendrá otra cantidad de usuarios que pueden iniciar sesión para acceder a las carpetas compartidas
- Centralizada: Un solo sistema de credenciales guarda un usuario por persona real, y tendrá el acceso permitido o bloqueado a cada recurso individualmente
- Orientado a datos
- Una vez que el usuario se conectó con sus credenciales, para cada usuario existe un perfil que especifica las operaciones permitidas en los archivos
Matriz de acceso
- Elementos de la matriz:
- Sujeto: un elemento capaz de acceder a objetos (como un proceso que habla con una impresora en nombre de un usuario, o un usuario que abre un archivo directamente)
- Objeto: Elemento al que se accede de forma controlada
- Derecho de acceso: Lectura, Escritura, Ejecución (R/W/X) o cualquier combinación de las tres
- Esta técnica puede ser dispersa y costosa en tamaño por lo que generalmente se usan otras técnicas: las descomposiciones de la matriz
Descomposiciones de la matriz de acceso
- Por columnas/Lista de control de acceso
- Por cada objeto hay una lista de control que muestra los usuarios y sus derechos de acceso
- Cada elemento de la lista puede incluir un usuario individual o un grupo
- Por filas/Ticket de capacidades
- Para cada usuario se autoriza una serie de objetos y operaciones
- El usuario tiene un número de tickets que podría ceder
Intrusos
- Enmascarado: Usuario no autorizado que usa la cuenta de un usuario legítimo sin permiso
- Trasgresor: Usuario legítimo que accede a datos a los que no debería tener acceso, o tiene acceso pero los usa de forma maliciosa
- Clandestino: Usuario que evade las restricciones de acceso y se escapa de la supervisión del sistema (sus acciones no quedan registradas)
Técnicas de intrusión
El objetivo de un intruso es acceder a un sistema o incrementar sus privilegios de acceso. Esto suele necesitar que el intruso consiga información confidencial, como la contraseña.
- El archivo de contraseñas suele estar protegido mediante:
- Cifrado unidireccional: Las contraseñas se guardan cifradas
- Control de acceso: Las contraseñas se guardan en texto plano y el archivo se le da el acceso a solo unas pocas cuentas
- Posible vulnerabilidad en caso de robo de hardware (ataque a disponibilidad y confidencialidad)
- En definitiva, la protección por contraseña se puede burlar usando
- Ataques de fuerza bruta
- Ataques de diccionario (contraseñas comunes)
- Ingeniería social
- Ataques de fuerza bruta
- La intrusión se combate con:
- Prevención: El defensor debe considerar todos los posibles ataques, el atacante puede usar cualquier punto débil que encuentre
- Detección: Se reconocen los ataques antes o justo después de que tengan éxito
Selección de contraseñas
El objetivo de un administrador es eliminar las contraseñas adivinables, pero mantener aquellas que sean fáciles de recordar para los usuarios.
- Técnicas:
- Educación
- Contraseñas generadas por computadora
- Verificación reactiva de contraseñas
- Verificación proactiva de contraseñas
Detección de intrusos
- El comportamiento de un usuario legítimo, en promedio, es muy distinto al de un atacante, pero aún así hay un solapamiento en los perfiles de ambos:
- Detección estadística de anomalías
- Se recolectan datos de comportamiento de usuarios legítimos y cuando se observa un nuevo comportamiento se analiza estadísticamente si "¿es esto algo que un usuario normal haría?"
- Detección por umbral: Implica un umbral de comportamiento sospechoso para todos los usuarios, según la frecuencia de
- Basado en perfil: Se desarrolla un perfil de actividad por cada usuario, el cual luego se monitorea individualmente
- Detección basada en reglas
- Se definen directamente cuáles son los comportamientos sospechosos
- Detección de anomalías: Reglas para detectar la desviación de los patrones de uso normales
- Identificación de penetración: Un sistema experto que busca comportamiento sospechoso
- El registro de auditoría es una herramienta vital que registra todas las acciones de los usuarios
- Nativo: es el integrado en los sistemas operativos multiusuario
- Específico para detección: Recolectan información más especializada, con datos extra para poder asociar comportamientos y patrones
- Divide las operaciones en acciones elementales
Software malicioso
Estrategias de los antivirus
- Detección: Determina que hubo una infección y localiza el proceso responsable
- Identificación: Detecta qué tipo de virus específico infectó el sistema
- Eliminación: Elimina el virus y desinfecta los objetos afectados