首页/安全/安全加固速查/失败系统调用审计(越权尝试线索)

失败系统调用审计(越权尝试线索)

-F exit=-EACCES/-EPERM 记录被拒绝的访问:入侵者试探性访问的痕迹全在这里,也是数据泄露路径的佐证。

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

为什么审计失败调用

用 exit=-EACCES 或 exit=-EPERM 条件可以记录被拒绝的访问尝试。入侵者在横向移动与信息搜集阶段会大量试探,这些失败记录既是最直接的痕迹,也是判断数据泄露路径的重要佐证。它同时是噪声大户——正常业务的高频失败访问会淹没真正有价值的线索,所以规则要按场景用 key 切分。

基本信息

适用平台Linux(auditd)
风险等级中
基线要求越权尝试可被发现
关键条件-F exit=-EACCES 与 -F exit=-EPERM
过滤建议限定 auid 并排除未登录会话
查询工具ausearch 与 aureport

典型使用场景

  • 应急响应时查看入侵者试探过哪些文件
  • 缩小数据泄露路径的排查范围
  • 监控网站目录被越权读写的尝试
  • 验证权限收敛后是否仍有异常访问
  • 排查某个服务账号在读取哪些未授权资源
  • 为合规审计提供访问被拒的证据

规则与查询

规则与查询
-a always,exit -F arch=b64 -S open,openat,truncate,ftruncate,creat -F exit=-EACCES -F auid>=1000 -F auid!=4294967295 -k access_denied   # 记录被拒的写类操作
-a always,exit -F arch=b64 -S open,openat -F exit=-EPERM -F auid>=1000 -F auid!=4294967295 -k access_denied   # 记录被拒的读类操作
ausearch -k access_denied -ts today | head -30   # 查询今天的越权尝试
ausearch -k access_denied -ts today | aureport --summary 2>/dev/null | head   # 汇总统计

输出逐列读法

字段含义判读
exit系统调用的返回码-EACCES 与 -EPERM 代表被拒绝
auid发起操作的可审计用户未登录会话为 4294967295,需排除
key规则自定义的标签用于按场景分类检索
comm触发操作的进程名定位是哪个程序在试探
路径参数被访问的文件对象据此判断攻击者关注的目标
失败访问既是入侵线索的金矿也是噪声大户:查询时按时间窗口与 key 分段,别把全量结果直接倒进分析平台。
只有使用 exit= 判定条件的规则才能按退出码过滤,语法上不要和 success=no 这类判定混搭。
高频业务会产生海量 EACCES 记录:把网站目录、共享目录这类重点区域单独划分 key,日常检索才有意义,也能避免事件量顶满审计缓冲区。

易错点

  • 规则语法把 exit 判定与其他判定条件混搭,规则加载失败或行为与预期不符
  • 不限制 auid 导致未登录会话的噪声混入,真正的线索被淹没
  • 查询时不限定时间窗口直接全量导出,分析成本极高且得不偿失
  • 规则加了但只用默认 key,各类场景混在一起无法分类检索
  • 高频失败访问造成事件量激增,把审计缓冲区顶满引发事件丢失

数据来源与参考

  • CIS Linux Benchmark:失败访问审计
  • Red Hat 审计文档

相关工具

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