Todas as regras do PhishER devem seguir a lógica da regra Yet Another Recursive/Ridiculous Acronym (YARA) para classificar as mensagens. Você pode usar as regras YARA para classificar as mensagens com base nos anexos incluídos, em possíveis fraudes do CEO, entre outros critérios. Este guia oferece uma lista de casos de uso comuns para regras YARA. Você pode criar essas regras para usar na sua plataforma PhishER. Para obter informações gerais sobre como criar regras YARA, consulte o artigo Como criar regras YARA ou assista ao vídeo Regras YARA.
Regra de anexos
Se você quiser criar uma regra YARA que detecte se algum tipo de anexo está incluído em um e-mail, poderá usar a regra de exemplo na captura de tela e no bloco de código abaixo:
rule Attachments
{
strings:
$Attachment = "X-Attachment-Id"
condition:
$Attachment
}
Essa regra não detecta tipos de anexos específicos. Se você quiser criar uma regra que detecte tipos de anexos específicos, poderá usar as regras de exemplo na captura de tela e no bloco de código abaixo:
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
}
Regra de e-mails de software automatizados
Se você quiser criar uma regra YARA que detecte e-mails de software automatizados, poderá usar a regra de exemplo na captura de tela e no bloco de código abaixo:
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
}
Para que essa regra funcione, será necessário substituir o texto entre colchetes pelo nome de um aplicativo. Recomendamos usar o nome de um aplicativo que sua organização já utilize ou do qual ela receberia um e-mail.
Regra de fraude do CEO
Se você quiser criar uma regra YARA que identifique possíveis tentativas de fraude do CEO, poderá usar a regra de exemplo na captura de tela e no bloco de código abaixo:
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)
}
Ao usar essa regra, você precisará substituir cada instância do texto escolhido [yourCEO@example.com] pelo endereço de e-mail do seu CEO. Você também precisará substituir cada instância do texto escolhido [yourCEO] pelo nome do CEO.
Regra de remetente interno
Se você quiser criar uma regra YARA que identifique qualquer e-mail proveniente do seu domínio que não seja falso, poderá usar a regra de exemplo na captura de tela e no bloco de código abaixo:
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
}
Regra de e-mails de treinamento da KnowBe4
Se quiser criar uma regra YARA que detecte todos os e-mails de notificação de treinamento do seu console do KSAT, poderá usar a regra de exemplo na captura de tela e no bloco de código abaixo:
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
}
Regra não presente
Você pode criar uma regra YARA que detecte se um valor não está presente em um destino selecionado do PhishER. Para criar essa regra, você pode usar a regra de exemplo na captura de tela e no bloco de código abaixo:
rule notPresent
{
strings:
$a = "KnowBe4" nocase
condition:
(not $a) and (filesize > 0)
}
Para usar essa regra, você precisa incluir a variável especial filesize na condição da sua regra. A variável filesize verifica se o destino selecionado está vazio. Esse processo é útil quando você recebe um e-mail com um corpo de texto simples e HTML, desde que um tipo de corpo esteja vazio e o outro contenha sua sequência de caracteres. Sem a variável filesize, o e-mail pode corresponder incorretamente à sua regra notPresent.
Tabela de expressões regulares mais comuns
Uma expressão regular, ou regex, é uma sequência de caracteres que é usada para identificar um padrão nas sequências de texto. Para saber mais sobre as expressões regulares que geralmente são usadas nas regras YARA do PhishER, veja a tabela a seguir. Para obter mais informações sobre as expressões regulares, consulte a documentação Criando regras YARA da YARA.
| Operadores e modificadores | Descrição |
|---|---|
| \n |
Esta regex é uma sequência de caracteres de escape que busca uma nova linha. |
| . | Esta regex é um metacaractere que corresponde a qualquer caractere ou símbolo. |
| {n, m} |
Esta regex é um quantificador que busca um intervalo de correspondências entre um número de caracteres representados por n e m. Ela é usada para identificar os segmentos correspondentes em uma sequência de caracteres.
Observação: você pode usar a regex {n,m} após qualquer caractere. Veja os exemplos abaixo:
|
| | | Esta regex é um metacaractere que indica um operador de alternância, semelhante a um operador OR. Ela busca uma correspondência entre várias expressões regulares possíveis. |
| * | Esta regex é um quantificador que busca zero ou mais correspondências. |
| ? | Esta regex é um quantificador que busca zero ou uma correspondência. |
const name = "Chris Coyier"; console.log(name);






