sql >> Base de Datos >  >> RDS >> Database

Cómo clasificar, encontrar y enmascarar PII en bases de datos...

Una vez que han realizado sus conexiones a la base de datos, los usuarios de IRI FieldShield e IRI DarkShield tienen una amplia gama de opciones para clasificar, encontrar y desidentificar datos confidenciales en uno o más esquemas. Ahora pueden lograr todos estos objetivos a la vez a través de funciones basadas en reglas en IRI Workbench.

Este artículo demuestra paso a paso el uso de clases de datos para encontrar y enmascarar PII en un pequeño esquema de base de datos relacional usando FieldShield, aunque podría extender estos pasos a esquemas más grandes o más. Si su base de datos contiene columnas semiestructuradas o no estructuradas, consulte este artículo sobre los procedimientos de máscara de búsqueda y clasificación de DarkShield para RDB, o este artículo para bases de datos NoSQL.

En las operaciones de RDB de columnas estructuradas de FieldShield, los datos generalmente se clasifican en un esquema a la vez, pero se enmascaran globalmente usando sus reglas guardadas, ad hoc o según lo programado para las actualizaciones.

Las reglas de enmascaramiento de datos que defina le permitirán seleccionar la función que mejor se adapte a cada clase de datos y aplicarla de forma coherente. Producir el mismo resultado de texto cifrado único para cada valor de texto sin formato original único, en cualquier tabla o archivo, también preserva la integridad referencial; por ejemplo, las uniones seguirán funcionando después de enmascarar los datos.

Este ejemplo utiliza las tablas de Oracle en el esquema SCOTT proporcionado en nuestro espacio aislado de VM. Para conectarse a otra base de datos, debe configurar:

  • El perfil de conexión DTP para su base de datos en IRI Workbench usando JDBC
  • El DSN de ODBC para esa base de datos de origen

Para obtener información sobre cómo conectar sus bases de datos para usarlas con FieldShield, consulte Configuración de la base de datos aquí.

Los pasos que describiré son:

  1. Configuración:definir clases de datos y reglas de enmascaramiento
  2. Escanear:ejecutar el asistente de búsqueda de clase de datos de esquema
  3. Revisar y ajustar:editor de la biblioteca de clases de datos
  4. Máscara:ejecute el asistente de enmascaramiento de base de datos de clase de datos

También hay una serie de videos vinculados aquí con instrucciones paso a paso similares.

Configuración:definir clases de datos y reglas de enmascaramiento

Para usar clases de datos con reglas y asistentes, primero se deben definir y guardar las clases de datos. Esto se puede hacer a través de Ventana> Preferencias> IRI> Clases y grupos de datos . Consulte este artículo sobre Clasificación de datos en IRI Workbench para obtener una inmersión más profunda. También hay tutoriales en video para la configuración de la clasificación de datos y las reglas de enmascaramiento.

Las clases de datos pueden coincidir con las columnas por el nombre de la columna (la clase EMAIL coincide con una columna denominada EMAIL) o por la coincidencia de los datos contenidos en la columna. Este ejemplo tiene clases que tienen una expresión regular o un archivo establecido. Un archivo de conjunto contiene entradas que sirven como una búsqueda de diccionario.

En esa página de preferencias, confirme que existen estas clases de datos:

  • Clase TARJETA_DE_CRÉDITO que usa \b((4\d{12}(\d{3})?))|(?:5[1-5][0-9]{2}|222[1-9] |22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|( 3[47]\d{13})|(3(0[0-5]|[68]\d)\d{11})|(6(011|5\d{2})\d{12 })|((2131|1800|35\d{3})\d{11})|(8\d{15})\b como emparejador.
  • Clase CORREO ELECTRÓNICO que usa \b[\w._%+-]+@[\w.-]+\.[A-Za-z]{2,4}\b
  • Clase PHONE_US que usa ^(\+?(1)([ .-]?)?)?(\(?([2-9]\d{2})\)?([ .-]?)? )([2-9]\d{2})([ .-]?)(\d{4})([ #eExXtT]*)(\d{2,6})?&
  • Clase PIN_US que usa \b([0-9]{3}[-]?[0-9]{2}[-]?[0-9]{4})\b
  • Clase LAST_NAME que usa el archivo de configuración C:/IRI/cosort100/sets/names/names_last.set

Si no es así, haga clic en Restaurar valores predeterminados .

En la parte superior de la página de preferencias, hay una entrada Umbral coincidente . Esto representa el porcentaje de coincidencias requeridas para que a una columna se le asigne una clase de datos. La búsqueda de esquema escaneará 4K bloques de datos hasta que las coincidencias alcancen este umbral. Si nunca alcanza este umbral, no se asigna ninguna clase de datos.

Como sé que tengo columnas que contienen apellidos que pueden no llamarse "APELLIDO" o que ni siquiera tienen datos coincidentes en el archivo establecido, puedo usar una expresión regular para hacer coincidir mi clase de datos con los nombres de columna. Por ejemplo, puede haber una columna llamada LNAME o LASTNAME.

Para editar la clase de datos LAST_NAME, haga clic en la entrada LAST_NAME en la vista Clases de datos y haga clic en Editar . Cambiar su nombre a L(AST)?[_-]?NOMBRE (guión bajo y guión entre paréntesis). Haga clic en Aceptar . Haga clic en Aplicar y cerrar .

Debe predeterminar cómo desea que se enmascaren los valores en cada clase de datos (es decir, su formato de columna de destino), para que pueda definir esas reglas a continuación. En nuestro ejemplo, habrá reglas de redacción, cifrado que conserva el formato y seudonimización. Solo es necesario definir cada una una vez, desde el menú IRI.

Para definir estas reglas en este ejemplo, siga estos pasos:

Regla 1:Redacción (para Números de Seguro Social)

  1. Seleccione menú IRI> Nueva regla .
  2. Seleccione Reglas de campo y haga clic en Siguiente .
  3. Seleccione Función de redacción , use SSN para el comienzo del nombre de la regla para que lea SSNRedactionRule y haga clic en Siguiente .
  4. Seleccione Definir máscara boton de radio. Escribe 1 en Posición inicial y 5 en Longitud . Haga clic en Agregar a la tabla y Finalizar .

Regla 2:Cifrado (para números de cuenta de tarjeta de crédito, direcciones de correo electrónico y números de teléfono)

  1. Seleccione menú IRI> Nueva regla .
  2. Seleccione Reglas de campo y haga clic en Siguiente .
  3. Seleccione Funciones de cifrado y descifrado y haga clic en Siguiente . No cambie el nombre de la regla.
  4. Seleccione enc_fp_aes256_alphanum opción de la izquierda. Introduzca secreto para la frase de contraseña . Consulte esta página sobre las opciones de administración de claves de cifrado.
  5. Haga clic en Finalizar .

Regla 3:seudonimización (para apellidos)

  1. Seleccione menú IRI> Nueva regla .
  2. Seleccione Reglas de campo y haga clic en Siguiente .
  3. Seleccione Reemplazo de seudónimo , cámbiele el nombre LNamePseudonymRule y haga clic en Siguiente .
  4. Haga clic en Usar su propia lista de seudónimos y Examinar al archivo de búsqueda, C:/git/workbench-demos/Database_Classification_Masking/sets/lnames.set
  5. Seleccione Usar sorteo aleatorio de la lista de seudónimos . Tenga en cuenta que la seudonimización recuperable también es posible, pero es más complicada debido a cambios probables en sus datos de origen.
  6. Haga clic en Finalizar .

Ahora que nuestras reglas de enmascaramiento de clases de datos están definidas, podemos realizar operaciones de búsqueda y enmascaramiento para encontrar y corregir los datos globalmente en uno o más esquemas de bases de datos.

Escanear:ejecutar el asistente de búsqueda de clase de datos de esquema

Para encontrar todos los datos que se ajusten a nuestras definiciones de clase en todas las tablas de un esquema, use el Asistente de búsqueda de clases de datos de esquema. Esto produce un informe de cada tabla y columna con la PII preclasificada en su interior, crea un archivo de clase de datos específico para su proyecto y abre un editor de formularios para ese archivo. En ese cuadro de diálogo de edición (nuestro próximo paso después de este), puede revisar y modificar su clase de datos y las definiciones de reglas de enmascaramiento antes de pasar al enmascaramiento de datos globales en el paso final.

Puede ejecutar el asistente desde el grupo de menús Data Discovery en la barra de herramientas de IRI Workbench. También puede ejecutar el asistente de búsqueda directamente desde el Explorador de orígenes de datos para completar previamente el asistente con un esquema seleccionado. Haga clic con el botón derecho en el esquema SCOTT en el Explorador de fuentes de datos (DSE) y seleccione IRI> Búsqueda de clase de datos de esquema .

En la página de configuración del asistente de búsqueda, ingrese la ubicación para guardar el archivo de clase de datos. Solo puede haber uno de este tipo de archivo en cada proyecto, de ahí el estado de solo lectura del campo de nombre. Deje los valores predeterminados como están. Haga clic en Siguiente .

La página de entrada muestra que se ha seleccionado un esquema. Haga clic en Siguiente . La página siguiente le permite limitar las columnas buscadas por tipos de datos. Incluir NUMÉRICO y haga clic en Siguiente .

La página Excluir elementos le permite excluir tablas o columnas durante el análisis. Haga clic en Siguiente .

La página de clase de datos le permite filtrar las clases de datos que se utilizarán durante el escaneo. Selecciona solo CREDIT_CARD , CORREO ELECTRÓNICO , L(AST)?[_-]?NOMBRE, TELÉFONO_US y PIN_US . Haga clic en Finalizar .

Junto con los informes, esto crea (o agrega) una biblioteca de clases de datos con asignaciones entre las columnas de origen y las clases de datos. El editor de formularios que se abre le permite asignar reglas a los resultados.

Esta búsqueda a través de 46 tablas arrojó 18 coincidencias de columna, que sé que son en su mayoría, pero no completamente completas:

Sé que un par de columnas no coincidieron debido a que las tablas estaban vacías o los nombres no encontraron coincidencias en los archivos establecidos. En el siguiente paso, puedo abordar esos errores y confirmar mis reglas de enmascaramiento por tabla.

Revisar y ajustar:editor de la biblioteca de clases de datos

Ahora que los resultados de la búsqueda están abiertos en la ventana de edición de formularios de la biblioteca de clases de datos, puede examinar y modificar las reglas de las columnas en el nivel de la tabla y eliminar las tablas vacías en el esquema con nombres de columna que coincidan con los nombres de sus clases de datos. Todo esto ayuda a confirmar que está configurado correctamente para el trabajo de enmascaramiento masivo a continuación.

Tenga en cuenta que esta vista también admite resultados de búsqueda de archivos sin formato (clase de datos de directorio) junto con los resultados de búsqueda de su base de datos. Al unir esos resultados a su biblioteca de clases de datos, es más fácil mantener las mismas funciones de enmascaramiento (reglas) en fuentes de datos dispares. Eso ayuda a mantener la integridad referencial y la consistencia de los datos de prueba en entornos de aplicaciones más distribuidos.

Haga clic en una fuente de datos (tabla) para mostrar detalles sobre esa fuente y una vista previa de los datos que contiene. Si se hizo una coincidencia con una clase de datos, esa columna muestra esa clase y cómo se hizo coincidir.

En el caso de mi tabla PERSONS a continuación, puede ver que:todos los valores de la columna SSN coincidieron con el patrón RegEx de mi clase de datos PIN_US, y las columnas LASTNAME y CREDIT_CARD coincidieron con sus nombres de clase de datos, lo que excluye la necesidad de esos escaneos de columna.

Las ediciones de las asignaciones de clases de datos se pueden realizar cambiando la clase de datos a través del menú desplegable o deseleccionando la columna para eliminar la asignación por completo. Si una tabla está vacía, es posible que no asigne todas las asignaciones deseadas. Hay tres formas de manejar esto:

  1. Puede agregar las tablas a la página de exclusión en el asistente de clasificación anterior para que no se agregue a la biblioteca de clases de datos
  2. Si la tabla puede tener datos en el futuro, asigne las clases de datos manualmente aquí. Entonces, o
    • Desmárquelos en el asistente de enmascaramiento
    • Déjelos y el asistente de enmascaramiento creará secuencias de comandos de trabajo que se ejecutan pero no enmascaran
  3. o elimine la fuente de datos de la biblioteca de clases de datos

En este ejemplo, seleccione las siguientes fuentes de datos y haga clic en Eliminar ya que están vacíos o no necesitan ser enmascarados:

   SCOTT.DEMO_ROWGEN
   SCOTT.DM_EMPLOYEES
   SCOTT.PACIENTE_REGISTRO_ENCRIPTADO

Se debe tener cuidado para verificar los resultados en la biblioteca de clases de datos antes del enmascaramiento. A veces se pierden las coincidencias porque los datos no son válidos o es necesario modificar el comparador de clases de datos. También es posible que se produzcan falsos positivos.

En este ejemplo, una clase de datos debe asignarse manualmente porque hay direcciones de correo electrónico y formatos de números de teléfono de EE. UU. no válidos, pero queremos enmascarar esas columnas de todos modos. Podemos seleccionar y clasificar esta columna para:

   SCOTT.EMPLOYEES.PHONE_NUMBER> PHONE_US

Una vez que los resultados se revisan y modifican según sea necesario, haga clic en las clases de datos en la biblioteca de la izquierda para asignar reglas predeterminadas. Esto le permitirá asignar las reglas a todas las fuentes simplemente asignando una regla predeterminada a una clase.

En este ejemplo, asigné mis reglas de enmascaramiento a las clases de datos en la biblioteca de la siguiente manera:

   CREDIT_CARD> FieldEncryptionRule
   EMAIL> Regla de cifrado de campo
   L(AST)?[_-]?NAME> LNamePseudonymRule
   PHONE_US> Regla de cifrado de campo
   PIN_US> Regla de Redacción SSN

Puede verificar que sus asignaciones de reglas globales se propagaron completa y correctamente en las fuentes de datos revisando las reglas de enmascaramiento en cada una. Por ejemplo, en la tabla SCOTT.PERSONS que se muestra arriba con las reglas, ahora tenemos:

Si a una columna de una tabla en particular le falta una regla o necesita una regla diferente, esa regla se puede agregar o modificar después de aplicar las reglas predeterminadas al abordarlas en cada fuente de datos.

Máscara:ejecute el asistente de enmascaramiento de base de datos de clase de datos

Una vez que haya verificado que se han asignado las reglas de enmascaramiento correctas a sus clases de datos, estará listo para aplicarlas globalmente.

Haga clic derecho en iriLibrary.dataclass objeto en la carpeta de su proyecto en el árbol del Explorador de proyectos de IRI Workbench y seleccione IRI> Nueva tarea de enmascaramiento de base de datos de clase de datos . En la primera página del asistente, verifique que la carpeta del proyecto es donde se guardaron la clase de datos y la biblioteca de reglas, y asigne un nombre al trabajo. Seleccione Mostrar página de resumen para ver los detalles del trabajo.

El asistente le permite actualizar los resultados enmascarados en el Mismo tablas fuente (para enmascararlas estáticamente), a Diferentes tablas de destino, o a archivos planos (recomendado) para que primero pueda validar los resultados y cargarlos en los objetivos. Cambiar la Salida a archivos planos y haga clic en Siguiente .

En la página Filtro de clase de datos, deje todas las clases de datos seleccionadas. Haga clic en Siguiente . En la página Fuentes de datos, deje todos los elementos seleccionados. Si hubiera tablas en las que no quisiera ejecutar el trabajo, las anularía aquí.

Debido a que elegí mostrar la pantalla de resumen, puedo verificar el trabajo:

antes de hacer clic en Finalizar .

Luego se crean los scripts y se abre un diagrama de flujo para ilustrar todo el trabajo, que también se serializa como un archivo por lotes de Windows (o Unix). Cada tabla que tendrá una columna enmascarada está representada por un bloque de mapeo de transformación marrón, que se serializa en un script de tarea.

Revise las operaciones de enmascaramiento haciendo doble clic en los bloques de mapeo de transformación y examinando las líneas naranjas hacia los objetivos. Estos indican que las columnas se están cambiando desde la entrada.

Haga clic en los campos a la derecha de la línea naranja y vea la vista de propiedades en la parte inferior de la pantalla. La instrucción Campo avanzado muestra la transformación (función de enmascaramiento) aplicada.

Una vez que se sienta cómodo con el trabajo de enmascaramiento que se creó, ejecútelo. En la nueva_clase de Protección carpeta, haga clic con el botón derecho en new_classProtection.bat archivo y seleccione Ejecutar como> Programa por lotes .

El trabajo se ejecuta en la línea de comandos y los archivos de salida enmascarados se pueden abrir para su revisión desde la carpeta de su proyecto o sistema de archivos. De hecho, después de que se ejecuta la operación por lotes, todos los scripts de tareas de enmascaramiento y las salidas de archivos planos se muestran en mi nueva carpeta de trabajo.

La siguiente captura de pantalla muestra las de la izquierda, el estado anterior y posterior de una de mis tablas, PERSONAS, en el centro, y las declaraciones de tareas específicas en forma de guión y esquema a la derecha. Vea cómo las tres columnas clasificadas y asignadas por reglas en esta tabla se enmascararon según lo planeado:

Una vez que se ejecuta el trabajo de enmascaramiento por lotes, puede volver a verificar los resultados antes de:

  1. cargarlos en tablas en IRI Workbench (que puede crear automáticamente archivos de carga);
  2. modifique el trabajo para realizar cambios; y/o, 
  3. vuelva a ejecutar el asistente para dirigir la salida a las tablas.

Estos trabajos de enmascaramiento se ejecutan en la línea de comandos y se pueden activar o programar para actualizaciones de datos y archivado automático. Póngase en contacto si tiene alguna pregunta o necesita ayuda con cualquier aspecto de este proceso de configuración de extremo a extremo o su implementación.

  1. Para evitar la posibilidad de resultados de búsqueda falsos positivos en tarjetas de crédito y números de identificación nacional, puede realizar automáticamente una verificación de validez computacional durante las búsquedas a través de valores de coincidencia de patrones. Seleccione o cree un script de validación de clase de datos para asociarlo con la definición de clase de datos.
  2. Si usa FieldShield en Voracity, puede clasificar esos archivos de forma simultánea o posterior en la clave de índice principal de la tabla de destino para acelerar las cargas masivas y las consultas comunes.