Расшифровка лог-файла аудита событий audit.log. Объяснение полей type=? msg=?: arch=? syscall=? success=? exit=? a0=? a1=? a2=? a3=? items=? ppid=? pid=? auid=? uid=? gid=? euid=? suid=? fsuid=? egid=? sgid=? fsgid=? tty=? ses=? comm=? exe=? subj=? key=?
Пример записи из /var/log/audit/audit.log:
$ less /var/log/audit/audit.log ... type=SYSCALL msg=audit(1430556327.250:889): arch=40000003 syscall=117 success=ye s exit=0 a0=15 a1=0 a2=1000 a3=bf8910f8 items=0 ppid=1 pid=4418 auid=4294967295 uid=115 gid=122 euid=115 suid=115 fsuid=115 egid=122 sgid=122 fsgid=122 tty=(non e) ses=4294967295 comm="ntpd" exe="/usr/sbin/ntpd" \ subj=system_u:system_r:ntpd_t :s0 key=(null)
Расшифровка приведённой выше записи журнала из audit.log:
- type=SYSCALL
- Тип события (системный вызов ядра, ака SYSCALL). Полный перечень типов регистрируемых событий можно найти здесь
- msg=audit(1430556327.250:889):
- Содержит штамп времени и уникальный ИД события audit(time_stamp:ID). Некоторые записи могут содержать один и тот же штамп времени и уникальный ИД если они являются частью одного и того же события произошедшего в одну и ту же единицу времени. Штамп времени может быть конвертирован командой
date -d @1430556327.250
- Содержит штамп времени и уникальный ИД события audit(time_stamp:ID). Некоторые записи могут содержать один и тот же штамп времени и уникальный ИД если они являются частью одного и того же события произошедшего в одну и ту же единицу времени. Штамп времени может быть конвертирован командой
- arch=40000003
- Содержит информацию об архитектуре процессора. Если запустить поиск событий с помощью команды
ausearch -i `40000003`|more
то числовое значение 40000003 в поле arch= будет конвертировано в i386
- Содержит информацию об архитектуре процессора. Если запустить поиск событий с помощью команды
- syscall=117
- Тип системного вызова посланного в ядро.
ausyscall --dump
выдаст список всех системных вызовов для текущей архитектуры. Можно указать архитектуру, напримерausyscall i386 117
выдаст ipc, аausyscall x86_64 117
выдаст setresuid - т.е. значение одного и того же номера системного вызова различно для разных архитектур.
- Тип системного вызова посланного в ядро.
- success=yes
- Успешность выполнения события - yes=успех, no=провал выполнения.
- exit=0
- Код выхода, возвращённый системным вызовом. Интерпретировать значение в человекочитаемый формат можно командой:
ausearch --interpret --exit -13
(... success=no exit=-13(Отказано в доступе) ...).
- Код выхода, возвращённый системным вызовом. Интерпретировать значение в человекочитаемый формат можно командой:
- a0=15 a1=0 a2=1000 a3=bf8910f8
- Первые четыре аргумента системного вызова
- items=0
- Количество строк переданных приложению
- ppid=1
- Parent Process ID (PPID) - ID родительского процесса
- pid=4418
- Process ID (PID) - ID процесса которому посвящено событие аудита
- auid=4294967295
- Audit user ID - ID пользователя в системе аудита, который присваивается при входе пользователя в систему и сохраняется неизменным даже при изменении идентификации/личности пользователя (например с помощью
su - vasya
). Часто бывает аббревиатурой uid, реже loginuid
- Audit user ID - ID пользователя в системе аудита, который присваивается при входе пользователя в систему и сохраняется неизменным даже при изменении идентификации/личности пользователя (например с помощью
- uid=115
- User ID - ID пользователя запустившего анализируемый процесс. ИД может быть транслирован в имя пользователя:
ausearch -i --uid UID
- в данном случае имя пользователя ntp
- User ID - ID пользователя запустившего анализируемый процесс. ИД может быть транслирован в имя пользователя:
- gid=122
- Group ID - ID группы пользователя запустившего анализируемый процесс. В данном случае имя группы ntp.
- euid=115
- Effective user ID
- suid=115
- Saved user ID (Saved owner User ID up on execution) - При меняется для повышения привилегий на время выполнения/запуска. Иногда может иметь ИД владельца/пользователя запускаемого файла, который может отличаться от ИД пользователя запустившего его. Т.е. в некоторых случаях, когда пользователь не является владельцем запускаемого файла, на время запуска пользователю может быть присвоен ID владельца запускаемого/исполняемого файла.
- fsuid=115
- File system user ID - идентификатор пользователя файловой системы (fsuid), который используется специально для управления доступом к файловой системе. Почти всегда соответствует euid, если явно не установить иное значение. Когда euid изменяется, изменение распространяется и на fsuid. Начиная с ядра 2.0 нет необходимости в fsuid, однако придерживается ядром Linux из соображений совместимости.
- egid=122
- Effective group ID
- sgid=122
- Set group ID
- fsgid=122
- File system group ID
- tty=(none)
- Терминал с которого был вызван процесс
- ses=4294967295
- Session ID - сессия с которой был вызван процесс
- comm="ntpd"
- Комманда с помощью которой был вызван анализируемый процесс
- exe="/usr/sbin/ntpd"
- Путь к исполняемому файлу анализируемого процесса
- subj=system_u:system_r:ntpd_t:s0
- SELinux context - контекст безопасности (метка) SELinux, которым был помечен анализируемый процесс.
- key=(null)
- Так званый ключ/метка поиска, по которому можно фильтровать события. Может устанавливаться администратором для определённой категории событий с помощью правил утилитой auditctl
Список и краткое описание остальных возможных полей audit.log можно обнаружить на справочной странице man auditctl
. В будущем эта страница возможно будет пополнена дополнительной расшифровкой этого загадочного audit.log.