Загрузка...

Мониторинг запуска, перезагрузки и завершение работы 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.

SOCpedia - платформа знаний

Здесь собраны материалы по практикам SOC и Blue Team: статьи, новости, книги и переводы.