02.08.2023

Аудит процессов Linux с помощью утилиты Autrace

Утилита Autrace представляет собой решение для проведения аудита процессов операционной системы с помощью командной строки, сохраняющее системные события в специальный журнал. Ее используют для отслеживания критических событий: внезапное завершение работы ОС, изменение сетевой конфигурации, редактирование прав доступа к системным файлам и т.д. Утилита является часть продукта auditd, который по умолчанию не установлен в рабочей среде Linux, за исключением ОС CentOS.

Расскажем, как провести аудит на сервере под управлением Ubuntu Server 18.04.

Предварительная подготовка

Устанавливаем утилиту:

sudo apt-get install auditd audispd-plugins

Процесс займет не более четырех минут.

Конфигурация продукта хранится в файле etc/audit/auditd.conf. Для редактирования используем текстовый редактор, например, Nano или Vi.

Как запустить аудит

В общем виде команда выглядит следующим образом:

autrace –r name_program [keys]

name_program — наименование продукта, который подвергается проверке;
keys — дополнительные опции, доступные утилите.

Ключ r ограничивает данные, которые собираются утилитой. При его активации autrace соберет только те логи, которые необходимы для анализа по указанным параметрам.

Приведем пример: программа DF наблюдает за ресурсами файловой структуры.

Запустим аудит для сервиса:

sudo autrace -r /bin/df –h

Утилита начнет отслеживать операции DF:

Скриншот №1. Пример аудита

Для просмотра подробной информации используем встроенный журнал. Он открывается через команду ausearch. В зависимости от программы, для которой проводится аудит, синтаксис команды меняется. В нашем примере на изображении выше он выделен красным.

Набираем в терминале без кавычек:

ausearch –I –p 7946

В результате на мониторе появится подробная информация по журналу. Синтаксис для команды ausearch выглядит следующим образом:

ausearch –i –p <id>

Ключ id — это цифровое значение процесса, которое доступно после активации команды autrace.
Ключ –p указывает утилите на идентификатор, по которому ищется журнал, а опция –i проводит интерпретацию цифровых значений.

Если нужна подробная трассировка, используем другой синтаксис:

ausearch -p 7946 --raw | aureport -i –f

Где ключ –f информирует о файлах и сокетах, а комбинация raw задает формат выводимого отчета.

Для вывода информации в зависимости от дня прописываем:

ausearch -p 7946 --raw | aureport -i -f

Как легко заметить, значение 7946 — это идентификатор процесса, который используется в примере статьи.