Linux审计日志分析应聚焦五类高危行为:特权提升异常、敏感路径突变、隐蔽进程启动、横向移动痕迹、审计自身被干扰;使用ausearch精准查询、aureport生成画像,并建立轻量基线持续比对。

Linux系统审计日志(audit log)是识别入侵、误操作和策略违规的核心数据源。关键不在于日志量多大,而在于聚焦高风险行为模式——比如非工作时间的sudo提权、敏感文件被异常读取、新用户或服务账户创建、SSH密钥变更等。真正有效的分析,是从“谁在什么时间做了什么不该做的事”出发,而不是泛泛扫描所有记录。
抓准审计日志入口:/var/log/audit/audit.log 与 ausearch 工具
默认审计日志存于 /var/log/audit/audit.log,但直接用 cat 或 grep 查看效率低、易漏上下文。推荐优先使用 ausearch ——它是专为 auditd 日志设计的查询工具,支持按时间、UID、系统调用、事件类型等精准过滤。
- 查某用户最近10分钟的所有 sudo 行为:ausearch -m EXECVE -ui $(id -u username) --start recent | aureport -f -i
- 查所有失败的登录尝试(含 SSH 和本地):ausearch -m LOGIN -sv no | aureport -l -i
- 查对 /etc/shadow 的任何访问(无论成功与否):ausearch -f /etc/shadow
盯住五类高危行为模式
不是所有审计事件都值得警报。以下五类行为出现时,应立即人工核查:
- 特权提升异常:非管理员账户执行 /usr/bin/sudo、/bin/bash -i、setuid 程序调用,尤其伴随 execve + cap_setpcap(能力提权)事件链
- 敏感路径突变:/etc/passwd、/etc/shadow、/etc/sudoers、/root/.ssh/authorized_keys 被 open_write、truncate、rename 或 unlink
- 隐蔽进程启动:execve 调用路径含 /tmp、/dev/shm、/var/tmp 下的可执行文件,或参数中含 base64、curl http、bash -c 等典型下载执行特征
- 横向移动痕迹:同一主机上短时间内多个不同 UID 的 sshd 登录成功事件;或 sshd 进程调用 connect 系统调用指向内网其他IP
- 审计自身被干扰:auditctl 命令被执行、auditd 进程被 kill、/etc/audit/rules.d/ 下规则文件被修改
用 aureport 快速生成行为画像
aureport 是 audit 工具链中的报表引擎,能将原始事件聚合成人可读的统计视图,适合快速定位异常主体。
- 列出今日执行命令最多的前5个用户:aureport -m --start today | awk '{print $5}' | sort | uniq -c | sort -nr | head -5
- 查看哪些程序最常触发权限拒绝(AVC denials):aureport -m -se avc --start today | awk '{print $7}' | sort | uniq -c | sort -nr
- 导出所有网络连接事件(含目标IP和端口):aureport -f --start yesterday --key network | grep -E "(connect|sendto)"
建立轻量级基线并持续比对
没有基线,就无法定义“异常”。建议每周运行一次快照采集,形成组织内正常行为轮廓:
- 记录常规时段(如 9:00–18:00)内各业务账户的平均 execve 数量、常用命令集合、活跃终端设备
- 保存 /etc/passwd 中的 UID/GID 分布、shell 类型分布、家目录路径规律
- 用 auditctl -s 备份当前规则状态,防止规则被静默关闭
- 下次分析时,用 ausearch 加时间窗口对比,例如只查“非基线时段 + 非基线命令”的组合事件










