--- tags: Стажировка - 2й этап. Интенсивы по специальности --- # 2. Нормализация и корреляция событий информационной безопасности ## Нормализация событий ### Событие входа пользователя по SSH * Добавили одно событие из текстового файла  * Добавили второе событие  * Настроили поля для нормализации события  ``` 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 - Успешность действия ``` * Запустили и получили нормализованное событие  * Также второе событие успешно нормализовалось  * Заполнили метаданные  ``` Метаданные 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} ``` * Запустили сценарий, русская локализация успешно отработала  * Английская локализация также работает  ### Событие чтения конфигурационного файла операционной системы * Добавили оба события чтения конфигурации  * Настроили поля для нормализации  ``` 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 - Успешность действия ``` * Первое событие удачно прошло нормализацию  * Также второе событие тоже нормализовалось  * Настроили метаданные  ``` Метаданные 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} ``` * Русская локализация успешно отрабатывает  * Английская локализация успешно отрабатывает  ## Корреляция событий * Загрузили оба нормализованных события в виде строки. Изменили event_source_hostname на aix53 для удобного применения ключа   * Добавили нужные поля для правила корреляции ``` 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" } ``` * Правило корреляции успешно отработало  * Настроили метаданные и локализацию на русском и английском языке  ``` Метаданные 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}. ```
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.