Personalización de los tipos de información confidencial DLP integrados en Exchange 2013

Se aplica a: Exchange Server 2013

Cuando busca información confidencial en el correo electrónico, es necesario describir esa información en lo que se denomina una regla. Prevención de pérdida de datos (DLP) incluye un paquete de 51 reglas para los tipos más comunes de información confidencial que se pueden usar inmediatamente. Para usar estas reglas, deberá incluirlas en una directiva. Quizás quiera ajustar estas reglas integradas para satisfacer las necesidades específicas de su organización y, para hacerlo, puede crear un tipo personalizado de información confidencial. En este tema se muestra cómo personalizar el archivo XML que contiene la colección de reglas existente para detectar una amplia variedad de posible información de tarjeta de crédito.

Puede tomar este ejemplo y aplicarlo a otros tipos integrados de información confidencial. Para obtener una lista de los tipos de información confidencial predeterminados y las definiciones XML, vea el tema Tipos de información confidencial de Exchange Server.

Este tema le guía por las secciones siguientes sobre las personalizaciones de las reglas XML:

Para aprender qué son las diferentes partes de las reglas y qué hacen, vea el Term glossary al final de este tema.

Exportar el archivo XML de las reglas actuales

Para exportar el XML, debe usar el Shell de administración de Exchange. Para obtener más información, vea Shell de administración de Exchange.

  1. En el Shell de administración de Exchange, ejecute el siguiente comando para mostrar las reglas de la organización.

    Get-ClassificationRuleCollection
    

    Si no ha creado ninguna regla propia, solo verá la colección predeterminada de tipos de información confidencial integrada, con la etiqueta "Paquete de reglas de Microsoft".

  2. Almacene las reglas de su organización en una variable mediante la ejecución del siguiente comando:

    $ruleCollections = Get-ClassificationRuleCollection
    

    Almacenar algo en una variable hace que esté fácilmente disponible más adelante en un formato que funciona para los comandos de PowerShell remoto.

  3. Cree un archivo XML con formato con todos esos datos reemplazando "C:\custompath\ por una ruta de acceso de archivo real y ejecutando el siguiente comando:

    [System.IO.File]::WriteAllBytes('C:\custompath\exportedRules.xml', $ruleCollections.SerializedClassificationRuleCollection)
    

    Nota:

    Si la salida del comando Get-ClassificationRuleCollection | Format-List Name,SerializedClassificationRuleCollection muestra que la propiedad SerializedClassificationRuleCollection está vacía, recibirá el siguiente error y el resto de los procedimientos de este tema no funcionarán:

    Excepción que llama a "WriteAllBytes" con argumentos "2": "Value no puede ser null. Nombre del parámetro: bytes"

Encontrar en el archivo XML la regla que quiera modificar

Los cmdlets anteriores exportaron toda la colección de reglas, que incluye las 51 reglas predeterminadas que proporcionamos. A continuación, tendrá que buscar específicamente la regla Número de tarjeta de crédito que quiere modificar.

  1. Use un editor de texto para abrir el archivo XML exportado en la sección anterior.

  2. Desplácese hasta la etiqueta <Rules>, que es el comienzo de la sección que contiene las reglas de DLP. (Como este archivo XML contiene la información de toda la colección de reglas, contiene otra información al principio que debe pasar para llegar a las reglas).

  3. Busque Func_credit_card para encontrar la definición de la regla Número de tarjeta de crédito. (En el XML, los nombres de regla no pueden contener espacios, por lo que los espacios suelen reemplazarse por caracteres de subrayado y los nombres de regla a veces se abrevian. Un ejemplo de esto es la regla de número del Seguro Social de EE. UU., que es abreviada "SSN". El XML de regla de número de tarjeta de crédito debe ser similar al ejemplo de código siguiente.

    <Entity id="50842eb7-edc8-4019-85dd-5a5c1f2bb085"
           patternsProximity="300" recommendedConfidence="85">
          <Pattern confidenceLevel="85">
           <IdMatch idRef="Func_credit_card" />
            <Any minMatches="1">
              <Match idRef="Keyword_cc_verification" />
              <Match idRef="Keyword_cc_name" />
              <Match idRef="Func_expiration_date" />
            </Any>
          </Pattern>
        </Entity>
    

Ahora que ha encontrado la definición de la regla Número de tarjeta de crédito en el XML, puede personalizar el código XML de la regla para que se adapte a sus necesidades. (Para obtener información sobre las definiciones XML, vea el Glosario de términos al final de este tema).

Modificar el código XML y crear un tipo de información confidencial

En primer lugar, deberá crear un nuevo tipo de información confidencial porque las reglas predeterminadas no se pueden modificar directamente. Puede hacer muchas cosas con los tipos de información confidencial personalizados, tal y como se describe en Desarrollar paquetes de reglas de información confidencial. En este ejemplo, lo haremos sencillo y solo se eliminarán las evidencias confirmativas y se agregarán palabras clave a la regla Número de tarjeta de crédito.

Todas las definiciones de regla XML se basan en la siguiente plantilla general. Debe copiar y pegar el XML de definición de número de tarjeta de crédito en la plantilla, modificar algunos valores (observe el ". . ." marcadores de posición en el ejemplo siguiente) y, a continuación, cargue el XML modificado como una nueva regla que se puede usar en las directivas.

<?xml version="1.0" encoding="utf-8"?>
<RulePackage xmlns="http://schemas.microsoft.com/office/2011/mce">
  <RulePack id=". . .">
    <Version major="1" minor="0" build="0" revision="0" />
    <Publisher id=". . ." />
    <Details defaultLangCode=". . .">
      <LocalizedDetails langcode=" . . . ">
         <PublisherName>. . .</PublisherName>
         <Name>. . .</Name>
         <Description>. . .</Description>
      </LocalizedDetails>
    </Details>
  </RulePack>

 <Rules>
   <!-- Paste the Credit Card Number rule definition here.-->
      <LocalizedStrings>
         <Resource idRef=". . .">
           <Name default="true" langcode=" . . . ">. . .</Name>
           <Description default="true" langcode=". . ."> . . .</Description>
         </Resource>
      </LocalizedStrings>
   </Rules>
</RulePackage>

Ahora tiene algo parecido al siguiente XML. Como los paquetes de reglas y las reglas se identifican por sus GUID únicos, tiene que generar dos GUID: uno para el paquete de reglas y otro para reemplazar el GUID de la regla Número de tarjeta de crédito. (El GUID del identificador de entidad en el ejemplo de código siguiente es el de nuestra definición de regla integrada, que debe reemplazar por una nueva). Hay varias maneras de generar GUID, pero puede hacerlo fácilmente en PowerShell escribiendo [guid]::NewGuid().

<?xml version="1.0" encoding="utf-8"?>
<RulePackage xmlns="http://schemas.microsoft.com/office/2011/mce">
  <RulePack id="8aac8390-e99f-4487-8d16-7f0cdee8defc">
    <Version major="1" minor="0" build="0" revision="0" />
    <Publisher id="8d34806e-cd65-4178-ba0e-5d7d712e5b66" />
    <Details defaultLangCode="en">
      <LocalizedDetails langcode="en">
        <PublisherName>Contoso Ltd.</PublisherName>
        <Name>Financial Information</Name>
        <Description>Modified versions of the Microsoft rule package</Description>
      </LocalizedDetails>
    </Details>
  </RulePack>

 <Rules>
    <Entity id="db80b3da-0056-436e-b0ca-1f4cf7080d1f"
       patternsProximity="300" recommendedConfidence="85">
      <Pattern confidenceLevel="85">
        <IdMatch idRef="Func_credit_card" />
        <Any minMatches="1">
          <Match idRef="Keyword_cc_verification" />
          <Match idRef="Keyword_cc_name" />
          <Match idRef="Func_expiration_date" />
        </Any>
      </Pattern>
    </Entity>
      <LocalizedStrings>
         <Resource idRef="db80b3da-0056-436e-b0ca-1f4cf7080d1f">
<!-- This is the GUID for the preceding Credit Card Number entity because the following text is for that Entity. -->
           <Name default="true" langcode="en-us">Modified Credit Card Number</Name>
           <Description default="true" langcode="en-us">Credit Card Number that looks for additional keywords, and another version of Credit Card Number that doesn't require keywords (but has a lower confidence level)</Description>
         </Resource>
      </LocalizedStrings>
   </Rules>
</RulePackage>

Quitar el requisito de evidencias corroborativas de un tipo de información confidencial

Ahora que tiene un tipo de información confidencial que puede cargar a su entorno de Exchange, el siguiente paso es hacer que la regla sea más específica. Modifique la regla para solo parezca un número de 16 dígitos que pasa la suma de comprobación pero no requiere evidencia (confirmativa) adicional (por ejemplo, palabras clave). Para ello, tiene que quitar la parte del código XML que busca la evidencia confirmativa. La evidencia confirmativa es muy útil para reducir falsos positivos porque, normalmente, hay determinadas palabras claves o una fecha de caducidad cerca del número de tarjeta de crédito. Si quita esa evidencia, debe ajustar también la seguridad que tiene de haber encontrado un número de tarjeta de crédito; para ello, reduzca confidenceLevel, que es 85 en el ejemplo.

<Entity id="db80b3da-0056-436e-b0ca-1f4cf7080d1f" patternsProximity="300"
      <Pattern confidenceLevel="85">
        <IdMatch idRef="Func_credit_card" />
      </Pattern>
    </Entity>

Buscar palabras clave específicas de la organización

Quizás quiera requerir evidencia confirmativa pero con palabras claves diferentes o adicionales, y quizás quiera cambiar dónde buscar esa evidencia. Puede ajustar el valor de patternsProximity para aumentar o reducir el radio donde se buscará la evidencia confirmativa alrededor del número de 16 dígitos. Para agregar sus propias palabras clave, debe definir una lista de palabras clave y hacer referencia a ella en su regla. El siguiente código XML agrega las palabras clave "company card" y "Contoso card" para que los mensajes que contengan esas frases a menos de 150 caracteres de un número de tarjeta de crédito se identifiquen como número de tarjeta de crédito.

<Rules>
<! -- Modify the patternsProximity to be "150" rather than "300." -->
    <Entity id="db80b3da-0056-436e-b0ca-1f4cf7080d1f" patternsProximity="150" recommendedConfidence="85">
      <Pattern confidenceLevel="85">
        <IdMatch idRef="Func_credit_card" />
        <Any minMatches="1">
          <Match idRef="Keyword_cc_verification" />
          <Match idRef="Keyword_cc_name" />
<!-- Add the following XML, which references the keywords at the end of the XML sample. -->
          <Match idRef="My_Additional_Keywords" />
          <Match idRef="Func_expiration_date" />
        </Any>
      </Pattern>
    </Entity>
<!-- Add the following XML, and update the information inside the <Term> tags with the keywords that you want to detect. -->
    <Keyword id="My_Additional_Keywords">
      <Group matchStyle="word">
        <Term caseSensitive="false">company card</Term>
        <Term caseSensitive="false">Contoso card</Term>
      </Group>
    </Keyword>

Cargar la regla

Para cargar la regla, siga el procedimiento siguiente.

  1. Guárdela como un archivo .xml con codificación Unicode. Es importante porque la regla no funcionará si se guarda con una codificación diferente.

  2. Conéctese al Shell de administración de Exchange.

  3. Reemplace por \C:\custompath\ una ruta de acceso de archivo real y ejecute el siguiente comando:

    New-ClassificationRuleCollection -FileData ([System.IO.File]::ReadAllBytes('C:\custompath\MyNewRulePack.xml'))
    
  4. Para confirmar, escriba S y presione Entrar.

  5. Compruebe que la nueva regla se cargó; para ello, escriba Get-DataClassification, que ahora muestra el nombre de la regla.

Para comenzar a usar la nueva regla para detectar información confidencial, tiene que agregarla a una directiva DLP. Para saber cómo agregar la regla a una directiva, vea Administrar directivas de DLP.

Glosario de términos

Estas son las definiciones de los términos que encontró en este procedimiento.

Término Definición
Entidad Las entidades son lo que llamamos tipos de información confidencial, como números de tarjeta de crédito. Cada entidad tiene un GUID único como ID. Si copia un GUID y lo busca en el código XML, encontrará la definición de regla XML y todas las traducciones localizadas de esa regla XML. Para encontrar esta definición, puede buscar el GUID de la traducción y, después, buscar por ese GUID.
Funciones El archivo XML hace referencia a Func_credit_card, que es una función en código compilado. Las funciones se usan para ejecutar regexe complejos y verificar que las sumas de comprobación de nuestras reglas integradas coinciden). Dado que esto sucede en el código, algunas de las variables no aparecen en el archivo XML.
IdMatch Este es el identificador que el patrón intenta coincidir (por ejemplo, un número de tarjeta de crédito). Encontrará más información sobre esta etiqueta y sobre la etiqueta Match en Reglas de la entidad.
Lista de palabras clave El archivo XML también hace referencia a keyword_cc_verification y keyword_cc_name, que son listas de palabras en las que buscamos coincidencias dentro de patternsProximity para la entidad. Actualmente no se muestran en el archivo XML.
Patrón El patrón contiene la lista de lo que el tipo confidencial está buscando. Incluye palabras clave, regexe y funciones internas (que realizan tareas como verificar sumas de comprobación). Los tipos de información confidencial pueden tener varios patrones con confianzas únicas. Esto resulta útil para crear un tipo de información confidencial que devuelve una confianza alta si se encuentra evidencia confirmativa y una confianza menor si se encuentra poca o ninguna evidencia confirmativa.
Patrón confidenceLevel Este es el nivel de confianza en el que el motor de DLP encontró una coincidencia. Este nivel de confianza está asociado con una coincidencia del patrón si se cumplen los requisitos del patrón. Esta es la medida de la confianza que debe tener en cuenta al usar las reglas de transporte de Exchange (ETR).
patternsProximity Cuando encontramos lo que parece un patrón de número de tarjeta de crédito, patternsProximity es la proximidad alrededor de la cual buscaremos una evidencia confirmativa.
recommendedConfidence Este es el nivel de confianza que recomendamos para esta regla. La confianza recomendada se aplica a entidades y afinidades. En el caso de las entidades, este número nunca se evalúa con el valor de confidenceLevel del patrón. Es simplemente una sugerencia para ayudar a elegir un nivel de confianza si quiere aplicar uno. Para las afinidades, el valor de confidenceLevel del patrón debe ser mayor que el número de recommendedConfidence para que se invoque una acción de ETR. El valor de recommendedConfidence es el nivel de confianza predeterminado que se usa en las ETR que invoca una acción. Si quiere, puede cambiar manualmente la ETR que se invocará según el nivel de confianza del patrón.

Más información