# Tema 3 - Seguridad Logica Son barreras o procedimientos que protegen el acceso a los datos, las aplicaciones y el sistema operativo. Complementa a la seguridad fisica, protegiendo el software, los equipos y los datos. ## 0- Amenazas a la seguridad logica Las principales amenazas buscaen el acceso y modificaciones no autorizadas a datos y aplicaciones: - **Hackers**: Su motivación suelen ser retos personales, no suelen ser destructivos y a veces realizan verificación de seguridad. - **Crackers**: Atacan sistemas por diversion o para alcanzar un objetivo, suelen ser destructivos. - **Piratas informaticos**: Son crackers expertos, puedens er remunerados por terceros y suelen ser destructivos. - **Personal de empresa**: Pueden tener descuidos, demasiados derechos o cometer actos intencionados. - **Ex-empleados**: Conocen el entorno, pueden conservar derechos de acceso y pueden estar descontentos o pertenecer a competencia ## 1. Control de acceso: El control de acceso es el proceso central de la seguridad logica, basado en tres etapas. - **Indentificacion:** El usuario proporciona una identidad, diciendo quien es. - **Autenticacion:** El usuario verifica su identidad, probando quien es. - **Autorizacion:** Se le otorgan permisos en funcion de quien es. ### 1.1 Politica de contraseñas La contraseña es la barrera inicial ayuda a defenderse de los ataques mas comunes, como pueden ser: - **Ataque por diccionario:** Intentar acceder usando una lista predefinida de palabras comunes o contraseñas filtradas. - **Ataque por fuerza bruta:** Probar sistemáticamente todas las combinaciones posibles de caracteres. - **Ataques adicionales:** Sniffers, keylogers (registran teclas) y Ataques de ingenieria social. **Una buena politica de contraseña** es: - Logitud minima de 12 caracteres - Caducidad a los 90 dias - Bloqueo de la cuenta a los 3-5 intentos fallidos - Combinacion de letras, numero y simbolos - No incluir informacion personal - No repetir ya utilizadas #### 1.1.1 Autenticacion multifactor (MFA): La autenticacion multifactor, usa varios metodos a la vez para reforzar el control de acceso, como pueden ser: - Algo que el usuario **sabe**: Una contraseña - Algo que el usuario **tiene**: El movil, un token - Algo que el usuario **es**: Una huella dactilar, un iris Un ejemplo de sistema multifactor es enviar un codigo de un solo uso al telefono movil, que nos pide la huella para desbloquearlo. ### 1.2 Niveles de control de acceso El acceso se restringe en diferentes capas para asegurar la proteccion, desde el nivel mas bajo del software hasta recursos especificos. - **1er nivel**: Control proporcionado por la BIOS/UEFI, es el nivel mas bajo, permite arranques no deseados e iniciar desde unidades externas - **2º nivel**: Control proporcionado por los gestores de arranque, se utiliza en equipos con varios sistemas operativos para seleccionar el arranque. - **3er nivel:** Control por parte de los sistemas operativos, permite evitar el acceso no autorizado sin contraseña al SO - **4º nivel**: Contraseñas archivos, aplicaciones, sitios web, etc... Herramientas con mas nivel de seguridad, cifrado de documentos, criptografia, ACL. ### 1.3 Sistemas de autenticacion centralizada El control de acceso puede realizarse de forma centralizada o distribuida. - **Single Sign-On (SSO):** Un usuarios autentica una unica vez y puede acceder a multiples aplicaciones sin volver a introducir sus credenciales, haciendo uso de una base de datos centralizada. Ejemplo: Kerberos (Active Directory), LDAP. - **Web Single Sign-On (Web-SSO):** Es un sistema de autenticacion usado en aplicaciones web, se implementa mediante cookies - **Indetidad federada**: Permite establecer relaciones de confianza entre distintos sistemas. ## 2. Politicas de usuarios y grupos Los sistemas operativos utilizan el concepto de Usuario y grupo para simplificar la asignacion de permisos. Los permisos se asignan a grupos y luego los usuarios se agregan a los mismos. ### 2.1 Listas de control de acceso (ACL) Una ACL es una lista de entrada de control de acceso que define que usuarios o grupos tiene permiso para realizar ciertas operaciones (lectura, escritura, ejecucion). #### 2.1.1. ACL en Windows Windows utiliza ACLs de forma nativa, en el sistema de archivos NTFS cada archivos y directorio tiene una lista (Permisos NTFS). - **Permisos (Privilegios de aceceso):** Establecen la forma de acceder a un objeto concreto - **Permisos heredados**: Los archivos suelen heredar los permisos de las carpetas en las que se encuentran. - **Permisos explicitos**: Permisos asignados directamente a un archivo - **Derechos (Privilegios del sistema):** Establecen que acciones se pueden realizar en el sistema - **Comandos de gestion:** Se puede gestionar mediante la interfaz grafica (Pestaña seguridad) o el comando ```icacls``` #### 2.1.2. ACL en Linux En linux los permisos tradicionales son una forma de ACl minima, pero las ACL extendidas permiten una gestion mucho mas avanzada, util para la administracion. **Conceptos basicos de permisos tradicionales:** | Comando | Función | Ejemplo de Uso | |---------|---------------------------------------|---------------------------------------------------------| | `chmod` | Modifica los permisos (rwx) de un archivo. | `chmod 750 archivo.sh` (dueño: rwx, grupo: rx, otros: ---) | | `chown` | Cambia el propietario de un archivo. | `chown nuevo_user archivo.sh` | | `chgrp` | Cambia el grupo propietario del archivo. | `chgrp nuevo_grupo archivo.sh` | **ACL Extendida:** Las ACL extendidas permiten asignar permisos a usuarios o grupos especificos que no son ni el propietario ni el grupo propietario. **Comandos clave:** - ```getfacl```: Permite consultar las ACLs actuales de un fichero - ```setfacl```: Permite modificar las ACLs de un fichero