19 Unidad 8: Protección y Seguridad
Autor: Luis Torres
19.1 Introducción a la protección y la seguridad
En unidades anteriores, exploramos cómo los sistemas operativos gestionan recursos como CPU, memoria y archivos para múltiples procesos. Sin embargo, en entornos multiusuario y multitarea, la gestión eficiente no es suficiente. Los procesos deben operar sin interferir unos con otros, ya sea por errores accidentales (como un puntero descontrolado) o acciones maliciosas. Esta necesidad impulsa los conceptos de protección y seguridad, pilares de la confiabilidad y estabilidad de los sistemas.
Aunque comúnmente se confunden, difieren en enfoque:
Protección: Conjunto de mecanismos internos del SO para controlar el acceso a recursos. Se centra en hacer cumplir reglas de acceso. Responde a: ¿Puede el sujeto X realizar la operación Y sobre el objeto Z? Por ejemplo, asegura que un proceso no lea memoria de otro sin permiso.
Seguridad: Estrategia general y política externa que usa esos mecanismos para defender contra amenazas. Se centra en definir reglas y mitigar ataques. Responde a: ¿Cómo evitamos que actores no autorizados causen daño? Incluye autenticación, monitoreo y respuesta a incidentes.
Imagina un edificio seguro: la protección son las cerraduras, tarjetas y permisos (mecanismos). La seguridad incluye guardias, cámaras, reglas de acceso y planes de evacuación (políticas y defensa).
Esta unidad divide en dos partes: mecanismos de protección y aplicación en seguridad.
19.2 Parte 1: Protección — Mecanismos de Control de Acceso
La protección implementa técnicas para garantizar que recursos como memoria, archivos y dispositivos I/O sean accedidos solo por entidades autorizadas y de manera permitida, previniendo interferencias y asegurando aislamiento.
19.2.1 Principio de Mínimo Privilegio
El objetivo central de la protección es el aislamiento: procesos operan en “jaulas” virtuales, incapaces de afectar otros o el sistema global. Sin protección, un bug en una app podría corromper el kernel, causando crashes o vulnerabilidades.
Cada programa, proceso o usuario debe operar con el conjunto mínimo de privilegios necesarios para su tarea. Nada más, nada menos.
Este principio, inspirado en seguridad militar, reduce riesgos. Ejemplo: Un editor de texto necesita leer/escribir archivos abiertos, pero no acceder a webcam, formatear discos o modificar contraseñas. Al limitar privilegios, minimiza daños por errores (ej. buffer overflow) o exploits (ej. inyección de código). Es fundamental en diseño de software seguro; viola este principio aumenta exposición a ataques.
19.2.2 Dominios de Protección
Un dominio de protección es un entorno de ejecución que define qué objetos (recursos) son accesibles y qué operaciones (leer, escribir, ejecutar) se permiten sobre ellos. Es un “conjunto de derechos”. Un proceso ejecuta en uno o más dominios, ejerciendo solo privilegios asociados. Cambiar dominio requiere transición controlada (ej. syscall).
Ejemplos clave:
- Modo usuario vs. modo kernel: El hardware (CPU) impone al menos dos dominios. Aplicaciones corren en modo usuario (restringido: no acceso directo a hardware, limitado a APIs del SO). El SO corre en modo kernel (privilegiado: acceso total a hardware, memoria, etc.). Transición via syscalls asegura protección; viola aislamiento causa fallos.
Otros dominios: Usuarios individuales (ej. “root” con privilegios totales vs. usuario estándar limitado).
19.2.3 Matriz de Acceso
Modelo abstracto para razonar formalmente sobre protección. Representa relaciones sujeto-objeto como tabla:
- Filas: Dominios (sujetos, ej. procesos, usuarios).
- Columnas: Objetos (recursos, ej. archivos, memoria, dispositivos).
- Celdas: Derechos de acceso (leer, escribir, ejecutar, poseer).
Ejemplo simplificado:
| Dominio Objeto | Archivo A | Archivo B | Impresora |
|---|---|---|---|
| Usuario Juan | leer, escribir | leer | |
| Usuario Ana | leer | leer, escribir | imprimir |
| Proceso Web | leer |
Conceptualmente poderoso, pero ineficiente (matriz enorme, esparsa). SO implementan via ACLs o capabilities.
19.2.4 Implementación Práctica
SO descomponen la matriz por filas o columnas.
ACLs (Access Control Lists): Permisos asociados al objeto (columna). Cada recurso tiene lista de quién tiene qué derechos. Ej: Permisos rwx en Linux (usuario/grupo/otros). Ventajas: Fácil administrar permisos por objeto (“¿quién accede a este archivo?”). Revocación simple (eliminar de lista). Desventajas: Difícil ver permisos por sujeto (requiere escanear ACLs). Usado en filesystems como NTFS, ext4.
Capabilities: Permisos asociados al sujeto (fila). Proceso tiene “tickets” (capabilities) para objetos, protegidos del SO. Ej: Descriptores de archivo en UNIX (número devuelto al abrir archivo). Ventajas: Verificación eficiente (validar ticket). Fácil listar permisos por sujeto. Desventajas: Revocación compleja (indirecta via tablas globales). Menos común, pero en sistemas como seL4.
Híbrido común: ACLs para filesystems, capabilities para procesos.
19.2.5 Protección Basada en Lenguaje
Protección no solo en SO; lenguajes y runtimes imponen límites. Ejemplo clásico: JVM (Java Virtual Machine). Al ejecutar applets no confiables, corre en “sandbox” controlado.
- Security Manager: Intercepta llamadas peligrosas (abrir archivos, conexiones) y deniega basadas en política.
- Verificador de bytecode: Asegura código no viole tipos o acceda memoria privada.
Lleva mínimo privilegio a granularidad fina, permitiendo ejecución segura de código remoto.
19.3 Parte 2: Seguridad — Políticas y Defensa contra Amenazas
Protección provee herramientas; seguridad las usa para políticas de defensa, autenticación y mitigación.
19.3.1 Autenticación
Antes de decidir accesos, verificar identidad del usuario/proceso.
Autenticación: Proceso para verificar identidad declarada. Responde: ¿Eres quien dices ser?
Basada en factores (tres tipos principales):
Algo que sabes: Más común. Incluye contraseñas, PIN, preguntas de seguridad. Débil: Robable, adivinable o compartido. Mejora con políticas (longitud, complejidad, cambio frecuente).
Algo que tienes: Objeto físico. Ej: Tarjetas, tokens USB, teléfonos para códigos 2FA (One-Time Passwords). Más seguro, pero perdible.
Algo que eres: Biométrico. Ej: Huellas, facial, iris, voz. Único, pero no infalible (falsificable).
Sistemas seguros usan MFA (Multi-Factor Authentication): Combina dos+ factores (ej. contraseña + código teléfono). Aumenta barrera significativamente.
19.3.2 Panorama de Amenazas
Para defender, entender amenazas. Clasificadas por tipo y objetivo.
Tipos (el “qué”):
Malware: Software malicioso para infiltrar/dañar. Incluye:
- Virus: Adjuntan a programas legítimos, propagan al ejecutar.
- Gusanos (Worm): Auto-replican via red, infectan sin interacción.
- Troyanos (Trojan Horse): Disfrazan de software benigno, engañan instalación.
- Ransomware: Cifra archivos, exige rescate.
Ataques de Denegación de Servicio (DoS/DDoS): Inundan con tráfico/peticiones, deniegan acceso legítimo. Ej: Sobrecarga servidores.
Ingeniería Social: Manipulación psicológica para información confidencial. Ej: Phishing (emails falsos para credenciales).
Explotación de Vulnerabilidades: Aprovechan bugs (ej. buffer overflows) para acceso no autorizado.
Objetivos (el “porqué”):
- Robo de Información: Datos sensibles (secretos, personales, credenciales).
- Interrupción del Servicio: Hacer sistema inoperable (ej. crashes, downtime).
- Escalada de Privilegios: De usuario normal a “root”/admin para control total.
19.3.3 Estrategias de Defensa
Seguridad es proceso continuo: Prevención, detección, respuesta.
19.3.3.1 Monitoreo de Amenazas
No basta barreras; vigilar constantemente.
Audit Logs: Registros de eventos (logins fallidos, accesos críticos, cambios permisos). Análisis detecta anomalías (ej. intentos bruteforce).
IDS (Intrusion Detection Systems): Monitorean red/actividad sistema en tiempo real. Buscan patrones ataques conocidos o comportamientos anómalos. Tipos: Basados en firmas (conocidas) o anomalías (inusual).
19.3.3.2 Encriptado (Cifrado)
Herramienta matemática para confidencialidad, no control acceso.
En reposo (at rest): Protege datos almacenados. Ej: BitLocker (Windows), FileVault (macOS), LUKS (Linux). Si dispositivo robado, datos ilegibles sin clave.
En tránsito (in transit): Protege datos en red. Evita eavesdropping. Ej: TLS/SSL para HTTPS, cifra conexiones web.
En conclusión, protección y seguridad interconectadas: Mecanismos SO (dominios, control acceso) base para políticas amplias de autenticación, amenazas y defensa, garantizando integridad y confidencialidad.