Контроль целостности файлов конфигурации Визион
Контроль целостности позволяет отслеживать наличие изменений в объектах файловой системы с помощью специальных утилит. В общем виде все утилиты такого типа работают по одному и тому же алгоритму:
-
Создание эталонных контрольных сумм указанных файлов и директорий.
-
Периодическая сверка фактических контрольных сумм файлов и директорий с эталонными.
-
Реагирование на наличие расхождений в контрольных суммах в соответствии с политикой, определённой системным администратором.
|
После настройки контроля целостности любые изменения конфигурации компонентов Визион должны происходить через службу информационной безопасности с последующим обновлением БД эталонных контрольных сумм соответствующей утилиты. |
Перечень файлов и директорий Визиона для контроля целостности
-
/etc/nginx/ -
/opt/skala-r/etc/vision/ -
/opt/skala-r/etc/vision/server/grafana/provisioning/datasources/datasources.yml -
/opt/skala-r/plagent/, за исключением директорий/opt/skala-r/plagent/io/и/opt/skala-r/plagent/upload/ -
/opt/skala-r/vision/.secrets_vault -
/opt/skala-r/vision/agent/ -
/opt/skala-r/vision/bin -
/opt/skala-r/vision/cert/ -
/opt/skala-r/vision/server/plugins/ -
/opt/skala-r/vision/server/repo/ -
/opt/skala-r/vision/server/vision_taskdaemon/var/ -
/opt/skala-r/vision/server/vision_venv/ -
/etc/systemd/system/multi-user.target.wants/nginx.serviceЭто символическая ссылка. Фактическое расположение файла зависит от используемого дистрибутива Linux:
-
ALT Linux:
/lib/systemd/system/nginx.service. -
Astra Linux:
/lib/systemd/system/nginx.service. -
РЕД ОС:
/usr/lib/systemd/system/nginx.service.
-
-
/usr/sbin/nginx; -
Конфигурационные файлы PostgreSQL:
ALT Linux Server 8 СП р9, ALT Linux Server 8 СП р10, РЕД ОС 7.3, РЕД ОС 8:
-
/var/lib/pgsql/data/pg_hba.conf; -
/var/lib/pgsql/data/pg_ident.conf; -
/var/lib/pgsql/data/postgresql.conf.
Astra Linux Special Edition 1.7.3:
-
/etc/postgresql/11/main/pg_hba.conf; -
/etc/postgresql/11/main/pg_ident.conf; -
/etc/postgresql/11/main/postgresql.conf.
-
-
/usr/bin/postgres; -
/etc/systemd/system/multi-user.target.wants/postgresql.service.Это символическая ссылка. Фактическое расположение файла зависит от используемого дистрибутива Linux:
-
ALT Linux:
/lib/systemd/system/postgresql.service. -
Astra Linux Special Edition:
/lib/systemd/system/postgresql.service. -
РЕД ОС:
/usr/lib/systemd/system/postgresql.service.
-
-
/etc/systemd/system/vision_core.service -
/etc/systemd/system/vision_alertcollector.service -
/etc/systemd/system/vision_taskdaemon.service -
/etc/systemd/system/grafana.service -
/etc/systemd/system/victoriametrics_st.service -
/etc/systemd/system/vmalert_st.service -
/etc/systemd/system/alertmanager.service -
/etc/systemd/system/snmp_notifier.service -
/etc/systemd/system/vision_*.service -
Службы plagent:
-
/etc/systemd/system/plagent.service; -
/etc/systemd/system/vision_vmagent_agent.service; -
/etc/systemd/system/vision_vmagent_proxy.service.
Эти службы присутствуют только на узлах с установленным plagent. -
Настройка утилит
В состав разных дистрибутивов Linux входят разные утилиты контроля целостности, поэтому порядок их настройки различается.
afick
|
Эта инструкция применима к дистрибутивам:
|
Для контроля целостности используется утилита afick.
Для получения более подробной информации о ней обратитесь к соответствующим руководствам:
Включение контроля целостности
Для включения контроля целостности выполните следующие действия:
-
Установите утилиту контроля целостности:
-
Astra Linux Special Edition:
apt-get install afick -
РЕД ОС:
dnf install afick
-
-
В конфигурационном файле
/etc/afick.confв раздел# files to scanдобавьте пути к контролируемым файлам и директориям и необходимые опции. -
Для обновления и формирования базы контролируемых файлов запустите утилиту с ключом
--update:afick --update
Регулярная проверка целостности обеспечивается запуском cron-задачи.
Задача создаётся при установке утилиты и запускается один раз в сутки.
Результатом выполнения является сформированный отчет, который отправляется на электронный адрес, указанный в конфигурационном файле в секции @@define MAILTO root.
Периодичность запуска
Bash-скрипт, отвечающий за проверку целостности и отправки отчета, находится в /etc/cron.daily/afick_cron.
Настройка периодичности проверки целостности может быть изменена в соответствии с механизмом работы cron.
Проверка механизма контроля целостности
Для проверки, что контроль целостности осуществляется, необходимо произвести следующие действия:
-
Выполнить команду:
afick -kОжидаемый результат — отсутствие изменений.
-
Изменить контролируемый файл или создать новый в контролируемой директории.
-
Повторно выполнить команду:
afick -kОжидаемый результат — сообщение о нарушении целостности.
После внесения изменений в контролируемые файлы и необходимости их фиксирования необходимо от имени администратора запустить команду:
afick --update
osec
|
Эта инструкция применима к дистрибутивам:
|
Для настройки используется утилита osec.
Подробнее в документации ALT Linux.
Включение контроля целостности
Для включения контроля целостности выполните следующие действия:
-
Установите утилиту:
apt-get install osec -
Убедитесь, что сервис контроля целостности при загрузке активирован (enabled):
systemctl is-enabled integalert -
Если автозапуск сервиса выключен, включите его:
systemctl enable integalert -
В конфигурационный файл
/etc/osec/dirs.confдобавьте директории, содержимое которых нужно контролировать.По умолчанию отслеживаются изменения в директориях:
-
/bin/; -
/sbin/; -
/usr/bin/; -
/usr/sbin/.
Строки, начинающиеся со знака #, считаются комментариями. -
-
Сформируйте эталонные контрольные суммы:
osec -f /etc/osec/dirs.conf -D /var/lib/osec/ -
Запустите
osec:integalert fix -
Для фиксации изменений и проверки конфигурации выполните команду:
systemctl restart osec
Для проверки целостности системы запустите команду integalert от имени привилегированного пользователя.
После внесения изменений в файл /etc/osec/dirs.conf перезапустите службу osec.
Периодичность запуска
Кроме пакета программного комплекса osec в систему устанавливается пакет osec-timerunit.
Он позволяет задать способ и периодичность запуска osec (файлы /lib/systemd/system/osec.service, /lib/systemd/system/osec.timer).
В пакете osec-timerunit есть файл с заданием для демона cron и конфигурационные файлы (dirs.conf).
Для проверки статуса периодического контроля целостности выполните команду:
systemctl status osec.timer
Для активации периодического контроля целостности выполните команды команды:
systemctl enable osec.timer
systemctl start osec.timer
По умолчанию в osec.timer задан запуск проверки каждый день в двенадцать часов ночи.
Чтобы задать другие периоды запуска osec, создайте файл /etc/systemd/system/osec.timer с измененными периодами и перезапустите демон systemd:
cp /lib/systemd/system/osec.timer /etc/systemd/system/osec.timer
vim /etc/systemd/system/osec.timer
systemctl daemon-reload
Проверка механизма контроля целостности
| Для проведения теста авторизуйтесь в системе от имени администратора. |
-
Подготовьте директорию для базы данных:
mkdir /tmp/base chown osec:osec /tmp/base cp -ar /var/lib/osec/* /tmp/base -
Сформируйте контрольные суммы объектов (список путей к ним хранится в файле
/etc/osec/dirs.conf) и занесите их в базу данных/tmp/base.Результат работы
osecвыводится в терминал, поэтому для перенаправления вывода результата в текстовый файл/tmp/report1используйте команду:osec -f /etc/osec/dirs.conf -D /tmp/base/ -r >/tmp/report1 -
Не производя никаких изменений в системе, запустите
osecповторно и выведите результат работы в текстовый файл/tmp/report2:osec -f /etc/osec/dirs.conf -D /tmp/base/ -r >/tmp/report2 -
Сравните два результирующих файла
/tmp/report1и/tmp/report2:diff -u0 /tmp/report1 /tmp/report2Два отчета должны совпадать, в терминале не должно быть выведено никаких различий.
-
Выполните изменения в контролируемых файлах или директориях, например, добавьте новые файлы или удалите один из существующих, либо измените содержимое одного из файлов и т. д.
-
Запустите
osecв режиме «только чтение» и перенаправьте вывод в текстовый файл/tmp/report3:osec -f /etc/osec/dirs.conf -D /tmp/base/ -r > /tmp/report3 -
Сравните два результирующих файла
/tmp/report2и/tmp/report3:diff -u0 /tmp/report2 /tmp/report3Ожидаемые результаты: сведения об изменениях, сделанных выше с конфигурационными файлами, должны выводиться в терминал.
Порядок восстановления целостности системы
В случае выявления нарушения целостности:
-
при проверке целостности системы утилитой
integalert; -
при загрузке ОС — вывод визуального оповещения с обязательным подтверждением дальнейшей загрузки ОС система загружается в однопользовательском режиме с запросом пароля суперпользователя.
Порядок восстановления:
-
От имени администратора выполните просмотр лога аудита и найдите нарушение целостности.
-
Восстановите объект с нарушенной целостностью: замените на эталон, переустановите или пропустите, если изменение было санкционированным.
-
Запустите восстановление целостности системы.
Если система контроля целостности IMA/EVM не инициализирована, выполните команду:
integalert fix -
Сформируйте эталонные контрольные суммы для изменённых и новых объектов и занесите их в базу данных:
osec -f /etc/osec/dirs.conf –D /var/lib/osec -
Перезагрузите систему.