Ejemplo de Clasificación de Datos
Introducción
En el panorama digital actual, los datos son el alma de las organizaciones. Desde registros de clientes hasta transacciones financieras, las empresas dependen de grandes cantidades de información para tomar decisiones informadas y fomentar el crecimiento. Sin embargo, no todos los datos son iguales. Algunos datos son más sensibles que otros y requieren un manejo y protección especiales. Aquí es donde entra en juego la clasificación de datos.
La clasificación de datos es el proceso de categorizar los datos en función de su sensibilidad, criticidad y valor para la organización. Al clasificar los datos, las empresas pueden asegurarse de que se implementen las medidas de seguridad adecuadas para proteger la información sensible del acceso no autorizado, el uso indebido o las violaciones de seguridad. En este artículo, exploraremos los fundamentos de la clasificación de datos y profundizaremos en ejemplos de cómo se puede implementar utilizando Python y expresiones regulares.
Comprendiendo la Clasificación de Datos
La clasificación de datos implica organizar los datos en categorías o clases predefinidas en función de sus características y nivel de sensibilidad. El objetivo principal de la clasificación de datos es identificar y priorizar los datos que requieren controles de seguridad mejorados y protección.
Existen dos enfoques principales para la clasificación de datos:
Clasificación por Esquema
Este enfoque implica analizar los metadatos de la base de datos para los nombres de columnas, tablas, vistas y funciones. Por ejemplo, si una columna se llama ‘apellido’, se clasifica como datos sensibles.
Clasificación por Datos
En este enfoque, se analiza el contenido real de los datos para determinar su sensibilidad y clasificación. Este método requiere un examen más minucioso de los propios datos, a menudo utilizando técnicas como la coincidencia de patrones o expresiones regulares para identificar información sensible.
Estos dos enfoques se pueden combinar según se desee. Además, DataSunrise los combina cuando el usuario crea atributos para el Tipo de Información utilizado en la característica de Descubrimiento de Datos Sensibles. Más adelante, exploraremos cómo el uso de expresiones regulares resulta en una cantidad significativa de comprobaciones para cada expresión. Por lo tanto, el control centralizado de todos los mecanismos de clasificación de datos es extremadamente importante. Esta funcionalidad está disponible de serie en DataSunrise, así como otras funciones potentes como el descubrimiento de datos basado en OCR.
Clasificación de Datos con Python y Expresiones Regulares
Una herramienta poderosa para clasificar datos son las expresiones regulares. Las expresiones regulares, o regex, son una secuencia de caracteres que define un patrón de búsqueda. Permiten hacer coincidir y extraer patrones específicos dentro de los datos de texto.
Consideremos un ejemplo en el que tenemos una tabla de base de datos virtual que contiene varios tipos de información, incluidos correos electrónicos, números de tarjetas de crédito y números de seguridad social (SSN). Nuestro objetivo es clasificar estos datos e identificar la información sensible.
import re # Datos de muestra datos = [ ['John Doe', '[email protected]', '5555-5555-5555-4444', '123-45-6789'], ['Jane Smith', '[email protected]', '4111-1111-1111-1111', '987-65-4321'], ['Bob Johnson', '[email protected]', '1234-5678-9012-3456', '456-78-9012'] ] # Expresiones regulares para datos sensibles email_regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b' mastercard_regex = r'\b(?: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}\b' ssn_regex = r'\b(?!000|666)[0-8][0-9]{2}-(?!00)[0-9]{2}-(?!0000)[0-9]{4}\b' # Clasificar los datos for fila in datos: for celda in fila: if re.match(email_regex, celda): print(f"Correo electrónico encontrado: {celda}") elif re.match(mastercard_regex, celda): print(f"Número de Mastercard encontrado: {celda}") elif re.match(ssn_regex, celda): print(f"SSN encontrado: {celda}")
En este ejemplo, tenemos una lista de listas que representan una tabla de base de datos. Cada lista interna representa una fila y cada elemento dentro de la fila representa un valor de columna.
Definimos expresiones regulares para identificar correos electrónicos, números de Mastercard y SSN. Estas expresiones regulares capturan los patrones específicos asociados con cada tipo de datos sensibles.
Un literal de cadena sin procesar r’…’ en Python trata las barras invertidas (\) como caracteres literales. Esto es particularmente útil en expresiones regulares porque las barras invertidas se usan comúnmente como caracteres de escape. Al usar literales de cadena sin procesar, no necesitas escapar las barras invertidas dos veces (una para Python y otra para el motor de expresiones regulares).
Usando un bucle anidado, iteramos sobre cada fila y celda en los datos. Para cada celda, usamos la función re.match() para verificar si el valor de la celda coincide con alguna de las expresiones regulares definidas. Si se encuentra una coincidencia, imprimimos el tipo de datos sensibles correspondiente y el valor coincidente.
Ejecutando este código se obtendrá el siguiente resultado:
Correo electrónico encontrado: [email protected] Número de Mastercard encontrado: 5555-5555-5555-4444 SSN encontrado: 123-45-6789 Correo electrónico encontrado: [email protected] Número de Mastercard encontrado: 4111-1111-1111-1111 SSN encontrado: 987-65-4321 Correo electrónico encontrado: [email protected] SSN encontrado: 456-78-9012
Es importante tener en cuenta que crear expresiones regulares completas para todas las posibles variaciones de datos sensibles puede ser un desafío. Los diferentes formatos de datos, casos extremos y patrones en evolución pueden dificultar la captura precisa de cada instancia. Por eso es una buena idea usar expresiones regulares simples como punto de partida y refinarlas continuamente en función de los requisitos específicos y los datos en escenarios del mundo real.
Patrones Adicionales de Datos Sensibles
A continuación, se presentan algunas expresiones regulares más para clasificar datos sensibles:
Número de Teléfono (formato de EE.UU., con +1 y sin él):
^\\(?([0-9]{3})\\)?[-.\\s]?([0-9]{3})[-.\\s]?([0-9]{4})$
o
^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$
Estas expresiones regulares coinciden con números de teléfono en varios formatos. Como puedes ver desde el enlace anterior, hay una gran cantidad de expresiones regulares que ayudan a clasificar números de teléfono en diferentes formatos y en diferentes países. Esta complejidad complica el proceso de clasificación, ya que debes incluir todas estas expresiones regulares para clasificar todos los datos con precisión.
Dirección IP (IPv4):
^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$
Esta expresión regular coincide con direcciones IPv4, asegurándose de que cada octeto esté dentro del rango válido (0-255).
Número de Pasaporte (formato de EE.UU.):
^(?!^0+$)[a-zA-Z0-9]{3,20}$
Esta expresión regular coincide con números de pasaporte de EE.UU.
Número de Cuenta Bancaria (formato IBAN):
^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$
Esta expresión regular coincide con Números de Cuenta Bancaria Internacional (IBAN) en el formato estándar. Puedes encontrar una lista de diferentes formatos (expresiones regulares) en Apache Validator.
Número de Tarjeta de Crédito (American Express):
^3[47][0-9]{13}$
Esta expresión regular coincide con números de tarjetas de crédito American Express, que comienzan con 34 o 37 y tienen un total de 15 dígitos.
Número de Seguridad Social (SSN) con guiones:
^(?!666|000|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0{4})\\d{4}$
Esta expresión regular coincide con SSN en el formato XXX-XX-XXXX, excluyendo ciertos patrones inválidos como 000 en el número de área o 0000 en el número de serie.
Dirección de Correo Electrónico:
^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$
Esta expresión regular coincide con direcciones de correo electrónico, permitiendo una combinación de caracteres alfanuméricos, puntos, guiones bajos y guiones en la parte local y el nombre de dominio. Esta es una variante corta. Puede encontrar fácilmente las discusiones en stackoverflow que sugieren variantes más avanzadas.
Recuerda, estas expresiones regulares son ejemplos y pueden necesitar ser adaptadas en función de tus requisitos específicos y los formatos de datos que encuentres. Además, las expresiones regulares por sí solas no son suficientes para una protección integral de datos. Debes usarlas junto con otras medidas de seguridad, como cifrado de datos, controles de acceso y prácticas de almacenamiento seguras.
Al trabajar con datos sensibles, es crucial considerar los requisitos específicos y las regulaciones aplicables a tu dominio. Siempre consulta los marcos de seguridad y cumplimiento relevantes y las pautas para asegurar el manejo y la protección adecuados de la información sensible.
Conclusión
La clasificación de datos es un aspecto crucial de la seguridad de datos y el cumplimiento. Al categorizar los datos en función de su sensibilidad y aplicar los controles de seguridad adecuados, las organizaciones pueden proteger la información sensible del acceso no autorizado y las violaciones.
Python y las expresiones regulares proporcionan herramientas poderosas para clasificar datos basados en su contenido. Al definir expresiones regulares que coincidan con patrones específicos, podemos identificar y marcar datos sensibles dentro de conjuntos de datos estructurados o no estructurados.
Sin embargo, es importante reconocer los desafíos asociados con la creación de expresiones regulares completas para todas las posibles variaciones de datos. Las expresiones regulares deben usarse junto con otras medidas de seguridad, como cifrado, controles de acceso y monitoreo, para garantizar una protección robusta de los datos.
En DataSunrise, ofrecemos herramientas excepcionales y flexibles para el descubrimiento de datos sensibles, seguridad, reglas de auditoría, enmascaramiento y cumplimiento. Nuestras soluciones permiten a las organizaciones salvaguardar sus datos sensibles y cumplir con los requisitos normativos de manera efectiva. Te invitamos a programar una demostración en línea para explorar cómo DataSunrise puede ayudarte a clasificar y proteger tus activos de datos críticos.