Skip to content

Glosario de seguridad y desempeño de bases de datos

Glosario general de consulta para la materia Gestión de Seguridad y Desempeño de Bases de Datos.


Este documento no pretende sustituir las explicaciones de clase.

Su objetivo es proporcionar una referencia rápida para relacionar:

  • administración de bases de datos
  • seguridad
  • privacidad
  • control de acceso
  • rendimiento
  • monitoreo
  • auditoría
  • respaldo
  • recuperación
  • continuidad
  • alta disponibilidad
  • escalabilidad
  • PostgreSQL
  • MongoDB

Cuando un concepto aparece en una práctica, el estudiante puede utilizar este documento para identificar su significado y relación con otros conceptos.


Conjunto organizado de datos almacenados y administrados de manera que puedan ser consultados, modificados y utilizados por aplicaciones o personas autorizadas.

Sistema de gestión de bases de datos.

Software encargado de administrar:

  • almacenamiento
  • consultas
  • transacciones
  • usuarios
  • permisos
  • concurrencia
  • recuperación

Ejemplos:

  • PostgreSQL
  • MongoDB
  • MySQL
  • SQL Server
  • Oracle Database

Modelo que organiza la información principalmente mediante tablas relacionadas entre sí.

Ejemplo:

usuarios
productos
ventas
detalle_venta

Familia de sistemas de bases de datos que utilizan modelos diferentes o más flexibles que el modelo relacional tradicional.

MongoDB utiliza un modelo orientado a documentos.

Estructura del modelo relacional compuesta por filas y columnas.

Representa una instancia de una entidad dentro de una tabla.

Representa un atributo de los registros de una tabla.

Unidad de almacenamiento utilizada por MongoDB.

Generalmente utiliza una estructura similar a JSON, internamente representada mediante BSON.

Conjunto de documentos en MongoDB.

Conceptualmente puede compararse con una tabla, aunque no son estructuras equivalentes.

En bases de datos relacionales, estructura que organiza objetos como tablas, vistas, funciones y otros elementos.

En PostgreSQL, un esquema también puede funcionar como espacio lógico de nombres.


Database Administrator.

Responsable de tareas relacionadas con la administración, seguridad, disponibilidad, rendimiento, respaldo y recuperación de bases de datos.

Proceso de administrar y controlar parámetros de configuración de un sistema.

Conjunto de actividades destinadas a conservar el funcionamiento adecuado de una base de datos.

Puede incluir:

  • actualización de estadísticas
  • mantenimiento de índices
  • limpieza
  • revisión de espacio
  • revisión de logs
  • actualización del motor

Cantidad de recursos que un sistema puede manejar.

Puede relacionarse con:

  • almacenamiento
  • memoria
  • CPU
  • conexiones
  • transacciones
  • usuarios
  • operaciones por segundo

Relación entre componentes donde uno requiere de otro para funcionar.


Protección de la información frente a accesos, modificaciones, divulgaciones, destrucciones o interrupciones no autorizadas.

Garantiza que la información solamente sea accesible por entidades autorizadas.

Garantiza que la información permanezca correcta y no sea modificada de manera no autorizada.

Garantiza que la información y los servicios estén disponibles cuando sean necesarios.

Modelo formado por:

Confidentiality
Integrity
Availability

En español:

Confidencialidad
Integridad
Disponibilidad

Posibilidad de que una amenaza aproveche una vulnerabilidad y produzca un impacto.

Una representación simplificada es:

Riesgo ≈ Probabilidad × Impacto

Situación, evento o actor que puede provocar un daño.

Debilidad que puede ser aprovechada por una amenaza.

Consecuencia que puede producir un incidente.

Acción destinada a reducir la probabilidad o impacto de un riesgo.

Medida utilizada para prevenir, detectar, corregir o reducir riesgos.


Proceso mediante el cual se verifica la identidad de una entidad.

Pregunta:

¿Quién eres?

Proceso mediante el cual se determina qué acciones puede realizar una entidad.

Pregunta:

¿Qué puedes hacer?

Representación de una entidad dentro de un sistema.

Cuenta utilizada para identificar y autenticar a una persona, aplicación o servicio.

Conjunto de permisos agrupados bajo una identidad lógica.

Role-Based Access Control.

Modelo de control de acceso basado en roles.

Ejemplo:

Usuario
↓
Rol
↓
Permisos

Permiso específico para realizar una acción.

Ejemplos:

SELECT
INSERT
UPDATE
DELETE

Instrucción utilizada para otorgar privilegios.

Instrucción utilizada para retirar privilegios.

Principio según el cual una entidad debe disponer únicamente de los permisos necesarios para realizar sus funciones.

Principio que evita concentrar funciones críticas en una sola persona o cuenta.

Cuenta con privilegios elevados para realizar tareas de administración.

Cuenta utilizada por una aplicación para conectarse a una base de datos.

Una cuenta de aplicación no debería utilizar privilegios administrativos innecesarios.


Información relacionada con una persona identificada o identificable.

Categoría de información que puede requerir protección reforzada conforme a la legislación aplicable.

Proceso de categorizar información según su sensibilidad, importancia o requisitos de protección.

Técnica que modifica la representación de un dato para evitar exponer su valor original.

Ejemplo:

4111111111111111

puede mostrarse como:

************1111

Proceso mediante el cual los datos se procesan de forma que ya no puedan atribuirse directamente a una persona sin información adicional.

Proceso destinado a impedir que los datos puedan asociarse razonablemente con una persona identificable.

Principio que busca recopilar y conservar solamente los datos necesarios para una finalidad determinada.

Periodo durante el cual determinada información debe conservarse.

Proceso mediante el cual los datos dejan de conservarse cuando ya no existe una finalidad o requisito legítimo para mantenerlos.


Transformación de información para que solamente entidades autorizadas puedan recuperar su contenido.

Protege los datos mientras viajan entre sistemas.

Ejemplo:

Aplicación ← TLS → Base de datos

Protege información almacenada.

Puede aplicarse a:

  • discos
  • archivos
  • backups
  • bases de datos

Función que transforma información en un valor de longitud determinada.

Se utiliza, entre otras cosas, para verificar integridad.

Uso de un valor adicional junto con una contraseña antes de aplicar un algoritmo de derivación o hash.

Protocolo utilizado para proteger comunicaciones mediante cifrado y autenticación.

Mecanismo criptográfico utilizado para asociar una identidad con una clave pública.

Información utilizada por algoritmos criptográficos para cifrar, descifrar o realizar otras operaciones.

Proceso de generación, almacenamiento, protección, rotación y eliminación de claves criptográficas.

Información que debe mantenerse protegida.

Ejemplos:

  • contraseñas
  • tokens
  • API keys
  • claves privadas
  • cadenas de conexión

Vulnerabilidad que ocurre cuando entradas controladas por un usuario pueden modificar la estructura de una consulta SQL.

Ejemplo conceptual:

Entrada del usuario
↓
Consulta construida mediante concatenación
↓
Interpretación como SQL

Consulta donde los valores se envían como parámetros separados de la estructura SQL.

Es una de las principales medidas contra SQL Injection.

Proceso de validar o transformar entradas para reducir riesgos.

Debe entenderse que la sanitización no sustituye el uso de consultas parametrizadas.

Proceso de verificar que los datos recibidos cumplen las reglas esperadas.

Vulnerabilidad en la que una entrada controlada por el usuario puede alterar la lógica de una consulta NoSQL.

Puede ocurrir cuando aplicaciones aceptan estructuras o operadores inesperados provenientes directamente del usuario.


Proceso de reducir la superficie de ataque de un sistema.

Puede incluir:

  • deshabilitar servicios innecesarios
  • restringir puertos
  • limitar interfaces de red
  • aplicar mínimo privilegio
  • actualizar componentes
  • proteger configuraciones
  • utilizar cifrado
  • restringir acceso remoto

Conjunto de puntos mediante los cuales un sistema puede ser atacado.

Configuración inicial que favorece condiciones seguras sin requerir modificaciones adicionales.

Configuración de referencia considerada aceptable para un sistema.

Separación de sistemas en diferentes segmentos de red para limitar comunicaciones y reducir exposición.

Control de red que permite o bloquea tráfico según reglas definidas.

Lista explícita de entidades permitidas.

Lista de entidades explícitamente bloqueadas.

Identificador lógico utilizado por los servicios de red.

Ejemplos comunes:

5432 PostgreSQL
27017 MongoDB

Sistema gestor de bases de datos relacional de código abierto.

Cliente de línea de comandos de PostgreSQL.

Archivo utilizado para definir reglas de autenticación y acceso de clientes.

Archivo principal de configuración del servidor PostgreSQL.

Vista del sistema utilizada para consultar información sobre sesiones y actividad.

Comando utilizado para consultar el plan de ejecución de una consulta.

Ejecuta la consulta y proporciona información real sobre su ejecución.

Proceso de mantenimiento relacionado con el almacenamiento y reutilización de espacio generado por actualizaciones y eliminaciones.

Actualiza estadísticas utilizadas por el optimizador de consultas.

Estructura que permite localizar información de manera más eficiente.

Herramienta de PostgreSQL para generar respaldos lógicos.

Herramienta utilizada para restaurar respaldos generados en formatos compatibles.


Sistema de gestión de bases de datos orientado a documentos.

Shell interactivo de MongoDB.

Binary JSON.

Formato utilizado internamente por MongoDB para representar documentos.

Unidad de datos de MongoDB.

Conjunto de documentos.

Mecanismo para procesar y transformar documentos mediante una secuencia de etapas.

Mecanismo utilizado para analizar la ejecución de consultas.

Proceso principal del servidor MongoDB.

Herramienta para realizar respaldos lógicos de MongoDB.

Herramienta utilizada para restaurar respaldos generados por mongodump.

Configuración que determina las interfaces de red en las que MongoDB acepta conexiones.


Capacidad de un sistema para ejecutar operaciones de manera eficiente.

Tiempo requerido para completar una operación.

Cantidad de operaciones procesadas durante un periodo determinado.

Consulta cuyo tiempo o consumo de recursos resulta elevado respecto al objetivo establecido.

Componente que selecciona un plan para ejecutar una consulta.

Estrategia utilizada por el motor para ejecutar una consulta.

Lectura de una tabla completa para encontrar registros.

Puede ser apropiada en determinadas consultas, pero puede ser costosa cuando existen grandes cantidades de datos.

Acceso a datos utilizando un índice.

Número de valores distintos o nivel de diversidad de una columna.

Capacidad de un filtro para reducir significativamente el conjunto de resultados.

Índice construido utilizando más de una columna o campo.

Situación donde existen más índices de los necesarios.

Puede incrementar:

  • almacenamiento
  • costo de escritura
  • mantenimiento

Capacidad de un sistema para gestionar múltiples operaciones simultáneamente.

Conjunto de operaciones tratado como una unidad lógica.

Propiedades tradicionalmente asociadas con transacciones:

Atomicity
Consistency
Isolation
Durability

En español:

Atomicidad
Consistencia
Aislamiento
Durabilidad

Una transacción se completa completamente o no se aplica.

Una transacción debe llevar la base de un estado válido a otro estado válido.

Las operaciones concurrentes deben comportarse de acuerdo con las reglas de aislamiento configuradas.

Los cambios confirmados deben persistir de acuerdo con las garantías del sistema.

Mecanismo utilizado para controlar el acceso concurrente a recursos.

Situación donde dos o más operaciones esperan recursos que están siendo retenidos unas por otras.


Observación continua o periódica del comportamiento de un sistema.

Medición cuantificable de alguna característica del sistema.

Ejemplos:

  • CPU
  • memoria
  • conexiones
  • latencia
  • operaciones
  • espacio

Registro de eventos producidos por un sistema.

Proceso de registrar, revisar y analizar actividades para determinar qué ocurrió, cuándo ocurrió y quién realizó determinada acción cuando esa información está disponible.

Capacidad de relacionar una acción con su origen, contexto y resultado.

Suceso registrado o detectado por un sistema.

Notificación generada cuando una condición determinada requiere atención.


Copia de información utilizada para recuperación.

Proceso de recuperar información desde un respaldo.

Proceso de devolver datos o servicios a un estado operativo después de una pérdida, error o incidente.

Respaldo basado en estructuras y datos que pueden reconstruirse mediante herramientas del gestor.

Ejemplos:

pg_dump
mongodump

Respaldo de estructuras físicas utilizadas por el sistema gestor.

Respaldo que representa el conjunto completo de información definido por la estrategia de respaldo.

Respaldo que contiene cambios desde un punto de referencia anterior, dependiendo de la tecnología utilizada.

Respaldo que contiene cambios desde un respaldo completo de referencia.

Proceso de reconstruir información a partir de un respaldo.

Proceso mediante el cual se verifica que un respaldo realmente puede utilizarse para recuperar información.

Un archivo de backup que nunca se ha restaurado no debe considerarse automáticamente como un backup validado.


Capacidad de una organización para mantener o recuperar servicios críticos después de una interrupción.

Recovery Point Objective.

Cantidad máxima de pérdida de datos que una organización está dispuesta a aceptar medida en términos de tiempo.

Ejemplo:

RPO = 1 hora

Implica que la estrategia debe buscar limitar la pérdida de información a aproximadamente una hora o menos.

Recovery Time Objective.

Tiempo máximo objetivo para recuperar un servicio.

Ejemplo:

RTO = 2 horas

Conjunto de capacidades y procedimientos destinados a recuperar sistemas después de una interrupción significativa.

Ubicación utilizada para continuar operaciones cuando la infraestructura principal no está disponible.


Diseño destinado a reducir el tiempo durante el cual un servicio permanece indisponible.

Cambio de operación desde un componente principal hacia otro componente disponible.

Regreso de la operación hacia el componente principal después de su recuperación.

Existencia de componentes alternativos que pueden asumir una función.

Single Point of Failure.

Componente cuya falla puede provocar la interrupción de un servicio completo.


Mecanismo mediante el cual los datos se mantienen en más de una instancia.

Copia sincronizada o mantenida a partir de otra instancia.

Nodo que normalmente recibe determinadas operaciones de escritura dentro de una arquitectura de replicación.

Nodo que mantiene una copia de datos de otro nodo.

La confirmación de una operación depende de determinadas confirmaciones de réplicas.

Las réplicas pueden actualizarse después de que la operación haya sido confirmada en el nodo principal.


Capacidad de un sistema para soportar crecimiento de demanda.

Incrementar recursos de un servidor:

CPU
RAM
almacenamiento

Agregar más servidores o nodos.

Distribución de datos entre diferentes nodos para permitir crecimiento horizontal.

División lógica de datos en partes manejables.


Protección de las personas respecto al tratamiento de sus datos personales.

Ley Federal de Protección de Datos Personales en Posesión de los Particulares.

Marco mexicano relacionado con el tratamiento de datos personales por particulares.

Ley General de Protección de Datos Personales en Posesión de Sujetos Obligados.

Marco mexicano relacionado con el tratamiento de datos personales por sujetos obligados.

Reglamento General de Protección de Datos de la Unión Europea.

Documento mediante el cual se informa, entre otros aspectos, sobre el tratamiento de datos personales conforme al marco jurídico aplicable.

Manifestación mediante la cual una persona autoriza determinado tratamiento cuando la legislación aplicable establece que constituye una base válida para dicho tratamiento.

Propósito para el cual se recopilan o procesan datos personales.

Derechos relacionados con:

Acceso
Rectificación
Cancelación
Oposición

Su aplicación concreta depende del marco jurídico correspondiente.


Enfoque que busca integrar desarrollo y operaciones mediante colaboración, automatización y entrega continua.

Integra prácticas de seguridad dentro del ciclo de desarrollo y operación.

Continuous Integration.

Integración continua de cambios de software.

Continuous Delivery o Continuous Deployment, dependiendo del contexto.

Conjunto automatizado de etapas para procesar cambios.

Práctica de definir infraestructura mediante archivos y código versionado.

Definición de configuraciones mediante archivos versionados y reproducibles.

Gestión centralizada y protegida de secretos.


Modificación realizada sobre un sistema, configuración, aplicación o infraestructura.

Proceso para evaluar, aprobar, ejecutar y verificar modificaciones.

Proceso para regresar un sistema o cambio a un estado anterior.

Conjunto de configuraciones mínimas consideradas necesarias para operar de manera segura.

Separación entre ambientes como:

Desarrollo
Pruebas
Producción

Información utilizada para autenticar una identidad.

Identidad utilizada por una aplicación o proceso automatizado.

Proceso de reemplazar periódicamente credenciales o secretos.


Una medida de seguridad puede tener impacto en el rendimiento.

Ejemplo:

Más controles
↓
Más procesamiento
↓
Posible impacto en latencia

Por eso las decisiones deben evaluarse considerando seguridad y desempeño.

Una configuración extremadamente restrictiva puede impedir conexiones legítimas.

Una configuración demasiado abierta puede aumentar la exposición.

La administración requiere encontrar una configuración adecuada al riesgo y al propósito del sistema.

El RPO influye en la frecuencia y estrategia de respaldo.

RPO bajo
↓
Mayor frecuencia de protección de datos

El RTO influye en cuánto tiempo puede tardar la recuperación.

RTO bajo
↓
Necesidad de mecanismos de recuperación más rápidos

El mínimo privilegio no elimina SQL Injection, pero puede reducir el impacto potencial de una explotación.

Vulnerabilidad
+
Privilegios elevados
↓
Mayor impacto potencial

El hardening busca reducir puntos innecesarios de exposición.

Servicios innecesarios
↓
Deshabilitar
Puertos innecesarios
↓
Cerrar/restringir
Usuarios innecesarios
↓
Eliminar/deshabilitar

Autenticación
¿Quién eres?
Autorización
¿Qué puedes hacer?
Cifrado
→ diseñado para poder recuperar el contenido mediante una clave
Hash
→ diseñado como transformación unidireccional
Backup
→ recuperación ante pérdida o corrupción
Replicación
→ disponibilidad y distribución de datos

La replicación no sustituye automáticamente a los backups.

Pseudonimización
→ puede existir información adicional que permita volver a asociar los datos
Anonimización
→ busca impedir razonablemente dicha asociación
Tabla
→ almacena los datos
Índice
→ facilita determinadas formas de localizar los datos
RPO
¿Cuánta información puedo perder?
RTO
¿Cuánto tiempo puedo tardar en recuperar?

Ante una operación:

¿Quién puede hacerlo?
¿Realmente necesita ese permiso?
¿La cuenta tiene privilegios excesivos?
¿Por qué esta consulta es lenta?
¿Existe un índice apropiado?
¿Qué plan de ejecución se está utilizando?
¿Qué sucede si este componente falla?
¿Existe un SPOF?
¿Existe backup?
¿Se ha probado?
¿Cuánto podemos perder?
¿Cuánto podemos tardar en recuperar?
¿Qué voy a modificar?
¿Qué puede afectar?
¿Cómo verifico el cambio?
¿Cómo regreso atrás?

La administración segura de bases de datos puede resumirse en:

PROTEGER
↓
CONTROLAR
↓
OBSERVAR
↓
OPTIMIZAR
↓
RESPALDAR
↓
RECUPERAR
↓
MEJORAR

Y ante cualquier problema:

1. Observar
2. Identificar
3. Analizar
4. Evaluar riesgo
5. Cambiar
6. Verificar
7. Documentar

Si el estudiante domina y puede explicar correctamente estos conceptos, tiene una buena base para avanzar en la materia:

CIA
Mínimo privilegio
Autenticación
Autorización
RBAC
GRANT
REVOKE
SQL Injection
NoSQL Injection
Validación
Sanitización
Hardening
Superficie de ataque
Cifrado
TLS
Datos personales
Pseudonimización
Anonimización
Auditoría
Logs
Métricas
EXPLAIN
Índices
Concurrencia
Bloqueos
Transacciones
ACID
Backup
Restore
RPO
RTO
Continuidad
Alta disponibilidad
Failover
Replicación
Sharding
Escalabilidad

Un DBA no debe preguntarse únicamente:

¿Qué comando debo ejecutar?

Debe preguntarse:

¿Qué problema estoy resolviendo, qué riesgo estoy aceptando, qué impacto tendrá el cambio y cómo comprobaré que funcionó?

Ese cambio de mentalidad es una de las diferencias entre ejecutar comandos y administrar una base de datos.