Portada » Informática » Seguridad Informática Esencial: Control de Acceso, Protección Antimalware, Cifrado y Autenticación
Habitualmente, los sistemas lanzan los procesos con los permisos del usuario que los inicia. Esto es la fuente de muchos problemas, ya que muchos de esos servicios son lanzados 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 (como contenedores, Docker 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, los accesos son restringidos por los niveles de Acceso Discrecional (DAC) que fije el administrador.
Los Controles de Acceso Obligatorios (MAC) son un mecanismo de seguridad donde el sistema operativo restringe las capacidades de un sujeto (como un proceso o usuario) para acceder o realizar operaciones en un objeto (como un archivo o dispositivo), basándose en etiquetas de seguridad predefinidas por el sistema, no por el usuario.
En los sistemas Windows, los objetos están etiquetados con un nivel de integridad que puede ser uno de los siguientes:
Un objeto solo puede acceder a otros objetos con un nivel de integridad igual o inferior al nivel que posee.
Los procesos deben funcionar en el nivel de integridad más bajo posible para minimizar riesgos.
SELinux (Security-Enhanced Linux) 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, etc.).
Cada objeto del sistema tiene asignada una etiqueta que utilizará la política de seguridad para determinar su nivel de acceso. Esta etiqueta contiene diversa información como la identidad del propietario, el usuario, el rol, el tipo de nivel, etc., y se almacena en los inodos del sistema de archivos. Estas etiquetas (contextos de seguridad) tienen la estructura 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:
SELinux es muy potente y configurable, pero su versatilidad y posibilidad de gestión de los permisos resulta en 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, etc. Las aplicaciones que no tienen perfil se ejecutan sin restricciones.
Una vez que se cumplen los requisitos establecidos por el MAC (si existe), deben satisfacerse 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 (Access Control Lists). 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 el que se especifican los permisos de lectura (r
), escritura (w
) y ejecución (x
) para el propietario y grupo.
Por malware se conoce a un conjunto de software diseñado con la intención de vulnerar la seguridad de sistemas informáticos, atentando contra la privacidad, integridad y disponibilidad de la información.
Para prevenir el acceso de malware a nuestro sistema, conviene seguir algunas reglas básicas:
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.
Una de las actividades de los ataques mediante 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 (System File Checker), 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 (Deployment Image Servicing and Management).
En Linux es común el uso de rkhunter o chkrootkit 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.
Un Sistema de Detección de Intrusos (IDS) 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 impedir el intento de acceso y se denominan IDPS (Intrusion Detection and Prevention Systems).
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.
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.
EFS (Encrypting File System) es una característica de cifrado incluida en todas las versiones de Windows, excepto en las ediciones 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 contraseña. 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.
El cifrado a nivel de dispositivo cifra un dispositivo de bloques completo, incluyendo la tabla de particiones, sistema de archivos, etc.
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 incluido en Windows. Está disponible en las versiones Pro, Enterprise y Education de Windows 10 y en las versiones Server 2008 y posteriores.
Kerberos es un protocolo de autenticación que proporciona autenticación para servicios de red 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 (asegurando 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 requiere una base de datos externa (normalmente LDAP).
El funcionamiento cuando un cliente desea acceder a un servicio de la red que utiliza autenticación Kerberos es el siguiente:
RADIUS (Remote Authentication Dial-In User Service) es un protocolo de autenticación y autorización para aplicaciones de acceso a la red o movilidad IP.
Este protocolo proporciona autenticación, autorización y registro de acceso 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, enviando credenciales de acceso mediante PPP o HTTPS.
El servidor de acceso enviará una petición de acceso mediante el 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: