Ejercicio: Protección de los datos en tránsito, en reposo y en pantalla
En la base de datos marketplaceDb se almacena información confidencial, como direcciones físicas, direcciones de correo electrónico y números de teléfono. Si se expone, los atacantes malintencionados podrían usar esta información para dañar su negocio o sus clientes. Vea cómo puede usar el cifrado y el enmascaramiento de datos para mejorar la seguridad de la base de datos.
Cifrado de red TLS
Azure SQL Database aplica el cifrado de seguridad de la capa de transporte (TLS) siempre para todas las conexiones, lo que garantiza que todos los datos se cifren en tránsito entre la base de datos y el cliente. Mediante el cifrado de TLS, puede asegurarse de que cualquier persona que pueda interceptar el tráfico entre el servidor de aplicaciones y la base de datos no podrá leer los datos. El cifrado TLS es un estándar de protección del tráfico a través de Internet y en este caso garantiza que el tráfico de red hacia y desde Azure SQL Database es seguro de forma predeterminada.
Cifrado de datos transparente
Azure SQL Database protege los datos en reposo con cifrado de datos transparente (TDE). TDE realiza cifrado y descifrado de la base de datos en tiempo real, copias de seguridad asociadas y archivos de registro de transacciones en reposo sin necesidad de efectuar cambios en la aplicación. El cifrado de datos transparente realiza el cifrado de E/S en tiempo real y el descifrado de datos en el nivel de página mediante una clave de cifrado de base de datos. Todas las páginas se descifran cuando se leen en la memoria y después se cifran antes de escribirse en el disco.
De forma predeterminada, TDE está habilitado para todas las instancias de Azure SQL Database recién implementadas. Es importante comprobar que el cifrado de datos no está desactivado. Es posible que las bases de datos de Azure SQL Server anteriores no tengan TDE habilitado.
Eche un vistazo a Azure Portal en el que se configura TDE en la base de datos marketplaceDb.
Inicie sesión en Azure Portal con la misma cuenta con la que ha activado el espacio aislado.
En la barra de búsqueda de la parte superior de Azure Portal, busque marketplaceDb y después seleccione la base de datos.
En el panel de menú izquierdo, en Seguridad, seleccione Cifrado de datos.
En la opción de cifrado de datos, compruebe que Cifrado de datos está establecido en Activado. También debería ver el estado de cifrado Cifrado.
Dado que las nuevas bases de datos se cifran de forma predeterminada, puede tener la certeza de que los datos se cifran en el disco tan pronto como se crea la base de datos.
Nota:
Azure incluye el servicio integrado Microsoft Defender for Cloud, que ofrece visibilidad sobre la seguridad del entorno, incluidas las bases de datos de Azure SQL. Microsoft Defender for Cloud marca las bases de datos que no tienen TDE habilitado, lo que ofrece la posibilidad de crear informes y tomar medidas para proteger los datos.
Enmascaramiento de datos dinámicos
Es posible que al ejecutar la consulta en la unidad anterior, haya observado que parte de la información de la base de datos es confidencial. Hay números de teléfono, direcciones de correo electrónico y otra información que es posible que no quiera mostrar a todos los usuarios con acceso a los datos.
Quizás no quiera que sus usuarios puedan ver la dirección de correo electrónico o el número de teléfono completo, pero aun así quiere que una parte de los datos estén disponibles para los representantes del servicio al cliente para identificar a un cliente. Mediante el uso de la característica de enmascaramiento dinámico de datos de Azure SQL Database, puede limitar los datos que se muestran al usuario. El enmascaramiento dinámico de datos es una característica de seguridad basada en directivas que oculta los datos confidenciales en el conjunto de resultados de una consulta sobre los campos designados de la base de datos, aunque los datos de la base de datos no cambian.
Las reglas de enmascaramiento de datos constan de información sobre la columna a la que se aplicará la máscara y cómo se deben enmascarar los datos. Puede crear su propio formato de enmascaramiento o usar una de las máscaras estándares; por ejemplo:
- Valor predeterminado, que muestra el valor predeterminado para ese tipo de datos.
- Valor de tarjeta de crédito, que solo muestra los cuatro últimos dígitos del número, convirtiendo todos los demás números en "x" minúsculas.
- Correo electrónico, que oculta el nombre de dominio y todos los caracteres excepto el primero del nombre de la cuenta de correo electrónico.
- Número, que especifica un número aleatorio comprendido en un intervalo de valores. Por ejemplo, en el mes y año de caducidad de la tarjeta de crédito, puede seleccionar meses aleatorios entre el 1 y el 12 y establecer el intervalo de años entre 2018 y 3000.
- Cadena personalizada que le permite establecer el número de caracteres que se expone desde el principio de los datos, el número de caracteres que se expone desde el final de los datos y los caracteres que se repiten para el resto de los datos.
Cuando los administradores de bases de datos consultan las columnas, siguen viendo los valores originales. Los no administradores ven los valores enmascarados. Puede permitir que otros usuarios vean las versiones no enmascaradas si los incluye en los usuarios SQL excluidos de la lista de enmascaramiento.
Eche un vistazo a cómo funcionaría el enmascaramiento de datos en la base de datos marketplaceDb.
Sin salir del portal, en el panel de la base de datos marketplaceDb, vaya a la sección Seguridad del panel de menú izquierdo y seleccione Enmascaramiento dinámico de datos.
En la pantalla Reglas de enmascaramiento se muestra una lista de las máscaras dinámicas de datos existentes y recomendaciones para las columnas a las que se debería aplicar un enmascaramiento dinámico de datos.
Agregue una máscara para el número de teléfono que solo muestre los cuatro últimos dígitos. Haga clic en el botón Agregar máscara situado en la parte superior para abrir el cuadro de diálogo Agregar regla de enmascaramiento.
Seleccione los siguientes valores.
Configuración Value Esquema SalesLT Tabla Cliente Columna Teléfono (nvarchar) Formato del campo de enmascaramiento Cadena personalizada (prefijo [relleno] sufijo) Prefijo expuesto 0 Cadena de relleno XXX-XXX- Sufijo expuesto 4 Haga clic en Agregar para agregar la regla de enmascaramiento.
Agregue una más para la dirección de correo electrónico. Haga clic de nuevo en el botón Agregar máscara situado en la parte superior para abrir el cuadro de diálogo Agregar regla de enmascaramiento.
Configuración Value Esquema SalesLT Tabla Cliente Columna EmailAddress (nvarchar) Formato del campo de enmascaramiento Correo electrónico (aXXX@XXX.com) Haga clic en Agregar para agregar la regla de enmascaramiento.
Cada nueva máscara se agrega a la lista Reglas de enmascaramiento. Seleccione Guardar para aplicar las máscaras.
Eche un vistazo a cómo cambia el enmascaramiento de datos la consulta.
Ahora vuelva a iniciar sesión en la base de datos, pero como el usuario ApplicationUser.
sqlcmd -S tcp:[server-name].database.windows.net,1433 -d marketplaceDb -U 'ApplicationUser' -P '[password]' -N -l 30
Ejecute la siguiente consulta.
SELECT FirstName, LastName, EmailAddress, Phone FROM SalesLT.Customer; GO
Observe cómo se enmascara la salida.
FirstName LastName EmailAddress Phone ------------- ------------- -------------------- ------------ Orlando Gee oXXX@XXXX.com XXX-XXX-0173 Keith Harris kXXX@XXXX.com XXX-XXX-0127 Donna Carreras dXXX@XXXX.com XXX-XXX-0130 Janet Gates jXXX@XXXX.com XXX-XXX-0173 ...
Con las reglas de enmascaramiento que ha creado, los datos se enmascaran con el formato que especifique. Estas reglas permiten a los representantes del servicio de atención al cliente comprobar que un cliente tiene los últimos cuatro dígitos de su número de teléfono, pero oculta el número completo y la dirección de correo electrónico del cliente desde la vista.