Opérateurs de champ
Les opérateurs de champ sont les parties logiques d'une règle qui permettent à
CylanceOPTICS
de comparer deux valeurs. Si au moins deux opérandes correspondent aux critères de comparaison, CylanceOPTICS
considère que cette partie de la fonction définie a été exécutée. Lorsque toutes les parties de la fonction sont exécutées, l'état est satisfait.Le champ Opérateurs de champ est un objet qui comprend un ou plusieurs objets conditionnels. Ces objets conditionnels peuvent être définis sur une valeur quelconque ; cependant, ils doivent correspondre aux mêmes valeurs conditionnelles référencées dans le champ de fonction.
BlackBerry
recommande de définir ces noms sur des valeurs simples et logiques, telles que des chiffres ou des lettres.Opérateur de champ | Description |
---|---|
Base64Encoding Base64 | Cet opérateur de champ tokenise une chaîne et détermine si l'un des jetons correspond à un opérande. Il tente également de déterminer le type de codage de chaîne (ASCII, UTF-7, UTF-8, UTF-16-LE, UTF-16-BE, UTF-32-LE OU UTF-32-BE). Sans nomenclature, l'opérateur peut détecter de manière fiable uniquement UTF-8, UTF-16-LE et UTF-16-BE. Si toutes les détections échouent, l'opérateur se règle par défaut sur la page de codes par défaut du système. Positif : powershell.exe -ex bypass -e "ZwBlAHQALQBwAHIAbwBjAGUAcwBzAA==" equals ("get-process", ) Négatif : powershell.exe -ex bypass "ZwBlAHQALQBhAGwAaQBhAHMA" does not contain ("get-process", ) |
ContainsAll | Cet opérateur de champ détermine si l'opérande spécifié contient tous les opérandes d'un jeu. Positif : « hello, I am a string » contient tous les éléments (« ello », « ng ») Négatif : « hello, I am a string » ne contient pas tous les éléments (« hi », « ng ») |
ContainsAllWords | Cet opérateur de champ détermine si l'opérande spécifié contient tous les opérandes d'un jeu, dans lequel chaque opérande défini doit apparaitre comme un mot entier entouré d'espace blanc, de ponctuation ou de marqueurs de chaine de fin ou de début. Positif : « hello, I am a string » contient tous les mots (« hello », « a », « string ») Négatif : « hello, I am a string » ne contient pas tous les mots (« ello », « ng ») |
ContainsAny Contient | Cet opérateur de champ détermine si l'opérande spécifié contient l'un des opérandes d'un jeu. Positif : « hello, I am a string » contient l'un des éléments (« ello », « banana ») Négatif : « hello, I am a string » ne contient aucun des éléments (« hi », « ng ») |
ContainsAnyWord ContainsWord | Cet opérateur de champ détermine si l'opérande spécifié contient l'un des opérandes d'un jeu, dans lequel chaque opérande défini doit apparaitre comme un mot entier entouré d'espace blanc, de ponctuation ou de marqueurs de chaine de fin ou de début. Positif : « hello, I am a string » contient l'un des mots (« hello », « banana ») Négatif : « hello, I am a string » ne contient aucun des mots (« ello », « ng ») |
DamerauLevenshteinDistance DLDistance | Cet opérateur de champ détermine si la distance, le nombre de modifications nécessaires pour convertir un opérande en un autre opérande, se situe dans une plage acceptable, mais permet la transposition de symboles adjacents. Positif : « cat » est à une distance Damerau-Levenshtein de 1 de « bat » Positif : « hello » est à une distance Damerau-Levenshtein de 2 de « bell » Positif : « ca » est à une distance Damerau-Levenshtein de 3 de « abc » Négatif : « cart » n'est pas à une distance Damerau-Levenshtein de 1 de « act » |
Coefficient de Dice Dice | Cet opérateur de champ détermine la similarité entre deux ensembles ou chaînes en fonction du nombre de bigrammes communs (une paire de lettres adjacentes dans la chaîne). Il détermine si le résultat de la comparaison se situe entre le « mincoefficient » et le « maxcoefficient ». Par exemple, la comparaison du nom de processus « Test.exe » avec « Tes.exe » renvoie 0,76923076923076927. Avec « Arrondi » réglé sur 2 : Positif : min. : 0,5 < 0,77 < 0,8 max. ; non inclusif Positif : min. : 0,77 < = 0,77 < = 0,77 max. ; inclusif Négatif : min. : 0,8 < 0,77 < 0,85 max. ; non inclusif L'option « Arrondi » arrondit la décimale à l'entier spécifié. Par exemple, si « Arrondi » est défini sur 2, 0,6666666667 devient 0,67. |
EndsWithAny EndsWith | Cet opérateur de champ détermine si l'opérande de gauche spécifié se termine par l'opérande de droite spécifié. Positif : « hello, I am a string » se termine par « ring » Négatif : « hello, I am a string » ne se termine pas par « bring » |
EqualsAny Est égal à | Cet opérateur de champ détermine si l'opérande spécifié est exactement égal à l'un des opérandes d'un jeu, dans lequel chaque opérande défini doit apparaitre sous forme de nombre ou de mot entier entouré d'espace blanc, de ponctuation ou de marqueurs de chaine de fin ou de début. Positif : 10 est égal à l'un des éléments (10, 20, 30) Positif : « hello » est égal à l'un des éléments (« hello », « banana ») Négatif : 100 n'est égal à aucun des éléments (10, 20, 30) Négatif : « hello » n'est égal à aucun des éléments « ello », « ng ») |
GreaterThan | Cet opérateur de champ détermine si l'opérande de gauche spécifié est supérieur à l'opérande de droite spécifié. Positif : 14,4 est supérieur à 10,1 Négatif : 1 n'est pas supérieur à 1000 |
GreaterThanOrEquals | Cet opérateur de champ détermine si l'opérande de gauche spécifié est supérieur ou égal à l'opérande de droite spécifié. Positif : 14,4 est supérieur ou égal à 10,1 Négatif : 1 n'est pas supérieur ou égal à 1000 |
HammingDistance | Cet opérateur de champ détermine la distance entre deux chaînes de longueur égale, c'est-à-dire le nombre de positions auxquelles les symboles correspondants sont différents. Il mesure le nombre minimal de substitutions requises pour changer une chaîne en une autre. Positif : « cat » est à une distance Hamming de 1 de « bat »
Positif : « hello » est à une distance Hamming de 2 de « bell »
Positif : « ca » est à une distance Hamming de 3 de « abc »
Négatif : « cart » n'est pas à une distance Hamming de 4 de « act »
|
HexEncoding | Cet opérateur de champ tokenise une chaîne et détermine si l'un des jetons correspond à un opérande. Il tente également de déterminer le type de codage de chaîne (ASCII, UTF-7, UTF-8, UTF-16-LE, UTF-16-BE, UTF-32-LE, UTF-32-BE). Sans nomenclature, il peut détecter de manière fiable uniquement UTF-8, UTF-16-LE et UTF-16-BE. Si toutes les détections échouent, l'opérande est défini par défaut sur la page de codes par défaut du système. Positif : « 74657374 » contient « test » Négatif : « 696e76616c6964 » ne contient pas « test » |
InRange | Cet opérateur de champ détermine si l'opérande du milieu spécifié est placé entre les opérandes de gauche et de droite. Positif : 10 est entre 1 et 20 Positif : 5,3 est entre 5,3 et 20,1 (inclus) Négatif : 4 n'est pas entre 5 et 10 Négatif : 20 n'est pas entre 20 et 40 (exclus) |
IpIsInRange IpRange | Cet opérateur de champ détermine si l'adresse TargetNetworkConnection (SourceAddress, DestinationAddress) figure dans les options « min » et « max » spécifiées. Les opérandes suivants sont autorisés :
And:
Exemple :
Incluez l'objet de filtres suivant dans l'exemple ci-dessus pour générer le trafic réseau :
|
IsFlagSet | Cet opérateur de champ vérifie si un ou plusieurs bits d'un masque binaire sont définis. Il peut utiliser base-10 ou base-16 (en utilisant le préfixe « 0x ») pour la valeur de comparaison. Positif : 0x10 est défini pour 0x4111 Positif : 3 est défini pour 0x7 Négatif : 0x3 n'est pas défini pour 0x4 Négatif : 2 n'est pas défini pour 0x5 |
IsHomoglyph | Cet opérateur de champ détermine si l'opérande de gauche est un homoglyphe de l'opérande de droite. Par exemple, le caractère US Latin 1 « e » et le caractère « e » français semblent être identiques et avoir la même signification, mais leurs valeurs sont différentes. Positif : « 3xplor3 » est un homoglyphe de « explore » avec 100 % de certitude Positif : « 3xplord » est un homoglyphe de « explore » avec 90 % de certitude Négatif : « temp » n'est pas un homoglyphe de « temp », car il s'agit de la même chaine Négatif : « 431 » n'est pas un homoglyphe de « big », car ils ne présentent aucune caractéristique transitive |
IsNullOrEmpty | Cet opérateur de champ détermine si l'opérande spécifié est nul ou vide. Positif : <null> est nul ou vide Positif : "" est nul ou vide Positif : " " est nul ou vide Négatif : « Hello » n'est pas nul ou vide |
IsPopulated Exists HasContent | Cet opérateur de champ détermine si l'opérande spécifié n'est pas nul ni vide. Positif : « Hello » n'est pas nul ni vide Négatif : <null> est nul ou vide Négatif : "" est nul ou vide Négatif : " " est nul ou vide |
IsTrue | Cet opérateur de champ détermine si la valeur spécifiée est vraie. Positif : TriState.True Négatif : TriState.False Négative : TriState.Unknown |
LessThan | Cet opérateur de champ détermine si l'opérande de gauche spécifié est inférieur à l'opérande de droite spécifié. Positif : 4,4 est inférieur à 10,1 Négatif : 1000 n'est pas inférieur à 1 |
LessThanOrEquals | Cet opérateur de champ détermine si l'opérande de gauche spécifié est inférieur ou égal à l'opérande de droite spécifié. Positif : 4,4 est inférieur ou égal à 10,1 Positif : 14 est inférieur ou égal à 14 Négatif : 1000 n'est pas inférieur ou égal à 1 |
LevenshteinDistance | Cet opérateur de champ détermine si la distance, le nombre de modifications nécessaires pour convertir un opérande en un autre opérande, se situe dans une plage acceptable. Positif : « cat » est à une distance Levenshtein de 1 de « bat » Positif : « hello » est à une distance Levenshtein de 3 de « bell » Négatif : « cart » n'est pas à une distance Levenshtein de 1 de « act » |
LongestCommonSubsequence | Cet opérateur de champ compare un opérande gauche fixe avec un ensemble d'opérandes droits et détermine la sous-séquence la plus longue dans chaque comparaison. Il compare le nombre de résultats aux valeurs min et max pour déterminer si le résultat se situe dans une plage acceptable. Comparaison de « aggtab » et « gxtxayb » : Positif : « gtab » est la séquence la plus longue. Si le min est 1 et le max est 10, cela se situe dans une plage acceptable. Négatif : dans l'exemple précédent, si le min était de 5 et le max de 10, cela ne se situerait pas dans une plage acceptable. |
LongestCommonSubstring | Cet opérateur de champ compare les opérandes gauche et droit et renvoie le nombre de la plus longue sous-chaîne trouvée. Comparaison entre « abababc » et « abcdaba » : Positif : « aba » et « abc » sont deux résultats de la même taille dans « abcdaba » et renvoient la sous-chaîne la plus longue définie sur 3. Négatif : si la distance minimale et la distance maximale étaient définies sur 4, cela serait supérieur à la plus longue sous-chaîne trouvée. Comparaison entre « ababcd » et « abcdaba » : Positif : « abcd » est la plus longue sous-chaîne trouvée. |
MatchOnFilter NoOp | Cet opérateur de champ indique qu'aucune opération n'est en cours d'exécution et que l'état correspond simplement si le filtre trouve un événement correspondant. |
RegexMatches | Cet opérateur de champ détermine si l'opérande spécifié est conforme à une expression régulière. Positif : « hello, I am a string » est conforme à « ^hello, [Ii] am [aA] string$ » Négatif : « hello, I am a string » n'est pas conforme à « ^[hi|hey], I am a string$ » |
ShannonEntropy | Cet opérateur de champ détermine la mesure de l'imprévisibilité de l'état, ou son contenu d'information moyen lors de la comparaison d'un seul opérande. Positif : « abc » est calculé à 1,5849625007211561 et se situe dans la plage entre 1,55 et 1,6. Négatif : « Z2V0LXByb2Nlc3M=" est calculé à 3,875 et ne se situe pas dans la plage entre 1,55 et 1,6. |
StartsWithAny StartsWith | Cet opérateur de champ détermine si l'opérande de gauche spécifié commence par l'opérande de droite spécifié. Positif : « hello, I am a string » commence par « hello, I » Négatif : « hello, I am a string » ne commence pas par « help » |