AQL 데이터 계산 및 형식화 함수

Ariel 데이터베이스에서 검색되는 검색 결과에 대해 AQL(Ariel Query Language) 계산 및 형식화 함수를 사용하십시오.

이 목록은 계산 및 데이터 형식화에 사용되는 AQL 함수에 대해 설명합니다.

BASE64

용도
2진 데이터를 나타내는 Base64 인코드 문자열을 리턴합니다.
SELECT BASE64(payload)
FROM events
 
BASE64 형식의 이벤트에 대한 페이로드를 리턴합니다.


CONCAT

용도
전달된 모든 문자열을 하나의 문자열로 연결합니다.
SELECT CONCAT(username, ':', sourceip,  ':', destinationip) 
FROM events LIMIT 5 


DATEFORMAT

용도
1970년 1월 1일 협정 세계시(UTC) 00:00:00 이후의 시간(밀리초)을 사용자가 읽을 수 있는 양식으로 형식화합니다.
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

추가 예제 참조



DOUBLE

용도
숫자를 나타내는 값을 Double로 변환합니다.
DOUBLE('1234')


LONG

용도
숫자를 나타내는 값을 long 정수로 변환합니다.
SELECT destinationip, 
LONG(SUM(sourcebytes+destinationbytes)) 
AS TotalBytes 
FROM flows 
GROUP BY sourceip

이 예제는 대상 IP 주소와, 소스 및 대상 바이트의 합계를 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

QRadar®7.3.1에서 LONG 함수를 사용하여 IP 주소를 long 정수로 변환할 수 있습니다. QRadar 는 비트 방식 연산자와 함께 long 정수를 사용하여 AQL 조회에서 IP 주소 산술 및 필터링을 수행합니다. 예제에서 소스 IP는 비트 AND 연산자에 사용되는 정수로 리턴됩니다.

예에서 <ff>는 IP 주소의 첫 번째 16진수 위치에 있는 <IP 주소의 16진수 값>에 해당합니다. <cursor_name>은 사용하려는 모든 이름이 될 수 있습니다.

예를 들어, 첫 번째 16진수에서 숫자 9가 있는 모든 소스 IP 주소를 리턴하려면 <IP 주소의 16진수 값>에서 10진수 값과 동일한 16진수 값 9를 대체합니다.

비트 단위 연산자와 함께 사용되는 long 함수의 추가 예 참조


PARSEDATETIME

용도
구문 분석기에 시간 값을 전달합니다(예: PARSEDATETIME('time reference')). time reference는 조회의 구문 분석 시간을 나타냅니다.
SELECT * FROM events 
START PARSEDATETIME('1 hour ago')

시간 함수의 추가 예제 참조



PARSETIMESTAMP

용도
날짜와 시간의 텍스트 표시를 구문 분석하여 UNIX epoch 시간으로 변환합니다.

예를 들어, 다음 텍스트 날짜 형식을 구문 분석하십시오.

Thursday, August 24, 2017 3:30:32 PM GMT +01:00 및 다음과 같은 epoch 시간소인으로 변환하십시오. 1503588632.

이 함수를 사용하면 스크립트를 기반으로 하는 API 호출을 쉽게 작성할 수 있습니다.
시간 형식 변환 작동 방법의 예제

다음 예제는 DATEFORMAT 함수가 지정된 날짜 형식을 사용하여 epoch 시간을 텍스트 시간소인으로 변환한 다음 PARSETIMESTAMP 함수를 사용하여 텍스트 시간소인을 epoch 시간 형식으로 변환하는 방법을 보여줍니다.

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

다음 예제는 조회의 출력 결과를 표시합니다.


starttime       text time format      epoch time returned
1503920389888   Mon, M08 28, "2017"   1503920389888      
PARSETIMESTAMP를 사용해 시간을 epoch 시간으로 변환하여 시간을 계산할 수 있는 방법의 예제

다음 예제에서는 로그아웃 시간과 로그인 시간의 차이가 1시간 미만일 때 이벤트가 리턴됩니다.

EEE, d MMM yyyy HH:mm:ss.SSSZ 시간 형식은 사용할 수 있는 시간 형식의 한 예입니다. my_loginmy_logout은(는) 알려진 시간 형식의 사용자 정의 특성입니다(예: 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 

시간 함수의 추가 예제 참조



NOW

용도
1970년 1월 1일 협정 세계시(UTC) 00:00:00시부터 현재 시간(밀리초로 표시)을 리턴합니다.
SELECT ASSETUSER(sourceip, NOW()) 
AS 'Asset user' FROM events
지금 현재(NOW) 자산 사용자를 찾습니다.


LOWER

용도

문자열의 모든 소문자 표시를 리턴합니다.

SELECT 
LOWER(username), 
LOWER(LOGSOURCENAME(logsourceid)) 
FROM events
사용자 이름 및 로그 소스 이름을 소문자로 리턴합니다.


REPLACEALL

용도
정규식과 일치시켜 일치하는 모든 정규식을 텍스트로 대체합니다.

패턴(arg1)과 일치하는 입력 시퀀스의 모든 서브시퀀스(arg2)를 대체 문자열(arg3)로 대체합니다.

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


REPLACEFIRST

용도
정규식과 일치시켜 처음 일치하는 정규식을 텍스트로 대체합니다.

패턴(arg1)과 일치하는 입력 시퀀스의 첫 번째 서브시퀀스(arg2)를 대체 문자열(arg3)로 대체합니다.

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


STR

용도
매개변수를 문자열로 변환합니다.
STR(sourceIP)


STRLEN

용도
이 문자열의 길이를 리턴합니다.
SELECT STRLEN(sourceIP), 
STRLEN(username) from events
sourceipusername의 문자열 길이를 리턴합니다.


STRPOS

용도
문자열의 위치(인덱스 - 0부터 시작)를 다른 문자열로 리턴합니다. 문자열에서 지정된 하위 문자열의 색인을 검색합니다. 선택적으로 추가 매개변수를 지정하여 지정된 패턴을 찾기 시작할 위치(색인)를 나타낼 수 있습니다.

문자열 검색은 지정된 오프셋에서 시작하여 문자열 끝으로 이동합니다.

STRPOS(string, substring, index)

하위 문자열이 발견되지 않으면 -1을 리턴합니다.
SELECT STRPOS(username, 'name') FROM events
 

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


SUBSTRING

용도
문자 범위를 새 문자열로 복사합니다.
SELECT SUBSTRING(userName, 0, 3) FROM events
 
SELECT SUBSTRING(sourceip, 3, 5) FROM events
 


UPPER

용도
문자열의 모든 대문자 표시를 리턴합니다.
SELECT 
UPPER(username), 
UPPER(LOGSOURCENAME(logsourceid)) 
FROM events
사용자 이름 및 로그 소스 이름을 대문자로 리턴합니다.


UTF8

용도
바이트 배열의 UTF8 문자열을 리턴합니다.
SELECT UTF8(payload)
FROM events
WHERE sourceip='192.0.2.0'
 
소스 IP 주소가 192.0.2.0 인 이벤트에 대한 UTF8 페이로드를 리턴합니다.