ausearch 可通过限定时间、事件类型、系统调用号及 key 标签快速定位可疑 syscall,配合 grep/awk/aureport 提取关键信息,大幅提升审计效率。

用 ausearch 快速从海量 audit.log 中定位可疑系统调用(syscall),关键在于精准限定时间、事件类型、系统调用号或行为特征,避免全盘扫描拖慢速度。
按高风险 syscall 名称直接过滤
常见危险调用如 execve(执行程序)、openat/open(读敏感文件)、connect(外连)、setuid/setgid(提权)可直接匹配:
-
ausearch -m execve -i | grep -E "(bash|sh|python|nc|curl|wget)"—— 查异常 shell 或下载工具启动 -
ausearch -m openat -i | awk '/\/etc\/shadow/ || /\/etc\/passwd/ || /\/root\// {print}'—— 扫描对关键路径的 open 操作 -
ausearch -m connect -i | grep -v "localhost\|127.0.0.1" | head -20—— 抽样非本地网络连接
结合时间范围与失败事件缩小范围
攻击行为常伴随大量失败操作(如暴力提权、越权访问),加时间窗能极大提速:
-
ausearch -ts yesterday -te now -m avc,syscalls -f | grep "denied"—— 查 SELinux 拒绝事件(需开启 auditd 的 avc 记录) -
ausearch -ts "2024/06/15 14:00" -te "2024/06/15 14:30" -m syscall -sc 102 --raw | aureport -f -i—— 查指定时段内所有connect(syscall 102)调用详情 -
ausearch -ts recent -m syscall -sv no -sc 105 | head -10—— 查最近失败的chown(syscall 105)操作
用 key 字段快速关联攻击链(推荐)
若审计规则中已为关键操作打标(如 -k ssh_bruteforce 或 -k sensitive_file_access),按 key 检索最快:
-
ausearch -k ssh_bruteforce -i—— 直接拉出所有标记为爆破的事件 -
ausearch -k privileged_exec -m execve -i | awk '{print $1,$2,$13}'—— 提取时间、UID 和执行路径,便于横向比对 - 配合
aureport -k -i可查看各 key 的统计摘要,快速识别高频异常 key
导出后用 awk/sed 做轻量二次加工
ausearch 输出较冗长,管道进文本工具可快速提取关键字段:
-
ausearch -m execve -ts today | awk -F': ' '/exe="/ {print $2}' | sort | uniq -c | sort -nr | head -10—— 统计今日最常被执行的程序 -
ausearch -m syscall -sc 59 --raw | aureport -f -i | grep -E "(\/dev\/mem|\/proc\/kcore|\/sys\/kernel)"—— 查可疑的内核内存/设备访问(syscall 59 =kill不是重点,这里仅示意 sc 用法;实际查 mem 用-sc 2即fork配合ptrace规则更准) - 注意:
--raw输出适合机器解析,-i适合人读;混用时先 raw 再 aureport,别直接对-i输出做正则
不复杂但容易忽略:确保 auditd 已启用 syscall 过滤规则(如 -a always,exit -F arch=b64 -S execve,openat,connect,setuid),否则 ausearch 再快也查不到原始数据。










