Nivel ejecutivo de un sistema operativo
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 13,54 KB
Autorización y acceso
Control de acceso obigatorio (MAC)
Habitualmente los sistemas lanzan los procesos con los permisos del usuario que lo inicia. Esto es la fuente de muchos problemas ya que muchos de esos servicios son lanzador con el usuario root, lo que conlleva que estos procesos tengan acceso a todo el sistema.
Para evitar ese problema muchas veces se ejecutan los servicios en entornos aislados (containers,dockers y chroot).
Otra solución son los controles de acceso obligatorios(MAC) que consisten en un nivel de autorización que fija el sistema para determinados objetos en lugar de hacerlo el administrador. De este modo el nivel de acceso está limitado por el perfil de seguridad y no solo por los permisos bajo los que está funcionando el servicio.
El nivel de acceso de un sistema lo gestiona en primer lugar el control de acceso obligatorio. Una vez pasado el control obligatorio son restringidos por los niveles de acceso descrecional (DAC) que fije el administrador.
Windows Integrity Level System (ILS)
En los sistemas Windows los sistemas están etiquetados con un nivel de integridad que puede ser uno de los siguientes:
- Untrusted: Procesos que no están asociados a ningún usuario en concreto (Chrome)
- Low: Es el utilizado por defecto por los procesos que se conectan a Internet (Edge)
- Médium: Es el nivel de funcionamiento habitual y asignado por defecto por el sistema
- High: Es el nivel de integridad del Administrador del sistema
- System: Es el nivel reservado para el sistema (kernel)
- Installer: Es el nivel más alto de todos. Los procesos con este nivel son capaces de acceder a cualquier parte.
Un objeto solo puede acceder a objetos con un nivel de integridad igual o menos al nivel que tiene
Los procesos debenn funcionar en el nivel de integridad más bajo posible
SELinux
Es un sistema de control de acceso obligatorio empleado en las instalaciones por defecto de algunas distribuciones de Linux.
Está orientado a la protección de todos los objetos del sistema (ficheros, comunicación de red,…).
Cada objeto del sistema tiene asignada una etiqueta que utilizará la políca de seguridad para determinar su nivel de acceso. Esta etiqueta contiene diversa infomación como la identidad del propietario, el usuario, el rol, el tipo de nivel… y se almacena en lo inodos del sistema de archivos. Estas etiquetas (contextos de seguridad) tienen la estrucutra usuario_u:rol_r:tipo_t:nivel, por ejemplo: system_u:object_r:home_user_t:s0
El sistema SELinux puede estar en 3 estados:
- Enforcing: Se rechazan los accesos no autorizados siguiendo las políticas de seguridad
- Permisive: Se permiten todos los accesos pero se registran alertas
- Disabled: SELinux está desctivado
AppArmor
SELinux es muy potente y configurable pero su versatilidad y posibilidad de gestión de los permisos resusta una gestión compleja. Por ello se desarrolló AppArmor con la idea de simplificar su administración y uso.
Para cada aplicación del sistema se aplican las restricciones indicadas en el perfil de la tarea. El control de acceso se basa en las rutas a los directorios,archivos,… Las aplicaciones que no tienen perfil se ejecutan sin restricciones.
Control de acceso discrecional
Una vez se cumplen los requisitos establecidos por el MAC si existe, se deben satisfacer los requisitos establecidos por el control discrecional.
El control discrecional lo configura el administrador estableciendo qué usuarios pueden acceder a qué objetos.
En Windows se utiliza el sistema de archivos NTFS y la base de su control discrecional son las ACL. Estas listas de control asociadas a los objetos indican los permisos de cada usuario o grupo sobre cada objeto del sistema.
En Linux se emplea habitualmente un sistema de permisos discrecionales muy simple en la que se especifican los permisos de lectura(r), escritura (w) y ejecución (x) para el propietario y grupo.
- umask: Establece los permisos por defecto de los nuevos ficheros y directorios que crea el usuario.
- sticky bit: Cuando se utiliza sobre un archivo indica que su uso es muy frecuente por lo que es buena idea tenerlo cacheado en el memoria RAM. Cuando se utiliza sobre directorios indica que los archivos que contiene solo pueden ser borrados por root, por el propietario del directorio o por el propietario del archivo.
- sudo: Se utiliza para autorizar a usuarios concretos de forma que puedan utilizar una serie de comandos con solo conocer su password.
Control de integridad y Malware
Controles contra el Malware
Por malware se conoce a un conjunto de software diseñado con intención de vulnerar la seguridad de sistemas informáticos atentando contra la privacidd, integridad y disponibilidad de la información.
- Adware: Su objetivo es monetizar programas normalmente gratuítos mediante la inclusión de publicidad no deseada. Diversos navegadores incluyen extensiones de bloqueo de publicidad como Adblock.
- Spyware: Son aplicaciones que recopilan información de nuestro sistema y la remiten a servidores remotos.La mayor parte del spyware recopila información como la geolocalización,historial de navegación…para utilizarla después en publicidad pero también se puede utilizar para recopilar contraseñas o números de tarjetas de crédito.
- Virus: Son programas que se propagan de manera automática una vez se lanza su ejecución.
- Worms: Son similares a los virus pero aprovechan fallos de los sitemas para propagarse de forma automática sin necesidad de intervención de los usuarios.
- Troyanos: Son programas que sustituyen las herramientas legítimas en un sistema con el objetivo de garantizar a un atacante el acceso como administrador al sistema.
- Ransomware: Una vez infecta nuestro ordenador cifra los archivos del sistema de forma que resulta imposible acceder a ellos. Normalmente se acompaña de un mensaje de rescate.
Detectores de Malware (antivirus)
Para prevenir el acceso de malware a nuestro sistema conviene seguir algunas reglas básicas:
- Estar atentos a los ataques de ingeniería social.
- Evitar el phising especialmente en la web mediante uso de https
- Si utilizamos remotamente una red corporativa atravesando redes públicas utilizar conexiones seguras (VPN)
- Tener configurado correctamente el firewall del sistema
- Uso de contraseñas seguras de forma que no las anotemos en ninguna parte
- Uso de programas antimalware en busca de posibles troyanos y virus
Los sistemas Windows hoy en día disponen de un sistema antivirus muy complejo y potente que hace innecesaria la instalación de antivirus de terceros (Windows Defender).
Linux es un sistema mucho menos atacado que Windows. El antivirus de código abierto más utilizado es clamAV.
Otros sistemas de detección y prevención de malware son los filtros de spam para correo electrónico (spamassassin), los bloqueadores de publicidad como Adblock o los sistemas de prevención de ataques de fuerza bruta como fail2ban.
Controles de Integridad
Una de las actividades de los ataques metiante troyanos es la instalación de puertas traseras y la instalación de rootkits. Esto se hace a menudo sustituyendo archivos del sistema por versiones modificadas.
Windows dispone de SFC que realiza una comprobación de ciertos archivos del sistema y los restaura en caso de detección de corrupción. Se recomienda su uso combinado con DISM
En Linux es común el uso de rkhunter o chrootkit para buscar ficheros modificados y posibles puertas traseras.
Tripwire es un completo sistema de detección que crea hashes de los ficheros configurados y alerta de su modificación.
Sistemas de detección de intrusos
Es un programa que detecta intentos de acceso no autorizados a un ordenador o red de ordenadores. Las versiones avanzadas además de detectar toman medidas automáticas para imperdir el intento de acceso se denominan IDPS.
Para detectar actividad anómala los IDS recurren a sistemas como sniffers de red y bases de datos con firmas del comportamiento de los ataques más conocidos.
Mantenimiento de la confidencialidad Cifrado
Cifrado a nivel de Archivo
Mediante este tipo de cifrado se cifra únicamente el contenido de los archivos almacenados en el disco. El cifrado se realiza transparentemente de forma que cuando se escribe en el fichero se cifran los datos y cuando se leen se descifran.
Windows EFS
Es una caraterística de crifrado incluída en todas las versiones de Windows excepto en las home. El cifrado se puede activar en ficheros, directorios o por unidad.
eCryptfs
Permite cifrar el contenido de directorios de forma similar a EFS utilizando una password. Los metadatos del cifrado se almacenan en la cabecera de los ficheros. Cuando ciframos un directorio se crean dos capas superpuestas (lower,donde se almacena la información cifrada y upper, sobre la que opera el usuario).
encFS
Es similar a eCryptfs. Resulta más simple a la hora de utilizarlo. Actualmente tiene algunos problemas potenciales de seguridad. Es compatible con Windows.
Cifrado a nivel de Dispositivos
El cifrado a nivel de dispositivo cifra un dispositivo de bloques completo incluyendo la tabla de particiones, sistem de archivos,…
Existen sistemas de cifrado que almacenan una cabecera sin cifrar que puede servir para identificar que el disco contiene un sistema cifrado.
BitLocker
Es un sistema de cifrado incluído en Windows. Está disponible en las versiones Pro, Enterprise y Education de Windows 10 y en las versiones Server 2008 y posteriores.
cryptsetup /LUCKS sm-crypt
- Dm-crypt es un subsistema de cifrado de discos que utiliza el API de cifrado del Kernel de Linux. Puede cifrar discos completos, volúMenes RAIS, volúMenes lógicos,…
- LUCKS especifica un formato estándar e independiente de la plataforma facilitando la compatibilidad y interoperabilidad.
- cryptsetup es una herramienta que facilita el uso de dm-crypt
Autenticación
Kerberos
Es un protocolo de autenticaión que funciona en base a la obtención de tickets de acceso provienen la autenticación para servicios de de de forma segura en redes no seguras.
Las credenciales se obtienen a través de un ticket que se puede utilizar varias veces para facilitar la identidad a los servicios de red. Además Kerberos proporciona autenticación mutua (se asegura la identidad tanto del cliente como del servidor).
El servidor Kerberos tiene una base de datos que relaciona objetos que necesitan autenticación (principales) con una contraseña (normalmente usuarios, equipos y servicios). Esta base de datos es muy limitada por lo tanto si se necesita almacenar más información del principal se necesita una base de datos externa (normalmente LDAP).
El funcionamiento cuando un cliente dese acceder a un servicio de la red que utiliza autenticación Kerberos es el siguiente:
- Obtener un ticket del servidor Kerberos
- Envía las credenciales (princ y pass)
- El servidor comprueba las credenciales en su base de datos y crea un ticket (con marca de cuando se creó y su protocolo de validez) y se lo envía.
- EL cliente solicita un ticket de servicio para el servicio de red del servidor
- Envía su ticket con la información del servicio al que quiere acceder
- El servidor genera un ticket de servicio y se lo envía
- El cliente conecta con el servidor y solicita el servicio
- Envía el ticket de servicio con la información adicional de la solicitud. Si el servidor no es legítimo no podrá procesar el ticket.
- El servidor comprueba el ticket de servicio y acepta o deniega la solicitud.
Radius
Es un protocolo de autenticación y autorización para aplicaciones de acceso a la red o movilidad IP.
Este protocolo proporciona una autenticación, autorización y registro de acceo para usuarios que se conectan y utilizan un servicio de la red.
Habitualmente los gateways o switches tienen un cliente radius que comunica con un servidor Radius que realiza la autenticación.
Para realizar la autenticación el usuario envía una petición al servidor de acceso a la red solicitando el acceso al recurso de red eniando credenciales de acceso mediante PPP o HTTPS.
El servidor de acceso enviará una petición de acceso mediante protocolo Radius al servidor Radius solicitando autorización para garantizar el acceso a la red al cliente.
El servidor Radius comprobará si la información es correcta utilizando esquemas de autenticación como PAP, CHAP o EAP para verificar las credenciales. El servidor Radius dará las siguientes respuestas:
- Access Reject: Acceso denegado. No se permite el acceso al susuario a los recursos solicitados (usuario deshabilitado o credenciales erróneas)
- Access Challenge: Se esperan información adicional del usuario (otra pass, pin…)
- Access Accept: El usuario puede acceder a los recursos. Una vez autenticado el servidor verificará el nivel de autorización