首页/安全/安全加固速查/权限变更审计(chmod/chown)

权限变更审计(chmod/chown)

chmod/chown/chattr 是提权与后门常走的路径:对普通用户发起的权限变更布控,能捞出大量可疑动作。

安全加固速查安全更新于 2026-10-13

为什么要审计权限变更

提权与后门落地几乎都会改动文件权限:给脚本加 suid 位、把目录改成全局可写、把配置改成所有人可读。这类 syscall 数量大、噪声高,但只要按「谁发起」过滤,就能把系统守护进程的日常操作挡在外面,留下真正值得看的那部分。

基本信息

适用平台Linux(auditd)
关键 syscallchmod 家族、chown 家族、setxattr 等
常用过滤auid>=1000 且 auid!=4294967295 只留交互登录用户
基线权限变更可追溯到具体登录用户

典型使用场景

  • 事件调查:确认某目录权限在何时、被谁改动过
  • 合规审计:权限变更属于必须留痕的运维行为
  • 加固后的回归检查:确认监控覆盖范围没有随规则调整而失效
  • 排查误操作:业务异常后回溯是否有人改过关键配置权限

规则与查询

规则与查询
# 权限相关 syscall 监控:只保留交互登录用户的操作
-a always,exit -F arch=b64 -S chmod,fchmod,fchmodat -F auid>=1000 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b64 -S chown,fchown,fchownat,lchown -F auid>=1000 -F auid!=4294967295 -k perm_mod
# 关键目录的写与属性变更
-w /etc -p wa -k etc_perm
# 查询今天的记录
ausearch -k perm_mod --start today | head -30
ausearch -k etc_perm --start today | head -20

字段读法

字段含义判读要点
auid原始登录用户 ID4294967295 表示未经过登录会话,多为守护进程
uid当前生效用户 IDsudo 场景下 uid 可能是 0,看 auid 才知道是谁
key规则标记perm_mod 等自定义标记便于检索
comm进程名结合路径判断是业务程序还是可疑工具
auid 过滤把系统守护进程的噪声先挡在门外,是这类规则能长期可用的前提;不加过滤时单机日志量会迅速失控。
suid 与 sgid 位的变化不是这组 syscall 记录出来的:需要配合定期 find 扫描,两者覆盖面不同,不能互相替代。
审计日志本身是敏感数据:它记录了谁在什么时候改了哪些关键文件,一旦被篡改就失去举证价值,应限制读取权限并转发到集中日志平台。
规则上线前先估算日志量:只加关键目录与关键 syscall,再用 -w /etc -p wa 这类范围明确的规则,比全盘监控更可持续。

易错点

  • 不加 auid 过滤直接上线:日志量暴涨,磁盘与审计后端同时被压垮
  • 只看 uid 不看 auid:sudo 提权后所有操作都显示为 root,无法定位到人
  • 规则改完不验证:auditctl -l 显示已加载但实际不生效,关键时刻发现没有记录
  • 审计日志与业务日志混放:检索时被无关内容淹没,调查效率大幅下降

数据来源与参考

  • CIS Linux Benchmark:权限变更审计
  • Red Hat 审计文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌