Статьи

Як читати лог-файл аудиту подій Linux - audit.log

Розшифровка лог-файлу аудиту подій audit Розшифровка лог-файлу аудиту подій 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
  • 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
  • sgid = 122
  • fsgid = 122
  • 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.


про автора

Юрист, програміст, спортсмен, бізнесмен і просто красень.

Ще статті автора


Пояснення полів type =?
Msg = ?
Arch =?
Syscall =?
Success =?
Exit =?
A0 =?
A1 =?
A2 =?
A3 =?

Новости