Ejercicio: clasificación de datos, enmascaramiento de datos dinámicos y auditoría de SQL
En este ejercicio combinará lo aprendido en el módulo para recorrer un escenario. Aprenderá a agregar nuevas clasificaciones de datos y máscaras de datos dinámicas y, luego, verá diversos métodos para auditar a los usuarios que intentan ver las columnas marcadas para la clasificación de datos. En este ejercicio se combinan varios de los conceptos que ya aprendió en el módulo sobre administración de seguridad.
Configuración de la clasificación y el enmascaramiento de datos
En Azure Portal, vaya a la instancia de Azure SQL Database (no al servidor lógico).
En el panel de la izquierda, en Seguridad, seleccione Clasificación y detección de datos.
Seleccione la pestaña Clasificación. A continuación, seleccione Agregar clasificación.
En un ejercicio anterior, agregó todas las clasificaciones de columna recomendadas. En este paso, agrega manualmente una columna potencialmente confidencial a la lista de columnas clasificadas.
En la tabla Cliente del esquema SalesLT, Clasificación y detección de datos ha identificado
FirstName
yLastName
para ser clasificadas, pero noMiddleName
. Use las listas desplegables para agregarla y, después, seleccione Agregar clasificación.Seleccione Guardar.
Confirme que la clasificación se ha agregado correctamente; para ello, consulte la pestaña Información general y confirme que
MiddleName
se muestra en la lista de columnas clasificadas en el esquema SalesLT.En el panel de la izquierda, puede seleccionar Información general para volver a la información general de la base de datos.
La característica Enmascaramiento dinámico de datos (DDM) está disponible en Azure SQL y en SQL Server. DDM limita la exposición de los datos enmascarando los datos confidenciales para los usuarios sin privilegios en el nivel de servidor de SQL Server en lugar de en el nivel de aplicación, donde tiene que programar esos tipos de reglas. Azure SQL le recomienda elementos para enmascarar, o bien, puede agregar máscaras manualmente.
En los pasos siguientes, enmascarará las columnas
FirstName
,MiddleName
yLastName
que ha revisado en el paso anterior.En Azure Portal, vaya a la base de datos de Azure SQL. En el panel de la izquierda, en Seguridad, seleccione Enmascaramiento dinámico de datos y, a continuación, seleccione Agregar máscara.
En las listas desplegables, seleccione el esquema SalesLT, la tabla Customer y la columna FirstName. Después, puede revisar las opciones de enmascaramiento, pero la opción predeterminada es adecuada para este escenario. Haga clic en Agregar para agregar la regla de enmascaramiento.
Repita el paso anterior para las columnas MiddleName y LastName de esa tabla.
Ahora tiene tres reglas de enmascaramiento similares a las siguientes:
Seleccione Guardar.
En el panel de la izquierda, puede seleccionar Información general para volver a la información general de la base de datos.
Recuperación de datos clasificados y enmascarados
Seguidamente, simulará que alguien consulta las columnas clasificadas y explorará la característica Enmascaramiento dinámico de datos en acción.
Vaya a SQL Server Management Studio (SSMS).
Para crear una consulta en la base de datos AdventureWorks, haga clic con el botón derecho en la base de datos y seleccione Nueva consulta.
Ejecute la siguiente consulta para devolver los datos clasificados y, en algunos casos, columnas marcadas para su enmascaramiento. Seleccione Ejecutar para ejecutar la consulta.
SELECT TOP 10 FirstName, MiddleName, LastName FROM SalesLT.Customer;
Debería obtener como resultado los 10 primeros nombres, sin aplicación de enmascaramiento. ¿Por qué? Porque es el administrador de este servidor lógico de Azure SQL Database.
En la consulta siguiente, creará un nuevo usuario y ejecutará la consulta anterior como ese usuario. También usará
EXECUTE AS
para suplantar aBob
. Cuando se ejecuta una instrucciónEXECUTE AS
, el contexto de ejecución de la sesión se cambia al inicio de sesión o usuario. Esto significa que los permisos se comprueban con el inicio de sesión o usuario y no con la persona que ejecuta el comandoEXECUTE AS
(en este caso, usted). Seguidamente, se utilizaREVERT
para detener la suplantación del inicio de sesión o usuario.Es posible que reconozca los primeros elementos de los comandos siguientes, ya que son una repetición de un ejercicio anterior. Cree una nueva consulta con los siguientes comandos y, a continuación, seleccione Ejecutar para ejecutar la consulta y observar los resultados.
-- Create a new SQL user and give them a password CREATE USER Bob WITH PASSWORD = 'c0mpl3xPassword!'; -- Until you run the following two lines, Bob has no access to read or write data ALTER ROLE db_datareader ADD MEMBER Bob; ALTER ROLE db_datawriter ADD MEMBER Bob; -- Execute as our new, low-privilege user, Bob EXECUTE AS USER = 'Bob'; SELECT TOP 10 FirstName, MiddleName, LastName FROM SalesLT.Customer; REVERT;
Ahora debería obtener como resultado los 10 primeros nombres, pero con aplicación de enmascaramiento. A Bob no se le ha concedido acceso al formato sin máscara de estos datos.
¿Qué ocurre si, por alguna razón, Bob necesita acceder a los nombres y obtiene permiso para hacerlo?
Puede actualizar los usuarios excluidos del enmascaramiento en Azure Portal desde el panel Enmascaramiento dinámico de datos en Seguridad, pero también puede hacerlo mediante T-SQL.
Haga clic con el botón derecho en la base de datos AdventureWorks y seleccione Nueva consulta. A continuación, escriba la siguiente consulta para permitir que Bob consulte los resultados de los nombres sin enmascaramiento. Seleccione Ejecutar para ejecutar la consulta.
GRANT UNMASK TO Bob; EXECUTE AS USER = 'Bob'; SELECT TOP 10 FirstName, MiddleName, LastName FROM SalesLT.Customer; REVERT;
Los resultados deben incluir los nombres completos.
También se pueden quitar los privilegios de desenmascaramiento de un usuario y confirmar la acción con los siguientes comandos T-SQL en una nueva consulta:
-- Remove unmasking privilege REVOKE UNMASK TO Bob; -- Execute as Bob EXECUTE AS USER = 'Bob'; SELECT TOP 10 FirstName, MiddleName, LastName FROM SalesLT.Customer; REVERT;
Los resultados deben incluir los nombres enmascarados.
Revisión de los registros de auditoría en SSMS
Como administrador, puede que quiera revisar y auditar quién tiene acceso a las bases de datos y, en concreto, a los datos clasificados. A continuación, puede echar un vistazo a los archivos de auditoría que se envían a Azure Blob Storage. Lo primero que tiene que hacer es combinar los archivos de auditoría, si los registros abarcan varios archivos. Para ello, puede hacer lo siguiente en SSMS:
Seleccione Archivo>Abrir>Combinar archivos de auditoría.
Seleccione Agregar.
Seleccione Agregar de Azure Blob Storage y, después, seleccione Conectar.
Inicie sesión en Azure con la cuenta que está usando en este módulo.
Seleccione la suscripción, la cuenta de almacenamiento y el contenedor de blobs que ha configurado para que vayan los registros de auditoría. La cuenta de almacenamiento debe comenzar con
sql
. El contenedor se llamarásqldbauditlogs
. Si no hubiera ningún contenedor con ese nombre, habrá creado una cuenta de almacenamiento diferente para la auditoría. Úsela en su lugar.Seleccione el servidor lógico de Azure SQL Database y la base de datos
AdventureWorks
. Asegúrese de que el valor de tiempo que se indica en Desde sea anterior al momento en que inició los ejercicios. Seleccione Aceptar.La ventana de confirmación le permite saber cuántos archivos se están descargando y combinando. Seleccione Aceptar.
Revise los archivos y seleccione Aceptar una última vez.
Ahora se muestran todos los registros de auditoría. Busque el punto en el que ha probado el enmascaramiento con Bob. La lista debería estar cerca de la parte inferior.
Seleccione la instrucción. A continuación, revise la información en el panel de detalles. Por ejemplo, para una de las consultas en las que Bob intenta ver los datos clasificados, en el campo
data_sensitivity_information
, puede ver los datos que están clasificados.Haga doble clic en el valor de data_sensitivity_information en el panel Detalles. Se mostrará una ventana emergente en la que podrá leer más fácilmente los datos.
Este es un ejemplo de lo que podría ver en
data_sensitivity_information
:<sensitivity_attributes max_rank="20" max_rank_desc="Medium"><sensitivity_attribute label="Confidential - GDPR" label_id="bf91e08c-f4f0-478a-b016-23422b2a65ff" information_type="Name" information_type_id="57845286-7598-22f5-3422-15b24aeb125e" rank="20" rank_desc="Medium"/></sensitivity_attributes>
Después, puede exportar este archivo combinado a un archivo XEL o CSV (o a una tabla) para un análisis adicional. También puede consultar los archivos de eventos extendidos mediante Azure PowerShell.
Revisión de los registros de auditoría en Azure Portal
El análisis de los registros de auditoría dependerá de sus preferencias. En esta sección, podrá consultar los registros de seguridad en Azure Portal con Log Analytics.
En Azure Portal, vaya hasta su base de datos
AdventureWorks
. En el panel de la izquierda, en Seguridad, seleccione Auditoría. A continuación, seleccione el botón de la barra de herramientas Ver registros de auditoría.Ahora debería poder ver una consulta de los registros de eventos, las opciones que se pueden ejecutar en el editor de consultas (ejecutar consultas de T-SQL a través del portal), opciones de Log Analytics, Ver panel, etc.
No dude en explorar para entender cómo funcionan algunas de las opciones.
Seleccione Log Analytics. Es posible que necesite seleccionar Actualizar para acceder al botón Análisis de registros. Si ve una pantalla Introducción, seleccione Aceptar. Esto le llevará a un editor de consultas, pero no al editor de T-SQL. En esta vista, puede consultar los registros mediante el lenguaje de consulta de Kusto (KQL), que está diseñado para que les resulte fácil de usar y entender a los profesionales de SQL.
La consulta predeterminada realiza una consulta a la categoría
SQLSecurityAuditEvents
. Y aunque ahora puede usar esta categoría para ver los incidentes relacionados con la seguridad, esta herramienta también puede usarse para consultar otros registros y categorías de Azure en análisis de registros. En este paso, puede buscar las instrucciones en las que Bob ha intentado acceder a información confidencial. Para obtener la misma información que ha visto en SSMS, expanda los detalles de las filas seleccionando el botón>
.Los archivos pueden tardar unos minutos en aparecer aquí. Puede actualizar la consulta seleccionando Ejecutar de nuevo.
En esta actividad, no profundizará en la consulta de los registros de KQL, pero hay muchos recursos en las referencias anteriores si quiere realizar más prácticas más adelante.
En el siguiente paso, verá cómo la seguridad de SQL ha creado un panel basado en Log Analytics para que pueda supervisar y auditar los registros y otra actividad de SQL. Para volver al panel Registros de auditoría, cierre la ventana de consulta de Log Analytics haciendo clic en la X de la esquina superior derecha.
Seleccione Ver panel.
Se muestra un panel de información general.
Seleccione Azure SQL - Access to Sensitive Data (Azure SQL: acceso a datos confidenciales) para ver más detalles.
Tal vez tenga que esperar entre tres y cinco minutos y seleccionar Actualizar para que los elementos se muestren aquí.
Puede usar esta información detallada para averiguar lo siguiente:
- El número de consultas que acceden a datos confidenciales.
- Los tipos y grados de confidencialidad de los datos a los que se accede.
- Las entidades de seguridad que acceden a datos confidenciales.
- Las direcciones IP que acceden a datos confidenciales.
Revise lo que está disponible aquí y cómo puede auditar el uso con esta herramienta. Podría incluso seleccionar cada uno de ellos y ver los registros relacionados en el análisis de registros.
Cuando haya terminado, cierre el panel Azure SQL - Access to Sensitive Data (Azure SQL: acceso a datos confidenciales) haciendo clic en la X de la esquina superior derecha.
De nuevo en el panel de información general del panel de auditoría, seleccione Azure SQL: información de seguridad.
Este panel muestra información de auditoría adicional para ayudarle a comprender la actividad de las bases de datos y obtener información sobre las anomalías. Dedique unos minutos a revisar y profundizar en las opciones.
Además de ver esta información para los servicios de Azure SQL, al estar en Azure, puede aprovechar Microsoft Defender for Cloud para supervisar y administrar los problemas que surgen en todo el espacio de Azure, así como para responder a ellos. Si quiere echar un vistazo a lo que hay disponible fuera de Defender for Cloud para Azure SQL, puede buscar y seleccionar Microsoft Defender for Cloud en Azure Portal. El acceso puede estar limitado según su nivel de suscripción.