石家庄新钥匙建站,大型网站如何做别名,免费安装app,礼品回收网站建设文章目录 一、audit简介二、开启auditd服务三、相关文件四、审计规则五、审计日志查询及分析附录1#xff1a;auditctl -h附录2#xff1a;systemcall 类型 参考文章#xff1a;
1、安全-linux audit审计使用入门 2、audit详细使用配置 3、Linux-有哪些常见的System Callauditctl -h附录2systemcall 类型 参考文章
1、安全-linux audit审计使用入门 2、audit详细使用配置 3、Linux-有哪些常见的System Call
写在前面 1.写博客做日常工作记录好记性不如烂笔头嘛 2.内容非原创参考的文章已上文列出 3.如有错误欢迎指正。
一、audit简介
audit是Linux内核提供的一种审计机制由于audit是内核提供的因此在使用audit的过程中就包含内核空间和用户空间部分
auditctl用户态程序用于审计规则配置和配置变更 kaudit内核空间程序根据配置好的审计规则记录发生的事件 auditd用户态程序通过netlink获取审计日志 通常的使用流程 用户通过auditctl配置审计规则 内核的kauditd程序获取到审计规则后记录对应的审计日志 用户态的auditd获取审计日志并写入日志文件
二、开启auditd服务
systemctl status auditd.service
systemctl start auditd.service三、相关文件
# 1.应用配置文件
/etc/audit/auditd.conf
# 2.添加规则的文件
/etc/audit/rules.d/audit.rules
# 3.日志所在目录
/var/log/audit/四、审计规则
控制规则用于更改审计系统本身的配置和设置。
auditctl -b 8192 # 配置buffer大小为8M
auditctl -e 0
auditctl -f 2
auditctl -s文件系统规则审核对特定文件或目录的任何类型的访问比较常见
# 项太多了举例一个监控针对/etc/passwd文件的读、写、执行和属性改变关键字为change_passwd
auditctl -w /etc/passwd -p rwxa -k change_passwd
# 如果要查询
ausearch -i -k change_passwd详见附录 auditctl -h
系统调用规则用于监视由任何进程或特定用户进行的系统调用
# -S 设置要监控的系统调用名或者系统调用号下述命令仅作举例
需要补充例子同样详见附录 auditctl -h
五、审计日志查询及分析
# 仅列举比较常用的方式-k后面跟创建审计规则时设置的关键字
ausearch -i -k ***审计日志类似各个系统可不同 审计日志-字段分析 typeaudit消息类型消息类型有100多种具体查看请点击audit消息类型 比较常见有SYSCALL代表这条记录是向内核的系统调用触发产生的 msg消息的ID 它有两个部分组成 分号之前的是Unix的时间戳分号之后的是真正的event ID同一个应用程序的相同system call拥有相同的event ID 同一个应用的不同system call则不同。 arch: 调用system call的CPU构架 syscallsystem call的类型可使用ausyscall --dump来显示所有的系统调用 successsystem call是成功或者失败 comm: 出现在任务列表中应用程序的名称。 exe 二进制程序的解析路径。 ses 用户登录的session ID. auid audit ID 针对某一用户,一个进程会被分配一个audit ID 该audit ID会被传递给子进程尽管在系统中用户切换该audit ID将始终保持一致。 这样我们可以针对对某一用户进行trace。 a0 to a3 系统调用的前四个参数的数字化可以通过ausearch解码查看 items 传递到应用程序的字符串数量 ppid父进程的PID pid该进程的PID uid user ID。 gid: group ID。 euid, suid, fsuid: Effective user ID, set user ID, and file system user ID. egid, sgid, fsgid: Effective group ID, set group ID, and file system group ID. tty: 应用程序开启的终端这种情况下pseudo-terminal used in an SSH session.
附录1auditctl -h
[auditadmlocalhost ~]$ auditctl -h
usage: auditctl [options]-a l,a Append rule to end of list with action-A l,a Add rule at beginning of list with action-b backlog Set max number of outstanding audit buffersallowed Default64-c Continue through errors in rules-C ff Compare collected fields if available:Field name, operator(,!), field name-d l,a Delete rule from list with actionltask,exit,user,excludeanever,always-D Delete all rules and watches-e [0..2] Set enabled flag-f [0..2] Set failure flag0silent 1printk 2panic-F fv Build rule: field name, operator(,!,,,,,,) value-h Help-i Ignore errors when reading rules from file-k key Set filter key on audit rule-l List rules-m text Send a user-space message-p [r|w|x|a] Set permissions filter on watchrread, wwrite, xexecute, aattribute-q mount,subtree make subtree part of mount points dir watches-r rate Set limit in messages/sec (0none)-R file read rules from file-s Report status-S syscall Build rule: syscall name or number--signal signal Send the specified signal to the daemon -t Trim directory watches-v Version-w path Insert watch at path-W path Remove watch at path--loginuid-immutable Make loginuids unchangeable once set--backlog_wait_time Set the kernel backlog_wait_time--reset-lost Reset the lost record counter附录2systemcall 类型
网上查询的好多说是看这个文件https://github.com/torvalds/linux/blob/master/arch/sh/include/asm/unistd.h
# 不同系统间存在差距
# 下文只做简单举例编号代表 类型值
$ ausyscall --dump
Using aarch64 syscall table:
0 io_setup
1 io_destroy
2 io_submit
3 io_cancel
4 io_getevents
5 setxattr
6 lsetxattr
7 fsetxattr
8 getxattr
9 lgetxattr
10 fgetxattr
11 listxattr
12 llistxattr
13 flistxattr
14 removexattr
15 lremovexattr
16 fremovexattr
17 getcwd
18 lookup_dcookie
19 eventfd2
20 epoll_create1
21 epoll_ctl
22 epoll_pwait
23 dup
24 dup3
25 fcntl
26 inotify_init1
27 inotify_add_watch
28 inotify_rm_watch
29 ioctl
30 ioprio_set
31 ioprio_get
32 flock
33 mknodat
34 mkdirat
35 unlinkat
36 symlinkat
37 linkat
38 renameat
39 umount2
40 mount
41 pivot_root
42 nfsservctl
43 statfs
44 fstatfs
45 truncate
46 ftruncate
47 fallocate
48 faccessat
49 chdir
50 fchdir
51 chroot
52 fchmod
53 fchmodat
54 fchownat
55 fchown
56 openat
57 close
58 vhangup
59 pipe2
60 quotactl
61 getdents
62 lseek
63 read
64 write
65 readv
66 writev
67 pread
68 pwrite
69 preadv
70 pwritev
71 sendfile
72 pselect6
73 ppoll
74 signalfd4
75 vmsplice
76 splice
77 tee
78 readlinkat
79 newfstatat
80 newfstat
81 sync
82 fsync
83 fdatasync
84 sync_file_range
85 timerfd_create
86 timerfd_settime
87 timerfd_gettime
88 utimensat
89 acct
90 capget
91 capset
92 personality
93 exit
94 exit_group
95 waitid
96 set_tid_address
97 unshare
98 futex
99 set_robust_list
100 get_robust_list
101 nanosleep
102 getitimer
103 setitimer
104 kexec_load
105 init_module
106 delete_module
107 timer_create
108 timer_gettime
109 timer_getoverrun
110 timer_settime
111 timer_delete
112 clock_settime
113 clock_gettime
114 clock_getres
115 clock_nanosleep
116 syslog
117 ptrace
118 sched_setparam
119 sched_setscheduler
120 sched_getscheduler
121 sched_getparam
122 sched_setaffinity
123 sched_getaffinity
124 sched_yield
125 sched_get_priority_max
126 sched_get_priority_min
127 sched_rr_get_interval
128 restart_syscall
129 kill
130 tkill
131 tgkill
132 sigaltstack
133 rt_sigsuspend
134 rt_sigaction
135 rt_sigprocmask
136 rt_sigpending
137 rt_sigtimedwait
138 rt_sigqueueinfo
139 rt_sigreturn
140 setpriority
141 getpriority
142 reboot
143 setregid
144 setgid
145 setreuid
146 setuid
147 setresuid
148 getresuid
149 setresgid
150 getresgid
151 setfsuid
152 setfsgid
153 times
154 setpgid
155 getpgid
156 getsid
157 setsid
158 getgroups
159 setgroups
160 uname
161 sethostname
162 setdomainname
163 getrlimit
164 setrlimit
165 getrusage
166 umask
167 prctl
168 getcpu
169 gettimeofday
170 settimeofday
171 adjtimex
172 getpid
173 getppid
174 getuid
175 geteuid
176 getgid
177 getegid
178 gettid
179 sysinfo
180 mq_open
181 mq_unlink
182 mq_timedsend
183 mq_timedreceive
184 mq_notify
185 mq_getsetattr
186 msgget
187 msgctl
188 msgrcv
189 msgsnd
190 semget
191 semctl
192 semtimedop
193 semop
194 shmget
195 shmctl
196 shmat
197 shmdt
198 socket
199 socketpair
200 bind
201 listen
202 accept
203 connect
204 getsockname
205 getpeername
206 sendto
207 recvfrom
208 setsockopt
209 getsockopt
210 shutdown
211 sendmsg
212 recvmsg
213 readahead
214 brk
215 munmap
216 mremap
217 add_key
218 request_key
219 keyctl
220 clone
221 execve
222 mmap
223 fadvise64
224 swapon
225 swapoff
226 mprotect
227 msync
228 mlock
229 munlock
230 mlockall
231 munlockall
232 mincore
233 madvise
234 remap_file_pages
235 mbind
236 get_mempolicy
237 set_mempolicy
238 migrate_pages
239 move_pages
240 rt_tgsigqueueinfo
241 perf_event_open
242 accept4
243 recvmmsg
260 wait4
261 prlimit64
262 fanotify_init
263 fanotify_mark
264 name_to_handle_at
265 open_by_handle_at
266 clock_adjtime
267 syncfs
268 setns
269 sendmmsg
270 process_vm_readv
271 process_vm_writev
272 kcmp
273 finit_module
274 sched_setattr
275 sched_getattr
276 renameat2
277 seccomp
278 getrandom
279 memfd_create
280 bpf
281 execveat
282 userfaultfd
283 membarrier
284 mlock2
285 copy_file_range
286 preadv2
287 pwritev2
288 pkey_mprotect
289 pkey_alloc
290 pkey_free
291 statx
292 io_pgetevents
293 rseq
294 kexec_file_load
424 pidfd_send_signal
425 io_uring_setup
426 io_uring_enter
427 io_uring_register
428 open_tree
429 move_mount
430 fsopen
431 fsconfig
432 fsmount
433 fspick
434 pidfd_open
435 clone3
1024 open
1025 link
1026 unlink
1027 mknod
1028 chmod
1029 chown
1030 mkdir
1031 rmdir
1032 lchown
1033 access
1034 rename
1035 readlink
1036 symlink
1037 utimes
1038 stat64
1039 lstat64
1040 pipe
1041 dup2
1042 epoll_create
1043 inotify_init
1044 eventfd
1045 signalfd
1049 newstat
1050 newlstat
1059 alarm
1060 getpgrp
1061 pause
1062 time
1063 utime
1064 creat
1066 futimesat
1067 select
1068 poll
1069 epoll_wait
1070 ustat
1071 vfork
1073 recv
1074 send
1075 bdflush
1076 oldumount
1077 uselib
1078 sysctl
1079 fork