Перейти к содержанию

Механизмы разбора

Данный раздел используется как справочный материал по работе в разделе ИсточникиПравила разбора.

В Платформе Радар для выполнения процедуры разбора событий, поступающих от источников, используются следующие механизмы:

GROK паттерн

GROK паттерны – это именованные регулярные выражения, которые позволяют пользователям сопоставлять конкретные шаблоны в тексте. С их помощью можно быстро идентифицировать и извлекать поля из поступающих событий без необходимости писать сложные регулярные выражения с нуля.

В Платформе Радар GROK паттерны делятся на системные и пользовательские. Подробнее см. раздел GROK паттерны. Описание.

GROK паттерн представляет собой шаблон. Синтаксис шаблонов GROK, при использовании следующий:

%{SYNTAX:SEMANTIC}

где

  • SYNTAX – имя паттерна который будет применен;
  • SEMANTIC – имя объекта (поле, группа) к которому будет применен паттерн.

Пример настройки данного механизма приведен на рисунке 1.

Рисунок 1 – Добавление правила разбора. Механизм "GROK паттерн"

Для настройки механизма в поле Паттерн укажите GROK паттерн. Для использования пользовательских или системных GROK паттернов введите символ {, откроется список ключей поддерживаемых GROK паттернов. Сначала будут выведены пользовательские, а затем – системные.

Пример работы:

Сырое событие:

{"Message":"<7> 7/26/2023 2:39:42 PM pgr-1c-00 {\"Event\":{\"Level\":\"Information\",\"Date\":\"2023-07-26T14:39:42\",\"ApplicationName\":\"BackgroundJob\",\"ApplicationPresentation\":\"Background job\",\"Event\":\"_$Data$_.Update\",\"EventPresentation\":\"Data. Change\",\"User\":\"00000000-0000-0000-0000-000000000000\",\"UserName\":\"\",\"Computer\":\"\",\"Metadata\":\"Константа.ПоследнееОбновлениеДоступа\",\"MetadataPresentation\":\"Constant. Последнее обновление доступа\",\"Comment\":null,\"Data\":\"something Команда: Выполнить обновление\",\"DataPresentation\":\"\",\"TransactionStatus\":\"Committed\",\"TransactionID\":\"7/26/2023 2:39:42 PM (2934007)\",\"Connection\":\"3\",\"Session\":\"34\",\"ServerName\":\"\",\"Port\":\"\",\"SyncPort\":\"0\"}}","a":"a7e42e20-03a1-4998-a301-c97fa77cbe73","a_c":"","a_src_ip":"172.30.250.141","a_src_o":"445","a_src_r":"smb","a_src_t":[],"a_ts":"2024-10-21T12:41:44.993Z"}

Поле сырого события к которому будет применен GROK паттерн:

\"Event\":\"_$Data$_.Update\"

Применяемый GROK паттерн:

^_\$%{WORD:job_type}\$_.%{WORD:job_status}

Результат работы приведен на рисунке 2.

Рисунок 2 – Пример работы механизма "GROK паттерн"

CEF

Общий формат событий (Common Event Format (CEF )) – это расширяемый текстовый формат, предназначенный для поддержки нескольких типов устройств, предлагая наиболее актуальную информацию.

Синтаксис сообщений сокращен для работы с нормализацией ESM. CEF специально определяет синтаксис для записей журнала, содержащих стандартный заголовок и расширение переменной, отформатированные как пары "Ключ-Значение". Формат CEF может использоваться с локальными устройствами и с поставщиками облачных услуг.

При использовании данного механизма при создании правил разбора дополнительных настроек не требуется.

Ключ значение

Данный механизм будет разбирать пришедшее поле на пары "Ключ-Значение" в соответствии с заданными параметрами.

Пример настройки данного механизма приведен на рисунке 3.

Рисунок 3 – Добавление правила разбора. Механизм "Ключ-Значение"

Для настройки механизма разбора "Ключ-Значение" указывается следующая информация:

  • Разделитель пары "Ключ-Значение" – укажите символ, который будет являться разделителем пары "Ключ-Значение". Например:

    Приходящая пара "Ключ-Значение":
    "a":"1"
    
    Разделитель пары "="
    
    Результат:
    a=1
    
  • Разделитель строк – укажите символ, который будет являться разделителем строк. Например:

    Приходящие пары Ключ-Значение:
    "a":"1" "b":"2"
    
    Разделитель строк ","
    
    Результат:
    a=1,b=2
    

    Примечание: если оставить поле пустым, то в качестве разделителя строк будет использоваться "перенос строки".

  • Экранирование значений – укажите символ, который будет стоять перед каждым значением в паре и после него;

  • Поля значений. Задается последовательный список, по которому будут переопределяться "ключи" из пары "Ключ-Значение". Например:

    Приходящие пары Ключ-Значение:
    "a":"1" "b":"2"
    
    Поля значений:
    value_1
    value_2
    value_3
    
    Результат:
    value_1=1
    value_2=2
    value_3 - поле применено не будет, так как пришло всего две пары "Ключ-Значение"
    

Пример работы механизма разбора приведен на рисунке 4.

Рисунок 4 – Пример работы механизма разбора "Ключ-Значение"

CSV

Механизм используется в случае, если в поле сырого события вложены данные в формате CSV.

Механизм работает и настраивается аналогично механизму Ключ-Значение.

SYSLOG

Если источником событий является ОС семейства Unix, то с наибольшей вероятностью события будут журналироваться одной из следующих служб:

  • rsyslog;
  • syslog-ng;
  • auditd.

Если используются данные механизмы журналирования, то для разбора событий рекомендуется использовать механизм SYSLOG.

Для создания правила разбора, с использованием данного механизма, дополнительных настроек не требуется.

Пример сырого события от ОС Linux:

{"a_src_ip":"172.30.249.201","a_src_o":"2671","a_c":"","a_src_t":[""],"a_src_r":"","a_ts":"2024-09-25T10:09:51.088.088144459+00:00","a":"a1a1795a-6a18-4345-9020-77723a724d38","Message":"<22>Sep 18 16:55:01 v-stand-05 audispd: node=172.30.254.95 type=EXECVE msg=audit(1663937111.702:73702361): argc=5 a0=\"ps\" a1=\"-o\" a2=\"rss=\" a3=\"-p\" a4=\"1736\""}

Пример успешного применения механизма разбора, примененного к полю Message сырого события, приведено на рисунке 5.

Рисунок 5 – Пример работы механизма разбора "SYSLOG"

XML

Механизм используется в случае, если в поле сырого события вложено XML-выражение.

При использовании данного механизма при создании правил разбора дополнительных настроек не требуется.

Особенностью данного механизма является то, что XML может быть вложенный, то есть в ключ может быть вложен ключ, в который также вложен ключ.

Результатом применения данного механизма будет ключ следующего вида:

"Ключ первого уровня"__"Ключ второго уровня"__"Ключ n-уровня"="Значение" 

Пример события со вложенными ключами:

{"a_src_ip":"172.30.249.201","a_src_o":"1217","a_c":"","a_src_t":[""],"a_src_r":"","a_ts":"2024-09-13T14:09:12.731.731790640+00:00","a":"fdf1c240-ecfe-4d76-9ac9-0d2c315b744c","Message":"{\"AccountDomain\":\"IMG-WIN2019\",\"AccountName\":\"Administrator\",\"Bookmark\":\"\",\"Channel\":\"Security\",\"ChannelText\":\"Security\",\"ClientAddress\":\"172.30.253.104\",\"ClientName\":\"DESKTOP-FJ5FBMT\",\"EventData\":\"\",\"EventDataErr\":null,\"EventID\":4778,\"EventTime\":\"2024-08-14T10:07:28.86689Z\",\"EventType\":\"AUDIT_SUCCESS\",\"ExecutionProcessID\":620,\"Hostname\":\"img-win2019\",\"IDText\":\"\",\"Keywords\":null,\"KeywordsRaw\":\"0x8020000000000000\",\"Level\":0,\"LevelText\":\"Information\",\"LogonID\":\"0x000000000004b543\",\"Msg\":\"\",\"OpcodeText\":\"Info\",\"OpcodeValue\":0,\"ProviderText\":\"\",\"PublisherHandleErr\":null,\"Qualifiers\":0,\"RecordID\":17728,\"RenderedFieldsErr\":null,\"SessionName\":\"RDP-Tcp#1\",\"SourceName\":\"Microsoft-Windows-Security-Auditing\",\"SubscribedChannel\":\"Security\",\"TaskText\":\"\",\"TaskValue\":12551,\"ThreadID\":680,\"User\":\"\",\"UserData\":\"\",\"Version\":0,\"XML\":\"\\u003cEvent xmlns=\\\"http:\/\/schemas.microsoft.com\/win\/2004\/08\/events\/event\\\"\\u003e\\u003cSystem\\u003e\\u003cProvider Name=\\\"Microsoft-Windows-Security-Auditing\\\" Guid=\\\"54849625-5478-4994-a5ba-3e3b0328c30d\\\"\/\\u003e\\u003cEventID\\u003e4778\\u003c\/EventID\\u003e\\u003cVersion\\u003e0\\u003c\/Version\\u003e\\u003cLevel\\u003e0\\u003c\/Level\\u003e\\u003cTask\\u003e12551\\u003c\/Task\\u003e\\u003cOpcode\\u003e0\\u003c\/Opcode\\u003e\\u003cKeywords\\u003e0x8020000000000000\\u003c\/Keywords\\u003e\\u003cTimeCreated SystemTime=\\\"2024-08-14T10:07:28.866890+00:00\\\"\/\\u003e\\u003cEventRecordID\\u003e17728\\u003c\/EventRecordID\\u003e\\u003cCorrelation ActivityID=\\\"ee7f716d-ee30-0003-9971-7fee30eeda01\\\"\/\\u003e\\u003cExecution ProcessID=\\\"620\\\" ThreadID=\\\"680\\\"\/\\u003e\\u003cChannel\\u003eSecurity\\u003c\/Channel\\u003e\\u003cComputer\\u003eimg-win2019\\u003c\/Computer\\u003e\\u003cSecurity\/\\u003e\\u003c\/System\\u003e\\u003cEventData\\u003e\\u003cData Name=\\\"AccountName\\\"\\u003eAdministrator\\u003c\/Data\\u003e\\u003cData Name=\\\"AccountDomain\\\"\\u003eIMG-WIN2019\\u003c\/Data\\u003e\\u003cData Name=\\\"LogonID\\\"\\u003e0x000000000004b543\\u003c\/Data\\u003e\\u003cData Name=\\\"SessionName\\\"\\u003eRDP-Tcp#1\\u003c\/Data\\u003e\\u003cData Name=\\\"ClientName\\\"\\u003eDESKTOP-FJ5FBMT\\u003c\/Data\\u003e\\u003cData Name=\\\"ClientAddress\\\"\\u003e172.30.253.104\\u003c\/Data\\u003e\\u003c\/EventData\\u003e\\u003c\/Event\\u003e\",\"XMLErr\":null}"}

Пример успешного применения механизма разбора, примененного к полю XML, приведено на рисунке 6.

Рисунок 6 – Пример работы механизма разбора "XML"

JSON

В основном, все источники посылают события в формате RAW-JSON. При разборе событий в этом формате необходимо в качестве первого этапа использовать механизм JSON, а потом любые из доступных в платформе, в зависимости от типа данных в исходном событии.

Обычно все сырые события помещаются в поле Message.

Примечание: для просмотра наименования поля, в которое приходит сырое событие, запустите механизм тестирования и в результатах просмотра перейдите на вкладку "Сырое событие". Найдите пару "Ключ-Значение", в которой значением будет являться сырое событие.

Пример настройки данного механизма приведен на рисунке 7.

Рисунок 7 – Добавление правила разбора. Механизм разбора "JSON"

Для настройки механизма разбора укажите следующие значения:

  • в поле Поле события укажите поле, в которое пришло сырое событие;
  • в поле Механизм разбора выберите значение "json".

Функция преобразования

Поддерживается функция преобразования HEX to Text которая при разборе события преобразует числовое представление последовательности номеров и символов в текстовое.

Пример настройки данного механизма приведен на рисунке 8.

Рисунок 8 – Добавление правила разбора. Механизм разбора "Функция преобразования"

Пример сырого события с HEX представлением:

{"a_src_ip":"172.30.249.201","a_src_o":"2671","a_c":"","a_src_t":[""],"a_src_r":"","a_ts":"2024-12-04T12:12:06.382.382328581+00:00","a":"8b3beadb-c7bc-48f2-9bf1-d2012ed9d17e","Message":"Dec  4 12:50:40 v-stand-05 audispd: node=172.30.254.95 type=PROCTITLE msg=audit(1733305840.550:51886): proctitle=757365726D6F64002D61002D470076696C61696E73007261766573"}

Где:

  • ключ поля – proctitle;
  • значение поля – 757365726D6F64002D61002D470076696C61696E73007261766573.

Пример успешного применения правила разбора приведен на рисунке 9.

Рисунок 9 – Пример успешного выполнения механизма разбора "Функция преобразования"

← Назад