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 Web Console 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 apparié, par exemple, 1 correspond au processus parent, 2 au grand-parent, etc. Si elle n'est pas spécifiée, la propriété est comparée à tous les processus ancêtres.
•unique—permet à l'étiquette ancêtre de supprimer les processus en double dans l'arborescence des ancêtres. Par exemple, le maliciel crée plusieurs instances du même processus pour éviter la détection (explorer > cmd > cmd > cmd > maliciel), et cet attribut éliminera ces duplications (explorer > cmd > maliciel).
Process et parentprocess
La partie process permet aux ingénieurs en sécurité de restreindre les événements à un processus précis ; par conséquent, vous pouvez écrire des règles comme « 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 semblable au processus, mais permet aux ingénieurs en sécurité de tester les attributs du processus parent. Cela permet des règles comme « 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. S'il est vide, l'indicateur se déclenche lorsque le processus génère un événement.
Les opérations sont définies à l'aide d'un élément operation comportant un attribut type et 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 servir d'argument pour les opérateurs logiques. Vous pouvez utiliser la balise d'opérateur comme le montre 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.
•Une 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 hiérarchiquement 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 :
|
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 énumérés ci-dessous, car ils apparaissent dans les détails :
name - Nom de la règle. Elle est indiqué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 : Windows, Linux, OSX, ANY.
mitreattackid—Contient l'ID de la technique MITRE ATT&CK®.
maliciousCauses—Décrit les causes malveillantes de l'événement ou du changement qui a déclenché la règle.
benignCauses—Décrit les causes bénignes de l'événement ou du changement qui a déclenché la règle.
recommendedActions—Décrit les actions recommandées que doivent prendre les ingénieurs en sécurité.
guid – utilisé pour les règles internes. Les règles externes ont un GUID généré automatiquement. Il sert à identifier les règles de façon unique 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 du maliciousTarget. Cela ne change 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. Elle est toujours prise en charge par le support hérité, mais nous recommandons d'utiliser la balise maliciousTarget.
Actions Balise
La balise Actions vous permet de spécifier un ensemble d'actions qui sont exécutées lorsque la règle est déclenchée.
Vous pouvez mettre des actions dans un seul élément d'action :
<action name="BlockProcessExecutable"/>
Ou empiler 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.