Мониторинг запуска, перезагрузки и завершение работы Linux
1. Постановка задачи.
В рамках выполнения регуляторных требований потребовалось подготовить доказательную базу для аудиторов в части мониторинга событий запуска, перезагрузки и завершения работы операционных систем Linux.
В данной «Заметке по мониторингу» представлены основные выводы, полученные по результатам практического тестирования актуальных релизов операционных систем Linux: CentOS Stream 9/10 и Ubuntu Server 22.04/24.04/26.04 LTS.
2. Общий подход.
Для мониторинга запуска, перезагрузки и завершения работ Linux необходимо учитывать особенности конкретной операционной системы и версии systemd. В зависимости от наличия компонента systemd-update-utmp могут использоваться либо события Linux Audit (SYSTEM_*), либо события systemd/journal.
Для более наглядного представления результатов тестирования все полученные результаты представлены в виде изображений, созданных с помощью ИИ.
3. Ключевые события.

4. Последовательность событий.

5. Особенности по операционным системам.

6. Дополнительный аудит запуска команд перезагрузки и выключения.
Ранее рассмотренные события Linux Audit SYSTEM_BOOT, SYSTEM_SHUTDOWN и SYSTEM_RUNLEVEL формируются доверенными приложениями пользовательского пространства, поддерживающими интерфейс Linux Audit (см. п.5.2. Базовое описание и архитектура auditd). Для формирования этих событий отдельные правила наблюдения за файлами или системными вызовами не требуются.
Для установления пользователя и команды, которыми могло быть инициировано выключение или перезагрузка, мониторинг состояния ОС следует дополнить аудитом выполнения соответствующих программ. Такой контроль настраивается правилами Linux Audit и позволяет получать составные события с информацией о запуске процесса.
Пример правил наблюдения за выполнением команд управления питанием:
-w /usr/sbin/shutdown -p x -k power_exec
-w /usr/sbin/poweroff -p x -k power_exec
-w /usr/sbin/reboot -p x -k power_exec
-w /usr/sbin/halt -p x -k power_execВажно. Запуск команды не равнозначен фактически выполненной перезагрузке или выключению. Например,
success=yesв записиSYSCALLдляexecveозначает успешное выполнение системного вызова запуска программы, а не успешное завершение запрошенной операции управления питанием. Поэтому событие запуска необходимо сопоставлять с последующими событиямиLinux Auditиsystemd.
Приложение. Краткая информация о тестируемых операционных системах.
Примечание. Наличие событий
SYSTEM_*зависит от наличия механизмаsystemd-update-utmpи не гарантируется для всех релизов Linux.




