---
# System prepended metadata

title: 2. Нормализация и корреляция событий информационной безопасности
tags: [Стажировка - 2й этап. Интенсивы по специальности]

---

---
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}.
```


