DataSunrise Logra el Estado de Competencia en AWS DevOps en AWS DevSecOps y Monitoreo, Registro, Rendimiento

Clasificación de Datos

Clasificación de Datos

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 datos en función de su sensibilidad, criticidad y valor para la organización. Al clasificar los datos, las empresas pueden garantizar que se apliquen las medidas de seguridad apropiadas para proteger la información sensible del acceso no autorizado, el uso indebido o las brechas. 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 las 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 granular de los datos en sí, a menudo utilizando técnicas como el reconocimiento 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 un número significativo de verificaciones 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 fábrica en DataSunrise, así como otras características poderosas como el descubrimiento de datos basado en OCR (Reconocimiento Óptico de Carácteres).

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 definen un patrón de búsqueda. Permiten coincidir y extraer patrones específicos dentro de los datos textuales.

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 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"Número de SSN encontrado: {cell}")

En este ejemplo, tenemos una lista de listas que representan una tabla de base de datos. Cada lista anidada 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 formato r’…’ en Python trata las barras invertidas (\) como caracteres literales. Esto es particularmente útil en las expresiones regulares porque las barras invertidas se usan comúnmente como caracteres de escape. Al usar literales de cadena sin formato, no necesitas escapar las barras invertidas dos veces (una 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, utilizamos 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 y el valor coincidente.

Ejecutar este código producirá el siguiente resultado:

Correo electrónico encontrado: [email protected]
Número de Mastercard encontrado: 5555-5555-5555-4444
Número de SSN encontrado: 123-45-6789
Correo electrónico encontrado: [email protected]
Número de Mastercard encontrado: 4111-1111-1111-1111
Número de SSN encontrado: 987-65-4321
Correo electrónico encontrado: [email protected]
Número de SSN encontrado: 456-78-9012

Es importante tener en cuenta que crear expresiones regulares completas para todas las variaciones posibles de datos sensibles puede ser un desafío. 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 utilizar expresiones regulares simples como punto de partida y refinarlas continuamente según 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 adicionales para clasificar datos sensibles:

Número de Teléfono (formato de EE. UU., con +1 y sin +1):

^\\(?([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 en 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 necesitas 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, 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 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 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 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 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 números de 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 nombre de dominio. Esta es una variante corta. Puedes encontrar fácilmente las discusiones en stackoverflow sugiriendo variantes más avanzadas.

Recuerda, estas expresiones regulares son ejemplos y pueden necesitar ser adaptadas según 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 completa de los datos. Debes usarlas junto con otras medidas de seguridad, como el cifrado de datos, controles de acceso y prácticas de almacenamiento seguro.

Al trabajar con datos sensibles, es crucial considerar los requisitos y regulaciones específicos aplicables a tu dominio. Siempre consulta los marcos y directrices de seguridad y cumplimiento relevantes para garantizar el manejo y protección adecuados de la información sensible.

Conclusión

La clasificación de datos es un aspecto crucial de la seguridad y el cumplimiento de los datos. Al categorizar los datos en función de su sensibilidad y aplicar los controles de seguridad apropiados, las organizaciones pueden proteger la información sensible del acceso no autorizado y las brechas.

Python y las expresiones regulares proporcionan 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 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 el cifrado, los controles de acceso y la supervisión, para garantizar una protección sólida 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 proteger sus datos sensibles y cumplir con los requisitos reglamentarios de manera efectiva. Te invitamos a programar una demo en línea para explorar cómo DataSunrise puede ayudarte a clasificar y proteger tus activos de datos críticos.

Siguiente

Localización de Datos

Localización de Datos

Más información

¿Necesita la ayuda de nuestro equipo de soporte?

Nuestros expertos estarán encantados de responder a sus preguntas.

Información general:
[email protected]
Servicio al Cliente y Soporte Técnico:
support.datasunrise.com
Consultas sobre Asociaciones y Alianzas:
[email protected]