Instituto Politécnico Nacional

Instituto Politécnico Nacional

Escuela Nacional de Medicina y Homeopatía

Licenciatura en Médico Cirujano Homeópata

Libro interactivo de Anatamía Humana II

ENMyH IPN

6.1 El ambiente de seguridad

La seguridad del sistema operativo es vital, ya que constituye la base de la seguridad general del sistema. Un sistema operativo comprometido puede provocar filtraciones de datos, pérdida de información confidencial y proporcionar a los atacantes una plataforma para lanzar nuevos ataques dentro de la red.

Confidencialidad

Garantiza que la información confidencial solo sea accesible para usuarios autorizados.

  • Autenticación de usuarios (contraseñas, MFA, biométricos)
  • Controles de acceso (ACL, RBAC, ABAC)
  • Cifrado de datos (AES, RSA, ECC)
  • Mecanismos de aislamiento (sandboxing, namespaces)
// Ejemplo de implementación de control de acceso en Linux
chmod 750 archivo.conf # Solo el dueño puede leer/escribir, grupo puede leer
chown root:admin archivo.conf # Cambia dueño y grupo
setfacl -m u:usuario:r-- archivo.conf # ACL específica

Integridad

Implica precisión y consistencia de datos a lo largo de su ciclo de vida.

  • Sumas de comprobación (SHA-256, MD5)
  • Firmas digitales (PKI, certificados X.509)
  • Auditorías y monitoreo (SIEM, logs)
  • Transacciones atómicas (journaling, WAL)
  • Control de versiones y cambios
# Ejemplo: Verificación de integridad con SHA-256
import hashlib

def calculate_sha256(file_path):
    with open(file_path, 'rb') as f:
        file_hash = hashlib.sha256()
        while chunk := f.read(8192):
            file_hash.update(chunk)
    return file_hash.hexdigest()

Disponibilidad

Busca garantizar que los recursos sean accesibles y funcionales.

  • Redundancia (RAID, clustering)
  • Mantenimiento (parches, actualizaciones)
  • Planes de recuperación (backups, DRP)
  • Balanceo de carga
  • Protección contra DDoS
// Ejemplo: Configuración básica de RAID en Linux
# Instalar herramientas mdadm
sudo apt-get install mdadm

# Crear RAID 1 (espejo) con dos discos
sudo mdadm --create --verbose /dev/md0 --level=1 \
    --raid-devices=2 /dev/sdb1 /dev/sdc1

# Crear sistema de archivos y montar
sudo mkfs.ext4 /dev/md0
sudo mkdir /mnt/raid
sudo mount /dev/md0 /mnt/raid

6.1.1 Seguridad en los sistemas operativos

Seguridad Externa

Engloba los mecanismos que actúan fuera del sistema operativo:

Seguridad Física

Protección contra desastres y eventos adversos:

  • Prevención de incendios, humos, inundaciones
  • Control de temperatura y limpieza (20-25°C ideal)
  • Acceso físico regulado (tarjetas RFID, huellas, reconocimiento facial)
  • Protección contra EMI/RFI (interferencias electromagnéticas)

Seguridad de Administración

Mecanismos para impedir el acceso lógico no autorizado:

  • Autenticación multifactor (MFA)
  • Políticas de contraseñas (longitud mínima 12 caracteres, complejidad)
  • Rotación de credenciales (cada 90 días)
  • Principio de menor privilegio
# Ejemplo: Configuración de políticas de contraseñas en Linux
# Editar /etc/pam.d/common-password
password requisite pam_pwquality.so retry=3 \
    minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

# Configurar expiración de contraseñas
chage -M 90 -m 7 -W 14 usuario

Criptografía

Proceso de encriptado o cifrado de datos:

  • Cifrado simétrico (AES-256, 3DES)
  • Cifrado asimétrico (RSA 2048+, ECC)
  • Protocolos seguros (TLS 1.2+, SSH, IPsec)
  • HSM (Hardware Security Modules) para gestión de claves
Medidas de seguridad perimetral
Figura 3. Ilustración de medidas de seguridad perimetral en entornos digitales

Seguridad Interna

Mecanismos que operan dentro del sistema operativo:

Seguridad del Procesador

Protección a nivel de hardware:

  • Modos de ejecución (anillo 0/kernel, anillo 3/user)
  • Protección de memoria (MMU, segmentación, paginación)
  • Extensiones de seguridad (Intel SGX, ARM TrustZone)
  • Prevención de exploits (DEP, ASLR, Shadow Stack)
// Ejemplo: Habilitar ASLR en Linux
# Verificar estado actual
cat /proc/sys/kernel/randomize_va_space

# Valores posibles:
# 0 = Desactivado
# 1 = Aleatorización conservadora
# 2 = Aleatorización completa

# Habilitar aleatorización completa
echo 2 > /proc/sys/kernel/randomize_va_space

Seguridad de la Memoria

Protección contra accesos no autorizados:

  • Protección entre procesos (address space isolation)
  • Canarios de pila (stack canaries)
  • Protección contra buffer overflows (NX bit)
  • Sanitización de memoria antes de liberarla

Seguridad de Archivos

Protección de datos almacenados:

  • Permisos POSIX (rwx para usuario/grupo/otros)
  • Listas de control de acceso (ACLs)
  • Atributos extendidos (immutable, append-only)
  • Sistemas de archivos con journaling (ext4, NTFS)
  • Cifrado a nivel de archivo (eCryptfs) o disco (LUKS)
Representación binaria
Figura 2. Representación binaria utilizada en sistemas digitales

6.1.2 Control de acceso a los recursos

Proceso de seguridad de datos que permite a las organizaciones gestionar quién está autorizado a acceder a los datos y recursos corporativos. Utiliza políticas que verifican que los usuarios sean quienes afirman ser y garantiza niveles de acceso adecuados.

1. Autenticación

Proceso inicial de establecer la identidad de un usuario. Métodos comunes:

  • Contraseñas (hash con sal, PBKDF2, bcrypt)
  • Certificados digitales (X.509, PGP)
  • Biometría (huellas, reconocimiento facial)
  • Tokens (TOTP, FIDO2)

2. Autorización

Especifica los derechos y privilegios de acceso a los recursos:

  • Modelos DAC, MAC, RBAC, ABAC
  • Políticas basadas en atributos
  • Separación de deberes (SoD)

3. Acceso a la red

Mecanismos para controlar acceso a recursos de red:

  • 802.1X (autenticación de puertos)
  • NAC (Network Access Control)
  • VPN (IPsec, WireGuard)

4. Gestión

Administración del sistema de control de acceso:

  • Provisionamiento automatizado
  • Federación de identidad (SAML, OAuth, OpenID)
  • SSO (Single Sign-On)

5. Auditoría

Recopilación de datos sobre la actividad del usuario:

  • Logs centralizados (SIEM)
  • Análisis de comportamiento (UEBA)
  • Reportes de cumplimiento

Tipos de Controladores de Acceso

ABAC

Basado en atributos del usuario, recurso y contexto. Ejemplo:

if (user.department == "HR" &&
    resource.sensitivity <= user.clearance &&
    time.now() between "09:00" and "17:00") {
    grant access;
}

RBAC

Basado en roles predefinidos. Ejemplo en Linux:

# Crear rol
sudo groupadd -r webadmin

# Asignar permisos
sudo chown -R root:webadmin /var/www
sudo chmod -R 750 /var/www

# Asignar usuario al rol
sudo usermod -aG webadmin usuario1
Control de acceso físico
Figura 5. Ilustración de dispositivos y mecanismos de control de acceso físico

6.1.3 Implementación de matrices de acceso

Dominios de protección

Un dominio es un conjunto de parejas (objeto, derechos). Cada pareja determina un objeto y cierto subconjunto de las operaciones que se pueden llevar a cabo en él.

Un derecho es el permiso para realizar alguna de las operaciones. Es posible que un objeto se encuentre en varios dominios con distintos derechos en cada dominio.

// Estructura de datos para un dominio de protección
struct ProtectionDomain {
    string name;
    map<Resource, PermissionSet> accessRights;
    vector<Process> processes;
};

Matriz de acceso

El modelo de protección del sistema se puede ver en forma abstracta como una matriz:

  • Sujeto: Una entidad capaz de acceder a los objetos (equiparable con el de proceso).
  • Objeto: Cualquier cosa cuyo acceso debe controlarse (archivos, programas, segmentos de memoria).
  • Derecho de acceso: La manera en que un sujeto accede a un objeto (Leer, Escribir, Ejecutar).
// Implementación básica de una matriz de acceso
class AccessMatrix {
    map<Subject, map<Object, PermissionSet>> matrix;

    bool checkPermission(Subject s, Object o, Permission p) {
        return matrix[s][o].contains(p);
    }
};
Ejemplo de matriz de acceso
Figura 10. Ejemplo gráfico de la implementación de matrices de acceso

6.1.4 Modelos formales de seguridad

Estructuras lógicas usadas para definir, analizar y garantizar que un sistema informático cumpla políticas de seguridad específicas, especialmente en lo que respecta al control de acceso y la confidencialidad, integridad y disponibilidad de la información.

Modelo Bell-LaPadula (BLP)

Enfocado en la confidencialidad

  • Diseñado para entornos militares
  • No leer hacia arriba (no read up)
  • No escribir hacia abajo (no write down)
  • Implementado en SELinux, Trusted Solaris

Modelo Biba

Enfocado en la integridad

  • Inverso al Bell-LaPadula
  • No leer hacia abajo (no read down)
  • No escribir hacia arriba (no write up)
  • Usado en sistemas financieros

Modelo Clark-Wilson

Enfocado en integridad comercial

  • Usa transacciones bien formadas
  • Separación de deberes
  • Procedimientos de verificación
  • Implementado en sistemas bancarios

Modelo de Lattice

Basado en jerarquías y dominios

  • Generaliza a BLP y Biba
  • Niveles de seguridad y etiquetas
  • Usado en sistemas multinivel

Modelo Brewer-Nash

Prevención de conflictos de interés

  • También llamado "Chinese Wall"
  • Restringe acceso según historial
  • Usado en consultorías y auditorías

Cuestionario sobre Seguridad en Sistemas Operativos

Evalúa tu comprensión de los conceptos presentados

1. ¿Cuál de los siguientes NO es uno de los tres pilares fundamentales de la seguridad informática?

2. En el modelo Bell-LaPadula, la regla "no leer hacia arriba" (no read up) protege principalmente:

3. ¿Cuál de los siguientes mecanismos es más efectivo para proteger contra ataques de buffer overflow?

4. En el contexto de control de acceso, ¿qué significa RBAC?

5. ¿Cuál de los siguientes NO es un mecanismo típico de seguridad externa?

6. ¿Qué modelo de seguridad es el inverso del modelo Bell-LaPadula?

7. En Linux, ¿qué comando se utiliza para cambiar los permisos de un archivo?

8. ¿Qué técnica de virtualización ayuda a aislar procesos entre sí?

9. ¿Cuál de los siguientes algoritmos es simétrico?

10. ¿Qué representa una matriz de acceso en seguridad de sistemas operativos?