AQL-Datenberechnungs-und Formatierungsfunktionen

Verwenden Sie AQL-Berechnungs-und Formatierungsfunktionen (Ariel Query Language) für Suchergebnisse, die aus den Ariel-Datenbanken abgerufen werden.

Diese Liste beschreibt die AQL-Funktionen, die für Berechnungen und Datenformatierung verwendet werden:

BASE64

Zweck
Gibt eine Base64 -codierte Zeichenfolge zurück, die Binärdaten darstellt.
Beispiel
SELECT BASE64(payload)
FROM events
 
Gibt die Nutzdaten für Ereignisse im Format BASE64 zurück.


CONCAT

Zweck
Verknüpft alle übergebenen Zeichenfolgen zu einer Zeichenfolge.
Beispiel
SELECT CONCAT(username, ':', sourceip,  ':', destinationip) 
FROM events LIMIT 5 


DATEFORMAT

Zweck
Formatiert die Zeit in Millisekunden seit 00:00:00 UTC (Coordinated Universal Time, koordinierte Weltzeit) am 1. Januar 1970 in einem für Benutzer lesbaren Format.
Beispiele
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

Weitere Beispiele



DOUBLE

Zweck
Konvertiert einen Zahlenwert in eine Ganzzahl des Typs "Double".
Beispiel
DOUBLE('1234')


LONG

Zweck
Konvertiert einen Zahlenwert in eine Ganzzahl des Typs "Long".
Beispiele
SELECT destinationip, 
LONG(SUM(sourcebytes+destinationbytes)) 
AS TotalBytes 
FROM flows 
GROUP BY sourceip

Das Beispiel gibt die Ziel-IP-Adresse und die Summe der Quellen-und Zielbyte in der Spalte TotalBytes zurück.

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

In QRadar®7.3.1können Sie die Funktion LONG verwenden, um IP-Adressen in eine lange ganze Zahl zu konvertieren. QRadar verwendet lange ganze Zahlen mit bitweisen Operatoren, um in AQL-Abfragen arithmetische Operationen und Filter für IP-Adressen auszuführen. Im Beispiel wird die Quellen-IP als Ganzzahl zurückgegeben, die vom bitweisen Operator AND verwendet wird.

In dem Beispiel entspricht <ff> dem <Hexadezimalwert der IP-Adresse>, der sich an der ersten Oktettposition für eine IP-Adresse befindet. <cursorname> kann ein beliebiger Name sein, der verwendet wird.

Wenn Sie beispielsweise alle Quellen-IP-Adressen mit der Zahl 9 im ersten Oktett zurückgeben möchten, ersetzen Sie den Hexadezimalwert 9, der dem Dezimalwert entspricht, durch <Hexadezimalwert der IP-Adresse>.

Weitere Beispiele für die Funktion long, die mit bitweisen Operatoren verwendet werden


PARSEDATETIME

Zweck
Übergeben Sie einen Zeitwert an den Parser, z. B. PARSEDATETIME('time reference'). Die Zeitreferenz gibt die Parsingzeit für die Abfrage an.
Beispiel
SELECT * FROM events 
START PARSEDATETIME('1 hour ago')

Weitere Beispiele für Zeitfunktionen



PARSETIMESTAMP

Zweck
Analysieren Sie die Textdarstellung von Datum und Uhrzeit und konvertieren Sie sie in UNIX-Epochenzeit.

Analysieren Sie beispielsweise das folgende Textdatumsformat:

Thursday, August 24, 2017 3:30:32 PM GMT +01:00 und konvertieren Sie sie in die folgende Epochenzeitmarke: 1503588632.

Diese Funktion vereinfacht das Absetzen von auf Scripts basierenden Aufrufen über die API.
Beispiel für die Funktionsweise der Zeitformatkonvertierung

Das folgende Beispiel veranschaulicht, wie die Funktion DATEFORMAT die Epochenzeit unter Verwendung des angegebenen Datumsformats in eine Textzeitmarke konvertiert. Anschließend wird die Funktion PARSETIMESTAMP verwendet, um die Textzeitmarke in ein Epochenzeitformat zu konvertieren.

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

Das folgende Beispiel zeigt einen Auszug der Ausgabe aus der Abfrage:


starttime       text time format      epoch time returned
1503920389888   Mon, M08 28, "2017"   1503920389888      
Beispiel für die Verwendung von PARSETIMESTAMP zum Konvertieren von Zeiten in Epochenzeit, sodass Zeitberechnungen durchgeführt werden können

Im folgenden Beispiel werden Ereignisse zurückgegeben, wenn die Zeitdifferenz zwischen Abmelde-und Anmeldezeit weniger als 1 Stunde beträgt.

Das EEE, d MMM yyyy HH:mm:ss.SSSZ -Zeitformat ist nur ein Beispiel für ein Zeitformat, das Sie verwenden können, und my_login und my_logout sind angepasste Eigenschaften in einem bekannten Zeitformat, z. B. 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 

Weitere Beispiele für Zeitfunktionen



NOW

Zweck
Gibt die aktuelle Uhrzeit in Millisekunden seit dem 1. Januar 1970, 00:00:00 Uhr UTC (Coordinated Universal Time), zurück.
Beispiel
SELECT ASSETUSER(sourceip, NOW()) 
AS 'Asset user' FROM events
Suchen Sie den Benutzer des Assets zu diesem Zeitpunkt (JETZT).


LOWER

Zweck

Gibt eine Zeichenfolge in Kleinbuchstaben zurück.

Beispiel
SELECT 
LOWER(username), 
LOWER(LOGSOURCENAME(logsourceid)) 
FROM events
Gibt Benutzernamen und Protokollquellennamen in Kleinbuchstaben zurück


REPLACEALL

Zweck
Gleicht einen regulären Ausdruck ab und ersetzt alle Übereinstimmungen durch den angegebenen Text.

Ersetzt jede Teilsequenz (arg2) der Eingabefolge, die mit dem Muster (arg1) übereinstimmt, durch die Ersetzungszeichenfolge (arg3).

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


REPLACEFIRST

Zweck
Gleicht einen regulären Ausdruck ab und ersetzt die erste Übereinstimmung durch den angegebenen Text.

Ersetzt die erste Teilsequenz (arg2) der Eingabefolge, die mit dem Muster (arg1) übereinstimmt, durch die Ersetzungszeichenfolge (arg3).

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


STR

Zweck
Konvertiert Parameter jeden Typs in eine Zeichenfolge.
Beispiel
STR(sourceIP)


STRLEN

Zweck
Gibt die Länge einer Zeichenfolge zurück.
Beispiel
SELECT STRLEN(sourceIP), 
STRLEN(username) from events
Gibt die Zeichenfolgelänge für sourceip und usernamezurück


STRPOS

Zweck
Gibt die Position (Index-beginnt bei Null) einer Zeichenfolge in einer anderen Zeichenfolge zurück. Sucht in der Zeichenfolge nach dem Index der angegebenen Unterzeichenfolge. Optional können Sie einen zusätzlichen Parameter angeben, um anzugeben, an welcher Position (Index) nach dem angegebenen Muster gesucht werden soll.

Die Suche nach der Zeichenfolge beginnt am angegebenen Offset und wird zum Ende der Zeichenfolge verschoben.

STRPOS(string, substring, index)

Gibt -1 zurück, wenn die Unterzeichenfolge nicht gefunden wird.
Beispiele
SELECT STRPOS(username, 'name') FROM events
 

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


SUBSTRING

Zweck
Kopiert einen Zeichenbereich in eine neue Zeichenfolge.
Beispiele
SELECT SUBSTRING(userName, 0, 3) FROM events
 
SELECT SUBSTRING(sourceip, 3, 5) FROM events
 


UPPER

Zweck
Gibt eine Zeichenfolge in Großbuchstaben zurück.
Beispiel
SELECT 
UPPER(username), 
UPPER(LOGSOURCENAME(logsourceid)) 
FROM events
Gibt Benutzernamen und Protokollquellennamen in Großbuchstaben zurück.


UTF8

Zweck
Gibt die UTF8-Zeichenfolge eines Byte-Arrays zurück.
Beispiel
SELECT UTF8(payload)
FROM events
WHERE sourceip='192.0.2.0'
 
Gibt die Nutzdaten UTF8 für Ereignisse zurück, bei denen die Quellen-IP-Adresse 192.0.2.0 lautet.