Перейти к основному содержимому
Версия: 5.0

Обновление Smart Monitor

Обратите внимание!

Инструкция описывает процесс обновления Smart Monitor с версии 4.3.* на 5.0.*.

Информация

Условные обозначения:

  • SM_INSTALLER - директория, куда разархивируется установочный пакет Smart Monitor версии 5.0
  • USER - пользователь системы с правами администратора, обычно это admin
  • OPENSEARCH_HOME - домашняя директория OpenSearch, обычно это /app/opensearch/
  • OPENSEARCH_DATA - директория, где хранятся проиндексированные данные, обычно это /app/data/
  • OPENSEARCH_IP - IP адрес одного из серверов кластера OpenSearch
  • OSD_HOME - домашняя директория OpenSearch Dashboards, обычно это /app/opensearch-dashboards/
  • PATH_SSL - место расположения сертификата, закрытого ключа admin, а также ca-cert, обычно совпадает с /app/opensearch/config/

Первоочередным шагом для обновления является определение текущей установленной версии Smart Monitor. Это можно сделать, просмотрев версии модулей на главной странице или выполнив команду в командной строке:

curl https://$OPENSEARCH_IP:9200/_cat/plugins -k -u $USER

После ввода данной команды потребуется ввести пароль учётной записи $USER. Рекомендуется использовать пользователя admin.

Подробный список нововведений можно посмотреть в статье Что нового в Smart Monitor 5.0.

Рассмотрим процедуру обновления каждого компонента. Установщик 5.0 требуется распаковать в директорию, например, /app/distr/.

Обратите внимание!

Перед началом работ строго рекомендуется сделать бэкап основных конфигурационных файлов и настроек Security.

Рекомендуемые действия

Рекомендуется создать директорию, например, /app/backup, куда следует сохранить:

  • директория config, обычно $OPENSEARCH_HOME/config или $OSD_HOME/config

  • файлы systemd, обычно это /etc/systemd/system/opensearch.service и /etc/systemd/system/opensearch-dashboards.service, /etc/systemd/system/sme-re.service

  • файл /etc/sysctl.d/00-opensearch.conf

  • копия настроек Security, сделать это нужно один раз, для чего потребуются сертификат и закрытый ключ admin пользователя (командой ниже создастся директория с текущей датой с настройками security OpenSearch)

    chmod +x $OS_HOME/plugins/opensearch-security/tools/securityadmin.sh
    JAVA_HOME=$OS_HOME/jdk/ $OS_HOME/plugins/opensearch-security/tools/securityadmin.sh -backup /app/backup/security_$(date +%Y%m%d) \
    -icl \
    -nhnv \
    -cacert $OS_HOME/config/ca-cert.pem \
    -cert $OS_HOME/config/admin-cert.pem \
    -key $OS_HOME/config/admin-key.pem

Отключение Inventory Processor

Внимание!

Если модуль Inventory не установлен, перейдите к следующему шагу.

Начиная с версии 5.0, функциональность Inventory Processor включена в состав модуля Inventory. Рекомендуется сделать резервную копию модуля Inventory Processor и отключить его в crontab.

Внимание!

Отключение Inventory Processor необходимо выполнить перед осуществлением основного обновления. Эти действия требуется выполнить однократно.

Обычно Inventory Processor запускается в единственном экземпляре на первом узле Smart Monitor Data Storage с долгосрочным хранением данных (routing mode cold) с помощью crond по расписанию. Посмотреть список заданий crond можно командой ниже.

crontab -l

Закомментируйте выполнение Inventory Processor и сохраните изменения в crond.

Обновление OpenSearch

Установщик Smart Monitor 5.0 требуется распаковать в директорию, например, /app/distr/. Куда вы распакуете содержимое архива пометьте как $SM_INSTALLER.

SM_INSTALLER=/app/distr/sm_5.0
Обратите внимание!

Для кластеров состоящих из нескольких узлов рекомендуется отключать аллокацию перед обновлением через консоль разработчика (Навигационное меню - Параметры системы - Консоль разработчика) выполнив команду:

PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "none"
}
}

Сделать тоже самое можно из терминала следующей командой:

curl -XPUT -k -u admin "https://$OPENSEARCH_IP:9200/_cluster/settings?pretty" -H "Content-Type: application/json" -d '{"persistent":{"cluster.routing.allocation.enable": "none"}}'

При обновлении узлов кластера не используйте отключение аллокации с помощью скрипта обновления. После обновления всех узлов кластера включите аллокацию:

PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.enable": "all"
}
}

Сделать тоже самое можно из терминала следующей командой:

curl -XPUT -k -u admin "https://$OPENSEARCH_IP:9200/_cluster/settings?pretty" -H "Content-Type: application/json" -d '{"persistent":{"cluster.routing.allocation.enable": "all"}}'

Автоматический режим

Для работы скрипта потребуется наличие следующих предустановленных пакетов:

  • curl
  • zip
  • unzip
Обратите внимание!

Если в конце Вы не увидели надписи, что Smart Monitor обновлён, не запускайте повторно скрипт обновления, сделайте скриншот на каком месте остановился скрипт и обратитесь в техническую поддержку.

Скрипт автоматического обновления позволяет автоматизировать действия при обновлении и находится по пути $SM_INSTALLER/opensearch/update.sh. При вызова скрипта есть возможность указать конфигурационный файл $SM_INSTALLER/opensearch/example_config_opensearch.yaml. Формат файла YAML аналогичен конфигурационному файлу при установке.

Скрипт обновления поддерживает следующие параметры запуска:

  • -c, --config <path_to_config_file_yaml> - указать конфигурационный файл для обновления
  • -h, --help - выводит справку о доступных командах
Обратите внимание!

Начинать обновление нужно с узлов без роли master, узлы data могут подключаться к более старым версиям узлов master, но не наоборот.

Для запуска обновления нужно запустить скрипт:

$SM_INSTALLER/opensearch/update.sh

После запуска скрипт автоматически находит пути основных директорий:

  • OpenSearch Home Directory - директория расположения OpenSearch, обычно это /app/opensearch
  • OpenSearch Conf Directory - директория расположения конфигурационных файлов OpenSearch, обычно /app/opensearch/config/
  • OpenSearch Data Directory - директория расположения данных, обычно /app/data/
  • OpenSearch Logs Directory - директория расположения логов, обычно /app/logs/

Скрипт обновления не производит никаких действий с директорией data и logs, а директория конфигурационных файлов и systemd файлы будут сохранены во временную директорию $SM_INSTALLER/opensearch/staging/.

Обратите внимание!

Если запустить скрипт повторно, то директория staging очистится вместе со всеми скопированными директория конфигурационных файлов и systemd файлы.

================================================================================
SMART MONITOR UPDATE SCRIPT - OPENSEARCH
================================================================================

Current working directory: /app/distr/sm_5.0/opensearch

Current name of install's archive: opensearch-2.18.0-linux-x64.tar.gz

New version OpenSearch: 2.18.0

================================================================================
-- STEP 1. INSTALLATION DIRECTORIES

opensearch.service file found. Will get necessary paths from there

Final Opensearch home directory: /app/opensearch
Final Opensearch conf directory: /app/opensearch/config
Final Opensearch data directory: /app/data/opensearch
Final Opensearch logs directory: /app/logs/opensearch
Is this correct? [y/n]:

После ввода директорий требуется подтвердить автоматически найденные данные, нажав y, или ввести свои директории вручную нажав n.

На втором шаге нужно ответить на вопрос по аллокации. Если ввести y, то скрипт будет отключать аллокацию перед обновлением и включит в конце работы скрипта.

-- STEP 2. CONFIGURE ALLOCATION

Do you want to disable allocation during update? [y/N]: n

You don't want to disable allocation: n
Is this correct? [y/n]:

На третьем шаге потребуется ввести пароль от пользователя admin. При вводе пароль не будет отображаться.

-- STEP 3. GET ADMIN PASSWORD

Enter password for user "admin":
Обратите внимание!

Если ввести не верный пароль, то аллокация не будет отключена даже если ее выбрать на предыдущем шаге, также не будет выведена информация о текущем узле, обновление при этом не прервется.

Затем будут произведены подготовительные действия перед обновлением, перед применением обновления будет задан вопрос о продолжении, до этого момента никаких действий в системе не производится. Также будет выведена некоторая информация о текущем узле и кластере в целом.

get current list of plugins
sm-core
sm-im
sm-inventory
sm-ism-action-clickhouse
sm-job-scheduler
sm-job-scheduler-actions-incident
sm-job-scheduler-actions-mitre
sm-knowledge-center
sm-mitre
sm-mssp
sm-rsm
sm-uba
sme
opensearch-security
Information about current node OpenSearch:
{
"name" : "smos-node-00",
"cluster_name" : "smos-cluster",
"cluster_uuid" : "yKPPDCHGSA6rHQT948jokQ",
"version" : {
"distribution" : "opensearch",
"number" : "2.18.0",
"build_type" : "tar",
"build_hash" : "99a9a81da366173b0c2b963b26ea92e15ef34547",
"build_date" : "2024-10-31T19:08:39.157471098Z",
"build_snapshot" : false,
"lucene_version" : "9.12.0",
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}

!!! AT THIS POINT WE START TO MAKE CHANGES IN OPERATING SYSTEM !!!
Do you want to continue? [y/N]:

Если нажать Enter - обновление прервется, для продолжения нужно нажать y.

По успешному завершению обновления должны увидеть надпись SMART MONITOR SUCCESSFULLY UPDATED!, предварительно будет выведена информация о кластере и текущем узле.

-- STEP 10. PRINT INFORMATION
current state of cluster
{
"cluster_name" : "smos-cluster",
"status" : "yellow",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"discovered_master" : true,
"discovered_cluster_manager" : true,
"active_primary_shards" : 50,
"active_shards" : 50,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 15,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 76.92307692307693
}
current state clusters nodes
172.16.0.27 14 99 8 1.47 0.63 0.26 dim data,ingest,master * smos-node-00
Information about current node OpenSearch:
{
"name" : "smos-node-00",
"cluster_name" : "smos-cluster",
"cluster_uuid" : "5V2rIp1sRj-M-ANnGfF0cA",
"version" : {
"distribution" : "opensearch",
"number" : "2.18.0",
"build_type" : "tar",
"build_hash" : "99a9a81da366173b0c2b963b26ea92e15ef34547",
"build_date" : "2024-10-31T19:08:39.157471098Z",
"build_snapshot" : false,
"lucene_version" : "9.12.0",
"minimum_wire_compatibility_version" : "7.10.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "The OpenSearch Project: https://opensearch.org/"
}

The following plugins cannot be installed:
-- sm-job-scheduler-actions-incident
-- sm-job-scheduler-actions-mitre

================================================================================
-- SMART MONITOR SUCCESSFULLY UPDATED!
================================================================================

Если по какой-то причине скрипт обновления не смог обновить какие-то плагины, то он выведет дополнительно в конце информацию об этих плагинах, как на примере выше (текст The following plugins cannot be installed).

Обратите внимание!

Скрипт обновления учитывает текущий список установленных плагинов на узлах OpenSearch. Если требуется установить какой-нибудь плагин дополнительно, то действие стоит производить вручную в конце обновления узла.

Обновление OpenSearch Dashboards

Для работы скрипта потребуется наличие следующих предустановленных пакетов:

  • curl
  • zip
  • unzip

Скрипт автоматического обновления позволяет автоматизировать действия при обновлении и находится по пути $SM_INSTALLER/opensearch-dashboards/update.sh. При вызова скрипта есть возможность указать конфигурационный файл $SM_INSTALLER/opensearch-dashboards/example_config_dashboards.yaml. Формат файла YAML аналогичен конфигурационному файлу при установке.

Скрипт обновления поддерживает следующие параметры запуска:

  • -c, --config <path_to_config_file_yaml> - указать конфигурационный файл для обновления
  • -h, --help - выводит справку о доступных командах

При работе скрипт сделает резервную копию файла сервиса systemd, opensearch-dashboards.yml и директории с конфигурациями во временную директорию $SM_INSTALLER/opensearch-dashboards/staging/.

Скрипт обновления не производит никаких действий с директорией data и logs, а директория конфигураций и systemd файлы будут сохранены во временную директорию $SM_INSTALLER/opensearch-dashboards/staging/.

Обратите внимание!

Если запустить скрипт повторно, то директория staging очистится.

Для обновления нужно запустить скрипт:

$SM_INSTALLER/opensearch-dashboards/update.sh

Скрипт автоматически определит основные пути текущего сервера до следующих директорий:

  • OpenSearch Dashboards Home Directory - директория расположения OpenSearch Dashboards, обычно это /app/opensearch-dashboards
  • OpenSearch Dashboards Conf Directory - директория расположения конфигурационных файлов OpenSearch Dashboards, обычно /app/opensearch-dashboards/config/
  • OpenSearch Dashboards Data Directory - директория расположения данных, обычно /app/data/
  • OpenSearch Dashboards Logs Directory - директория расположения логов, обычно /app/logs/
================================================================================
SMART MONITOR INSTALL SCRIPT - OPENSEARCH DASHBOARDS
================================================================================

Current working directory: /opt/sm_5.0/opensearch-dashboards

Current name of install's archive: opensearch-dashboards-2.18.0-linux-x64.tar.gz

Current version of OpenSearch-Dashboards: 2.18.0

================================================================================
-- STEP 1. INSTALLATION DIRECTORIES

opensearch-dashboards.service file found. Will get necessary paths from there

Final Opensearch Dashboards home directory: /app/opensearch-dashboards
Final Opensearch Dashboards conf directory: /app/opensearch-dashboards/config
Final Opensearch Dashboards data directory: /app/data/opensearch-dashboards
Final Opensearch Dashboards logs directory: /app/logs/opensearch-dashboards
Is this correct? [y/n]:

После ввода директорий требуется подтвердить введенные данные, нажав y, или ввести свои директории вручную нажав n.

Затем будут произведены подготовительные действия перед обновлением, перед применением обновления будет задан вопрос о продолжении, до этого момента никаких действий, влияющих на работоспособность системы, не производится. Также будет выведена некоторая информация о текущем узле и кластере в целом.

Current list of plugins:
-- smartMonitor
-- smartMonitorColumnChart
-- smartMonitorCyberSecurity
-- smartMonitorDrawio
-- smartMonitorHeatmapChart
-- smartMonitorHtmlChart
-- smartMonitorIncidentManager
-- smartMonitorInventory
-- smartMonitorKnowledgeCenter
-- smartMonitorLineChart
-- smartMonitorLookupManager
-- smartMonitorMitreAttack
-- smartMonitorPDFExport
-- smartMonitorPieChart
-- smartMonitorSingleValue
-- smartMonitorTable
-- smartMonitorUserBehaviorAnalytics

Current version of OpenSearch-Dashboards: 2.18.0

!!! AT THIS POINT WE START TO MAKE CHANGES IN OPERATING SYSTEM !!!
Do you want to continue? [y/N]:

При успешном завершении скрипта обновления будет выведен соответствующий текст SMART MONITOR DASHBOARDS SUCCESSFULLY UPDATED.

Миграция конфигураций модуля Inventory

Внимание!

Если модуль Inventory не установлен, перейдите к следующему шагу.

В версии 5.0 модуль Inventory Processor был интегрирован в состав модуля Inventory. Для этого откройте консоль разработчика (Навигационное меню - Параметры системы - Консоль разработчика) и выполните команду:

POST _reindex
{
"source": {
"index": ".sm_inv_config"
},
"dest": {
"index": ".sm_inv_configs"
},
"script": {
"source": """
Map field(def f, def b) {
return [
"name": f["name"],
"display_name": f["display_name"],
"weight": f["weight"] != null ? f["weight"] : 1,
"base": b
];
}

List fields(def b, def a) {
def fl = [];
b.forEach(f -> fl.add(field(f, true)));
a.forEach(f -> fl.add(field(f, false)));
return fl;
}

Map meta(def id) {
return ["id": id];
}

Map mapping_rule(def d, def s) {
return ["dest_field": d, "source_field": s];
}

Map period(def f, def i) {
return i != null ? ["field": f, "interval": i] : ["field": f];
}

Map source(def s) {
def mapping_rules = [];
for (entry in s["mapping_rules"].entrySet()) {
mapping_rules.add(mapping_rule(entry.getKey(), entry.getValue()));
}
return [
"id": s["source"],
"name": s["source"],
"index": s["index"],
"mapping_rules": mapping_rules,
"period": period("@timestamp", s["time_window"]),
"not_mapping_agg_fields": false
];
}

List sources(def is) {
def sl = [];
is.forEach(s -> sl.add(source(s)));
return sl;
}

List aggs_keys(def ak) {
def sl = [];
ak.forEach(s -> {
sl.add([
"sources": s["sources"],
"fields": s["keys"]
]);
});
return sl;
}

Map schedule_params() {
return [
"with_index": true,
"case_insensitive": false,
"join_with_null_value": false,
"fast_only": false,
"bulk_changes": true
]
}

Map schedule() {
return [
"cron": [
"expression": "* * * * *",
"timezone": "GMT"
]
];
}

Date now = new Date();
Instant instant = Instant.ofEpochMilli(now.getTime());
ZonedDateTime zdt = ZonedDateTime.ofInstant(instant, ZoneId.of('Z'));

if (ctx._source.get("_meta") == null) {
ctx._source.put("_meta", [
"id": ctx._id,
"created": zdt.format(DateTimeFormatter.ISO_INSTANT),
"updated": zdt.format(DateTimeFormatter.ISO_INSTANT),
"from_system": false,
"type": "user"
]);
}

if (ctx._source.get("_permissions") == null) {
ctx._source.put("_permissions", [
"read": [
"roles": [],
"users": []
],
"write": [
"roles": [],
"users": []
],
"owner": "admin"
]);
}

ctx._source.put("fields", fields(ctx._source.get("base"), ctx._source.get("advanced")));
ctx._source.remove("base");
ctx._source.remove("advanced");

ctx._source.put("aggregation_keys", aggs_keys(ctx._source.get("key")));
ctx._source.remove("key");

ctx._source.put("name", ctx._source.get("inventory_name"));
ctx._source.remove("inventory_name");

ctx._source.put("output_index", ctx._source.get("output"));
ctx._source.put("output_replica", ctx._source.get("output") + "_replica");
ctx._source.remove("output");

ctx._source.put("priorities", ctx._source.get("priorities"));

ctx._source.put("sources", sources(ctx._source.get("inventory_sources")));
ctx._source.remove("inventory_sources");

if (ctx._source.get("category") != null) {
ctx._source.put("category", ctx._source.get("category"));
}

ctx._source.put("asset_name", ctx._source.get("asset_name"));

if (ctx._source.get("ttl") != null) {
ctx._source.put("ttl", ctx._source.get("ttl"));
if (ctx._source.get("ttl") == "") {
ctx._source.remove("ttl");
}
}

ctx._source.put("schedule_params", schedule_params());
ctx._source.put("enabled", false);
ctx._source.put("schedule", schedule());
""",
"lang": "painless"
}
}

Миграция связей инцидентов и Inventory

Внимание!

Если модули Inventory и Incident Manager не установлены, перейдите к следующему шагу.

В версии 5.0 были внесены изменения связей между модулем Inventory и Incident Manager. В установщик включена утилита для миграции связей. Утилита располагается в директории $SM_INSTALLER/utils/migrations_4.3-5.0/incident_inventory_connection/ и работает на python. Основные требования утилиты:

  • Python 3.8+
  • plugin opensearch-py

Остальные пакеты входят в стандартную установку Python, более подробный список пакетов:

  • certifi==2023.7.22
  • charset-normalizer==3.3.2
  • idna==3.4
  • opensearch-py==2.3.2
  • python-dateutil==2.8.2
  • requests==2.31.0
  • six==1.16.0
  • urllib3==2.0.7
Обратите внимание!

В установщик Smart Monitor 5.0 включён Python 3.8 с требуемым набором пакетов.

Конфигурационный файл

Перед запуском утилиты настройте параметры в файле $SM_INSTALLER/utils/migrations_4.3-5.0/incident_inventory_connection/default.ini. Пример конфигурационного файла приведен ниже:

[server]
host = 127.0.0.1
port = 9200

[user]
name = admin
pass = password

В параметре server.host нужно указать IP адрес любого узла OpenSearch, рекомендуется указывать узел с ролью data и атрибутом routing_mode: hot. Если опустить параметр user.pass, то утилита запросит пароль от УЗ в интерактивном режиме.

Параметры запуска утилиты

Утилита имеет следующие параметры запуска:

  • -c, --config - файл конфигурации (опциональный). По умолчанию - ./default.ini
  • -h, --help - вывод справки

Запуск утилиты

Для выполнения миграций нужно запустить утилиту командой:

$SM_INSTALLER/utils/python/bin/python3 $SM_INSTALLER/utils/migrations_4.3-5.0/incident_inventory_connection/main.py -c $SM_INSTALLER/utils/migrations_4.3-5.0/incident_inventory_connection/default.ini

Настройка модуля Inventory

Внимание!

Если модуль Inventory не установлен, перейдите к следующему шагу.

Для интеграции модуля Inventory со Smart Monitor необходимо в хранилище паролей Smart Monitor Data Storage и Smart Monitor Master Node добавить ключ inv.os.pass, если планиурется интеграция с PostgreSQL, то дополнительно добавить ключ inv.pg.pass. В инструкции указано как добавить только один ключ в хранилище паролей.

Добавление пароля в хранилище keystore с помощью запроса

Откройте меню Навигационное меню - Параметры системы - Консоль разработчика и выполните следующий запрос:

GET _core/keystore
Обратите внимание!

API позволяет изменять keystore только для определённых узлов кластера, например, с маской по имени узла. Подробнее про API управления хранилищем keystore можно прочитать в соответствующей статье.

Будет выведено содержимое хранилищ keystore на всех узлах кластера. Для того, чтобы добавить ключ на все узлы кластера, отредактируйте и выполните запрос, пароль укажите от пользователя admin:

POST _core/keystore/inv.os.pass
{
"value" : "<PASSWORD_USER>"
}

Добавление пароля в хранилище keystore ручным способом

Необходимо на узлах OpenSearch с установленным плагином Inventory в keystore добавить ключ inv.os.pass. Сделать можно следующей командой:

sudo -u opensearch $OPENSEARCH_HOME/bin/opensearch-keystore add inv.os.pass

При выполнении скрипт запросит ввести значение ключа, введите пароль пользователя admin. После выполнения команды перезагрузите узел OpenSearch.

Инициализация модуля Inventory

Чтобы проинициализировать модуль необходимо перейти в Параметры системы - Настройка модулей - Inventory - Инициализация:

Страница инициализации

Изменение меню Inventory

Внимание!

Если модуль Inventory не установлен, перейдите к следующему шагу.

В версии 5.0 изменёно системное имя Inventory. Для просмотра нового функционала нужно отредактировать элемент навигационного меню, для этого откройте меню Навигационное меню - Параметры системы - Настройки модулей - Основное - Настройки меню. Найдите модуль меню Inventory, раскройте его, внутри раскройте раздел Активы. Измените поле Системное имя на configs/list.

Добавление пункта меню правил Sigma

Нажмите кнопку Сохранить изменения.

Добавление многострочного комментария

Внимание!

Если модуль Incident Manager не установлен, перейдите к следующему шагу.

В версии 5.0 добавлена поддержка многострочного комментария в Incident Manager. Для добавление функционала откройте консоль разработчика (Навигационное меню - Параметры системы - Консоль разработчика) и выполните команду:

PUT _core/im_settings/incident-manager-settings
{
"editFields" : {
"comment" :
{ "type" : "textarea" }
}
}

Добавление сигма правил в меню

Внимание!

Если модуль Cyber Security не установлен, перейдите к следующему шагу.

В версии 5.0 добавлены правила Sigma в модуль Cyber Security. Для просмотра нового функционала нужно создать элемент навигационное меню, для этого откройте меню Навигационное меню - Параметры системы - Настройки модулей - Основное - Настройки меню. Нажмите на кнопку Добавить модуль.

Заполните поля для модуля следующим образом:

Название поляСодержимое
Тип элементаГруппа
Системное имяsigma-rules
ЗаголовокПравила Sigma
Включить отображениеДа, флаг должен быть включен

Внутри модуля Правила Sigma нажмите на кнопку Добавить раздел.

Заполните поля для раздела следующим образом:

Название поляСодержимое
Тип элементаСтраница
Системное имя
ЗаголовокСписок правил
Включить отображениеДа, флаг должен быть включен

Добавление пункта меню правил Sigma

Нажмите кнопку Сохранить изменения. Настройте разрешения для групп пользователей при необходимости.

Пункт меню можно добавить через JSON структуру. Для этого откройте меню Навигационное меню - Параметры системы - Настройки модулей - Основное - Настройки меню, откройте вкладку JSON структура, добавьте в верхний список через запятую следующий фрагмент:

{
"itemType": "group",
"name": "sigma-rules",
"_permissions": {
"owner": "admin",
"read": {
"roles": [],
"users": []
},
"write": {
"roles": [],
"users": []
}
},
"id": "iff6f40d1-e210-11ef-b57c-6bad33908cd9",
"title": "Правила Sigma",
"enabled": true,
"sections": [
{
"itemType": "page",
"name": "sigma-rules-name",
"_permissions": {
"owner": "admin",
"read": {
"roles": [],
"users": []
},
"write": {
"roles": [],
"users": []
}
},
"id": "i0ce9b921-e211-11ef-b57c-6bad33908cd9",
"title": "Список правил",
"enabled": true
}
]
}

Правила Sigma нужно импортировать, загрузите архив с официального сайта, рекомендуется файл sigma_all_rules.zip.

Импорт через веб интерфейс

Воспользуйтесь инструкцией по инициализации правил Sigma.

Импорт через терминал

На всех узлах с установленным модулем sm-sigma создать директорию $OS_PATH/utils/sigma, обычно это /app/opensearch/utils/sigma. Загрузите файл sigma_all_rules.zip в директории.

mkdir -p /app/opensearch/utils/sigma
cp ./sigma_all_rules.zip /app/opensearch/utils/sigma/
chown -R opensearch:opensearch /app/opensearch/utils/sigma

Отключите аллокацию по инструкции, перезагрузите узлы кластера и снова включите аллокацию.

Откройте консоль разработчика (Навигационное меню - Параметры системы - Консоль разработчика) и выполните команду:

POST _core/sigma/rule
{
"zipped_package_filename": "sigma_all_rules.zip"
}

Инициализация матрицы MITRE ATT&CK

Внимание!

Если модуль MITRE ATT&CK не установлен, перейдите к следующему шагу.

После обновления нужно заново провести инициализацию MITRE ATT&CK, воспользуйтесь инструкцией в соответсвующем разделе.

Добавление заметок

В версии 5.0 добавлена поддержка списка заметок в компонент Knowledge Center. Для просмотра нового функционала нужно создать элемент навигационное меню, для этого откройте меню Навигационное меню - Параметры системы - Настройки модулей - Основное - Настройки меню, найдите Knowledge Center и разверните его, после чего нажмите на кнопку Добавить раздел.

Заполните поля следующим образом:

Название поляСодержимое
Тип элементаСтраница
Системное имяnotebooks/list
ЗаголовокСписок заметок
Включить отображениеДа, флаг должен быть включен

Добавление пункта меню Список заметок

Нажмите кнопку Сохранить изменения. Настройте разрешения для групп пользователей при необходимости.

Пункт меню можно добавить через JSON структуру. Для этого откройте меню Навигационное меню - Параметры системы - Настройки модулей - Основное - Настройки меню, откройте вкладку JSON структура, найдите Knowledge Center и в блок sections добавьте через запятую следующий фрагмент:

{
"itemType": "page",
"name": "notebooks/list",
"_permissions": {
"owner": "admin",
"read": {
"roles": [],
"users": []
},
"write": {
"roles": [],
"users": []
}
},
"id": "ic1c91b81-145a-11f0-82e8-c104a1233526",
"title": "Список заметок",
"enabled": true
}

Нажмите кнопку Сохранить изменения.

Для использования функционала использования файлов в заметках, воспользуйтесь статьей по настройке.

Добавление РСМ 2.0

В версии 5.0 добавлена Ресурсно-сервисная модель версии 2.0. Для просмотра нового функционала нужно создать элемент навигационное меню, для этого откройте меню Навигационное меню - Параметры системы - Настройки модулей - Основное - Настройки меню. Нажмите на кнопку Добавить модуль.

Заполните поля для модуля следующим образом:

Название поляСодержимое
Тип элементаГруппа
Системное имяrsm-v2
ЗаголовокРСМ 2.0
Включить отображениеДа, флаг должен быть включен

Внутри модуля РСМ 2.0 нажмите на кнопку Добавить раздел.

Заполните поля следующим образом:

Название поляСодержимое
Тип элементаСтраница
Системное имяtree
ЗаголовокДерево РСМ
Включить отображениеДа, флаг должен быть включен

Внутри модуля РСМ 2.0 нажмите на кнопку Добавить раздел.

Заполните поля следующим образом:

Название поляСодержимое
Тип элементаСтраница
Системное имяlayers
ЗаголовокСлои
Включить отображениеДа, флаг должен быть включен

Добавление пункта меню Список заметок

Нажмите кнопку Сохранить изменения. Настройте разрешения для групп пользователей при необходимости.

Пункт меню можно добавить через JSON структуру. Для этого откройте меню Навигационное меню - Параметры системы - Настройки модулей - Основное - Настройки меню, откройте вкладку JSON структура, добавьте в верхний список через запятую следующий фрагмент:

{
"itemType": "group",
"name": "rsm-v2",
"_permissions": {
"owner": "admin",
"read": {
"roles": [],
"users": []
},
"write": {
"roles": [],
"users": []
}
},
"id": "i166ef2a1-13ba-11f0-a668-6560e9eb14d5",
"title": "РСМ 2.0",
"enabled": true,
"sections": [
{
"itemType": "page",
"name": "tree",
"_permissions": {
"owner": "admin",
"read": {
"roles": [],
"users": []
},
"write": {
"roles": [],
"users": []
}
},
"id": "i46e0d571-13ba-11f0-a668-6560e9eb14d5",
"title": "Дерево РСМ",
"enabled": true
},
{
"itemType": "page",
"name": "layers",
"_permissions": {
"owner": "admin",
"read": {
"roles": [],
"users": []
},
"write": {
"roles": [],
"users": []
}
},
"id": "i5de13351-13ba-11f0-a668-6560e9eb14d5",
"title": "Слои",
"enabled": true
}
]
}

Нажмите кнопку Сохранить изменения.

Чтобы начать использовать РСМ 2.0 нужно её проинициализировать и выполнить миграцию.