Toutes les règles PhishER doivent suivre la logique de règle YARA (Yet Another Recursive/Ridiculous Acronym, soit « Encore un autre acronyme récursif/ridicule ») pour catégoriser les messages. Vous pouvez par exemple utiliser les règles YARA pour catégoriser les messages selon qu’ils contiennent une pièce jointe, une potentielle fraude de PDG, etc. Ce guide vous propose des exemples courants d’applications des règles YARA. Vous pouvez créer ces règles pour les appliquer dans votre plateforme PhishER. Consultez notre article Comment écrire des règles YARA ou notre vidéo Règles YARA pour obtenir des informations générales sur l’écriture des règles YARA.
Règle relative aux pièces jointes
Si vous souhaitez créer une règle YARA qui détecte la présence de n’importe quel type de pièce jointe dans un e-mail, utilisez l’exemple de règle de la capture d’écran et du bloc de code ci-dessous :
rule Attachments
{
strings:
$Attachment = "X-Attachment-Id"
condition:
$Attachment
}
Cette règle ne détecte aucun type spécifique de pièce jointe. Si vous souhaitez écrire une règle qui détecte des types spécifiques de pièces jointes, utilisez les exemples de règles de la capture d’écran et du bloc de code ci-dessous :
rule Attachments
strings:
$doc = ".doc"
$htm = ".htm"
$exe = ".exe"
$pdf = ".pdf"
$excel = ".xlsx"
$ics = ".ics"
$png = ".png"
$jpg = ".jpg"
$gif = ".gif"
condition:
any of them
}
Règle relative aux e-mails automatiques de logiciels
Si vous souhaitez écrire une règle YARA qui détecte les e-mails automatiques de logiciels, utilisez l’exemple de règle de la capture d’écran et du bloc de code ci-dessous :
rule Automated_SoftwareEmails
{
strings:
$ = /(\n|\r)From:.{0,200}[Salesforce].{0,200}</ nocase
$ = /(\n|\r)Subject:.{0,200}[Salesforce]/ nocase
$ = /(\n|\r)From:.{0,200}[HubSpot].{0,200}</ nocase
$ = /(\n|\r)Subject:.{0,200}[HubSpot]/ nocase
condition:
any of them
}
Pour que cette règle fonctionne, vous devrez remplacer le texte entre crochets par le nom d’une application logicielle. Nous vous recommandons d’utiliser le nom d’une application logicielle utilisée au sein de votre organisation ou susceptible de vous envoyer des e-mails.
Règle relative à la fraude de PDG
Si vous souhaitez écrire une règle YARA qui identifie les tentatives de fraude de PDG, utilisez l’exemple de règle de la capture d’écran et du bloc de code ci-dessous :
rule CEO_Fraud
{
strings:
$FromEmail = /From:.{0,20}\<[votrePDG@exemple.com]\>/ nocase
$FromName = /From:.{0,20}[votrePDG].{0,20}<.{5,100}>/ nocase
$FromNameEmail = /From:.{0,20}[votrePDG].{0,20}\<[votrePDG@exemple.com]\>/ nocase
$Reply = /Reply-To:.{0,20}/ nocase
$ReplyEmail = /Reply-To:.{0,20}\<[votrePDG@exemple.com]\>/ nocase
$ReplyName = /Reply-To:.{0,20}[votrePDG].{0,20}\</ nocase
$ReplyNameEmail = /Reply-To:.{0,20}[votrePDG].{0,20}\<[votrePDG@exemple.com]\>/ nocase
condition:
($Reply and $FromNameEmail and not $ReplyNameEmail)
or ($Reply and not $FromNameEmail and $ReplyNameEmail)
or ($Reply and $FromEmail and not $ReplyEmail)
or ($Reply and not $FromEmail and $ReplyEmail)
or ($FromName and not $FromEmail)
or ($ReplyName and not $ReplyNameEmail)
}
Si vous utilisez cette règle, vous devrez remplacer chaque occurrence du texte générique [votrePDG@exemple.com] par l’adresse e-mail réelle de votre PDG. Vous devrez également remplacer chaque occurrence du texte générique [votrePDG] par le nom de votre PDG.
Règle relative à un expéditeur interne
Si vous souhaitez écrire une règle YARA qui identifie tout e-mail provenant de votre domaine qui n’est pas une usurpation d’identité, utilisez l’exemple de règle de la capture d’écran et du bloc de code ci-dessous :
rule InternalSender
{
strings:
$a = /from:.{0,60}@domaine.com/ nocase
$b = /Return-Path:.{0,60}@domaine.com/ nocase
$c = "header.from=domaine.com"
$d = /Authentication-Results:.{0,20}spf=pass/ nocase
condition:
all of them
}
Règle relative aux e-mails de formation de KnowBe4
Si vous souhaitez écrire une règle YARA qui détecte tous les e-mails de notification de formation de votre console KSAT, utilisez l’exemple de règle de la capture d’écran et du bloc de code ci-dessous :
rule KnowBe4_TrainingEmails
{
strings:
$ = /Return-Path:.{0,50}psm.knowbe4.com>/ nocase
$ = /Received:.{0,50}(147.160.167.\d{1,3})/ nocase
$ = /Received:.{0,50}(23.21.109.197)/ nocase
$ = /Received:.{0,50}(23.21.109.212)/ nocase
$ = /Received:.{0,50}psm.knowbe4.com/ nocase
condition:
any of them
}
Règle Non présent
Vous pouvez créer une règle YARA qui détecte si une valeur n’est pas présente dans la cible PhishER sélectionnée. Pour créer cette règle, utilisez l’exemple de règle de la capture d’écran et du bloc de code ci-dessous :
rule notPresent
{
strings:
$a = "KnowBe4" nocase
condition:
(not $a) and (filesize > 0)
}
Pour utiliser cette règle, vous devrez indiquer une variable filesize comme condition de votre règle. La variable filesize contrôle si la cible que vous avez sélectionnée est vide. Ce processus est utile si vous recevez un e-mail avec un corps en texte brut et un corps en HTML, car un type de corps peut être vide, mais l’autre peut contenir votre chaîne de caractères. Sans la variable filesize, l’e-mail pourrait correspondre à tort aux critères de votre règle Non présent.
Tableau des expressions régulières les plus courantes
Une expression régulière, également appelée regex, est une séquence de caractères utilisée pour identifier un motif dans une chaîne de texte. Pour en savoir plus sur les expressions régulières fréquemment utilisées dans les règles YARA pour PhishER, consultez le tableau ci-dessous. Pour plus d’informations sur les expressions régulières, consultez la documentation sur l’écriture des règles YARA.
| Opérateurs et modificateurs | Description |
|---|---|
| \n |
Cette regex est une séquence d’échappement qui recherche une nouvelle ligne. |
| . | Cette regex est un métacaractère correspondant à n’importe quel caractère ou symbole. |
| {n, m} |
Cette regex est un quantificateur qui recherche une plage de correspondance composée du nombre de caractères compris entre n et m. Cette regex est utilisée pour identifier les segments d’une chaîne correspondant à un critère.
Remarque : vous pouvez utiliser la regex {n,m} à la suite de n’importe quel caractère. En voici un exemple :
|
| | | Cette regex est un métacaractère qui indique un opérateur d’alternance, similaire à un opérateur OR (ou). Cette regex recherche une correspondance parmi de nombreuses expressions régulières possibles. |
| * | Cette regex est un quantificateur qui recherche zéro ou plusieurs correspondances. |
| ? | Cette regex est un quantificateur qui recherche zéro ou une correspondance. |
const name = "Chris Coyier"; console.log(name);






