Modifica detectores de Infotipo para definir mejor los resultados de análisis

Los detectores de Infotipo integrados de Cloud Data Loss Prevention (DLP) son eficientes a la hora de encontrar tipos comunes de datos sensibles. Los detectores de Infotipo personalizado te permiten personalizar por completo tu propio detector de datos sensibles. Las reglas de inspección ayudan a definir mejor los resultados de análisis que muestra Cloud DLP a través de la modificación del mecanismo de detección de un determinado detector de Infotipo.

Si deseas excluir o incluir más valores de los resultados que muestra un detector de Infotipo incorporado, puedes crear un Infotipo personalizado nuevo desde cero y definir todos los criterios que Cloud DLP debe buscar. Otra opción es definir mejor los resultados que los detectores incorporados o personalizados de Cloud DLP muestran de acuerdo con los criterios que especificas. Puedes hacerlo si agregas reglas de inspección que pueden ayudar a reducir el ruido, aumentar la precisión y recuperación o ajustar la certeza de probabilidad de los resultados del análisis.

En este tema, se explica cómo usar los dos tipos de reglas de inspección para excluir ciertos resultados o agregar resultados adicionales, todo de acuerdo con los criterios personalizados que especifiques. Además, en este tema se presentan varios casos en los que es posible que desees modificar un detector de Infotipo existente.

Los dos tipos de reglas de inspección son los siguientes:

Reglas de exclusión

Las reglas de exclusión son útiles en situaciones como las que se describen a continuación:

  • Cuando deseas excluir las coincidencias de análisis duplicadas en los resultados que genera la superposición de detectores de Infotipo. Por ejemplo, si analizas direcciones de correo electrónico y números de teléfono, pero recibes dos resultados por dirección de correo electrónico con números de teléfono en estas, como “206-555-0764@ejemplo.org”.
  • Cuando experimentas ruido en los resultados de tu análisis. Por ejemplo, si ves que la misma dirección de correo electrónico ficticia (como ejemplo@example.com”) o que un dominio (como “example.com”) mostró un número excesivo de veces por una búsqueda de direcciones de correo electrónico legítimas.
  • Tienes una lista de términos, frases o combinación de caracteres que deseas excluir de los resultados.

Descripción general de la API de las reglas de exclusión

Cloud DLP define una regla de exclusión en el objeto ExclusionRule. Dentro de ExclusionRule, especifica uno de los siguientes objetos:

  • Un objeto Dictionary que indica que la regla de exclusión es una regla de diccionario regular.
  • Un objeto Regex que indica que la regla de exclusión es una regla de expresión regular.
  • Un objeto ExcludeInfoTypes que contiene un arreglo de detectores de Infotipo. Si uno de los detectores de Infotipo que se enumeran aquí hace coincidir un resultado, este se excluirá de los resultados del análisis.

Casos de ejemplo de la regla de exclusión

Cada uno de los siguientes fragmentos de código JSON ilustra cómo configurar Cloud DLP para el caso dado.

Omite direcciones de correo electrónico específicas del análisis del detector EMAIL_ADDRESS

En el siguiente fragmento de código JSON, se ilustra cómo indicar a Cloud DLP, mediante una InspectConfig, que debe evitar la coincidencia con “example@example.com” en un análisis que usa el detector de Infotipo EMAIL_ADDRESS:

...
    "inspectConfig":{
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"EMAIL_ADDRESS"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "dictionary":{
                  "wordList":{
                    "words":[
                      "example@example.com"
                    ]
                  }
                },
                "matchingType": "MATCHING_TYPE_FULL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

Omite las direcciones de correo electrónico que terminan con un dominio específico del análisis del detector EMAIL_ADDRESS

En el siguiente fragmento de código JSON, se ilustra cómo indicar a Cloud DLP, mediante una InspectConfig, que debe evitar la coincidencia con cualquier dirección de correo electrónico que termine en “@example.com” en un análisis que usa el detector de Infotipo EMAIL_ADDRESS:

...
    "inspectConfig":{
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"EMAIL_ADDRESS"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "regex":{
                  "pattern":".+@example.com"
                },
                "matchingType": "MATCHING_TYPE_FULL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

Omite todas las coincidencias de análisis que incluyan la subcadena "OCULTO"

En el siguiente fragmento de código JSON, se ilustra cómo indicar a Cloud DLP, mediante el uso de InspectConfig, que debe excluir cualquier resultado que incluya la subcadena “OCULTO”.

...
    "inspectConfig":{
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"ALL_BASIC"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "dictionary":{
                  "wordList":{
                    "words":[
                      "REDACTED"
                    ]
                  }
                },
                "matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

Omite las coincidencias de análisis que incluyan la subcadena "Jimmy" de un análisis de detector de Infotipo personalizado

En el siguiente fragmento de código JSON, se ilustra cómo indicar a Cloud DLP, mediante una InspectConfig, que debe evitar hacer coincidir el nombre “Jimmy” en un análisis que usa el detector de regex personalizado especificado:

...
    "inspectConfig":{
      "customInfoTypes":[
        {
          "infoType":{
            "name":"CUSTOM_NAME_DETECTOR"
          },
          "regex":{
            "pattern":"\d{2,6}\s\w.\s(\b\w*\b\s){2,4}\w*\."
          }
        }
      ],
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"CUSTOM_NAME_DETECTOR"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "dictionary":{
                  "wordList":{
                    "words":[
                      "jimmy"
                    ]
                  }
                },
                "matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

Omite coincidencias de análisis de un detector de PERSON_NAME que se superponen con un detector personalizado

En este caso, el usuario no desea que un análisis de Cloud DLP con el detector integrado PERSON_NAME genere una coincidencia si esta también coincide en un análisis con el detector de regex personalizado definido en la primera parte del fragmento. En el siguiente fragmento de código JSON, se especifican tanto un detector de regex personalizado como una regla de exclusión en la InspectConfig. El detector de regex personalizado especifica los nombres para excluir de los resultados. La regla de exclusión especifica que se debe omitir cualquier resultado que muestre un análisis para PERSON_NAME que también coincida con el detector de regex personalizado. Ten en cuenta que, en este caso, VIP_DETECTOR se marca como EXCLUSION_TYPE_EXCLUDE, por lo que no producirá resultados por sí mismo. Solo afectará a los resultados que genera el detector PERSON_NAME.

...
    "inspectConfig":{
      "customInfoTypes":[
        {
          "infoType":{
            "name":"VIP_DETECTOR"
          },
          "regex":{
            "pattern":"Larry Page|Sergey Brin"
          },
          "exclusionType":"EXCLUSION_TYPE_EXCLUDE"
        }
      ],
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"PERSON_NAME"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "excludeInfoTypes":{
                  "infoTypes":[
                    {
                      "name":"VIP_DETECTOR"
                    }
                  ]
                },
                "matchingType": "MATCHING_TYPE_FULL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

Omite coincidencias en el detector PERSON_NAME si también coincide con el detector EMAIL_ADDRESS

E el siguiente fragmento de código JSON, se ilustra cómo indicar a Cloud DLP, mediante una InspectConfig, que solo debería devolver una coincidencia en el caso de que las coincidencias para el detector PERSON_NAME se superpongan con las coincidencias del detector EMAIL_ADDRESS. El fin de esto es evitar una situación en la que una dirección de correo electrónico como "james@example.com" coincida tanto con el detector PERSON_NAME como con el EMAIL_ADDRESS.

...
    "inspectConfig":{
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"PERSON_NAME"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "excludeInfoTypes":{
                  "infoTypes":[
                    {
                      "name":"EMAIL_ADDRESS"
                    }
                  ]
                },
                "matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

Omite coincidencias en los nombres de dominio que forman parte de las direcciones de correo electrónico en un análisis del detector DOMAIN_NAME

En el siguiente fragmento de código JSON, se ilustra cómo indicar a Cloud DLP, mediante una InspectConfig, que solo debería devolver coincidencias para un análisis del detector DOMAIN_NAME si la coincidencia no se superpone con una coincidencia en un análisis del detector EMAIL_ADDRESS. En este caso, el análisis principal es un análisis del detector DOMAIN_NAME. El usuario no desea que se muestre una coincidencia de nombre de dominio en los resultados si el nombre de dominio se usa en una dirección de correo electrónico:

...
    "inspectConfig":{
      "infoTypes":[
        {
          "name":"DOMAIN_NAME"
        },
        {
          "name":"EMAIL_ADDRESS"
        }
      ],
      "customInfoTypes":[
        {
          "infoType":{
            "name":"EMAIL_ADDRESS"
          },
          "exclusionType":"EXCLUSION_TYPE_EXCLUDE"
        }
      ],
      "ruleSet":[
        {
          "infoTypes":[
            {
              "name":"DOMAIN_NAME"
            }
          ],
          "rules":[
            {
              "exclusionRule":{
                "excludeInfoTypes":{
                  "infoTypes":[
                    {
                      "name":"EMAIL_ADDRESS"
                    }
                  ]
                },
                "matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
              }
            }
          ]
        }
      ]
    }
...

Reglas de palabra clave

Las reglas de palabras clave son útiles en una situación como la que se describe a continuación:

  • Cuando deseas cambiar los valores de probabilidad asignados para analizar coincidencias en función de la proximidad de la coincidencia con una palabra clave. Por ejemplo, deseas establecer un valor de probabilidad más alto para las coincidencias en los nombres de los pacientes en función de la proximidad de los nombres a la palabra "paciente".

Descripción general de la API de reglas de palabras clave

Dentro del objeto InspectionRule de Cloud DLP, especifica un objeto HotwordRule que ajusta la probabilidad de resultados dentro de una cierta proximidad de palabras clave.

Los objetos InspectionRule se agrupan como un “conjunto de reglas” en un objeto InspectionRuleSet, junto con una lista de detectores de Infotipo al que se aplica el conjunto de reglas. Las reglas dentro de un conjunto de reglas se aplican en el orden especificado.

Casos de ejemplo de regla de palabra clave

En el fragmento de código JSON siguiente, se ilustra cómo configurar Cloud DLP para el caso en cuestión.

Aumenta la probabilidad de una coincidencia de PERSON_NAME si la palabra clave "paciente" está cerca

En el siguiente fragmento de código JSON, se ilustra el uso de un InspectConfig en una situación en la que deseas buscar nombres de pacientes en una base de datos médica. Puedes usar el detector de Infotipo integrado PERSON_NAME de Cloud DLP, pero eso hará que Cloud DLP arroje coincidencias con todos los nombres de personas, y no solo con los nombres de los pacientes. Para solucionar este problema, puedes incluir una regla de palabra clave que busque la palabra "paciente" dentro de una cierta proximidad de caracteres al primer carácter de coincidencias potenciales. Luego, puedes asignar a los resultados que coincidan con este patrón una probabilidad de “very likely” (muy probable), ya que se corresponden con tus criterios especiales. Establecer el mínimo de Likelihood a VERY_LIKELY dentro de InspectConfig garantiza que solo las coincidencias con esta configuración se mostrarán en los resultados.

...
  "inspectConfig":{
    "ruleSet":[
      {
        "infoTypes":[
          {
            "name":"PERSON_NAME"
          }
        ],
        "rules":[
          {
            "hotwordRule":{
              "hotwordRegex":{
                "pattern":"patient"
              },
              "proximity":{
                "windowBefore":50
              },
              "likelihoodAdjustment":{
                "fixedLikelihood":"VERY_LIKELY"
              }
            }
          }
        ]
      }
    ],
    "minLikelihood":"VERY_LIKELY"
  }
...

Para obtener más información detallada sobre las palabras clave, consulta Personaliza la probabilidad de coincidencia.

Caso de varias reglas de inspección

En el siguiente fragmento de código JSON InspectConfig, se ilustra la aplicación de las reglas de exclusión y de palabra clave. El conjunto de reglas de este fragmento de código incluye tanto reglas de palabra clave como reglas de exclusión de regex y diccionario. Nótese que las cuatro reglas se especifican en un arreglo dentro del elemento rules.

...
  "inspectConfig":{
    "ruleSet":[
      {
        "infoTypes":[
          {
            "name":"PERSON_NAME"
          }
        ],
        "rules":[
          {
            "hotwordRule":{
              "hotwordRegex":{
                "pattern":"patient"
              },
              "proximity":{
                "windowBefore":5
              },
              "likelihoodAdjustment":{
                "fixedLikelihood":"VERY_LIKELY"
              }
            }
          },
          {
            "hotwordRule":{
              "hotwordRegex":{
                "pattern":"doctor"
              },
              "proximity":{
                "windowBefore":5
              },
              "likelihoodAdjustment":{
                "fixedLikelihood":"UNLIKELY"
              }
            }
          },
          {
            "exclusionRule":{
              "dictionary":{
                "wordList":{
                  "words":[
                    "Quasimodo"
                  ]
                }
              },
              "matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
            }
          },
          {
            "exclusionRule":{
              "regex":{
                "pattern":"REDACTED"
              },
              "matchingType": "MATCHING_TYPE_PARTIAL_MATCH"
            }
          }
        ]
      }
    ]
  }
...

Detectores de Infotipo superpuestos

Se puede definir un detector de Infotipo personalizado que tenga el mismo nombre que un detector de Infotipo integrado. Como se muestra en la sección "Casos de ejemplo de regla de palabras clave", cuando creas un detector de Infotipo personalizado con el mismo nombre que un Infotipo integrado, todos los resultados que detecta el detector de Infotipo nuevo se agregan a los que detecta el detector integrado. Esto solo sucede, siempre y cuando el Infotipo integrado esté especificado en la lista de Infotipos en el objeto InspectConfig.

Cuando crees detectores de Infotipo personalizados nuevos, pruébalos de manera exhaustiva en el contenido de ejemplo para asegurarte de que funcionen como deseas.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Cloud Data Loss Prevention