AQL 검색 문자열 예

AQL ( Ariel Query Language) 을 사용하여 Ariel 데이터베이스의 이벤트, 플로우 및 simarc 테이블에서 특정 필드를 검색합니다.

참고: AQL 조회를 빌드할 때 문서에서 작은따옴표를 포함하는 텍스트를 복사하여 텍스트를 IBM QRadar에 붙여넣으면 조회가 구문 분석되지 않습니다. 임시 해결책으로 QRadar 에 텍스트를 붙여넣고 작은따옴표를 다시 입력하거나 IBM Knowledge Center에서 텍스트를 복사하여 붙여넣을 수 있습니다.

계정 사용 보고

다양한 사용자 커뮤니티에서 다양한 위협 및 사용 표시기를 사용할 수 있습니다.

몇 가지 사용자 특성(예: 부서, 위치 또는 관리자)에 대해 보고하려면 참조 데이터를 사용하십시오. 외부 참조 데이터를 사용할 수 있습니다.

다음 조회는 로그인 이벤트에서 해당 사용자에 대한 메타데이터 정보를 리턴합니다.

SELECT
REFERENCETABLE('user_data','FullName',username) as 'Full Name',
REFERENCETABLE('user_data','Location',username) as 'Location',
REFERENCETABLE('user_data','Manager',username) as 'Manager',
DISTINCTCOUNT(username) as 'Userid Count',
DISTINCTCOUNT(sourceip) as 'Source IP Count',
COUNT(*) as 'Event Count'
FROM events
WHERE qidname(qid) ILIKE '%logon%'
GROUP BY 'Full Name', 'Location', 'Manager'
LAST 1 days

다중 계정 ID에 대한 통찰

이 예제에서 개별 사용자는 네트워크에서 다중 계정을 가집니다. 조직에는 하나의 사용자 활동 보기가 필요합니다.

참조 데이터를 사용하여 로컬 사용자 ID를 글로벌 ID로 맵핑하십시오.

다음 조회는 의심(suspicious)으로 플래그된 이벤트에서 임의의 글로벌 ID로 사용되는 사용자 계정을 리턴합니다.

SELECT
REFERENCEMAP('GlobalID Mapping',username) as 'Global ID', 
REFERENCETABLE('user_data','FullName', 'Global ID') as 'Full Name',
DISTINCTCOUNT(username),
COUNT(*) as 'Event count'
FROM events
WHERE RULENAME(creEventlist) ILIKE '%suspicious%'
GROUP BY 'Global ID'
LAST 1 days

다음 조회는 글로벌 ID로 완료되는 활동을 표시합니다.

SELECT
QIDNAME(qid) as 'Event name', 
starttime as 'Time',
sourceip as 'Source IP', destinationip as 'Destination IP',
username as 'Event Username',
REFERENCEMAP('GlobalID_Mapping', username)as 'Global User'
FROM events
WHERE 'Global User' = 'John Doe'
LAST 1 days

의심스러운 장기 비코닝 식별

다수의 위협은 명령 및 제어를 사용하여 몇 일, 몇 주 및 몇 개월에 걸쳐 주기적으로 통신합니다.

고급 검색은 시간이 경과함에 따라 연결 패턴을 식별할 수 있습니다. 예를 들어, IP 주소 간 또는 IP 주소와 지리적 위치 간의 일/주/월당 일관적, 단기, 낮은 볼륨 연결 및 연결 수를 조회할 수 있습니다.

다음 조회는 시간별 비코닝의 잠재적 인스턴스를 발견합니다.

SELECT sourceip, destinationip,
DISTINCTCOUNT(DATEFORMAT(starttime,'HH')) as 'different hours',
COUNT(*) as 'total flows'
FROM flows
WHERE flowdirection = 'L2R'
GROUP BY sourceip, destinationip
HAVING "different hours" > 20
AND "total flows" < 25
LAST 24 hours
팁: 프록시 로그 및 기타 이벤트 유형에 대해 작업하도록 이 조회를 수정할 수 있습니다.

다음 조회는 매일 비코닝의 잠재적 인스턴스를 발견합니다.

SELECT sourceip, destinationip,
DISTINCTCOUNT(DATEFORMAT(starttime,'dd'))as 'different days',
COUNT(*) as 'total flows'
FROM flows
WHERE flowdirection='L2R'
GROUP BY sourceip, destinationip
HAVING "different days" > 4
AND "total flows" < 14
LAST 7 days

다음 조회는 소스 IP와 대상 IP 간의 매일 비코닝을 발견합니다. 비코닝 시간은 매일 동일하지 않습니다. 비콘 사이의 시차가 짧습니다.

SELECT
sourceip,
LONG(DATEFORMAT(starttime,'hh')) as hourofday,
(AVG( hourofday*hourofday) - (AVG(hourofday)^2))as variance,
COUNT(*) as 'total flows'
FROM flows
GROUP BY sourceip, destinationip
HAVING variance < 01 and "total flows" < 10
LAST 7 days

다음 조회는 프록시 로그 이벤트를 사용하여 도메인에 대한 매일 비코닝을 발견합니다. 비코닝 시간은 매일 동일하지 않습니다. 비콘 사이의 시차가 짧습니다.

SELECT sourceip,
LONG(DATEFORMAT(starttime,'hh')) as hourofday,
(AVG(hourofday*hourofday) - (AVG(hourofday)^2)) as variance,
COUNT(*) as 'total events'
FROM events
WHERE LOGSOURCEGROUPNAME(devicegrouplist) ILIKE '%proxy%'
GROUP BY url_domain
HAVING variance < 0.1 and "total events" < 10
LAST 7 days

url_domain 특성은 프록시 로그의 사용자 정의 특성입니다.

외부 위협 정보

외부 위협 정보 데이터와 상관되는 사용 및 보안 데이터는 중요한 위협 표시기를 제공합니다.

고급 검색은 기타 보안 이벤트 및 사용 데이터와 외부 위협 정보 표시기를 상호 참조할 수 있습니다.

다음 조회는 여러 날, 주 또는 개월 동안의 외부 위협 데이터에 대한 프로파일을 작성하여 자산 및 계정의 위험 레벨을 식별하고 우선순위를 지정하는 방법을 보여줍니다.

Select
REFERENCETABLE('ip_threat_data','Category',destinationip) as 'Category',
REFERENCETABLE('ip_threat_data','Rating', destinationip) as 'Threat Rating',
DISTINCTCOUNT(sourceip) as 'Source IP Count',
DISTINCTCOUNT(destinationip) as 'Destination IP Count'
FROM events
GROUP BY 'Category', 'Threat Rating'
LAST 1 days

자산 정보 및 구성

위협 및 사용 표시기는 자산 유형, 운영 체제, 취약성 형태, 서버 유형, 분류 및 기타 매개변수에 따라 다릅니다.

이 조회에서 고급 검색 및 자산 모델은 위치에 대한 운영상의 통찰을 제공합니다.

Assetproperty 함수는 자산에서 특성 값을 검색하며, 이 함수를 사용하여 결과에 자산 데이터를 포함할 수 있습니다.

SELECT
ASSETPROPERTY('Location',sourceip) as location,
COUNT(*) as 'event count'
FROM events
GROUP BY location
LAST 1 days

다음 조회는 고급 검색과 자산 모델의 사용자 ID 추적을 사용하는 방법을 보여줍니다.

AssetUser 함수는 자산 데이터베이스에서 사용자 이름을 검색합니다.

SELECT 
APPLICATIONNAME(applicationid) as App,
ASSETUSER(sourceip, now()) as srcAssetUser,
COUNT(*) as 'Total Flows'
FROM flows
WHERE srcAssetUser IS NOT NULL
GROUP BY App, srcAssetUser
ORDER BY "Total Flows" DESC
LAST 3 HOURS

Network LOOKUP 함수

Network LOOKUP 함수를 사용하여 IP 주소와 연관된 네트워크 이름을 검색할 수 있습니다.

SELECT NETWORKNAME(sourceip) as srcnet,
NETWORKNAME(destinationip) as dstnet
FROM events

Rule LOOKUP 함수

Rule LOOKUP 함수를 사용하여 ID로 룰의 이름을 검색할 수 있습니다.

SELECT RULENAME(123) FROM events

다음 조회는 특정 룰 이름을 트리거한 이벤트를 리턴합니다.

SELECT * FROM events
WHERE RULENAME(creEventList) ILIKE '%my rule name%'

사용자 정의 특성

고급 검색 옵션을 사용하면 이벤트 및 플로우에 대한 사용자 정의 특성을 액세스할 수 있습니다.

다음의 조회에서는 "MyWebsiteUrl"이라는 사용자 정의 특성을 사용하여 특정한 웹 URL에 따라 이벤트를 정렬합니다.
SELECT "MyWebsiteUrl", * FROM events ORDER BY "MyWebsiteUrl"