Audit在应急响应中常用的命令汇总
整理应急响应中经常会用到的Audit审计命令,方便排查使用。
auditctl命令参数解释
[root@localhost ~]# auditctl -h 用法: auditctl [选项] -a <l,a> 将规则追加到列表<l>的末尾,并执行动作<a> -A <l,a> 将规则添加到列表<l>的开头,并执行动作<a> -b <backlog> 设置允许的最大未完成审计缓冲区数 默认值=64 -c 继续执行规则中的错误 -C f=f 比较收集到的字段(如果可用): 字段名, 运算符(=,!=), 字段名 -d <l,a> 从列表<l>中删除规则,并执行动作<a> l=task,exit,user,exclude a=never,always -D 删除所有规则和监视 -e [0..2] 设置启用标志 -f [0..2] 设置失败标志 0=silent 1=printk 2=panic -F f=v 构建规则:字段名, 运算符(=,!=,<,>,<=,>=,&,&=) 值,例如-F arch=b64 - 过滤条件:仅监控64位架构的系统调用 -h 帮助 -i 从文件读取规则时忽略错误 -k <key> 在审计规则上设置过滤器键 -l 列出规则 -m text 发送用户空间消息 -p [r|w|x|a] 在监视上设置权限过滤器 r=read, w=write, x=execute, a=attribute -q <mount,subtree> 使子树成为挂载点的目录监视的一部分 -r <rate> 设置每秒消息数的限制 (0=无限制) -R <file> 从文件读取规则 -s 报告状态 -S syscall 构建规则:系统调用名称或编号 -t 修剪目录监视 -v 版本 -w <path> 在 <path> 插入监视 -W <path> 移除 <path> 的监视 --loginuid-immutable 使 loginuid 一旦设置就不可更改 --reset-lost 重置丢失记录计数器
监控网络连接
网络操作类:
socket
– 创建套接字connect
– 当程序主动向外建立连接时触发(如客户端连接服务器)accept, accept4
– 当程序接受传入连接时触发(如服务器接受客户端连接)bind
– 绑定地址listen
– 监听端口send, sendto, sendmsg
– 发送数据recv, recvfrom, recvmsg
– 接收数据
auditctl -a always,exit -F arch=b64 -S connect,accept -F key=network_connections
执行后查看审计结果。
ausearch -k network_connections --format text

这样的输出可能会非常多,我们可以按照进程名来去重。
ausearch -k network_connections --format text | awk '!seen[$NF]++'
每个进程只保留一条记录,方便判断哪些进程有过网络连接,再做进一步筛选。

按进程名去重会筛选掉大量重复的进程网络请求。
监控目录/文件访问
监控文件访问:
auditctl -w /etc/passwd -p rwxa -k file_access

监控目录访问:
auditctl -w /var/log -p rwxa -k dir_access

ausearch -k file_access --format text ausearch -k dir_access --format text
如果输出太多也可以先按进程名去重方便查看。
ausearch -k file_access --format text | awk '!seen[$NF]++' ausearch -k dir_access --format text | awk '!seen[$NF]++'
监控进程创建
auditctl -a always,exit -F arch=b64 -S execve -k process_creation auditctl -a always,exit -F arch=b64 -S clone,fork,vfork -k process_fork
fork/clone/vfork是”生孩子”(创建新进程,新的PID),execve是”换脑子”(在现有进程中加载新程序,PID不变)。


ausearch -k process_fork --format text ausearch -k process_creation --format text
删除Audit规则
每次排查完及时删除audit规则,否则日志量非常大。
删除所有规则:
auditctl -D
删除特定规则:
auditctl -l

找到要删除的规则,复制整行内容,将开头的 -a 改为 -d,或将 -w 保持不变但加上 -d。
注意:删除命令必须与添加命令的参数完全匹配,auditctl -l
显示的就是需要用来删除的确切格式。
微信赞赏
支付宝赞赏
发表评论