Product SiteDocumentation Site

73.8.3. Файлы журнала аудита

По умолчанию система аудита сохраняет записи журнала в файле /var/log/audit/audit.log.
Для примера создадим правило аудита, которое регистрирует каждую попытку чтения или изменения файла /etc/autofs.conf:
# auditctl -w /etc/autofs.conf -p warx -k autofs
Если служба auditd запущена, выполнение следующей команды создаст новое событие в файле журнала аудита:
$ cat /etc/autofs.conf
Событие в /var/log/audit/audit.log:
type=SYSCALL msg=audit(1699990009.349:368): arch=c000003e syscall=257 success=yes exit=3 a0=ffffff9c a1=7ffc39880600 a2=0 a3=0 items=1 ppid=5701 pid=8223 auid=501 uid=501 gid=501 euid=501 suid=501 fsuid=501 egid=501 sgid=501 fsgid=501 tty=pts1 ses=11 comm="cat" exe="/bin/cat" key="autofs"ARCH=x86_64 SYSCALL=openat AUID="test" UID="test" GID="test" EUID="test" SUID="test" FSUID="test" EGID="test" SGID="test" FSGID="test"
type=CWD msg=audit(1699990009.349:368): cwd="/home/test"
type=PATH msg=audit(1699990009.349:368): item=0 name="/etc/autofs.conf" inode=1354087 dev=08:02 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0OUID="root" OGID="root"
type=PROCTITLE msg=audit(1699990009.349:368): proctitle=636174002F6574632F6175746F66732E636F6E66
Данное событие состоит из четырех записей, имеющих один серийный номер и одну и ту же отметку времени. Каждая запись состоит из нескольких пар имя=значение, разделенных пробелом или запятой. Ниже каждая запись рассмотрена подробнее.

Примечание

Некоторые значения в журнале закодированы в шестнадцатеричном формате. При поиске записей аудита с помощью команды ausearch можно использовать параметр -i для автоматического преобразования шестнадцатеричных значений в удобочитаемые эквиваленты.
Первая запись:
  • type=SYSCALL — тип записи. Значение SYSCALL указывает, что запись была вызвана системным вызовом ядра;
  • msg=audit(1699990009.349:368) — в поле msg записывается:
    • отметка времени и уникальный идентификатор записи в формате audit(time_stamp:ID). Несколько записей могут иметь одну и ту же отметку времени и идентификатор, если они были созданы в рамках одного и того же события аудита. Отметка времени использует формат времени Unix (секунды с 00:00:00 UTC 1 января 1970 года);
    • различные пары имя=значение, зависящие от события, предоставляемые приложениями ядра или пользовательского пространства;
  • arch=c000003e — содержит информацию об архитектуре ЦП системы. Значение c000003e закодировано в шестнадцатеричном формате (c000003e интерпретируется как x86_64);
  • syscall=257 — тип системного вызова, отправленного ядру. Утилита ausyscall позволяет преобразовывать номера системных вызовов в их удобочитаемые эквиваленты. В данном примере 257 — системный вызов openat;
  • success=yes — указывает, был ли системный вызов, записанный в этом конкретном событии, успешным или неудачным. В данном примере вызов успешный;
  • exit=3 — значение, указывающее код выхода, возвращаемый системным вызовом. Это значение варьируется для разных системных вызовов;
  • a0=ffffff9c a1=7ffc39880600 a2=0 a3=0 — первые четыре аргумента системного вызова в этом событии, закодированные в шестнадцатеричной системе счисления;
  • items=1 — количество вспомогательных записей PATH, следующих за записью системного вызова;
  • ppid=5701 — идентификатор родительского процесса;
  • pid=8223 — идентификатор процесса (PID);
  • auid=501 — идентификатор пользователя аудита, то есть логин. Этот идентификатор присваивается пользователю при входе в систему и наследуется каждым процессом, даже если личность пользователя меняется, например, при переключении учетных записей пользователей с помощью команды su -;
  • uid=501 — идентификатор пользователя, запустившего анализируемый процесс. Идентификатор пользователя можно интерпретировать в имя пользователя с помощью команды ausearch -i --uid UID;
  • gid=501 — идентификатор группы пользователя, запустившего анализируемый процесс;
  • euid=501 — эффективный идентификатор пользователя, запустившего анализируемый процесс;
  • suid=501 — установленный идентификатор пользователя, запустившего анализируемый процесс;
  • fsuid=501 — идентификатор пользователя файловой системы, запустившего анализируемый процесс;
  • egid=501 — эффективный идентификатор группы пользователя, запустившего анализируемый процесс;
  • sgid=501 — заданный групповой идентификатор пользователя, запустившего анализируемый процесс;
  • fsgid=501 — идентификатор группы файловой системы пользователя, запустившего анализируемый процесс;
  • tty=pts1 — терминал, с которого был вызван анализируемый процесс;
  • ses=11 — идентификатор сеанса, из которого был вызван анализируемый процесс;
  • comm="cat" — имя команды, которая использовалась для вызова анализируемого процесса;
  • exe="/bin/cat" — путь к исполняемому файлу, который использовался для запуска анализируемого процесса;
  • key="autofs" — определенная администратором строка, связанная с правилом, создавшим это событие в журнале аудита;
Вторая запись:
  • type=CWD — тип записи. Значение CWD используется для записи рабочего каталога, из которого был выполнен процесс, вызвавший системный вызов, указанный в первой записи. Цель этой записи — записать местоположение текущего процесса на случай, если относительный путь будет зафиксирован в связанной записи PATH. Так можно восстановить абсолютный путь;
  • cwd="/home/test" — путь к каталогу, в котором был вызван системный вызов.
Третья запись:
  • type=PATH — событие аудита содержит запись типа PATH для каждого пути, который передается системному вызову в качестве аргумента. В этом событии аудита в качестве аргумента использовался только один путь (/etc/autofs.conf);
  • item=0 — указывает, какой элемент из общего числа элементов, указанных в записи типа SYSCALL, является текущей записью. Это число начинается с нуля; значение 0 означает, что это первый элемент;
  • name="/etc/autofs.conf" — путь к файлу или каталогу, который был передан системному вызову в качестве аргумента;
  • inode=1354087 — номер индексного дескриптора, связанный с файлом или каталогом, записанным в этом событии. Отобразить файл или каталог, связанный с номером индексного дескриптора можно, выполнив команду:
    # find / -inum 1354087 -print
    /etc/autofs.conf
    
  • dev=08:02 — вспомогательный и основной идентификатор устройства, которое содержит файл или каталог, записанный в этом событии (в данном примере /dev/08/02);
  • mode=0100644 — права доступа к файлу или каталогу, закодированные в числовой форме, возвращаемые командой stat в поле st_mode (в данном примере -rw-r--r--);
  • ouid=0 — идентификатор пользователя владельца объекта;
  • ogid=0 — идентификатор группы владельца объекта;
  • rdev=00:00 — записанный идентификатор устройства только для специальных файлов. В данном случае он не используется, поскольку записанный файл является обычным файлом;
  • cap_fp=0 — данные, относящиеся к настройке разрешенных возможностей файловой системы для объекта файла или каталога;
  • cap_fi=0 — данные, относящиеся к настройке унаследованных возможностей файловой системы для объекта файла или каталога;
  • cap_fe=0 — установка эффективного бита возможностей файловой системы объекта файла или каталога;
  • cap_fver=0 — версия возможностей файловой системы объекта файла или каталога.
Четвёртая запись:
  • type=PROCTITLE — тип записи. Значение PROCTITLE указывает, что эта запись содержит полную командную строку, которая инициировала это событие аудита, вызванное системным вызовом ядра;
  • proctitle — полная командная строка, которая использовалась для запуска анализируемого процесса. Поле закодировано в шестнадцатеричном формате. Текст декодируется в команду, которая вызвала это событие аудита. При поиске записей аудита с помощью команды ausearch следует использовать параметр -i для автоматического преобразования шестнадцатеричных значений в удобочитаемые эквиваленты. Значение 636174002F6574632F6175746F66732E636F6E66 интерпретируется в «cat /etc/autofs.conf».
Эти же записи в выводе команды ausearch -i:
# ausearch -i -k autofs
----
type=PROCTITLE msg=audit(14.11.2023 21:26:49.349:368) : proctitle=cat /etc/autofs.conf
type=PATH msg=audit(14.11.2023 21:26:49.349:368) : item=0 name=/etc/autofs.conf inode=1354087 dev=08:02 mode=file,644 ouid=root ogid=root rdev=00:00 nametype=NORMAL cap_fp=none cap_fi=none cap_fe=0 cap_fver=0 cap_frootid=0
type=CWD msg=audit(14.11.2023 21:26:49.349:368) : cwd=/home/test
type=SYSCALL msg=audit(14.11.2023 21:26:49.349:368) : arch=x86_64 syscall=openat success=yes exit=3 a0=AT_FDCWD a1=0x7ffc39880600 a2=O_RDONLY a3=0x0 items=1 ppid=5701 pid=8223 auid=test uid=test gid=test euid=test suid=test fsuid=test egid=test sgid=test fsgid=test tty=pts1 ses=11 comm=cat exe=/bin/cat key=autofs