Контроль целостности позволяет отслеживать наличие изменений в объектах файловой системы с помощью специальных утилит. В общем виде все утилиты такого типа работают по одному и тому же алгоритму:
-
Создание эталонных контрольных сумм указанных файлов и директорий.
-
Периодическая сверка фактических контрольных сумм файлов и директорий с эталонными.
-
Реагирование на наличие расхождений в контрольных суммах в соответствии с политикой, определённой системным администратором.
| Важно |
|---|
| После настройки контроля целостности любые изменения конфигурации компонентов Визион должны происходить через службу информационной безопасности с последующим обновлением БД эталонных контрольных сумм соответствующей утилиты. |
Перечень файлов и директорий Визиона для контроля целостности#
-
/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#
Эта инструкция применима к дистрибутивам:
-
Astra Linux Special Edition 1.7;
-
РЕД ОС 7.3;
-
РЕД ОС 8.
Для контроля целостности используется утилита 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#
Эта инструкция применима к дистрибутивам:
-
ALT Linux СП 8 р9;
-
ALT Linux СП 8 р19.
Для настройки используется утилита 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
1.Сравнить два результирующих файла /tmp/report2 и /tmp/report3:
```sh
diff -u0 /tmp/report2 /tmp/report3
```
Ожидаемые результаты: сведения об изменениях, сделанных выше с конфигурационными файлами, должны выводиться в терминал.
Порядок восстановления целостности системы#
В случае выявления нарушения целостности:
-
при проверке целостности системы утилитой
integalert; -
при загрузке ОС — вывод визуального оповещения с обязательным подтверждением дальнейшей загрузки ОС Система загружается в однопользовательском режиме с запросом пароля суперпользователя.
Порядок восстановления:
-
От имени администратора выполнить просмотр лога аудита и найти нарушение целостности.
-
Восстановить объект с нарушенной целостностью: заменить на эталон, переустановить или пропустить (если изменение было санкционированным).
-
Запустить восстановление целостности системы.
Если система контроля целостности IMA/EVM не инициализирована, выполнить команду:
integalert fix -
Сформировать эталонные контрольные суммы для изменённых и новых объектов и занести их в базу данных:
osec -f /etc/osec/dirs.conf –D /var/lib/osec -
Перезагрузить систему.