Выполнение PDQL-запроса позволяет отфильтровать, сгруппировать и проанализировать данные о событиях в соответствии с его условиями. Для создания условия запроса используются поля событий и их значения, а также операторы и функции. Результаты фильтрации будут представлены в виде таблицы с колонками, соответствующими выбранным полям событий.
Вы можете создавать условие запроса и изменять представление данных о событиях в таблице с помощью системного конструктора представления данных, а также в виде текстового представления в поле фильтрации. Каждое последующее действие применяется к результату, полученному при выполнении предыдущего действия.
В таблице событий вы можете:
- фильтровать события по нажатию ;
- изменять состав колонок таблицы по нажатию ;
- выбирать порядок сортировки событий по нажатию ;
- группировать и анализировать данные по нажатию используются математические функции); (для анализа
- ограничивать количество записей в таблице по нажатию .
Для фильтрации событий в поле Условие фильтрации необходимо указать условие фильтрации. Для создания условия используются поля событий, их значения, регулярные выражения, операторы и функции.
По умолчанию таблица содержит колонки time (время создания события), event_src.host (название или IP-адрес узла — источника события) и text (описание события). Для выбора колонок таблицы в поле Выбор полей необходимо указать поля событий. Им будут соответствовать колонки в таблице с результатами выполнения запроса.
По умолчанию события в таблице отсортированы по времени от новых к старым. В поле Сортировка по полям можно указать порядок сортировки результата выполнения запроса.
В поле Группировка с помощью полей событий можно выбрать условие группировки данных о событиях. Сгруппированные данные можно проанализировать с помощью математических функций в группе параметров Агрегация.
По умолчанию в таблице отображаются все события. В поле Максимальное количество строк можно ограничить количество строк в таблице событий.
Примеры
Вы можете найти все неуспешные попытки выполнения действий в системе с помощью следующих запросов:
Select text, category.generic, status Where status = "failure"
(для системного конструктора представления данных);filter(status = "failure") | select(text, category.generic, status) | sort(time desc)
(для текстового представления в поле фильтрации).
Для каждого события в таблице будут указаны его общая категория, статус и текст.
Вы можете найти все события по протоколу, отличному от UDP, через порт источника, входящий в множество [80, 443, 8080, 8888, 88, 9050], с помощью следующих запросов:
Select src.ip, dst.ip, src.port Where src.ip and dst.ip and src.port in [80, 443, 8080, 8888, 88, 9050] and protocol != "udp"
(для системного конструктора представления данных);filter(src.ip and dst.ip and src.port in [80, 443, 8080, 8888, 88, 9050] and protocol != "udp") | select(time, src.ip, dst.ip, src.port) | sort(time desc)
(для текстового представления в поле фильтрации).
При этом для событий должны быть известны IP-адреса источника и получателя. Для каждого события в таблице будут указаны IP-адреса источника и получателя и порт источника.
Вы можете найти все события, связанные с операциями с файлами внутри папки ProgramData
, и отсортировать их по времени от новых к старым с помощью следующих запросов:
Select src.host, subject, subject.name, object.name, object.path, event_src.host Where object = "file" and object.path startswith "C:\\ProgramData" Order by time (свежее сверху)
(для системного конструктора представления данных);filter(object = "file" and object.path startswith "C:\\ProgramData") | select(src.host, subject, subject.name, object.name, object.path, event_src.host) | sort(time desc)
(для текстового представления в поле фильтрации).
Для каждого события в таблице будет указано, с какого источника и кто осуществил операцию с объектом, а также сам объект и источник, на котором произошло событие.
Вы можете найти все события, в которых узлами назначения не являются компьютеры IT-департамента, с помощью следующих запросов:
Select time, event_src.host, dst.hostname, text Where not(dst.hostname contains "itdepartment")
(для системного конструктора представления данных);filter(not(dst.hostname contains "itdepartment")) | select(time, event_src.host, text) | sort(time desc)
(для текстового представления в поле фильтрации).
Для каждого события в таблице будет указано время, его источник, узел назначения и текст.
Вы можете найти все события с объектами, расположенными не в папке Program Files
, с помощью следующих запросов:
Select time, event_src.host, text Where (object.path != null) AND not(object.path match ".*Program Files.*")
(для системного конструктора представления данных);filter((object.path != null) AND not(object.path match ".*Program Files.*")) | select(time, event_src.host, text) | sort(time desc)
(для текстового представления в поле фильтрации).
Поиск будет осуществляться только среди событий, для которых известен путь к объекту. Для каждого события в таблице будет указано время, его источник и текст.
Вы можете найти все события от источников, содержащих в названии 'prod' и не находящихся в подсети 192.0.2.19/24, с помощью следующих запросов:
Select time, event_src.host, text Where (event_src.host contains 'prod') and not(in_subnet(src.ip, "192.0.2.19/24"))
(для системного конструктора представления данных);filter(event_src.host contains 'prod' and not(in_subnet(src.ip, "192.0.2.19/24"))) | select(time, event_src.host, src.ip) | sort(time desc) | limit(10000)
(для текстового представления в поле фильтрации).
Для каждого события в таблице будет указано время, его источник и текст.