Toutes les règles PhishER doivent suivre la logique des règles YARA (Yet Another Recursive/Ridiculous Acronym, encore un autre acronyme récursif/ridicule) pour le classement des messages. Vous pouvez utiliser les règles YARA pour classer des messages selon les pièces jointes incluses, de la fraude de PDG potentielle et plus encore. Ce guide vous propose une liste des cas d’utilisation courants des règles YARA. Vous pouvez créer ces règles pour les utiliser dans votre plateforme PhishER. Pour des informations générales au sujet de l’écriture des règles YARA, consultez notre article Comment écrire les règles YARA ou notre vidéo Règles YARA.
Règle pour les pièces jointes
Si vous souhaitez créer une règle YARA qui détecte la présence de tout type de pièce jointe dans un courriel, vous pouvez utiliser l’exemple de règle qui apparaît dans la capture d’écran et le bloc de code ci-dessous.
rule Attachments
{
strings:
$Attachment = "X-Attachment-Id"
condition:
$Attachment
}
Cette règle ne détecte pas des types de pièces jointes en particulier. Si vous souhaitez écrire une règle qui détecte des types de pièces jointes en particulier, vous pouvez utiliser l’exemple de règle qui apparaît dans la capture d’écran et le 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 pour les courriels provenant de logiciels automatisés
Si vous souhaitez créer une règle YARA qui détecte les courriels provenant de logiciels automatisés, vous pouvez utiliser l’exemple de règle qui apparaît dans la capture d’écran et le 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 les crochets avec le nom d’une application logicielle. Nous vous recommandons d’utiliser le nom d’une application logicielle que votre organisation utilise ou de laquelle elle est susceptible de recevoir des courriels.
Règle pour la fraude de PDG
Si vous souhaitez créer une règle YARA qui reconnaît les tentatives potentielles de fraude de PDG, vous pouvez utiliser l’exemple de règle qui apparaît dans la capture d’écran et le 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 instance de l’espace réservé [votrePDG@exemple.com] par l’adresse courriel de votre PDG. Vous devrez également remplacer chaque instance de l’espace réservé [votrePDG] par le nom de votre PDG.
Règle pour un expéditeur interne
Si vous souhaitez créer une règle YARA qui reconnaît les courriels provenant de votre domaine et qui ne sont pas des courriels usurpés, vous pouvez utiliser l’exemple de règle qui apparaît dans la capture d’écran et dans le bloc de code ci-dessous.
rule InternalSender
{
strings:
$a = /from:.{0,60}@domain.com/ nocase
$b = /Return-Path:.{0,60}@domain.com/ nocase
$c = "header.from=domain.com"
$d = /Authentication-Results:.{0,20}spf=pass/ nocase
condition:
all of them
}
Règle pour les courriels de formation de KnowBe4
Si vous souhaitez créer une règle YARA qui détecte tous les courriels de notification liés aux formations de votre console KSAT, vous pouvez utiliser l’exemple de règle qui apparaît dans la capture d’écran et le 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 pour les valeurs absentes
Vous pouvez créer une règle YARA qui détecte lorsqu’une valeur est absente d’une cible PhishER sélectionnée. Pour créer cette règle, vous pouvez utiliser l’exemple de règle qui apparaît dans la capture d’écran et le bloc de code ci-dessous :
rule notPresent
{
strings:
$a = "KnowBe4" nocase
condition:
(not $a) and (filesize > 0)
}
Pour utiliser cette règle, vous devrez inclure la variable spéciale filesize dans la condition de votre règle. La variable filesize vérifie si la cible que vous avez sélectionnée est vide. Ce processus est utile si vous recevez un courriel avec un corps de message en texte brut et un corps de message HTML, car un type de corps de message peut être vide alors que l’autre peut contenir votre chaîne. Si vous n’utilisez pas la variable filesize, le courriel pourrait correspondre faussement à votre règle notPresent.
Tableau des expressions régulières les plus courantes
Une expression régulière, ou regex, est une séquence de caractères utilisée pour identifier un motif dans des chaînes de texte. Pour en savoir plus sur les expressions régulières qui sont couramment utilisées dans les règles YARA pour PhishER, consultez le tableau ci-dessous. Pour plus d’informations au sujet des expressions régulières, consultez la documentation de YARA Écriture des règles YARA.
| Opérateurs et modificateurs | Description |
|---|---|
| \n |
Cette expression régulière est une séquence d’échappement qui recherche une nouvelle ligne. |
| . | Cette expression régulière est un métacaractère qui correspond à n’importe quel caractère ou symbole. |
| {n, m} |
Cette expression régulière est un quantificateur qui recherche une série de correspondances entre un certain nombre de caractères représentés par n et m. Cette expression régulière est utilisée pour identifier les segments correspondants d’une chaîne.
Remarque : Vous pouvez utiliser l’expression régulière {n,m} après n’importe quel caractère. Voir les exemples ci-dessous :
|
| | | Cette expression régulière est un métacaractère qui indique un opérateur de permutation semblable à l’opérateur « OR ». Cette expression régulière recherche une correspondance parmi de multiples expressions régulières possibles. |
| * | Cette expression régulière est un quantificateur qui recherche zéro ou plusieurs correspondances. |
| ? | Cette expression régulière est un quantificateur qui recherche zéro ou une correspondance. |
const name = "Chris Coyier"; console.log(name);






