Tutte le regole di PhishER devono seguire la logica delle regole YARA (Yet Another Recursive/Ridiculous Acronym) per la classificazione dei messaggi. Puoi utilizzare le regole YARA per eliminare i messaggi in base agli allegati inclusi, a una potenziale truffa del CEO e ad altro ancora. Questa guida fornisce un elenco di casi d’uso comuni delle regole YARA. Puoi creare queste regole da utilizzare nella tua piattaforma PhishER. Per informazioni generali su come scrivere le regole YARA, consulta il nostro articolo Come scrivere le regole YARA o il video Regole YARA.
Regola degli allegati
Se vuoi creare una regola YARA che rilevi se il messaggio e-mail comprende un qualsiasi tipo di allegato, puoi utilizzare l’esempio di regola riportato nello screenshot e nel blocco di codice seguente:
rule Attachments
{
strings:
$Attachment = "X-Attachment-Id"
condition:
$Attachment
}
Questa regola non rileva tipi di allegati specifici. Se vuoi scrivere una regola che rilevi tipi specifici di allegati, puoi utilizzare gli esempi di regola riportati nello screenshot e nel blocco di codice seguente:
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
}
Regola delle e-mail automatiche del software
Se vuoi creare una regola YARA che rilevi le e-mail automatiche del software, puoi utilizzare l’esempio di regola riportata nello screenshot e nel blocco di codice seguente:
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
}
Affinché questa regola funzioni, dovrai sostituire il testo tra parentesi con il nome di un’applicazione software. Ti consigliamo di utilizzare il nome di un’applicazione software che la tua organizzazione utilizza o da cui potresti ricevere un’e-mail.
Regola della truffa del CEO
Se vuoi creare una regola YARA che identifichi i potenziali tentativi di truffa del CEO, puoi utilizzare l’esempio di regola riportato nello screenshot e nel blocco di codice seguente:
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)
}
Se utilizzi questa regola, dovrai sostituire ogni istanza del segnaposto [yourCEO@example.com] con l’indirizzo e-mail del tuo CEO. Dovrai anche sostituire ogni istanza del segnaposto [yourCEO] con il nome del tuo CEO.
Regola del mittente interno
Se vuoi creare una regola YARA che identifichi qualsiasi e-mail proveniente dal tuo dominio che non sia un’e-mail di spoofing, puoi utilizzare l’esempio di regola riportato nello screenshot e nel blocco di codice seguente:
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
}
Regola delle e-mail di formazione KnowBe4
Se vuoi creare una regola YARA che rilevi tutte le e-mail di notifica sulla formazione inviate dalla console KSAT, puoi utilizzare l’esempio di regola riportato nello screenshot e nel blocco di codice seguente:
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
}
Regola Non presente
Puoi creare una regola YARA che rilevi se un valore non è presente in una destinazione PhishER selezionata. Per creare questa regola, puoi utilizzare l’esempio di regola riportato nello screenshot e nel blocco di codice seguente:
rule notPresent
{
strings:
$a = "KnowBe4" nocase
condition:
(not $a) and (filesize > 0)
}
Per utilizzare questa regola, dovrai includere la variabile speciale filesize nella condizione della tua regola. La variabile filesize controlla se la destinazione selezionata è vuota. Questo processo è utile se ricevi un’e-mail con testo normale e testo HTML, poiché un tipo di testo potrebbe essere vuoto mentre l’altro potrebbe contenere la tua stringa. Senza la variabile filesize, l’e-mail potrebbe corrispondere falsamente alla regola notPresent.
Tabella delle espressioni regolari più comuni
Un’espressione regolare, o regex, è una sequenza di caratteri che viene utilizzata per identificare uno schema nelle stringhe di testo. Per conoscere le espressioni regolari che vengono spesso utilizzate nelle regole YARA di PhishER, consulta la tabella seguente. Per ulteriori informazioni sulle espressioni regolari, consulta la documentazione di YARA Scrivere regole YARA.
| Operatori e modificatori | Descrizione |
|---|---|
| \n |
Questa regex è una sequenza di escape che cerca una nuova riga. |
| . | Questa regex è un metacarattere che corrisponde a qualsiasi carattere o simbolo. |
| {n, m} |
Questa regex è un quantificatore che consente di cercare un intervallo di corrispondenze tra un numero di caratteri rappresentato da n e m. Questa regex viene utilizzata per identificare i segmenti corrispondenti a una stringa.
Nota: puoi utilizzare la regex {n,m} dopo qualsiasi carattere. Vedi gli esempi seguenti:
|
| | | Questa regex è un metacarattere che indica un operatore di alternanza, simile all’operatore OR. Cerca una corrispondenza tra più espressioni regolari possibili. |
| * | Questa regex è un quantificatore che cerca zero o più corrispondenze. |
| ? | Questa regex è un quantificatore che cerca zero corrispondenze o una sola corrispondenza. |
const name = "Chris Coyier"; console.log(name);






