Opérateurs logiques et de comparaison AQL

Les opérateurs sont utilisés dans les instructions AQL pour déterminer toute égalité ou différence entre les valeurs. En utilisant les opérateurs dans la clause WHERE d'une instruction AQL, les résultats sont filtrés par les résultats qui correspondent aux conditions de la clause WHERE.

Le tableau suivant répertorie les opérateurs logiques et de comparaison pris en charge.
Tableau 1. Opérateurs logiques et de comparaison
Opérateur Descriptif Exemple
* Multiplie deux valeurs et renvoie le résultat.
SELECT *
FROM flows 
WHERE sourceBytes * 1024 < 1 
= L'opérateur identique à l'opérateur compare deux valeurs et renvoie la valeur true si elles sont égales.
SELECT * 
FROM EVENTS
WHERE sourceIP = destinationIP 
!= Compare deux valeurs et renvoie la valeur true si elles sont inégales.
SELECT *
FROM events
WHERE sourceIP
!= destinationip
< AND <= Compare deux valeurs et renvoie la valeur true si la valeur du côté gauche est inférieure ou égale à la valeur du côté droit.
SELECT *
FROM flows 
WHERE sourceBytes < 64 
AND
destinationBytes <= 64  
> AND >= Compare deux valeurs et renvoie la valeur true si la valeur du côté gauche est supérieure ou égale à la valeur du côté droit.
SELECT * 
FROM flows 
WHERE sourceBytes > 64 
AND
destinationBytes >= 64
/ Divise deux valeurs et renvoie le résultat.
SELECT * 
FROM flows 
WHERE sourceBytes / 8 > 64 
+ Ajoute deux valeurs et renvoie le résultat.
SELECT * 
FROM flows 
WHERE sourceBytes + 
destinationBytes < 64 
- Soustra une valeur d'une autre et renvoie le résultat.
SELECT * 
FROM flows 
WHERE sourceBytes - 
destinationBytes > 0
^ Prend une valeur et l'élève à la puissance spécifiée et renvoie le résultat.
SELECT * 
FROM flows 
WHERE sourceBytes ^ 2 < 256
% Prend le module d'une valeur et renvoie le résultat.
SELECT * 
FROM flows 
WHERE sourceBytes % 8 == 7
AND Prend le côté gauche et le côté droit d'une instruction et renvoie la valeur true si les deux sont vraies.
SELECT *
FROM events 
WHERE (sourceIP = destinationIP)
AND (sourcePort = destinationPort)
BETWEEN (X,Y) Prend un côté gauche et deux valeurs et renvoie la valeur true si le côté gauche est entre les deux valeurs.
SELECT * 
FROM events 
WHERE magnitude
BETWEEN 1 AND 5 
COLLATE Paramètre à commander par qui permet de rassembler une balise de langue BCP47.
SELECT * 
FROM EVENTS ORDER BY
sourceIP DESC COLLATE 'de-CH' 
IN Indique plusieurs valeurs dans une clause WHERE. L'opérateur IN est un raccourci pour plusieurs conditions OR.
SELECT *
FROM EVENTS
WHERE SourceIP IN ('192.0.2.1', '::1', '198.51.100.0')
INTO Crée un curseur nommé qui contient des résultats qui peuvent être interrogés à un moment différent.
SELECT * FROM EVENTS INTO
 'MyCursor' WHERE....
NOT Prend dans une instruction et renvoie la valeur true si l'instruction a pour résultat false.
SELECT * FROM EVENTS 
WHERE NOT 
(sourceIP = destinationIP) 
ILIKE Correspond à la valeur transmise si la chaîne transmise est LIKE et n'est pas sensible à la casse. Utilisez % comme caractère générique.
SELECT * 
FROM events WHERE userName 
ILIKE '%bob%' 
IMATCHES Correspond si la chaîne correspond à l'expression régulière fournie et n'est pas sensible à la casse.
SELECT * 
FROM events 
WHERE userName
IMATCHES '^.bob.$' 
LIMIT Limite le nombre de résultats au nombre indiqué.
SELECT * 
FROM events LIMIT 100 
START '2015-10-28 10:00' 
STOP '2015-10-28 11:00'
Remarque: placez la clause LIMIT devant une clause START et STOP .
LIKE Correspond à la valeur transmise si la chaîne transmise est LIKE mais qu'elle est sensible à la casse. Utilisez % comme caractère générique.
SELECT * 
FROM events WHERE userName 
LIKE '%bob%' 
MATCHES Correspond si la chaîne correspond à l'expression régulière fournie.
SELECT * 
FROM events 
WHERE userName MATCHES
'^.bob.$' 
NOT NULL Prend une valeur et renvoie la valeur true si la valeur n'est pas nulle.
SELECT *
FROM events 
WHERE userName 
IS NOT NULL
OR Prend le côté gauche d'une instruction et le côté droit d'une instruction et renvoie la valeur true si l'un des deux côtés est vrai.
SELECT *
FROM events 
WHERE (sourceIP = destinationIP)
OR (sourcePort = destinationPort)
TEXT SEARCH

Recherche en texte intégral pour la valeur transmise.

TEXT SEARCH est valide avec les opérateurs AND. Vous ne pouvez pas utiliser TEXT SEARCH avec OR ou d'autres opérateurs ; sinon, vous obtenez une erreur de syntaxe.

Placez TEXT SEARCH dans la première position de la clause WHERE.

Vous pouvez également effectuer des recherches en texte intégral à l'aide du filtre rapide dans l'interface utilisateur QRadar®. Pour en savoir davantage sur les fonctions de filtrage rapide, reportez-vous au manuel IBM® QRadar -Guide d'utilisation.

SELECT * 
FROM events 
WHERE TEXT SEARCH 'firewall'
AND sourceip='192.168.1.1' 

SELECT sourceip,url 
FROM events 
WHERE TEXT SEARCH 
'download.cdn.mozilla.net' 
AND sourceip='192.168.1.1' 
START '2015-01-30 16:10:12' 
STOP '2015-02-22 17:10:22'

Exemples d'opérateurs logiques et comparatifs

  • Pour rechercher des événements qui ne sont pas analysés, entrez la requête suivante :
    SELECT * FROM events 
    WHERE payload = 'false'
  • Pour rechercher des événements qui renvoient une infraction et qui ont une adresse IP source spécifique, entrez la requête suivante :
    SELECT * FROM events 
    WHERE sourceIP = '192.0.2.0' 
    AND
    hasOffense = 'true'
  • Pour rechercher des événements qui incluent le texte « firewall », entrez la requête suivante :
    SELECT QIDNAME(qid) 
    AS EventName, 
    * FROM events 
    WHERE TEXT SEARCH 'firewall'