Funciones de cálculo y formateo de datos de AQL

Utilice las funciones de cálculo y formateo de Ariel Query Language (AQL) en los resultados de búsqueda que se recuperan de las bases de datos de Ariel.

Esta lista describe las funciones de AQL que se utilizan para los cálculos y el formateo de datos:

BASE64

Finalidad
Devuelve una serie codificada en Base64 que representa datos binarios.
Ejemplo
SELECT BASE64(payload)
FROM events
 
Devuelve las cargas útiles para sucesos en formato BASE64 .


CONCAT

Finalidad
Concatena todas las series pasadas en una serie.
Ejemplo
SELECT CONCAT(username, ':', sourceip,  ':', destinationip) 
FROM events LIMIT 5 


DATEFORMAT

Finalidad
Formatea la hora en milisegundos desde las 00:00:00 Hora Universal Coordinada (UTC) del 1 de enero de 1970 a un formato legible por el usuario.
Ejemplos
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

Vea más ejemplos



DOUBLE

Finalidad
Convierte un valor que representa un número en un doble.
Ejemplo
DOUBLE('1234')


LONG

Finalidad
Convierte un valor que representa un número en un entero largo.
Ejemplos
SELECT destinationip, 
LONG(SUM(sourcebytes+destinationbytes)) 
AS TotalBytes 
FROM flows 
GROUP BY sourceip

El ejemplo devuelve la dirección IP de destino y la suma de los bytes de origen y destino en la columna 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

En QRadar®7.3.1, puede utilizar la función LONG para convertir direcciones IP en un entero largo. QRadar utiliza enteros largos con operadores bit a bit para realizar la aritmética de direcciones IP y el filtrado en consultas AQL. En el ejemplo, la IP de origen se devuelve como un entero, que utiliza el operador AND a nivel de bit.

En el ejemplo, <ff> se corresponde con <valor hexadecimal de dirección IP>, que está en la primera posición de octeto para una dirección IP. El <nombre_actual> puede ser cualquier nombre que desee utilizar.

Por ejemplo, si desea devolver todas las direcciones IP de origen con el número 9 en el primer octeto, sustituya el valor hexadecimal 9, que es el mismo que el valor decimal, en <valor hexadecimal de dirección IP>.

Vea más ejemplos de la función larga que se utiliza con operadores bit a bit


PARSEDATETIME

Finalidad
Pase un valor de tiempo al analizador, por ejemplo, PARSEDATETIME('time reference'). La referencia de tiempo indica la hora de análisis para la consulta.
Ejemplo
SELECT * FROM events 
START PARSEDATETIME('1 hour ago')

Vea más ejemplos de funciones de tiempo



PARSETIMESTAMP

Finalidad
Analice la representación de texto de fecha y hora y conviértala en hora de época UNIX.

Por ejemplo, analice el siguiente formato de fecha de texto:

Thursday, August 24, 2017 3:30:32 PM GMT +01:00 y conviértalo a la siguiente indicación de fecha y hora de época: 1503588632.

Esta función facilita la emisión de llamadas desde la API basadas en scripts.
Ejemplo de cómo funciona la conversión de formato de hora

El ejemplo siguiente muestra cómo la función DATEFORMAT convierte la hora de época en una indicación de fecha y hora de texto utilizando el formato de fecha especificado y, a continuación, se utiliza la función PARSETIMESTAMP para convertir la indicación de fecha y hora de texto en un formato de hora de época.

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

El ejemplo siguiente muestra un extracto de la salida de la consulta:


starttime       text time format      epoch time returned
1503920389888   Mon, M08 28, "2017"   1503920389888      
Ejemplo de cómo se puede utilizar PARSETIMESTAMP para convertir horas en tiempo de época para que se puedan realizar cálculos de tiempo.

En el ejemplo siguiente, se devuelven sucesos cuando la diferencia de tiempo entre las horas de cierre de sesión y de inicio de sesión es inferior a 1 hora.

El formato de hora EEE, d MMM yyyy HH:mm:ss.SSSZ es sólo un ejemplo de un formato de hora que puede utilizar, y my_login y my_logout son propiedades personalizadas en un formato de hora conocido, por ejemplo, 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 

Vea más ejemplos de funciones de tiempo



NOW

Finalidad
Devuelve la hora actual que se expresa en milisegundos desde las 00:00:00 Hora universal coordinada (UTC) del 1 de enero de 1970.
Ejemplo
SELECT ASSETUSER(sourceip, NOW()) 
AS 'Asset user' FROM events
Buscar el usuario del activo en este momento (AHORA).


LOWER

Finalidad

Devuelve una representación en minúsculas de una serie.

Ejemplo
SELECT 
LOWER(username), 
LOWER(LOGSOURCENAME(logsourceid)) 
FROM events
Devuelve nombres de usuario y nombres de origen de registro en minúsculas.


REPLACEALL

Finalidad
Emparejar un regex y sustituir todas las sustituciones por texto.

Sustituye cada subsequence(arg2) de la secuencia de entrada que coincide con el pattern(arg1) por string(arg3) de sustitución.

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


REPLACEFIRST

Finalidad
Emparejamiento con un regex y sustitución de la primera coincidencia por texto.

Sustituye el primer subsequence(arg2) de la secuencia de entrada que coincide con el pattern(arg1) por string(arg3) de sustitución.

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


STR

Finalidad
Convierte cualquier parámetro en una serie.
Ejemplo
STR(sourceIP)


STRLEN

Finalidad
Devuelve la longitud de esta serie.
Ejemplo
SELECT STRLEN(sourceIP), 
STRLEN(username) from events
Devuelve la longitud de serie para sourceip y username.


STRPOS

Finalidad
Devuelve la posición (index-empieza en cero) de una serie en otra serie. Busca en la serie el índice de la subserie especificada. Opcionalmente, puede especificar un parámetro adicional para indicar en qué posición (índice) empezar a buscar el patrón especificado.

La búsqueda de la serie empieza en el desplazamiento especificado y se mueve hacia el final de la serie.

STRPOS(string, substring, index)

Devuelve -1 si no se encuentra la subserie.
Ejemplos
SELECT STRPOS(username, 'name') FROM events
 

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


SUBSTRING

Finalidad
Copia un rango de caracteres en una serie nueva.
Ejemplos
SELECT SUBSTRING(userName, 0, 3) FROM events
 
SELECT SUBSTRING(sourceip, 3, 5) FROM events
 


UPPER

Finalidad
Devuelve una representación en mayúsculas de una serie.
Ejemplo
SELECT 
UPPER(username), 
UPPER(LOGSOURCENAME(logsourceid)) 
FROM events
Devuelve nombres de usuario y nombres de origen de registro en mayúsculas.


UTF8

Finalidad
Devuelve la serie UTF8 de una matriz de bytes.
Ejemplo
SELECT UTF8(payload)
FROM events
WHERE sourceip='192.0.2.0'
 
Devuelve la carga útil UTF8 para sucesos en los que la dirección IP de origen es 192.0.2.0