Syntaxe des règles
Liens rapides : <definition> , <operations>, <description>, <actions>
Une règle est un ensemble d'expressions définies à l'aide d'un langage basé sur XML. ESET PROTECT La console Web contient un ensemble de règles prédéfinies, mais vous pouvez ajouter et modifier vos propres règles.
La structure générale du corps d'une règle est la suivante :
<rule> <definition> |
Definition Balise
ancestor – peut prendre un attribut supplémentaire :
•distance – spécifie la distance réelle entre le processus actuel et l'ancêtre mis en correspondance ; par exemple, 1 correspond au processus parent, 2 au grand-parent, etc. Si cette valeur n'est pas spécifiée, la propriété est comparée à tous les ancêtres du processus.
•unique : permet à la balise d'ancêtre de supprimer les processus en double dans l'arborescence des ancêtres. Par exemple, le logiciel malveillant crée plusieurs instances du même processus pour échapper à la détection (explorer > cmd > cmd > cmd > malware), et cet attribut permet d'éliminer ces doublons (explorer > cmd > malware).
Process et parentprocess
La partie process permet aux ingénieurs sécurité de restreindre les événements à un processus spécifique ; vous pouvez donc écrire des règles telles que « Outlook crée un fichier EXE ». Si l'élément de processus est vide, parentprocess et operations sont évalués pour tous les processus.
La partie parentprocess est similaire au processus, mais elle permet aux ingénieurs en sécurité de tester les attributs du processus parent. Cela permet des règles telles que « PowerShell, démarré par Word, se connecte à Internet ».
process, parentprocess, ancestor et operation utilisent un élément d'expression pour décrire une expression logique qui est évaluée afin de vérifier si une détection doit être déclenchée. Une expression est composée de conditions et d'opérateurs logiques. Une condition vérifie la valeur d'une propriété, et les opérateurs logiques regroupent ces conditions en expressions logiques.
Exemple d'expression :
<operator type="and"> |
Operations
La partie operations définit quelles opérations exécutées par un processus déclenchent l'indicateur. Si ce champ est vide, l'indicateur est déclenché lorsque le processus génère un événement.
Les opérations sont définies à l'aide d'un élément operation doté d'un attribut type et d'un élément expression.
<operation type="WriteFile">Expression</operation>
Pour obtenir la liste complète des opérations prises en charge, consultez la rubrique Opérations.
Operator
Les opérateurs logiques pris en charge sont : AND, OR et NOT. Les opérateurs logiques peuvent être imbriqués. Par conséquent, un opérateur logique peut être un argument d'un autre opérateur logique. Outre les opérateurs logiques, un élément de condition peut être utilisé comme argument pour les opérateurs logiques. Vous pouvez utiliser la balise d'opérateur comme indiqué dans cet exemple :
<process> |
Les éléments de condition se composent de trois parties :
•Propriété de l'argument ou du processus de l'opération.
•Valeur spécifiée par l'auteur de la règle.
•Relation entre la valeur et la propriété.
Les propriétés sont regroupées de manière hiérarchique en « composants ».
Il existe trois niveaux de gravité : 1–39 > Info, 40–69 > Warning et 70–100 > Threat.
Les types de propriétés et leurs relations (attributs de condition) sont les suivants :
|
is(not)set |
is(not) |
is(not)empty |
(not)starts |
(not)contains |
(not)ends |
less, lessOrEqual, greater, greaterOrEqual |
|---|---|---|---|---|---|---|---|
String |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
Int |
✔ |
✔ |
|
|
✔ |
|
✔ |
Value |
✔ |
✔ |
✔ |
|
|
|
|
Bool |
✔ |
✔ |
|
|
|
|
|
Date |
✔ |
✔ |
|
|
|
|
✔ |
Ensemble de chaînes |
✔ |
|
✔ |
|
✔ |
|
|
Adresse IPv4 |
✔ |
✔ |
✔ |
|
|
|
|
Adresse IPv6 |
✔ |
✔ |
✔ |
|
|
|
|
Ensemble d'adresses IPv4 |
✔ |
|
✔ |
|
✔ |
|
|
Ensemble d'adresses IPv6 |
✔ |
|
✔ |
|
✔ |
|
|
Description Balise
La description est obligatoire et doit contenir un nom et une catégorie, mais le reste est facultatif. Il est utile de définir les champs répertoriés ci-dessous, car ils apparaissent dans les détails :
name - Nom de la règle. Elle est affichée dans la liste des règles.
category – Permet de catégoriser les règles. Vous pouvez spécifier vos propres catégories.
explanation—Explique la raison pour laquelle la règle est déclenchée.
os – Contient le système d'exploitation auquel la règle s'applique. Les valeurs possibles sont les suivantes : Windows, Linux, OSX, ANY.
mitreattackid—Contient l'ID du MITRE ATT&CK®.
maliciousCauses—Décrit les causes malveillantes de l'événement ou de la modification qui a déclenché la règle.
benignCauses—Décrit les causes bénignes de l'événement ou de la modification qui a déclenché la règle.
recommendedActions—Décrit les actions recommandées à entreprendre par les ingénieurs en sécurité.
guid – utilisé pour les règles internes. Le GUID des règles externes est généré automatiquement. Il est utilisé pour identifier de manière unique les règles lors de l'exportation/importation.
maliciousTarget Balise
Vous pouvez utiliser la balise maliciousTarget pour spécifier la cible qui sera affectée par défaut par les actions de réponse personnalisée. Par exemple, lorsque vous sélectionnez bloquer l'exécutable, les modifications dépendent de maliciousTarget. Cela ne modifie pas le comportement de la balise Actions. Les valeurs possibles sont current, module, none et parent.
La balise maliciousProcess a été remplacée par la balise maliciousTarget. Il bénéficie encore d'une prise en charge héritée, mais nous recommandons d'utiliser la balise maliciousTarget.
Actions Balise
La balise Actions permet de spécifier un ensemble d'actions qui sont exécutées lorsque la règle est déclenchée.
Vous pouvez regrouper les actions dans un seul élément d'action :
<action name="BlockProcessExecutable"/>
Ou empilez plusieurs éléments action dans un seul élément actions (comme illustré dans l'exemple suivant) :
<actions> |
Plusieurs actions peuvent être déclenchées à partir d'une seule règle.