Alle PhishER-Regeln müssen der YARA-Regellogik (Yet Another Recursive or Ridiculous Acronym) zur Einstufung von Nachrichten folgen. Mithilfe von YARA-Regeln lassen sich Nachrichten anhand von Anhängen, potenziellen CEO-Betrugsangriffen usw. einstufen. In diesem Leitfaden finden Sie eine Liste der häufigsten Anwendungsfälle für YARA-Regeln. Sie können diese Regeln erstellen und in Ihrer PhishER-Plattform verwenden. Allgemeine Informationen zum Erstellen von YARA-Regeln finden Sie im Artikel So schreiben Sie YARA-Regeln oder im Video zu YARA-Regeln.
Regel für Anhänge
Wenn Sie eine YARA-Regel erstellen möchten, um zu erkennen, ob an eine E-Mail ein Anhang angefügt ist, können Sie die Beispielregel aus dem Screenshot und folgenden Codeblock verwenden:
rule Attachments
{
strings:
$Attachment = "X-Attachment-Id"
condition:
$Attachment
}
Die Art der Anhänge wird mit dieser Regel nicht erkannt. Wenn Sie eine Regel erstellen möchten, die spezifische Arten von Anhängen erkennt, können Sie die Beispielregeln aus dem Screenshot und folgenden Codeblock verwenden:
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
}
Regel für mit automatisierter Software generierte E-Mails
Wenn Sie eine YARA-Regel erstellen möchten, die mit automatisierter Software generierte E-Mails erkennt, können Sie die Beispielregel aus dem Screenshot und folgenden Codeblock verwenden:
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
}
Damit diese Regel funktioniert, müssen Sie den Text in den eckigen Klammern durch den Namen einer Softwareanwendung ersetzen. Es wird empfohlen, den Namen einer Softwareanwendung zu verwenden, die in Ihrer Organisation verwendet wird oder von der diese wahrscheinlich eine E-Mail erhalten würde.
Regel für CEO-Betrug
Wenn Sie eine YARA-Regel erstellen möchten, die versuchten CEO-Betrug erkennt, können Sie die Beispielregel aus dem Screenshot und folgenden Codeblock verwenden:
rule CEO_Fraud
{
strings:
$FromEmail = /From:.{0,20}\<[yourCEO@example.com]\>/ nocase
$FromName = /From:.{0,20}[yourCEO].{0,20}<.{5,100}>/ nocase
$FromNameEmail = /From:.{0,20}[yourCEO].{0,20}\<[yourCEO@example.com]\>/ nocase
$Reply = /Reply-To:.{0,20}/ nocase
$ReplyEmail = /Reply-To:.{0,20}\<[yourCEO@example.com]\>/ nocase
$ReplyName = /Reply-To:.{0,20}[yourCEO].{0,20}\</ nocase
$ReplyNameEmail = /Reply-To:.{0,20}[yourCEO].{0,20}\<[yourCEO@example.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)
}
Wenn Sie diese Regel verwenden, müssen Sie alle Instanzen des Platzhalters [yourCEO@example.com] durch die E-Mail-Adresse Ihres:Ihrer CEO ersetzen. Sie müssen zudem alle Instanzen des Platzhalters [yourCEO] durch den Namen Ihres:Ihrer CEO ersetzen.
Regel für interne:n Absender:in
Wenn Sie eine YARA-Regel erstellen möchten, die nicht gespoofte E-Mails von Ihrer Domain erkennt, können Sie die Beispielregel aus dem Screenshot und folgenden Codeblock verwenden:
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
}
Regel für Trainings-E-Mails von KnowBe4
Wenn Sie eine YARA-Regel erstellen möchten, die alle Trainings-E-Mails/Trainingsbenachrichtigungen Ihrer KSAT-Konsole erkennt, können Sie die Beispielregel aus dem Screenshot und folgenden Codeblock verwenden:
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
}
Regel für „Nicht vorhanden“
Sie können eine YARA-Regel erstellen, die erkennt, ob in einem ausgewählten PhishER-Ziel ein Wert nicht vorhanden ist. Um diese Regel zu erstellen, können Sie die Beispielregel aus dem Screenshot und folgenden Codeblock verwenden:
rule notPresent
{
strings:
$a = "KnowBe4" nocase
condition:
(not $a) and (filesize > 0)
}
Um diese Regel verwenden zu können, muss die Bedingung Ihrer Regel die Variable filesize enthalten. Mit der Variable filesize wird geprüft, ob das von Ihnen ausgewählte Ziel leer ist. Diese Regel ist hilfreich, wenn Sie eine E-Mail im Nur-Text-Format und HTML-Format erhalten, da eines der Formate leer sein und das andere die Zeichenfolge enthalten kann. Ohne die Variable filesize funktioniert die Regel nicht wie gewünscht, sodass eine E-Mail unter Umständen fälschlicherweise von der Regel „Nicht vorhanden“ erfasst wird.
Tabelle mit den häufigsten regulären Ausdrücken
Ein regulärer Ausdruck oder regex ist eine Zeichenfolge zur Bestimmung eines Musters in Textzeichenfolgen. Eine Liste mit in YARA-Regeln für PhishER häufig verwendeten regulären Ausdrücken finden Sie in der folgenden Tabelle. Weitere Informationen über reguläre Ausdrücke finden Sie in der YARA-Dokumentation Schreiben von YARA-Regeln.
| Operatoren und Modifizierer | Beschreibung |
|---|---|
| \n |
Dieser reguläre Ausdruck ist eine Escapesequenz für einen Zeilenumbruch. |
| . | Dieser reguläre Ausdruck ist ein Metazeichen, das als Platzhalter für ein beliebiges Zeichen oder Symbol dient. |
| {n, m} |
Dieser reguläre Ausdruck ist ein Quantifizierer, der nach einer Reihe von Übereinstimmungen zwischen einer (bestimmten) Anzahl an Zeichen sucht, die durch n und m angegeben werden. Mit diesem regulären Ausdruck werden übereinstimmende Segmente einer Zeichenfolge identifiziert.
Hinweis: Der reguläre Ausdruck {n,m} kann nach jedem Zeichen eingefügt werden. Beispiele:
|
| | | Dieser reguläre Ausdruck ist ein Metazeichen, der ähnlich wie ein OR-Operator nach Alternativen sucht. Es wird nach einer Übereinstimmung unter mehreren möglichen regulären Ausdrücken gesucht. |
| * | Dieser reguläre Ausdruck ist ein Quantifizierer, der nach null oder mehr Übereinstimmungen sucht. |
| ? | Dieser reguläre Ausdruck ist ein Quantifizierer, der nach null oder einer Übereinstimmung sucht. |
const name = "Chris Coyier"; console.log(name);






