Logsta sh шаблон фильтра для журналов аудита? - PullRequest
0 голосов
/ 02 марта 2020

Я собираю все уровни журналов, включая журналы AuditD, с моей виртуальной машины, используя Syslog, и храню их в централизованном месте, которое является сервером Syslog. Затем я помещаю все журналы моей виртуальной машины в стек ELK, используя filebeat. Пока нажимаю на лого sh. Я хочу отделить следующие детали от моих журналов auditD

1) User Name
2) What command he executed

Я использовал следующий шаблон для разделения того же самого, но я не могу получить имя пользователя в виде строки, так как AUID принимает как целое число.

Используемый шаблон

type=%{WORD:audit_type} msg=audit\(%{NUMBER:audit_epoch}:%{NUMBER:audit_counter}\): arch=%{NOTSPACE} syscall=%{NUMBER:syscall_number} success=(?<syscall_sucess>(yes|no)) exit=%{NUMBER:syscall_exit_code} %{GREEDYDATA:syscall_arguments} items=%{NUMBER:syscall_path_records} ppid=%{NUMBER:syscall_parent_pid} pid=%{NUMBER:syscall_pid} auid=%{NUMBER:uid_audit} uid=%{NUMBER:running_uid} gid=%{NUMBER:group_id} euid=%{NUMBER:uid_effective} suid=%{NUMBER:uid_set} fsuid=%{NUMBER:uid_fs} egid=%{NUMBER:gid_effective} sgid=%{NUMBER:gid_set} fsgid=%{NUMBER:gid_fs} tty=%{NOTSPACE:tty} ses=%{NUMBER:session_id} comm=\"%{GREEDYDATA:command}\" exe=\"%{GREEDYDATA:exec_file}\" key=\"%{GREEDYDATA:audit_rule}\" SYSCALL=\"%{GREEDYDATA:syscall}\" AUID=\"%{GREEDYDATA:user}\"

Мой пример ввода

type=SYSCALL msg=audit(1582540425.222:375): arch=c000003e syscall=59 success=yes exit=0 a0=55ea2c3d1f90 a1=55ea2c2e2c20 a2=55ea2c41f570 a3=0 items=2 ppid=16081 pid=16249 auid=1578986719 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="sudo" exe="/usr/bin/sudo" key="rootact"#035ARCH=x86_64 SYSCALL=execve AUID="giri" UID="root" GID="root" EUID="root" SUID="root" FSUID="root" EGID="root" SGID="root" FSGID="root"

из приведенного выше примера I может получить auid как 1578986719, но не как giri, который является AUID.

Пожалуйста, помогите мне получить AUID в виде строки.

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Или, если вы просто заинтересованы в имени пользователя и AUID, вы можете использовать этот шаблон:

(?=.*auid=%{NUMBER:uid_audit})(?=.*AUID=\"%{DATA:user}\")

, который не зависит от того, что формат журнала остается прежним.

0 голосов
/ 05 марта 2020

Надеюсь, что этот шаблон помогает получить AUID в виде строки

type=%{WORD:audit_type} msg=audit\(%{NUMBER:audit_epoch}:%{NUMBER:audit_counter}\): arch=%{NOTSPACE} syscall=%{NUMBER:syscall_number} success=(?<syscall_sucess>(yes|no)) exit=%{NUMBER:syscall_exit_code} %{GREEDYDATA:syscall_arguments} items=%{NUMBER:syscall_path_records} ppid=%{NUMBER:syscall_parent_pid} pid=%{NUMBER:syscall_pid} auid=%{NUMBER:uid_audit} uid=%{NUMBER:running_uid} gid=%{NUMBER:group_id} euid=%{NUMBER:uid_effective} suid=%{NUMBER:uid_set} fsuid=%{NUMBER:uid_fs} egid=%{NUMBER:gid_effective} sgid=%{NUMBER:gid_set} fsgid=%{NUMBER:gid_fs} tty=%{NOTSPACE:tty} ses=%{NUMBER:session_id} comm=\"%{GREEDYDATA:command}\" exe=\"%{GREEDYDATA:exec_file}\" key=\"%{GREEDYDATA:audit_rule}\"%{GREEDYDATA} SYSCALL=%{GREEDYDATA:syscall} AUID=\"%{GREEDYDATA:user}\" UID
...