Consideraciones para datos sensibles dentro de los conjuntos de datos de aprendizaje automático

Cuando estás desarrollando un programa de aprendizaje automático (AA), es importante equilibrar el acceso a los datos dentro de tu empresa con las implicaciones de seguridad de ese acceso. Quieres que la información valiosa contenida en el conjunto de datos sin procesar guíe el entrenamiento de AA, incluso si el acceso a datos sensibles está limitado. Para lograr ambos objetivos, es útil entrenar a los sistemas de AA en un subconjunto de los datos sin procesar, o en el conjunto de datos completo después de la aplicación parcial de cualquier técnica de agregación o de ofuscación.

Por ejemplo, es posible que desees que tus ingenieros de datos entrenen un modelo de AA para evaluar los comentarios de los clientes sobre un producto, pero no quieres que sepan quién envió los comentarios. Sin embargo, la información como la dirección de entrega y el historial de compra es de vital importancia para el entrenamiento del modelo de AA. Después de proporcionar los datos a los ingenieros, deberán consultarlos con fines de exploración, por lo que es importante proteger tus campos de datos sensibles antes de ponerlos a su disposición. Este tipo de dilema también es común en los modelos de AA que involucran motores de recomendaciones. Para crear un modelo que muestre resultados específicos del usuario, generalmente necesitas acceso a datos específicos del usuario.

Afortunadamente, existen técnicas que puedes utilizar para quitar algunos datos sensibles de tus conjuntos de datos mientras sigues entrenando modelos de AA efectivos. En este artículo, se destacan algunas estrategias a fin de identificar y proteger la información sensible y los procesos para ayudar a abordar los problemas de seguridad que puedas tener con tus datos de AA.

Administra información sensible

La información sensible corresponde a cualquier dato que tú y tu asesor legal desean proteger con medidas de seguridad adicionales, como el acceso restringido o la encriptación. Por ejemplo, los campos como nombre, dirección de correo electrónico y datos de facturación se consideran sensibles. También se considera sensible la información que podría permitir a un ingeniero de datos o a una persona malintencionada deducir indirectamente la información sensible.

Los estándares como HIPAA y PCI-DSS especifican un conjunto de recomendaciones para proteger datos sensibles, al mismo tiempo que informan a los clientes sobre la forma en que se deben manejar sus datos confidenciales. Estos certificados permiten a los clientes tomar decisiones fundamentadas sobre la seguridad de su información.

El manejo de datos sensibles en conjuntos de datos de aprendizaje automático puede ser difícil por las siguientes razones:

  • La mayoría de la seguridad basada en funciones está orientada hacia el concepto de propiedad, lo que significa que un usuario puede ver o editar sus propios datos, pero no puede acceder a los datos que no le pertenecen. El concepto de propiedad se descompone con los conjuntos de datos de AA que son una agregación de datos de muchos usuarios. Esencialmente, a los ingenieros de datos se les debe otorgar acceso de visualización a un conjunto de datos completo para poder usarlo de manera efectiva.
  • La encriptación o la reducción de la resolución de campos sensibles se utilizan a menudo como una medida preventiva, pero no siempre son suficientes para un conjunto de datos de AA. El conjunto de datos agregado a menudo proporciona los medios para romper la encriptación mediante ataques de análisis de frecuencia.
  • La asignación de token, supresión o eliminación aleatoria de los campos sensibles del conjunto de datos puede degradar la capacitación efectiva del modelo de AA ocultando los datos necesarios, lo que da como resultado un rendimiento bajo de tus predicciones.

Las organizaciones a menudo desarrollan herramientas y un conjunto de recomendaciones para lograr un equilibrio adecuado entre seguridad y utilidad. Para ayudar a proteger los datos sensibles en los conjuntos de datos de AA, ten en cuenta los siguientes tres objetivos, que se analizan en el resto de este documento:

  • Identifica datos sensibles en el conjunto de datos con un alto nivel de confianza.
  • Protege los datos sensibles sin afectar negativamente al proyecto. Esto se puede lograr quitando, enmascarando o engrosando los datos que determinaste como sensibles.
  • Crea un plan de administración y la documentación de recomendaciones. Esto permite a tus ingenieros de datos, así como a los clientes, tomar las decisiones adecuadas sobre tus datos sensibles, en particular aquellas situaciones en las que los datos sensibles no se pueden identificar, enmascarar o quitar de manera confiable.

Estos tres objetivos se analizan en detalle en las siguientes secciones, que se enfocan en situaciones en las que tus conjuntos de datos permanecen privados dentro de tu empresa. En este artículo no se cubren las situaciones en las que los conjuntos de datos deben compartirse públicamente.

Cómo identificar datos sensibles

Los datos sensibles pueden existir en tu entorno en varias situaciones. En las siguientes secciones se cubren cinco de las situaciones más comunes y se presentan métodos que puedes usar para identificar datos sensibles en cada una.

Datos sensibles en columnas

Los datos sensibles se pueden restringir a columnas específicas en conjuntos de datos estructurados. Por ejemplo, puedes tener un conjunto de columnas que contienen el nombre, el apellido y la dirección de correo de un usuario. En este caso, identificas qué columnas tienen datos sensibles, decides cómo protegerlas y documentas estas decisiones.

Datos sensibles en conjuntos de datos no estructurados basados en texto

Los datos sensibles pueden formar parte de un conjunto de datos no estructurados basados en texto y, a menudo, pueden detectarse con patrones conocidos. Por ejemplo, los números de tarjetas de crédito en las transcripciones del chat se pueden detectar de manera confiable con un patrón de expresión regular común para los números de tarjetas de crédito. Los errores de detección de expresiones regulares, que conducen a errores de clasificación, se pueden minimizar con herramientas más complejas como la API de Cloud Data Loss Prevention (DLP).

Datos sensibles en datos no estructurados de formato libre

Los datos sensibles pueden existir en datos no estructurados de formato libre, como informes de texto, grabaciones de audio, fotografías o recibos escaneados. Estos conjuntos de datos hacen que sea mucho más difícil identificar tus datos sensibles, pero hay muchas herramientas disponibles para ayudarte.

  • Para documentos de texto libre, puedes usar un sistema de procesamiento de lenguaje natural, como la API de Cloud Natural Language, a fin de identificar entidades, direcciones de correo electrónico y otros datos sensibles.
  • Para las grabaciones de audio, puedes utilizar un servicio de voz a texto, como la API de Cloud Speech, y, luego, aplicar el procesador de lenguaje natural.
  • Para las imágenes, puedes utilizar un servicio de detección de texto, como la API de Cloud Vision, a fin de obtener un texto sin formato de la imagen y aislar la ubicación de ese texto dentro de la imagen. La API de Vision puede proporcionar las coordenadas de las ubicaciones de algunos elementos orientados dentro de las imágenes, y puedes usar esta información, por ejemplo, a fin de enmascarar todas las caras de las imágenes de una línea de caja registradora antes de entrenar un modelo de aprendizaje automático para estimar los tiempos promedio de espera de los clientes.
  • Para los videos, puedes analizar cada video en marcos de imagen individuales y tratarlos como archivos de imagen, o puedes usar una herramienta de procesamiento de video como la API de Cloud Video Intelligence junto con la API de Cloud Speech a fin de procesar el audio.

Estas técnicas aún están sujetas a la revisión y aprobación de tu propio asesor legal y dependen de qué tan bien tus sistemas son capaces de procesar texto libre, transcribir audio, comprender imágenes y segmentar videos para identificar posibles datos sensibles. Las API de Google enumeradas anteriormente, así como la PPD de Cloud, son herramientas poderosas que puedes incorporar en tu canalización de procesamiento previo. Sin embargo, estos métodos automatizados son imperfectos, y querrás considerar mantener una política de administración para tratar con cualquier información sensible que quede después de la limpieza.

Datos sensibles en una combinación de campos

Los datos sensibles pueden existir como una combinación de campos o manifestarse a partir de una tendencia en un campo protegido a lo largo del tiempo. Por ejemplo, una práctica estándar para reducir la probabilidad de identificar a un usuario es difuminar los dos últimos dígitos del código postal, lo que reduce el código postal de cinco a tres ("zip3"). Sin embargo, una combinación de zip3 asociada con el trabajo y una zip3 asociada con la dirección personal puede ser suficiente para identificar a los usuarios con combinaciones inusuales de vivienda y zona laboral. De manera similar, una tendencia de dirección personal zip3 a lo largo del tiempo podría ser suficiente para identificar a una persona que se mudó varias veces.

Identificar si un conjunto de datos está verdaderamente protegido frente a un ataque de análisis de frecuencia requiere experiencia estadística. Cualquier situación que dependa de expertos humanos presenta desafíos de escalabilidad y, paradójicamente, puede requerir que el mismo ingeniero de datos limpie los datos sin procesar para inspeccionarlos en busca de posibles problemas. Lo ideal sería crear formas automatizadas de identificar y cuantificar este riesgo; una tarea que está más allá del alcance de este artículo.

En cualquier caso, debes trabajar con tu asesor legal y tus ingenieros de datos para evaluar tu exposición al riesgo en estas situaciones.

Datos sensibles en contenido no estructurado

Los datos sensibles a veces existen en el contenido no estructurado debido a la información contextual incorporada. Por ejemplo, una transcripción de chat puede incluir la frase "Llamé ayer desde mi oficina. Tuve que ir al vestíbulo del piso dieciocho junto al Café Deluxe Espresso, porque el cuarto piso tiene mala recepción móvil".

Según el contexto y el alcance de tus datos de entrenamiento y el consejo de tu asesor legal, es posible que quieras filtrar algunos aspectos de este contenido. Debido a la naturaleza no estructurada y al gran conjunto de combinaciones complejas de frases que podrían permitir inferencias similares, esta es una situación difícil de abordar con herramientas programáticas, pero vale la pena considerar una administración más estricta en relación con el acceso a todo el conjunto de datos no estructurados.

Para el desarrollo de modelos, a menudo es efectivo tomar una muestra secundaria de estos datos que limpió y revisó una persona de confianza y ponerlos a disposición para el desarrollo del modelo. Entonces podrás utilizar las restricciones de seguridad y la automatización del software para procesar el conjunto de datos completo a través del proceso de entrenamiento de modelos de producción.

Cómo proteger datos sensibles

Una vez que identificaste tus datos sensibles, debes determinar cómo protegerlos.

Cómo quitar datos sensibles

Si la información específica del usuario no es necesaria para tu proyecto, considera quitar toda esa información del conjunto de datos antes de proporcionarlo a los ingenieros de datos que están construyendo tu modelo de AA. Sin embargo, como se mencionó anteriormente, hay casos en los que la eliminación de los datos sensibles reduce drásticamente el valor del conjunto de datos y, en estos casos, los datos sensibles deben enmascararse con una o más de las técnicas analizadas en la sección Cómo enmascarar datos sensibles.

Según la estructura del conjunto de datos, la eliminación de datos sensibles requiere diferentes enfoques:

  • Cuando los datos están restringidos a columnas específicas en conjuntos de datos estructurados, puedes crear una vista que no proporcione acceso a las columnas en cuestión. Los ingenieros de datos no pueden ver los datos, pero, al mismo tiempo, los datos están "en vivo" y no requieren intervención humana a fin de quitarles los ID para el entrenamiento continuo.
  • Cuando los datos sensibles forman parte del contenido no estructurado, pero se pueden identificar con patrones conocidos, se pueden quitar y reemplazar automáticamente con una string genérica. Así es como la PPD de Cloud aborda este desafío.
  • Cuando hay datos sensibles en imágenes, videos, audio o datos sin formato no estructurados, puedes ampliar las herramientas que implementaste a fin de identificar los datos sensibles para enmascararlos o quitarlos.
  • Cuando hay datos sensibles debido a una combinación de campos, y ya incorporaste herramientas automatizadas o pasos de análisis de datos manuales para cuantificar el riesgo que representa cada columna, tus ingenieros de datos pueden tomar decisiones fundamentadas sobre la retención o eliminación de cualquier columna relevante.

Cómo enmascarar datos sensibles

Cuando no puedes quitar campos de datos sensibles, es posible que tus ingenieros de datos entrenen modelos efectivos con los datos en un formato enmascarado. Se pueden usar varias técnicas para enmascarar los datos si tus ingenieros de datos determinan que algunos o todos los campos de datos sensibles se pueden enmascarar sin afectar la capacitación de AA.

  • El enfoque más común es utilizar un cifrado de sustitución, que implica reemplazar todos los casos de un identificador de texto sin formato por su valor encriptado o de hash. En general, se recomienda el uso de un hash criptográfico fuerte como SHA-256 o un algoritmo de encriptación fuerte como AES-256 para almacenar todos los campos sensibles. Es importante recordar que el uso de sal con tu encriptación no creará valores repetibles y es perjudicial para el entrenamiento de AA.

  • La asignación de tokens es una técnica de enmascaramiento que sustituye un valor ficticio no relacionado por el valor real almacenado en cada campo sensible. La asignación del valor ficticio al valor real se encripta/genera un hash en una base de datos completamente diferente y probablemente más segura. Vale la pena señalar que este método funciona para conjuntos de datos de AA solo si el mismo valor de token se reutiliza en valores idénticos. En este caso, es similar a un cifrado de sustitución y es vulnerable a los ataques de análisis de frecuencia. La principal diferencia es que la asignación de tokens agrega una capa adicional de protección enviando los valores encriptados en una base de datos separada.

  • Otro método para proteger datos con varias columnas utiliza el Análisis de componentes principales (PCA) o distintas técnicas de reducción de dimensión para combinar varias características y luego realizar el entrenamiento de AA solo en los vectores de PCA resultantes. Por ejemplo, en tres campos diferentes determinados, edad, fumador (representado como 1 o 0) y peso corporal, los datos podrían condensarse en una sola columna de PCA que usa la siguiente ecuación: 1.5 edad + 30 fumador + 0.2* peso corporal. Una persona que tiene 20 años, fuma y pesa 140 libras genera un valor de 88. Es el mismo valor que genera alguien que tiene 30 años, no fuma y pesa 215 libras.

    Este método puede ser bastante robusto, porque incluso si uno identifica a individuos que son únicos de alguna manera, es difícil determinar sin una explicación de la fórmula del vector de PCA lo que los hace únicos. Sin embargo, todo el procesamiento de PCA reduce la distribución de datos y cambia la exactitud por seguridad.

Como se señaló anteriormente, a veces es posible romper un cifrado de sustitución con un conocimiento a priori de la frecuencia con la que aparecen diferentes identificadores "en la naturaleza" y derivar inferencias de la ocurrencia real de los diversos identificadores encriptados. Por ejemplo, la distribución de nombres de pila en un conjunto de datos públicos de nombres de bebés puede usarse a fin de inferir el conjunto probable de nombres para un identificador encriptado particular. Dado que las personas malintencionadas pueden tener acceso al conjunto de datos completo, la encriptación, el hash y la asignación de tokens son vulnerables a los ataques de análisis de frecuencia. En la generalización y la cuantización, se usa una asignación de muchos a uno en su sustitución, y la inferencia correspondiente es ligeramente más débil, pero aún vulnerable a un ataque de análisis de frecuencia. Debido a que los conjuntos de datos de aprendizaje automático tienen una cantidad de variables correspondientes, el ataque de análisis de frecuencia puede usar las probabilidades conjuntas de casos, lo que posibilita que el algoritmo de cifrado sea mucho más fácil de descifrar.

Por lo tanto, todos los métodos de enmascaramiento deben combinarse con un mecanismo efectivo de auditoría y administración para restringir el acceso a todos los conjuntos de datos de aprendizaje automático que podrían contener datos sensibles. Esto incluye conjuntos de datos en los que todos los campos sensibles se suprimieron, encriptaron, cuantificaron o generalizaron.

Cómo engrosar datos sensibles

El engrosamiento es otra técnica utilizada para disminuir la precisión o el nivel de detalle de los datos con el fin de hacer que sea más difícil identificar los datos sensibles dentro del conjunto de datos, al mismo tiempo que te brinda beneficios comparables frente al entrenamiento de tu modelo con los datos previamente acortados. Los siguientes campos son particularmente adecuados para este enfoque:

  • Ubicaciones. La densidad de población varía en todo el mundo, y no hay una respuesta fácil a cuánto debes redondear las coordenadas de ubicación. Por ejemplo, las latitudes y longitudes decimales, redondeadas a una precisión de un solo dígito (p. ej., -90.3, aproximadamente dentro de los 10 km), podrían ser suficientes para identificar a los residentes de áreas rurales con granjas grandes. Cuando el redondeo no es suficiente para las coordenadas, puedes usar identificadores de ubicación como ciudad, estado o código postal. Estos cubren áreas mucho más grandes y, por lo tanto, hacen que sea más difícil distinguir a un solo individuo. Elige un tamaño de bucket lo suficientemente grande como para ofuscar de forma adecuada las características únicas de cualquier fila.
  • Códigos postales. Los códigos postales de EE.UU. en un formato de 5 + 4 pueden identificar un hogar, pero se pueden engrosar para incluir solo los primeros tres dígitos ("zip3"). Esto limita la capacidad de identificar a un usuario específico colocando a muchos usuarios en el mismo bucket. Una vez más, es posible que quieras cuantificar este riesgo, ya que los conjuntos de datos extremadamente grandes permiten ataques cada vez más sofisticados.
  • Cantidades numéricas. Los números se pueden discretizar para que sea menos probable que identifiquen a una persona. Por ejemplo, a menudo no se requiere una fecha de nacimiento exacta, solo la década o el mes en que nació un usuario. Por lo tanto, las edades, las fechas de nacimiento y los campos numéricos similares pueden acortarse sustituyendo los rangos.
  • Dirección IP. Las direcciones IP a menudo son parte de cualquier flujo de trabajo de aprendizaje automático que involucra registros de aplicaciones y, a menudo, se tratan como direcciones físicas en términos de sensibilidad. Una buena técnica de engrosamiento es poner a cero el último octeto de las direcciones IPv4 (los últimos 80 bits si se usa IPv6). Esto tiene la misma función que redondear la latitud/longitud o reducir una dirección de calle a un código postal, cambiando la precisión geográfica para mayor protección. Involúcrate en el engrosamiento de la dirección IP tan pronto como sea posible en la canalización: incluso podrías modificar tu software de registro para enmascarar o suprimir las direcciones IP antes de escribirlas en el disco.

Cómo establecer una política de administración

Si tus conjuntos de datos tienen algún dato sensible, se recomienda que consultes a un asesor legal para establecer algún tipo de política de administración y documentación de recomendaciones. Tú determinas los detalles de la política y hay muchos recursos disponibles, como las Prácticas recomendadas para mantener el cumplimiento de las normas PCI DSS del Consejo de Normas de Seguridad de PCI, y los requisitos de técnicas de seguridad ISO/IEC 27001:2013 que se encuentran disponibles para verlos aquí. La siguiente lista también contiene una serie de conceptos comunes que puedes considerar cuando estableces tu marco de trabajo de políticas:

  • Establecer una ubicación segura para la documentación de administración.
  • Excluir claves de encriptación, funciones de hash o distintas herramientas de tu documentación.
  • Documentar todas las fuentes conocidas de datos sensibles entrantes.
  • Documentar todas las ubicaciones conocidas de datos sensibles almacenados junto con el tipo de datos presente. Incluir todos los pasos de solución que se tomaron para protegerlos.
  • Documentar las ubicaciones de datos sensibles conocidos en los que los pasos de solución sean difíciles, inconsistentes o imposibles. Esto cubre situaciones en las que se sospecha que podrían usarse ataques de análisis de frecuencia.
  • Establecer un proceso para buscar y, luego, identificar continuamente fuentes nuevas de datos sensibles.
  • Documentar las funciones y (posiblemente) los nombres de empleados individuales a los que se les otorgó acceso temporal o permanente a datos sensibles. Incluir información sobre por qué requirieron el acceso.
  • Documentar los procesos mediante los cuales los empleados solicitan acceso a datos sensibles. Especificar en qué lugar pueden acceder a los datos sensibles, si pueden copiarlos, cómo y en qué parte, y cualquier otra restricción asociada con el acceso.
  • Establecer un proceso para revisar regularmente quién tiene acceso a qué datos sensibles y determinar si aún se requiere acceso. Describir qué hacer cuando los empleados abandonan o cambian las funciones como parte de un proceso de baja de servicios.
  • Establecer un proceso para comunicar las políticas, hacerlas cumplir y revisarlas periódicamente.

Próximos pasos