--- tags: Стажировка - 2й этап. Интенсивы по специальности --- # 2. Нормализация и корреляция событий информационной безопасности ## Нормализация событий ### Событие входа пользователя по SSH * Добавили одно событие из текстового файла ![](https://i.imgur.com/jqXGHq6.png) * Добавили второе событие ![](https://i.imgur.com/PA9ms8O.png) * Настроили поля для нормализации события ![](https://i.imgur.com/Dm0C7rS.png) ``` TEXT = '<{NUMBER}>{time = DATETIME} {"Message forwarded from"?} {event_src.hostname = WORDDASH?} {":"?} audit: {msgid = "USER_Login"} {subject.account.privileges = WORD} {datafield1 = STRING} sshd user: {subject.account.name = STRING} tty: {protocol.layer7 = WORD}' subject = "account" action = "login" object = "system" status = "success" importance = "info" event_src.vendor = "IBM" event_src.title = "AIX" event_src.category = "Operating system" id = "IBM_AIX_USER_Login_audit_ssh" # datafield1 - Успешность действия ``` * Запустили и получили нормализованное событие ![](https://i.imgur.com/LPSTFvc.png) * Также второе событие успешно нормализовалось ![](https://i.imgur.com/pDVbNoz.png) * Заполнили метаданные ![](https://i.imgur.com/9dyI016.png) ``` Метаданные EventDescriptions: - Criteria: id = "IBM_AIX_USER_Login_audit_ssh" LocalizationId: IBM_AIX_USER_Login_audit_ssh RU Description: Аудит подключения по SSH EventDescriptions: - LocalizationId: IBM_AIX_USER_Login_audit_ssh EventDescription: Пользователь {subject.account.name} удачно подключился по протоколу {protocol.layer7} EN Description: SSH connection audit EventDescriptions: - LocalizationId: IBM_AIX_USER_Login_audit_ssh EventDescription: User {subject.account.name} successfully connected via {protocol.layer7} ``` * Запустили сценарий, русская локализация успешно отработала ![](https://i.imgur.com/rLXzDuQ.png) * Английская локализация также работает ![](https://i.imgur.com/Ppoijsg.png) ### Событие чтения конфигурационного файла операционной системы * Добавили оба события чтения конфигурации ![](https://i.imgur.com/5koIy7v.png) * Настроили поля для нормализации ![](https://i.imgur.com/smXGamE.png) ``` TEXT = '{time = DATETIME} {event_src.hostname = WORDDASH} local0:info audit: {msgid = "OS_CONF_READ"} {subject.account.name = STRING} {datafield1 = WORD} {subject.process.name = WORD} audit object read event detected {object.fullpath = STRING}' subject = "account" action = "view" object = "file_object" status = "success" importance = "info" event_src.vendor = "IBM" event_src.title = "AIX" event_src.category = "Operating system" id = "IBM_AIX_Read_Config" # datafield1 - Успешность действия ``` * Первое событие удачно прошло нормализацию ![](https://i.imgur.com/Cog2GmF.png) * Также второе событие тоже нормализовалось ![](https://i.imgur.com/PVWdRXW.png) * Настроили метаданные ![](https://i.imgur.com/5pdxbAH.png) ``` Метаданные EventDescriptions: - Criteria: id = "IBM_AIX_Read_Config" LocalizationId: IBM_AIX_Read_Config RU Description: Аудит чтения конфигурационного файла операционной системы EventDescriptions: - LocalizationId: IBM_AIX_Read_Config EventDescription: Пользователь {subject.account.name} удачно прочитал файл конфигурации {object.fullpath} EN Description: Audit read operating system configuration file EventDescriptions: - LocalizationId: IBM_AIX_Read_Config EventDescription: User {subject.account.name} has successfully read configuration file {object.fullpath} ``` * Русская локализация успешно отрабатывает ![](https://i.imgur.com/cEL2YfJ.png) * Английская локализация успешно отрабатывает ![](https://i.imgur.com/9MMgEx9.png) ## Корреляция событий * Загрузили оба нормализованных события в виде строки. Изменили event_source_hostname на aix53 для удобного применения ключа ![](https://i.imgur.com/flgXXGe.png) ![](https://i.imgur.com/x2sGPrS.png) * Добавили нужные поля для правила корреляции ``` event Read_conf: key: event_src.hostname filter { correlation_name == null and object.fullpath == "/etc/shadow" and action == "view" and object == "file_object" and status == "success" and msgid == "OS_CONF_READ" } event User_Ssh: key: event_src.hostname filter { correlation_name == null and action == "login" and object == "system" and status == "success" and protocol.layer7 == "ssh" and msgid == "USER_Login" } rule User_read_file_etc_shadow_then_successfully_logged_in_system_under_different_user: (Read_conf [1,] -> User_Ssh with different subject.account.name) within 5m init { $first_event = true } on Read_conf { $object.fullpath = object.fullpath $subject.account.name = subject.account.name } on User_Ssh { if $first_event then $first_event = false $datafield5 = subject.account.name #datafield5 - пользователь вошедший по SSH $protocol.layer7 = protocol.layer7 $event_src.hostname = event_src.hostname endif } emit { $correlation_type = "event" $subject = "account" $action = "login" $object = "system" $status = "success" $importance = "info" } ``` * Правило корреляции успешно отработало ![](https://i.imgur.com/ByprkRN.png) * Настроили метаданные и локализацию на русском и английском языке ![](https://i.imgur.com/Ngk6p5T.png) ``` Метаданные EventDescriptions: - Criteria: correlation_name = "User_read_file_etc_shadow_then_successfully_logged_in_system_under_different_user" LocalizationId: User_read_file_etc_shadow_then_successfully_logged_in_system_under_different_user RU Description: Пользователь прочитал файл конфигурации и вошел в систему EventDescriptions: - LocalizationId: User_read_file_etc_shadow_then_successfully_logged_in_system_under_different_user EventDescription: Пользователь {subject.account.name} прочитал файл {object.fullpath} и вошел в систему под пользователем {datafield5} по протоколу {protocol.layer7}. Источник события {event_src.hostname}. EN Description: EventDescriptions: - LocalizationId: User_read_file_etc_shadow_then_successfully_logged_in_system_under_different_user EventDescription: User {subject.account.name} read the file {object.fullpath} and logged in as user {datafield5} using protocol {protocol.layer7}. Event source {event_src.hostname}. ```