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.

ImportantePrincipio de Mínimo Privilegio

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.

NotaDefinición

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.