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 显示的就是需要用来删除的确切格式。
 微信赞赏
微信赞赏 支付宝赞赏
支付宝赞赏
发表评论