Ejemplos de Clasificación de Datos

Introducción
En el paisaje digital actual, los datos son la savia vital de las organizaciones. Desde los registros de clientes hasta las 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 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 la información según su sensibilidad, criticidad y valor para la organización. Al clasificar los datos, las empresas pueden asegurarse de que se implementen medidas de seguridad adecuadas para salvaguardar la información sensible contra accesos no autorizados, usos indebidos o violaciones. 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 consiste en organizar la información en categorías o clases predefinidas basadas en sus características y nivel de sensibilidad. El objetivo principal es identificar y priorizar aquellos datos que requieren controles de seguridad y protección reforzados.
Existen dos enfoques principales para la clasificación de datos:
Clasificación por Esquema
Este enfoque consiste en analizar los metadatos de la base de datos, como los nombres de columnas, tablas, vistas y funciones. Por ejemplo, si una columna se llama ‘last_name’, se clasifica como dato sensible.
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 detallado de los datos, utilizando técnicas como la búsqueda 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 función 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 viene incluida en DataSunrise, al igual que otras potentes características como el descubrimiento de datos basado en OCR.
Clasificando 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 definen un patrón de búsqueda. Permiten identificar y extraer patrones específicos dentro de datos en texto.
Consideremos un ejemplo en el que tenemos una tabla de base de datos virtual que contiene varios tipos de información, incluyendo correos electrónicos, números de tarjetas de crédito y números de seguro social (SSN). Nuestro objetivo es clasificar estos datos e identificar la información sensible.
import re
# Datos de ejemplo
data = [
['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 row in data:
for cell in row:
if re.match(email_regex, cell):
print(f"Correo electrónico encontrado: {cell}")
elif re.match(mastercard_regex, cell):
print(f"Número de Mastercard encontrado: {cell}")
elif re.match(ssn_regex, cell):
print(f"SSN encontrado: {cell}")
En este ejemplo, tenemos una lista de listas que representa 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 capturan los patrones específicos asociados a cada tipo de dato sensible.
Una cadena literal sin procesar (r’…’) en Python trata las barras invertidas (\) como caracteres literales. Esto resulta particularmente útil en expresiones regulares, ya que las barras invertidas suelen utilizarse como caracteres de escape. Con los literales sin procesar, no es necesario escapar las barras invertidas dos veces (una vez para Python y otra para el motor de expresiones regulares).
Utilizando un bucle anidado, iteramos sobre cada fila y celda en los datos. Para cada celda, usamos la función re.match() para comprobar si el valor coincide con alguna de las expresiones regulares definidas. Si se encuentra una coincidencia, se imprime el tipo de dato sensible correspondiente y el valor detectado.
Ejecutar este código producirá la siguiente salida:
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 notar que crear expresiones regulares completas para todas las posibles variaciones de datos sensibles puede ser un desafío. Los diferentes formatos de datos, casos límite y patrones en evolución pueden dificultar la identificación precisa de cada instancia. Por ello, es buena idea utilizar expresiones regulares simples como punto de partida e ir refinándolas continuamente según los requerimientos específicos y los datos en escenarios del mundo real.
Patrones Adicionales de Datos Sensibles
A continuación, se muestran algunas expresiones regulares adicionales 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 diversos formatos. Como se puede apreciar en el enlace anterior, existen numerosas expresiones regulares que ayudan a clasificar números telefónicos en distintos formatos y para diversos países. Esta complejidad complica el proceso de clasificación, ya que es necesario incluir todas estas expresiones para clasificar adecuadamente todos los datos.
Dirección IP (IPv4):
^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$Esta expresión regular coincide con direcciones IPv4, asegurando 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 los 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 los Números de Cuenta Bancaria Internacionales (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 los números de tarjeta de crédito American Express, que comienzan con 34 o 37 y tienen un total de 15 dígitos.
Número de Seguro Social (SSN) con guiones:
^(?!666|000|9\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}$Esta expresión regular coincide con los 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 en el dominio. Esta es una variante corta. Puedes encontrar fácilmente las discusiones en Stack Overflow que sugieren variantes más avanzadas.
Recuerda, estas expresiones regulares son ejemplos y pueden necesitar adaptarse según tus requerimientos 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 los datos. Se deben utilizar junto con otras medidas de seguridad, como el cifrado de datos, controles de acceso y prácticas seguras de almacenamiento.
Al trabajar con datos sensibles, es crucial tener en cuenta los requerimientos específicos y las regulaciones aplicables al sector. Siempre consulta los marcos y pautas de seguridad y cumplimiento pertinentes para asegurar el manejo y la protección adecuados de la información sensible.
Clasificación Avanzada y Manejo de Falsos Positivos
En entornos del mundo real, depender únicamente de expresiones regulares estáticas no es suficiente. Los datos sensibles pueden aparecer en formatos inesperados o estar ocultos en texto libre, PDFs o imágenes. Por ello, es crucial contar con una estrategia de clasificación en capas.
Más Allá de Regex: Combinando Métodos de Clasificación
- Detección basada en metadatos — Analiza los nombres de tablas y columnas (p. ej.,
ssn,email_address). - Detección basada en el contenido — Utiliza patrones regex para coincidir con valores dentro de los datos.
- Análisis basado en OCR — Identifica texto en documentos e imágenes escaneadas.
- Análisis basado en proxy — Detecta campos sensibles en consultas SQL en tiempo real.
DataSunrise combina estas capas de clasificación en un motor unificado de descubrimiento. Defina los Tipos de Información una vez y reutilícelos en las políticas de auditoría, enmascaramiento y seguridad.
Gestión Centralizada de Regex en DataSunrise
Todas las expresiones de clasificación pueden gestionarse de forma centralizada mediante el editor integrado de Tipos de Información. Por ejemplo, una expresión regular para números de tarjetas de crédito puede almacenarse bajo el tipo CreditCard y referenciarse en reglas de auditoría y enmascaramiento:
Patrón: ^4[0-9]{12}(?:[0-9]{3})?$
Etiqueta: VISA
Usado en: Reglas de Auditoría, Enmascaramiento Dinámico, Informes de Descubrimiento
Reduce Falsos Positivos con Contexto de Validación
DataSunrise puede validar los valores detectados en función del contexto (nombre de columna, longitud, distribución de caracteres) y soporta reglas de exclusión para reducir los falsos positivos. Por ejemplo, un número como 123-45-6789 podría coincidir con el formato de SSN, pero si la columna es invoice_id, se ignora la coincidencia.
Etiquetas de Clasificación Regulatoria
También puede etiquetar los campos clasificados con dominios de cumplimiento, tales como:
Estas etiquetas permiten controles de acceso basados en reglas e informes alineados con los marcos regulatorios.
¿Quiere ver en acción la clasificación y enmascaramiento centralizados? Solicite una demostración y permítanos mostrarle escenarios del mundo real adaptados a su panorama de datos.
Conclusión
La clasificación de datos es un aspecto crucial de la seguridad y el cumplimiento. Al categorizar la información según su sensibilidad y aplicar controles de seguridad apropiados, las organizaciones pueden proteger los datos sensibles contra accesos no autorizados y violaciones.
Python y las expresiones regulares ofrecen herramientas poderosas para clasificar datos en función de su contenido. Al definir expresiones regulares que coincidan con patrones específicos, podemos identificar y marcar los datos sensibles dentro de conjuntos de datos estructurados o no estructurados.
Sin embargo, es importante reconocer los desafíos asociados a la creación de expresiones regulares integrales para todas las posibles variaciones de datos. Las expresiones regulares deben utilizarse junto con otras medidas de seguridad, como el cifrado, controles de acceso y monitoreo, para garantizar una protección robusta de la información.
En DataSunrise, ofrecemos herramientas excepcionales y flexibles para el descubrimiento de datos sensibles, la seguridad, las reglas de auditoría, el enmascaramiento y el cumplimiento. Nuestras soluciones permiten a las organizaciones proteger sus datos sensibles y cumplir eficazmente con los requisitos regulatorios. Le animamos a programar una demostración en línea para explorar cómo DataSunrise puede ayudarle a clasificar y proteger sus activos críticos de datos.
