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

Подключение с помощью SQL-коллектора

Предварительные условия:

  • на узле-источнике сервис-источник записывает журналы в одну из следующих СУБД:
    • PostgreSQL
    • MySQL
    • SQLite
    • ClickHouse
    • Oracle
  • отсутствуют какие-либо ограничения по подключению к выбранной СУБД на узле-источнике событий ИБ с сервера KOMRAD
  • имеется информация о структуре базы данных и таблице, в которую записываются события, а также имеется подготовленный пользователь с необходимыми правами

Подключение нового SQL-коллектора

Предварительные условия:

Для установки SQL-коллектора на определенный узел, необходимо:

  1. На узле создать директорию, в которую необходимо переместить deb-пакет komrad-sql-collector*.deb из дистрибутива KOMRAD

  2. Установить из папки komrad-sql-collector командой:

    sudo dpkg -i ./komrad-sql-collector*.deb
  3. Открыть файл komrad-sql-collector.yaml командой:

    sudo nano /etc/echelon/komrad/komrad-sql-collector.yaml
  4. Отредактировать параметр bus-url, задав IP-адрес сервера KOMRAD:

    bus-url: nats://IP_ KOMRAD:3490
  5. Сохранить файл и перезагрузить sql-collector командой:

    sudo systemctl restart komrad-sql-collector.service
  6. Новый SQL-коллектор отобразится в списке коллекторов в веб-интерфейсе

Подключение новых источников событий

Предварительные условия:

  • Необходимо узнать IP-адрес, порт, а также имя пользователя и пароль к базе данных, с которой будет проводиться сбор событий
  • Отсутствуют какие-либо ограничения на передачу трафика по выбранному порту между источником событий ИБ и сервером KOMRAD

Расположение: manage ⇒ Настройки коллекторов ⇒ Коллекторы ⇒ SQL

Действия:

  1. Кликнуть по SQL-коллектору
  2. При необходимости задать имя коллектору c помощью кнопки «Редактировать» и сохранить изменения
  3. На вкладке «Источники» нажать на кнопку «Добавить». Справа появится форма для создания нового источника для SQL-коллектора
  4. Выбрать «Шаблон» из доступных
  5. Заполнить поле «Название»
  6. Отредактировать «Строка подключения» для вашего источника (данные для заполнения указаны в предварительных условиях, см. выше)
  7. Выбрать тип базы данных
  8. При необходимости можно изменить инициализирующий и регулярный запросы
  9. Записать название поля-счётчика, по которому будет производится проверка появления новых записей в БД
  10. Выбрать необходимую частоту запросов к БД (crontab time format)
  11. Включить коллектор, если он был выключен или перезагрузите, если он был включен
  12. Нажать на «Проверить», если проверка прошла успешно, т.е. в графическом интерфейсе отобразилось событие информационной безопасности, то нажать на кнопку «Сохранить»

Добавление шаблона

В настройках SQL-коллектора есть возможность добавлять шаблоны в базу данных.

Для этого необходимо выполнить следующие действия:

  1. Подключиться к PostgreSQL

    sudo su - postgres
  2. Выбрать нужную базу

    psql komrad-preferences
  3. Вставить свой шаблон

    INSERT INTO preferences.sql_templates 
    ("name", "version", vendor, dialect, connection_string, initial_query, regular_query, counter)
    VALUES('Oracle - свой', 'v4.5.1-alpha.64', 'Oracle', 'Oracle', 'sqlserver://oracle:pass@localhost?database=mine',
    'SELECT MY_ID
    FROM
    (select *
    from KOMRAD_ORACLE
    order by MY_ID desc)
    WHERE ROWNUM = 1',
    'SELECT MY_ID,
    EVENT
    FROM KOMRAD_ORACLE
    WHERE MY_ID > :1
    ORDER BY MY_ID', 'MY_ID');

    (VALUES в запросе можно менять на валидные данные)

  4. Перейти в KOMRAD на вкладку "Администрирование" ⇒ "Настройки коллекторов" ⇒ "SQL" ⇒ В настройки SQL-коллектора

  5. Во вкладке "Источники" нажать Добавить

  6. В поле "Тип БД" выбрать "Oracle"

Удаление

Удалить sql-коллектор можно с помощью команды:

sudo dpkg -P komrad-sql-collector

Вызов PREPARE запросов в SQL-коллекторе

На примере PostgreSQL 11 Astra

Вручную запустить в БД PREPARE

PREPARE au1 as (
select * from audit.logged_actions where event_id > $1 limit 100
);

Инициализирующий, получаем значение счётчика для последней записи:

select * from audit.logged_actions ORDER BY event_id DESC limit 1;

Регулярный:

Запускается PREPARED, подставляется значение счётчика, который коллектор запоминает после каждого успешного запуска execute au1($1)