---
title: INT_2-Криворученко_Савелий-Практика_2
tags: Module 2
description: Use `{%hackmd theme-dark %}` syntax to include this theme.
---
<style>
html, body, .ui-content {
background-color: #333;
color: #ddd;
}
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
color: #ddd;
}
.markdown-body h1,
.markdown-body h2 {
border-bottom-color: #ffffff69;
}
.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
color: #fff;
}
.markdown-body img {
background-color: transparent;
}
.ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a {
color: white;
border-left: 2px solid white;
}
.expand-toggle:hover,
.expand-toggle:focus,
.back-to-top:hover,
.back-to-top:focus,
.go-to-bottom:hover,
.go-to-bottom:focus {
color: white;
}
.ui-toc-dropdown {
background-color: #333;
}
.ui-toc-label.btn {
background-color: #191919;
color: white;
}
.ui-toc-dropdown .nav>li>a:focus,
.ui-toc-dropdown .nav>li>a:hover {
color: white;
border-left: 1px solid white;
}
.markdown-body blockquote {
color: #bcbcbc;
}
.markdown-body table tr {
background-color: #5f5f5f;
}
.markdown-body table tr:nth-child(2n) {
background-color: #4f4f4f;
}
.markdown-body code,
.markdown-body tt {
color: #eee;
background-color: rgba(230, 230, 230, 0.36);
}
a,
.open-files-container li.selected a {
color: #5EB7E0;
}
</style>
# Module_2_INT-2-Криворученко_Савелий-Практика_2
<a name="headers"><h2>Нормализация и корреляция событий информационной безопасности </h2></a>
* Необходимо разработать две формулы нормализации, по одной для каждого из типов событий, содержащих в себе максимум полезной информации о случившемся
* На основе предварительно написанной в п.1 нормализации разработать правило корреляции событий.
---
|1 - Нормализация событий|
|---|
|1.1|
|---|
|События входа пользователя по SSH:|
|
|Заполним формулу:|
|
|TEXT|
|---|
||
```
{ NUMBER } - число события.
{time = DATETIME} - время в которое процесс произошел
{"Message forwarded from "?} - оператор «?» к токену
делает необязательным его использование при распознавании события.
{event_src.hostname = WORD ?} - источник события. |aix53|
{msgid = STRING} - уникальный идентификатор, определяющий суть процесса |USER_Login|
{subject.account.privileges = STRING} - права учетной записи |root|
{datafield1 = WORD} - строковые данные с помощью которых можем
обозначать идентификатор конкретных событий, выбивающихся из программного.
|OK| = |success|
{subject.account.name = WORDDASH} - логин учетной записи, worddash - распознавание слов.
{protocol.layer7 = STRING} - протокол, по которому происходит подключение.
ssh находится на уровне приложений в моделе iso, поэтому layer7.
В другом случае нужно выбрать {protocol = string}
```
|context|
|---|
||
```
subject = "account" - действие происходит от имени пользователя ektest.
action = "login" - действие описывающее вход в систему.
object = "system" - над чем производят действие.
importance = "medium" - значимость процесса. Я выставил medium
из-за некритичности действия.
event_src.vendor = "IBM" - поставщиком события является IBM потому что
AIX является unix подобная ОС созданная IBM
event_src.title = "aix" - Название ОС
event_src.category = "Network device" - Так как идет подключение по ssh,
я выбрал подкатегорию общения устройств по сети
id = "SSH_login_IBM_AIX" - Идентификатор правила.
```
|В Формулу можно вставить условную конструкцию, считывающую идентификатор события. Идет сравнение даты и определение статуса процесса|
|---|
|
|Заполним шаблон метаданных только на успешность процесса|
|---|
||
|RU|
|
|EN|
|
|Просмотрим результаты событий, RU|
|
|
|EN|
|
|
|Результаты|
||
|
|1.2|
|---|
|Чтение Конфигурационного файла:|
|
|Заполним формулу:|
| |
|TEXT|
|---|
|
```
{ NUMBER } - число события.
{time = DATETIME} - время в которое процесс произошел
{event_src.hostname = WORD ?} - источник события. |aix53|
{msgid = STRING} - уникальный идентификатор, определяющий суть процесса |OS_CONF_READ|
{subject.account.name = WORDDASH} - логин учетной записи,
worddash - распознавание слов. |mp|
{datafield1 = WORD} - строковые данные с помощью которых можем
обозначать идентификатор конкретных событий, выбивающихся из программного.
|OK| = |success|
{object.process.name = WORD} - имя процесса действия
обозначающее команду - |cat|
{subject.account.privileges = STRING} - права учетной записи |root|
{object.process.path = STRING} - путь к папке, где происходит действие
```
|context|
|---|
|
```
subject = "account" - действие происходит от имени пользователя mp.
action = "open" - действие описывающее вход в систему.
object = "file" - Так как файл открывают, то над ним производят действие
importance = "low" - значимость процесса. Я выставил low
из-за частых действия.
event_src.vendor = "OS" - поставщиком события является машина,
в которой происходят действия
event_src.title = "aix" - Название ОС
event_src.category = "Operating system" - Действие происходит внутри ОС
id = "OS_CONF_READ" - Идентификатор правила обозначающий чтение конфигурационного файла
/etc/shadow - чтение пароля пользователя
/etc/ssh/sshd_config - Чтение конф. файла ssh с дальнейшим
изменением настроек сервера. Если это действие произвел злоумышленик,
то он вполне могу изменить строку:
#PermitRootLogin на yes
и заблокировать вход по ключам
```
|Заполним шаблон метаданных только на успешность процесса|
|---|
||
|RU|
|
|EN|
|
|Просмотрим результаты событий, RU|
|
|
|EN|
|
|
|Результаты|
||
|
---
|2 - Корреляции событий|
|---|
***Какое событие произошло?***
```
«Пользователь сначала прочитал файл /etc/shadow, после чего успешно вошел
в систему под другим пользователем, оба события произошли в течение 5
минут»
```
|Задача построить корреляцию 2 событий: 1. чтение файла. 2.вход по ssh |
|---|
```
Перейдем во вкладку -> создать -> правило корреляции -> вставить шаблон
```
|Для начала создадим фильтры по двум событиям для выборки|
|---|
|READING_FILE|
||
```
Важным индикатором является "перемещение в папку"{object.process.path},
свойство процесса{status}, и какое действие произшло{action}
```
|CHANGE_ACCOUNT|
|---|
|
```
Важным индикатором является , свойство процесса{status},
и какое действие произшло{action}
```
|После чего создадим правило описания корреляции, которое рассматривает события c учетом временного интервала|
|---|
|
|В блоке операторов инструкции on объявим переменные и присвоим значения полям корреляционного события.

|В блоке emit объявим переменные, исходя из условий ПЗ|
|
|Метаинфо|
|---|
|
|Тестовые сценарии, полученные из п1.1 и п1.2|
|---|
|
```
expect 1 {}
{"subject":"account","action":"open","object":"file","status":"success","datafield1":"OK","event_src.category":"Operatingsystem","event_src.hostname":"aix53","event_src.title":"aix","event_src.vendor":"OS","id":"OS_CONF_READ","importance":"low","msgid":"OS_CONF_READ","object.process.name":"cat","object.process.path":"/etc/shadow","subject.account.name":"mp","time":"2022-05-19T09:50:06Z"}
{"subject":"account","action":"open","object":"file","status":"success","datafield1":"OK","event_src.category":"Operatingsystem","event_src.hostname":"aix53","event_src.title":"aix","event_src.vendor":"OS","id":"OS_CONF_READ","importance":"low","msgid":"OS_CONF_READ","object.process.name":"cat","object.process.path":"/etc/ssh/sshd_config","subject.account.name":"mp","time":"2022-06-03T00:10:05Z"}
{"subject":"account","action":"login","object":"system","status":"success","datafield1":"OK","event_src.category":"Networkdevice","event_src.hostname":"aix53","event_src.title":"aix","event_src.vendor":"IBM","id":"SSH_login_IBM_AIX","importance":"medium","msgid":"USER_Login","protocol.layer7":"ssh","subject.account.name":"ektest","subject.account.privileges":"root","time":"2022-09-22T05:01:48Z"}
{"subject":"account","action":"login","object":"system","status":"success","datafield1":"OK","event_src.category":"Networkdevice","event_src.title":"aix","event_src.vendor":"IBM","id":"SSH_login_IBM_AIX","importance":"medium","msgid":"USER_Login","protocol.layer7":"ssh","subject.account.name":"ektest","subject.account.privileges":"root","time":"2022-09-22T04:54:46Z"}
```
|Результат события|
|---|
|
```
Got results:
{"subject.account.name": "ektest", "subject": "account", "_rule": "READING_A_FILE_AND_LOGGING_IN_WITH_ANOTHER_ACCOUNT", "object.process.name": "cat", "object": "file", "event_src.hostname": "aix53", "correlation_name": "READING_A_FILE_AND_LOGGING_IN_WITH_ANOTHER_ACCOUNT", "action": "access", "time": "2022-09-22T05:01:48Z", "protocol.layer7": "ssh", "correlation_type": "event", "_objects": [{"AssetId": null, "Fqdn": "aix53", "IpAddress": null, "EventTimestamp": "2022-09-22T05:01:48Z"}, {"AssetId": null, "Fqdn": "aix53", "IpAddress": null, "EventTimestamp": "2022-05-19T09:50:06Z"}, {"AssetId": null, "Fqdn": "aix53", "IpAddress": null, "EventTimestamp": "2022-09-22T05:01:48Z"}], "importance": "medium", "count": 1, "subevents.time": ["2022-05-19T09:50:06Z", "2022-09-22T05:01:48Z"], "status": "success", "subevents": ["4d2d95ef-b85a-4221-b3b0-bed6ef7bb039", "4d2d95ef-b85a-4221-b3b0-bed6ef7bb03b"], "uuid": "1e529f71-df7c-49f3-a2a2-b1f57e84a5c4", "origin_app_id": "00000000-0000-0000-0000-000000000005", "primary_siem_app_id": "00000000-0000-0000-0000-000000000005", "siem_id": "e1b2c118-1a86-11ea-9632-e3fa28d252ab", "normalized": true, "generator.version": "25.0.2412 (libservice v.2.0.728)", "generator.type": "correlationengine"}
```