Todas las reglas de PhishER deben seguir la lógica de la regla Otra sigla recurrente y ridícula (Yet Another Recursive or Ridiculous Acronym, YARA) para disponer los mensajes. Puede utilizar las reglas YARA para disponer los mensajes en función de los archivos adjuntos incluidos, posible fraude del director ejecutivo (CEO), etcétera. En esta guía, se ofrece una lista de casos de uso comunes para las reglas YARA. Puede crear estas reglas para utilizarlas en su plataforma PhishER. Para obtener información general sobre cómo redactar reglas YARA, consulte nuestro artículo Cómo escribir reglas YARA o el video Reglas YARA.
Regla de archivos adjuntos
Si desea crear una regla YARA que detecte si se incluye algún tipo de archivo adjunto en un correo electrónico, puede utilizar la regla de ejemplo de la captura de pantalla y el bloque de código que aparecen a continuación:
rule Attachments
{
strings:
$Attachment = "X-Attachment-Id"
condition:
$Attachment
}
Esta regla no detecta tipos de archivos adjuntos específicos. Si desea redactar una regla que detecte tipos de archivos adjuntos específicos, puede utilizar las reglas de ejemplo de la captura de pantalla y el bloque de código que aparecen a continuación:
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
}
Regla de correos electrónicos de software automatizado
Si desea crear una regla YARA que detecte correos electrónicos de software automatizado, puede utilizar la regla de ejemplo de la captura de pantalla y el bloque de código que aparecen a continuación:
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 esta regla funcione, deberá reemplazar el texto entre paréntesis por el nombre de una aplicación de software. Le recomendamos usar el nombre de una aplicación de software que su organización utilice o de la que probablemente recibiría un correo electrónico.
Regla de fraude del director ejecutivo (CEO)
Si desea crear una regla YARA que identifique posibles intentos de fraude del Director Ejecutivo (CEO), puede utilizar la regla de ejemplo de la captura de pantalla y el bloque de código que aparecen a continuación:
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)
}
Si usa esta regla, deberá reemplazar cada instancia del marcador de posición [suCEO@ejemplo.com] por la dirección de correo electrónico de su CEO. También deberá reemplazar cada instancia del marcador de posición [suCEO] por el nombre de su director ejecutivo (CEO).
Regla del remitente interno
Si desea crear una regla YARA que identifique cualquier correo electrónico procedente de su dominio que no sea un correo electrónico falso, puede utilizar la regla de ejemplo de la captura de pantalla y el bloque de código que aparecen a continuación:
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
}
Regla de correos electrónicos de capacitación de KnowBe4
Si desea crear una regla YARA que detecte todos los correos electrónicos de notificaciones de capacitación de su consola KSAT, puede utilizar la regla de ejemplo de la captura de pantalla y el bloque de código que aparecen a continuación:
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
}
Regla de ausencia
Puede crear una regla YARA que detecte si un valor no está presente en un objetivo de PhishER seleccionado. Para crear esta regla, puede utilizar la regla de ejemplo de la captura de pantalla y el bloque de código que aparecen a continuación:
rule notPresent
{
strings:
$a = "KnowBe4" nocase
condition:
(not $a) and (filesize > 0)
}
Para usar esta regla, deberá incluir la variable especial filesize en la condición de su regla. La variable filesize verifica si el objetivo que seleccionó está vacío. Este proceso es útil si recibe un correo electrónico con un cuerpo de texto sin formato y un cuerpo HTML, ya que un tipo de cuerpo podría estar vacío, pero el otro podría contener su cadena. Sin la variable filesize, el correo electrónico podría coincidir falsamente con su regla notPresent.
Tabla de expresiones regulares más comunes
Una expresión regular, o regex, es una secuencia de caracteres que se utiliza para identificar un patrón en cadenas de texto. Para conocer las expresiones regulares que se suelen usar en las reglas YARA para PhishER, consulte la siguiente tabla. Para obtener más información sobre las expresiones regulares, consulte la documentación Escribir reglas YARA.
| Operadores y modificadores | Descripción |
|---|---|
| \n |
Esta regex es una secuencia de escape que busca una nueva línea. |
| . | Esta regex es un metacarácter que coincide con cualquier carácter o símbolo. |
| {n, m} |
Esta regex es un cuantificador que busca un rango de coincidencias entre un número de caracteres representados por n y m. Esta regex se utiliza para identificar segmentos coincidentes de una cadena.
Nota: Puede utilizar la regex {n,m} después de cualquier carácter. Vea los siguientes ejemplos:
|
| | | Esta regex es un metacarácter que indica un operador de alternancia, similar a un operador OR. Esta regex busca una coincidencia entre múltiples expresiones regulares posibles. |
| * | Esta regex es un cuantificador que busca cero o más coincidencias. |
| ? | Esta regex es un cuantificador que busca cero o una coincidencia. |
const name = "Chris Coyier"; console.log(name);






