Как читать лог-файл аудита событий Linux - audit.log

archive view archive save

log-logo Расшифровка лог-файла аудита событий 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
  • 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
  • uid=115
    • User ID - ID пользователя запустившего анализируемый процесс. ИД может быть транслирован в имя пользователя: ausearch -i --uid UID - в данном случае имя пользователя ntp
  • 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.


Комментарии в блоге
Новое на форуме