Fonctions de calcul et de formatage des données AQL

Utilisez les fonctions de calcul et de formatage d'Ariel Query Language (AQL) sur les résultats de recherche extraits des bases de données Ariel.

Cette liste décrit les fonctions AQL utilisées pour les calculs et le formatage des données :

BASE64

Fonction
Renvoie une chaîne codée eb base 64 représentant des données binaires.
Exemple
SELECT BASE64(payload)
FROM events
 
Renvoie les charges utiles pour les événements au format BASE64.


CONCAT

Fonction
Concatène toutes les chaînes transmises en une seule chaîne.
Exemple
SELECT CONCAT(username, ':', sourceip,  ':', destinationip) 
FROM events LIMIT 5 


DATEFORMAT

Fonction
Formats en millisecondes depuis 00:00:00 Coordinated Universal Time (UTC) le 1er janvier 1970 à une forme lisible par l'utilisateur.
Exemples
SELECT 
DATEFORMAT(startTime, 'yyyy-MM-dd hh:mm:ss')
AS StartTime
FROM events
SELECT DATEFORMAT(starttime,'yyyy-MM-dd hh:mm') 
AS 'Start Time', 
DATEFORMAT(endtime, 'yyyy-MM-dd hh:mm') 
AS Storage_time, 
QIDDESCRIPTION(qid) 
AS 'Event Name' 
FROM events

Voir d'autres exemples



DOUBLE

Fonction
Convertit une valeur qui représente un nombre en élément de type double.
Exemple
DOUBLE('1234')


LONG

Fonction
Convertit une valeur qui représente un nombre en entier de type long.
Exemples
SELECT destinationip, 
LONG(SUM(sourcebytes+destinationbytes)) 
AS TotalBytes 
FROM flows 
GROUP BY sourceip

L'exemple renvoie l'adresse IP de destination et la somme des octets source et de destination dans la colonne TotalBytes.

SELECT
LONG(sourceip)
AS long_ip
FROM events
INTO <cursor_name>
WHERE (long_ip & 0x<ff>000000) = 0x<hexadecimal value of IP address>000000
GROUP BY long_ip
LIMIT 20

Dans QRadar®7.3.1, vous pouvez utiliser la fonction LONG pour convertir des adresses IP en un entier long. QRadar utilise des entiers longs avec des opérateurs bitwise pour effectuer l'arithmétique des adresses IP et le filtrage dans les requêtes AQL. Dans l'exemple, l'adresse IP source est renvoyée sous la forme d'un entier, qui est utilisé par l'opérateur bitwise AND.

Dans l'exemple, le <ff> correspond à <hexadecimal value of IP address>, qui se trouve dans la position du premier octet pour une adresse IP. <cursor_name> peut être n'importe quel nom que vous souhaitez utiliser.

Par exemple, si vous souhaitez renvoyer toutes les adresses IP source avec le numéro 9 dans le premier octet, remplacez la valeur hexadécimale 9, qui est identique à la valeur décimale, dans <Valeur hexadécimale de l'adresse IP>.

Voir d'autres exemples de la fonction longue qui sont utilisés avec des opérateurs binaires


PARSEDATETIME

Fonction
Transmettez une valeur de temps à l'analyseur syntaxique, par exemple PARSEDATETIME('time reference'). time reference indique le temps d'analyse de la requête.
Exemple
SELECT * FROM events 
START PARSEDATETIME('1 hour ago')

Voir d'autres exemples de fonctions de temps



PARSETIMESTAMP

Fonction
Analyser la représentation du texte de la date et de l'heure et la convertir en temps d'époque UNIX.

Par exemple, analyser le format de date texte suivant :

Thursday, August 24, 2017 3:30:32 PM GMT +01:00 et le convertir en horodatage d'époque suivant : 1503588632.

Cette fonction permet de lancer plus facilement des appels à partir de l'API qui sont basés sur des scripts.
Exemple de fonctionnement de la conversion de format horaire

L'exemple suivant montre comment la fonction DATEFORMAT convertit le temps d'utilisation en horodatage de texte en utilisant le format de date spécifié, puis la fonction PARSETIMESTAMP est utilisée pour convertir l'horodatage du texte en format d'heure d'époque.

SELECT starttime, DATEFORMAT(starttime,'EEE, MMM d, "yyyy"') 
AS "text time format", 
PARSETIMESTAMP('EEE, MMM d, "yyyy"', "text time format") 
AS 'epoch time returned' from events limit 5

L'exemple suivant affiche un extrait de la sortie de la requête :


starttime       text time format      epoch time returned
1503920389888   Mon, M08 28, "2017"   1503920389888      
Exemple de la façon dont PARSETIMESTAMP peut être utilisé pour convertir les temps en temps d'époque afin que les calculs de temps puissent être effectués.

Dans l'exemple suivant, les événements sont renvoyés lorsque la différence de temps entre les heures de déconnexion et de connexion est inférieure à 1 heure.

Le format d'heure EEE, d MMM yyyy HH:mm:ss.SSSZ n'est qu'un exemple de format d'heure que vous pouvez utiliser, et my_login et my_logout sont des propriétés personnalisées dans un format d'heure connu, par exemple, EEE, MMM d, "yy".

SELECT * from events 
WHERE 
PARSETIMESTAMP('EEE, d MMM yyyy HH:mm:ss.SSSZ', my_logout)
- PARSETIMESTAMP('EEE, d MMM yyyy HH:mm:ss.SSSZ', my_login) 
< 3600000 last 10 days 

Voir d'autres exemples de fonctions de temps



NOW

Fonction
Renvoie l'heure en cours qui est exprimée en millisecondes depuis l'heure UTC (Temps Universel Coordonné) 00:00:00 le 1er janvier 1970.
Exemple
SELECT ASSETUSER(sourceip, NOW()) 
AS 'Asset user' FROM events
Trouvez l'utilisateur de l'actif à ce moment dans le temps (NOW).


LOWER

Fonction

Renvoie une représentation en minuscules d'une chaîne.

Exemple
SELECT 
LOWER(username), 
LOWER(LOGSOURCENAME(logsourceid)) 
FROM events
Renvoie les noms d'utilisateur et les noms de source de journal en minuscules.


REPLACEALL

Fonction
Recherche une expression régulière et remplace toutes les correspondances par du texte.

Remplace toutes les sous-séquences (arg2) de la séquence d'entrée correspondant au modèle (arg1) par la chaîne de remplacement (arg3).

Exemple
REPLACEALL('\d{16}',
username, 'censored')


REPLACEFIRST

Fonction
Recherche une expression régulière et remplace la première correspondance par du texte.

Remplace la première sous-séquence (arg2) de la séquence d'entrée correspondant au modèle (arg1) par la chaîne de remplacement (arg3).

Exemple
REPLACEFIRST('\d{16}',
 username, 'censored')


STR

Fonction
Convertit un paramètre en chaîne.
Exemple
STR(sourceIP)


STRLEN

Fonction
Renvoie la longueur de cette chaîne.
Exemple
SELECT STRLEN(sourceIP), 
STRLEN(username) from events
Renvoie la longueur de chaîne pour sourceip et username.


STRPOS

Fonction
Renvoie la position (index - commece à zéro) d'une chaîne dans une autre chaîne. Recherche dans la chaîne de l'index de la sous-chaîne spécifiée. Vous pouvez éventuellement spécifier un paramètre supplémentaire pour indiquer à quelle position (index) commencer à rechercher le modèle spécifié.

La recherche de la chaîne commence au décalage spécifié et se déplace vers la fin de la chaîne.

STRPOS(string, substring, index)

Renvoie -1 si la sous-chaîne est introuvable.
Exemples
SELECT STRPOS(username, 'name') FROM events
 

SELECT STRPOS(sourceip, '180', 2) FROM events)
 


SUBSTRING

Fonction
Copie une plage de caractères dans une nouvelle chaîne.
Exemples
SELECT SUBSTRING(userName, 0, 3) FROM events
 
SELECT SUBSTRING(sourceip, 3, 5) FROM events
 


UPPER

Fonction
Renvoie une représentation en majuscules d'une chaîne.
Exemple
SELECT 
UPPER(username), 
UPPER(LOGSOURCENAME(logsourceid)) 
FROM events
Renvoie les noms d'utilisateur et les noms de source de journal en majuscules.


UTF8

Fonction
Renvoie la chaîne UTF8 d'un tableau d'octets.
Exemple
SELECT UTF8(payload)
FROM events
WHERE sourceip='192.0.2.0'
 
Renvoie le contenu UTF8 pour les événements dont l'adresse IP source est 192.0.2.0