Tema
- Nociones Teoría de conjuntos
- Operaciones de conjuntos
- Concepto de relación
- Propiedades de las relaciones
- Relaciones de equivalencia
- Bases de datos relacionales
Instrucciones
Contexto:
En un sistema de ciberseguridad organizacional, uno de los pilares fundamentales es el control de accesos: definir quién puede acceder a qué recursos, en qué condiciones y con qué nivel de privilegio. Para implementar estos mecanismos de forma segura y eficiente, es necesario modelar las relaciones entre usuarios, roles, recursos y permisos utilizando conceptos de la teoría de relaciones y bases de datos relacionales. En este reto, aplicarás estos conceptos para construir y analizar un modelo funcional de control de accesos.
Pregunta esencial:
¿Cómo representar y consultar un sistema de control de accesos mediante relaciones matemáticas y bases de datos relacionales para detectar inconsistencias o brechas de seguridad?
Objetivo:
Diseñar e implementar un sistema de control de accesos utilizando relaciones matemáticas, representación matricial y operaciones básicas del álgebra relacional, aplicadas a un modelo relacional definido en Python.
Indicaciones:
- Definir los elementos del sistema:
- Declara en tu notebook los siguientes conjuntos:
- U: conjunto de usuarios, al menos 10 elementos (ej.: Andrés).
- R: conjunto de roles, al menos 4 elementos (ej.: admin).
- S: conjunto de recursos del sistema, al menos 5 elementos (ej.: servidor).
- P: conjunto de permisos, al menos 4 tipos (ej.: lectura).
- Declara en tu notebook los siguientes conjuntos:
- Construir relaciones:
- Define las siguientes relaciones como conjuntos de pares o tuplas en Python:
- A ⊆ U × R: Asignación de roles a usuarios.
- B ⊆ R × S × P: Permisos asignados a roles sobre recursos.
- Escribe la relación C ⊆ U × U, dada por la regla «ambos usuarios tienen el mismo rol».
- Verifica las propiedades de reflexividad, simetría y transitividad usando la representación matricial de la relación.
- Genera las clases de equivalencia de esta relación.
- ¿Qué representan estas clases?
- Define las siguientes relaciones como conjuntos de pares o tuplas en Python:
- Modelo relacional en Python:
- Representa las relaciones A y B como tablas en Python (DataFrames).
- Implementa en Python las siguientes consultas:
- ¿Qué usuarios pueden modificar el servidor?
- ¿Qué permisos tiene el usuario “Andrés”?
- ¿Qué recursos no tienen acceso asignado?
- ¿Hay usuarios con acceso redundante a un mismo recurso?
- Plantea 3 consultas más.
- Producto por entregar:
- Un único archivo IPYNB (Jupyter Notebook) que contenga:
- Introducción (objetivos, contexto, descripción de los conjuntos definidos).
- Construcción de relaciones.
- Modelo relacional en Python.
- Conclusiones.
- El notebook debe estar correctamente estructurado, comentado y ejecutarse sin errores.
- Video explicativo de máximo 5 minutos que presente cada sección del archivo IPYNB, junto con explicaciones.
- Un único archivo IPYNB (Jupyter Notebook) que contenga: