--- 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:| |![](https://i.imgur.com/ktTTVHU.png)![](https://i.imgur.com/h1pH1LJ.png) |Заполним формулу:| |![](https://i.imgur.com/adgBIg8.png) |TEXT| |---| |![](https://i.imgur.com/gg6Rft1.png)| ``` { 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| |---| |![](https://i.imgur.com/3Kgsn5V.png)| ``` 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" - Идентификатор правила. ``` |В Формулу можно вставить условную конструкцию, считывающую идентификатор события. Идет сравнение даты и определение статуса процесса| |---| |![](https://i.imgur.com/yvaYgg7.png) |Заполним шаблон метаданных только на успешность процесса| |---| |![](https://i.imgur.com/WKESxNZ.png)| |RU| |![](https://i.imgur.com/Ivgn2Yg.png) |EN| |![](https://i.imgur.com/1GRqG5R.png) |Просмотрим результаты событий, RU| |![](https://i.imgur.com/7whivWN.png) |![](https://i.imgur.com/fcSK0hM.png) |EN| |![](https://i.imgur.com/SVRFXqp.png) |![](https://i.imgur.com/xl0pFyN.png) |Результаты| |![](https://i.imgur.com/LLfVWru.png)| |![](https://i.imgur.com/uM7tqQC.png) |1.2| |---| |Чтение Конфигурационного файла:| |![](https://i.imgur.com/LuqbZPV.png)![](https://i.imgur.com/kilBuEx.png) |Заполним формулу:| | ![](https://i.imgur.com/AFVfzhm.png)| |TEXT| |---| |![](https://i.imgur.com/YDNxhWk.png) ``` { 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| |---| |![](https://i.imgur.com/ut1pOWR.png) ``` 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 и заблокировать вход по ключам ``` |Заполним шаблон метаданных только на успешность процесса| |---| |![](https://i.imgur.com/QKo6tTk.png)| |RU| |![](https://i.imgur.com/5I0H6bQ.png) |EN| |![](https://i.imgur.com/Ou61Wb8.png) |Просмотрим результаты событий, RU| |![](https://i.imgur.com/KcoUg0q.png) |![](https://i.imgur.com/ti5erda.png) |EN| |![](https://i.imgur.com/JHswoNm.png) |![](https://i.imgur.com/3bxP9jn.png) |Результаты| |![](https://i.imgur.com/CqgXoSZ.png)| |![](https://i.imgur.com/SiwehAZ.png) --- |2 - Корреляции событий| |---| ***Какое событие произошло?*** ``` «Пользователь сначала прочитал файл /etc/shadow, после чего успешно вошел в систему под другим пользователем, оба события произошли в течение 5 минут» ``` |Задача построить корреляцию 2 событий: 1. чтение файла. 2.вход по ssh | |---| ``` Перейдем во вкладку -> создать -> правило корреляции -> вставить шаблон ``` |Для начала создадим фильтры по двум событиям для выборки| |---| |READING_FILE| |![](https://i.imgur.com/KqDG6rk.png)| ``` Важным индикатором является "перемещение в папку"{object.process.path}, свойство процесса{status}, и какое действие произшло{action} ``` |CHANGE_ACCOUNT| |---| |![](https://i.imgur.com/A34H8Im.png) ``` Важным индикатором является , свойство процесса{status}, и какое действие произшло{action} ``` |После чего создадим правило описания корреляции, которое рассматривает события c учетом временного интервала| |---| |![](https://i.imgur.com/w0CXx4m.png) |В блоке операторов инструкции on объявим переменные и присвоим значения полям корреляционного события. ![](https://i.imgur.com/JrgKVfJ.png) |В блоке emit объявим переменные, исходя из условий ПЗ| |![](https://i.imgur.com/z1KD9bz.png) |Метаинфо| |---| |![](https://i.imgur.com/dA2jWwo.png) |Тестовые сценарии, полученные из п1.1 и п1.2| |---| |![](https://i.imgur.com/ThPUknV.png) ``` 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"} ``` |Результат события| |---| |![](https://i.imgur.com/ka4c2iS.png) ``` 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"} ```