14_Asegurar un almacenamiento de datos en Fabric

 

Enmascaramiento Dinámico de Datos (DDM)

El enmascaramiento dinámico de datos (DDM) es una funcionalidad de seguridad que protege datos confidenciales en tiempo real, mostrando versiones enmascaradas a usuarios sin privilegios. Ventajas principales:

  1. Enmascaramiento en tiempo real: No expone los datos reales.
  2. Facilidad de implementación: No requiere codificación compleja.
  3. Datos intactos: No modifica los datos almacenados; solo enmascara los resultados de las consultas.

Tipos de enmascaramiento y usos

  • Valor predeterminado: Oculta completamente los datos (función: default()).
  • Correo electrónico: Muestra la primera letra del correo y un sufijo “.com” (función: email()).
  • Texto personalizado: Expone caracteres iniciales/finales y oculta el resto con una cadena definida (función: partial()).
  • Aleatorio: Genera valores aleatorios para datos numéricos o binarios (función: random()).

Ejemplo de configuración



Resultado:

  • Email: j*****@contoso.com
  • PhoneNumber: XXX-XXX-7890
  • CreditCardNumber: XXXX-XXXX-XXXX-3456

Seguridad a Nivel de Fila (RLS)

La seguridad a nivel de fila (RLS) restringe el acceso a filas específicas en función de roles o condiciones definidas.

Componentes principales:

  1. Predicados de filtro: Función que evalúa si una fila debe ser visible para el usuario.
  2. Directivas de seguridad: Asociadas a las tablas para aplicar los predicados de filtro.

Ejemplo de implementación RLS



  • Los usuarios ven únicamente filas asignadas a su TenantName.
  • El administrador (Admin) tiene acceso a todas las filas.

Casos de uso

  • Restringir acceso a datos de departamentos.
  • Permitir a clientes ver solo sus datos.
  • Cumplir con regulaciones de privacidad.

Seguridad a Nivel de Columna (CLS)

La seguridad a nivel de columna (CLS) permite restringir el acceso a columnas específicas para proteger datos sensibles.

Ejemplo en un entorno médico:

  • Tabla: Patients con columnas como Name, Address, y MedicalHistory.
  • Reglas de acceso:
    • Roles Doctor y Nurse tienen acceso total.
    • Roles Receptionist y Patient no pueden ver MedicalHistory.

     

    Ventajas frente a vistas:

    Aspecto CLS Vistas
    Granularidad Control directo en columnas. Requiere múltiples vistas.
    Rendimiento Más eficiente. Menor en tablas grandes.
    Mantenimiento Permisos atados a columnas. Actualizaciones manuales.

     


    Configuración de Permisos Detallados

    Permisos fundamentales en SQL:

  • SELECT: Ver datos.
  • INSERT: Agregar datos.
  • UPDATE: Modificar datos.
  • DELETE: Eliminar datos.

Ejemplo de gestión de permisos:


SQL Dinámico

El SQL dinámico permite construir consultas de forma programada para adaptarse a diversos escenarios.

Ejemplo básico:

 

 Uso de QUOTENAME evita ataques de inyección de SQL.


Recomendaciones Generales

  1. Principio del mínimo privilegio:

    • Conceder solo permisos necesarios para completar tareas.
    • Ejemplo: Aplicaciones que usan procedimientos almacenados no necesitan acceso directo a tablas.
  2. Seguridad combinada:

    • Combinar CLS, RLS y DDM para proteger datos a niveles múltiples.
    • Implementar monitoreo constante y pruebas en entornos seguros.
  3. Evitar ataques de canal lateral:

    • Asegurarse de que las reglas de seguridad no sean vulnerables a consultas que intenten deducir datos a través de excepciones.

Comentarios

Deja un comentario