首页/安全/取证与溯源速查/SELinux AVC 拒绝日志判读
Linux 取证135 条

SELinux AVC 拒绝日志判读

AVC denied 记录强制访问控制拦截:可能来自攻击尝试,也可能是配置错误;被拦截的路径与主体是判断价值的关键。

取证与溯源速查安全更新于 2026-10-13

SELinux 拒绝记录

SELinux 在强制模式下会拒绝不符合策略的操作,并把细节写成 AVC 记录。这类记录有两层价值:一是能说明某个进程尝试访问了哪些本不该访问的资源,二是可以解释服务异常的原因,避免把策略拦截误判成入侵行为。

基本信息

查看命令ausearch -m AVC、dmesg | grep -i avc
状态检查getenforce、sestatus
日志位置/var/log/audit/audit.log 或内核消息缓冲区
分析工具audit2why、audit2allow
运行模式enforcing、permissive、disabled
权限要求读取审计日志与切换模式需要 root

典型使用场景

  • 排查服务异常是否由策略拦截引起
  • 分析进程越权访问敏感文件的尝试
  • 区分策略冲突与恶意行为
  • 为策略调整提供依据
  • 与其它审计事件一起还原访问时序

最小示例

最小示例
getenforce                                        # 当前运行模式
sestatus 2>/dev/null | head -6                    # 状态汇总
ausearch -m AVC -ts today 2>/dev/null | head -40  # 今天的拒绝记录
dmesg | grep -i avc | tail -20                    # 未运行审计服务时的兜底查看
ausearch -m AVC -ts today 2>/dev/null | audit2why 2>/dev/null | head -20
grep -c 'avc:' /var/log/audit/audit.log           # 记录总数

字段与关注点

字段含义关注点
denied被拒绝的操作说明策略拦截确实发生
comm 与 exe发起访问的进程判断是已知服务还是异常程序
scontext源安全上下文进程所处的域
tcontext目标安全上下文被访问对象的类型
tclass对象类别文件、目录或套接字
permissive仅告警未阻止记录存在但操作实际已成功
被拒对象是否为敏感文件值得优先关注:针对口令文件与密钥目录的拒绝记录,往往指向尝试越权访问的进程。
强制模式与宽容模式的记录含义不同:宽容模式下操作实际执行成功,只是留下告警,判断影响时必须区分。
大量重复的 AVC 记录常来自策略冲突或自定义程序,要结合程序来源与部署时间区分策略问题与恶意行为。
不要在排查过程中把模式切换为宽容或禁用:会改变系统安全状态,也使后续记录失去原有判定基础。

易错点

  • 把 AVC 记录一律当恶意:自定义程序与策略未覆盖同样会产生拒绝记录
  • 忽略模式差异:宽容模式下操作并未被阻止,按强制模式的逻辑解读会出错
  • 用 audit2allow 直接生成策略并加载:会放宽安全边界,掩盖真实问题
  • 只看摘要不看目标对象:被拒对象是否敏感,决定了这条记录的重要程度

数据来源与参考

  • Red Hat 文档(SELinux AVC 与 ausearch)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌