Lire en anglais

Partager via


En savoir plus sur l’utilisation d’expressions régulières (expression régulière) dans les stratégies de protection contre la perte de données

Une expression régulière, communément appelée expression régulière, est une séquence de caractères qui définit un modèle de recherche. Les expressions régulières sont principalement utilisées pour la correspondance de modèles avec des chaînes et dans la correspondance de chaînes ; par exemple, dans les opérations « rechercher et remplacer ». Vous pouvez utiliser une expression régulière dans Protection contre la perte de données Microsoft Purview (DLP) pour définir des modèles qui vous aident à identifier et classifier des données sensibles, ou à détecter des modèles dans le contenu. Les utilisations d’expressions régulières les plus courantes dans Microsoft Purview DLP sont les suivantes :

Cet article décrit les problèmes courants qui se produisent lors de l’utilisation d’expressions régulières et explique comment les résoudre.

Problème de validation potentiel lors de l’utilisation d’une expression régulière avec DLP

  • Les unités de base du modèle, telles que les caractères littéraux, les chiffres, les espaces blancs et les signes de ponctuation, peuvent être représentées par elles-mêmes ou par des symboles spéciaux appelés métacharacteurs, comme \d pour n’importe quel chiffre, \s pour n’importe quel espace blanc ou \. pour un point littéral.
  • Lorsqu’elles sont combinées avec des quantificateurs, les unités de base spécifient le nombre de fois qu’elles peuvent ou doivent se produire dans une correspondance. Par exemple, * signifie zéro ou plus, + signifie un ou plusieurs, ? signifie zéro ou un, et {n,m} signifie entre net m heures. Par exemple, \d+ signifie un ou plusieurs chiffres, \s? signifie un espace blanc facultatif et a{3,5} signifie entre trois et cinq instances du caractère littéral a.
  • Une expression régulière utilise un lookbehind positif ou un lookbehind négatif. Un lookbehind est utilisé pour case activée s’il existe une correspondance avant une certaine position dans la chaîne d’entrée, sans inclure les caractères réels dans la correspondance. Un lookbehind positif est utilisé pour faire correspondre lorsque le modèle lookbehind est présent, tandis qu’un lookbehind négatif est utilisé pour faire correspondre lorsque le modèle lookbehind n’est pas présent.
  • Prenons l’exemple suivant : (?<=^|\s|_). Cet exemple montre un lookbehind qui comprend trois possibilités :
    1. ^ affirme la position. Dans ce cas, la correspondance de modèle doit commencer au début de la ligne.
    2. \s détecte les espaces blancs en tant que correspondance.
    3. _ correspond au caractère de trait de soulignement littéral ( _ ).
  • Dans l’exemple précédent, les possibilités 2 et 3 correspondent chacune à un seul caractère. Toutefois, la possibilité n°1 indique uniquement où la correspondance doit commencer. Il ne produit aucun résultat en ce qui concerne les correspondances de caractères.
  • Prenons un deuxième exemple, ^\d+$. Cette expression régulière détecte uniquement une chaîne composée entièrement de chiffres, du début à la fin.

Comment obtenir du texte extrait

Une expression régulière est mise en correspondance sur le texte extrait du contenu, plutôt que sur le contenu lui-même. Par conséquent, même lorsque le modèle semble se trouver sur le contenu, il peut ne pas correspondre lors de l’évaluation d’une stratégie DLP.

Pour vous assurer que vous capturez les correspondances appropriées, procédez comme suit :

  1. Utilisez l’applet de commande Test-TextExtraction pour obtenir le texte extrait, qui sera constitué d’un flux de chaînes.
  2. Ensuite, utilisez le texte extrait pour faire correspondre l’expression régulière.

Par exemple :

PowerShell
$data = ([System.IO.File]::ReadAllBytes('<FilePath>'))
$tr = Test-TextExtraction -FileData $data
$tr.ExtractedResults.ExtractedStreamText | Format-List

Comment vérifier la détection des types d’informations sensibles

Pour vérifier la détection de type d’informations sensibles (SIT), nous devons prendre le texte que nous venons d’extraire, puis exécuter l’applet de commande Test-DataClassification dessus pour vérifier la détection. Les résultats de l’exécution de l’applet de commande indiquent s’il existe des correspondances SIT pour l’expression régulière.

Par exemple :

PowerShell
$textStream = $tr.ExtractedResults.ExtractedStreamText | Out-String
$result = Test-DataClassification -TextToClassify $textStream
$result.ClassificationResults | Format-List

Exemple d’utilisation d’une expression régulière dans une règle de stratégie DLP

Dans cet exemple, nous allons bloquer les e-mails qui contiennent des chaînes commençant par ABC suivie d’un nombre.

Expression régulière utilisée :^ABC\d

Exemple de règle DLP :New-DlpComplianceRule -Name "Rule_00" -Policy "Policy_00" -SubjectOrBodyMatchesPatterns "^ABC\d" - BlockAccess $True

Exemple d’e-mail

exemple d’e-mail pour la correspondance regex

Bien qu’il semble que l’expression régulière détecte une correspondance avec cet élément de courrier, le texte extrait ressemble à ceci :

Regex Test Email ABC123

Comme vous pouvez le voir, le texte extrait commence par le contenu dans la ligne d’objet de l’e-mail, plutôt que par le contenu dans le corps de l’e-mail. Toutefois, l’inclusion du caractère d’assertion, ^, au début de l’expression régulière nécessite que la chaîne ABC... soit au début du texte extrait pour qu’une correspondance soit détectée.

Pour résoudre ce problème, vous pouvez remplacer l’expression régulière par ABC\d.

En savoir plus sur les expressions régulières