- Главная страница
- Разработка ПО
- О NTechnology
- База знаний
- NTechnology SIEM
- 15. Создание правил
- 16.4 Создание табличных списков
- Главная страница
- Разработка ПО
- О NTechnology
- База знаний
- NTechnology SIEM
- 15. Создание правил
- 16.4 Создание табличных списков
16.4 Создание табличных списков
Табличные списки – это специальные базы данных, которые используются для хранения списков значений, например, IP-адресов и доменных имен. Табличные списки могут быть созданы для хранения списка разрешенных или запрещенных значений, а также в правилах процесса классификации.
Файл списка представляет собой обычный текстовый файл. Каждая строка имеет уникальный ключ и символ-разделитель – двоеточие. После разделителя можно добавить значение. Значения могут повторяться, но ключи должны быть уникальными.
Пример:
key1:value1
key2:value2
key3:value2
Для того, чтобы включить символ двоеточие как часть ключа, например, в MAC-адресах, необходимо экранировать полный ключ, используя кавычки.
Пример:
"a0:a0:a0:a0:a0:a0":
"b1:b1:b1:b1:b1:b1":
С помощью ключа можно определить наличие или отсутствие поля в заданном списке. Добавляя значение, можно использовать его в качестве критерия в правилах. Например, есть имена учетных записей (ключи), связанные с именем отдела (значением). Можно создать правило, которое срабатывает, когда пользователь не из финансового отдела входит в систему на финансовом сервере (таблица 17).
Таблица 17 – Параметры для создания табличного списка
| Ключ | CIDR | Возможные совпадения |
|---|---|---|
192.168.: | 192.168.0.0/16 | 192.168.0.0 -192.168.255.255 |
172.16.19: | 172.16.19.0/24 | 172.16.19.0 - 172.16.19.255 |
10.1.1.1: | 10.1.1.1/32 | 10.1.1.1 |
Пример файла списка IP-адресов:
192.168.: Matches 192.168.0.0 - 192.168.255.255
172.16.19.: Matches 172.16.19.0 - 172.16.19.255
10.1.1.1: Matches 10.1.1.1
Пример использования табличных списков в правилах:
Block of code
<rule id="110700" level="10">
<if_group>json</if_group>
<list field="srcip" lookup="address_match_key">etc/lists/List-one</list>
<description>IP blacklisted in LIST ONE</description>
<group>list1,</group>
</rule>
<rule id="110701" level="10">
<if_group>json</if_group>
<list field="srcip" lookup="address_match_key">etc/lists/List-two</list>
<description>IP blacklisted in LIST TWO</description>
<group>list2,</group>
</rule>
<rule id="110710" level="10">
<if_sid>110700</if_sid>
<list field="srcip" lookup="address_match_key">etc/lists/List-two</list>
<description>IP blacklisted in LIST ONE and LIST TWO</description>
<group>list1,list2,</group>
</rule>
В этих правилах просматривают, есть ли IP-адрес в списке 1 или 2, или в обоих.
Атрибут «lookup» может иметь несколько значений.
Приведенный ниже пример представляет собой поиск ключа в табличные списки на полное соответствие:
Block of code
<list field="user" lookup="match_key">etc/lists/list-user</list>
Параметр «"match_key"» является параметром по умолчанию и может быть опущен:
Block of code
<list field="user">etc/lists/list-user</list>
Если поле представляет собой IP-адрес, то использовать «"address_match_key"»:
Block of code
<list field="srcip" lookup="address_match_key">etc/lists/list-IP</list>
Этот пример представляет собой поиск ключа в табличные списки на полное отсутствие его в списке:
Block of code
<list field="user" lookup="not_match_key">etc/lists/list-user</list>
Если поле представляет собой IP-адрес, то использовать «"not_address_match_key"»:
Block of code
<list field="srcip" lookup="not_address_match_key">etc/lists/list-IP</list>
Приведенный ниже пример представляет собой поиск ключа в табличные списки на полное соответствие и при положительном совпадении возвращаемое значение ключа будет обработано с использованием регулярного выражения в атрибуте «check_value»:
Block of code
<list field="user" lookup="match_key_value" check_value= "^block"> etc/lists/list-user</list>
Если поле представляет собой IP-адрес, то использовать «"address_match_key_value"»:
Block of code
<list field="srcip" lookup="address_match_key_value" check_value= "^reject"> etc/lists/list-IP</list>
- Главная страница
- Разработка ПО
- О NTechnology
- База знаний
- NTechnology SIEM
- 15. Создание правил
- 16.4 Создание табличных списков
- Главная страница
- Разработка ПО
- О NTechnology
- База знаний
- NTechnology SIEM
- 15. Создание правил
- 16.4 Создание табличных списков
16.4 Создание табличных списков
Табличные списки – это специальные базы данных, которые используются для хранения списков значений, например, IP-адресов и доменных имен. Табличные списки могут быть созданы для хранения списка разрешенных или запрещенных значений, а также в правилах процесса классификации.
Файл списка представляет собой обычный текстовый файл. Каждая строка имеет уникальный ключ и символ-разделитель – двоеточие. После разделителя можно добавить значение. Значения могут повторяться, но ключи должны быть уникальными.
Пример:
key1:value1
key2:value2
key3:value2
Для того, чтобы включить символ двоеточие как часть ключа, например, в MAC-адресах, необходимо экранировать полный ключ, используя кавычки.
Пример:
"a0:a0:a0:a0:a0:a0":
"b1:b1:b1:b1:b1:b1":
С помощью ключа можно определить наличие или отсутствие поля в заданном списке. Добавляя значение, можно использовать его в качестве критерия в правилах. Например, есть имена учетных записей (ключи), связанные с именем отдела (значением). Можно создать правило, которое срабатывает, когда пользователь не из финансового отдела входит в систему на финансовом сервере (таблица 17).
Таблица 17 – Параметры для создания табличного списка
| Ключ | CIDR | Возможные совпадения |
|---|---|---|
192.168.: | 192.168.0.0/16 | 192.168.0.0 -192.168.255.255 |
172.16.19: | 172.16.19.0/24 | 172.16.19.0 - 172.16.19.255 |
10.1.1.1: | 10.1.1.1/32 | 10.1.1.1 |
Пример файла списка IP-адресов:
192.168.: Matches 192.168.0.0 - 192.168.255.255
172.16.19.: Matches 172.16.19.0 - 172.16.19.255
10.1.1.1: Matches 10.1.1.1
Пример использования табличных списков в правилах:
Block of code
<rule id="110700" level="10">
<if_group>json</if_group>
<list field="srcip" lookup="address_match_key">etc/lists/List-one</list>
<description>IP blacklisted in LIST ONE</description>
<group>list1,</group>
</rule>
<rule id="110701" level="10">
<if_group>json</if_group>
<list field="srcip" lookup="address_match_key">etc/lists/List-two</list>
<description>IP blacklisted in LIST TWO</description>
<group>list2,</group>
</rule>
<rule id="110710" level="10">
<if_sid>110700</if_sid>
<list field="srcip" lookup="address_match_key">etc/lists/List-two</list>
<description>IP blacklisted in LIST ONE and LIST TWO</description>
<group>list1,list2,</group>
</rule>
В этих правилах просматривают, есть ли IP-адрес в списке 1 или 2, или в обоих.
Атрибут «lookup» может иметь несколько значений.
Приведенный ниже пример представляет собой поиск ключа в табличные списки на полное соответствие:
Block of code
<list field="user" lookup="match_key">etc/lists/list-user</list>
Параметр «"match_key"» является параметром по умолчанию и может быть опущен:
Block of code
<list field="user">etc/lists/list-user</list>
Если поле представляет собой IP-адрес, то использовать «"address_match_key"»:
Block of code
<list field="srcip" lookup="address_match_key">etc/lists/list-IP</list>
Этот пример представляет собой поиск ключа в табличные списки на полное отсутствие его в списке:
Block of code
<list field="user" lookup="not_match_key">etc/lists/list-user</list>
Если поле представляет собой IP-адрес, то использовать «"not_address_match_key"»:
Block of code
<list field="srcip" lookup="not_address_match_key">etc/lists/list-IP</list>
Приведенный ниже пример представляет собой поиск ключа в табличные списки на полное соответствие и при положительном совпадении возвращаемое значение ключа будет обработано с использованием регулярного выражения в атрибуте «check_value»:
Block of code
<list field="user" lookup="match_key_value" check_value= "^block"> etc/lists/list-user</list>
Если поле представляет собой IP-адрес, то использовать «"address_match_key_value"»:
Block of code
<list field="srcip" lookup="address_match_key_value" check_value= "^reject"> etc/lists/list-IP</list>