Контроль целостности файлов конфигурации Визион
Контроль целостности позволяет отслеживать наличие изменений в объектах файловой системы с помощью специальных утилит. В общем виде все утилиты такого типа работают по одному и тому же алгоритму:
-
Создание эталонных контрольных сумм указанных файлов и директорий.
-
Периодическая сверка фактических контрольных сумм файлов и директорий с эталонными.
-
Реагирование на наличие расхождений в контрольных суммах в соответствии с политикой, определённой системным администратором.
|
После настройки контроля целостности любые изменения конфигурации компонентов Визион должны происходить через службу информационной безопасности с последующим обновлением БД эталонных контрольных сумм соответствующей утилиты. |
Перечень файлов и директорий Визиона для контроля целостности
-
/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:
Эти службы присутствуют только на узлах с установленным plagent. -
/etc/systemd/system/plagent.service; -
/etc/systemd/system/vision_vmagent_agent.service; -
/etc/systemd/system/vision_vmagent_proxy.service.
-
Настройка утилит
В состав разных дистрибутивов 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 -
Перезагрузить систему.