为什么审计失败调用
用 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,日常检索才有意义,也能避免事件量顶满审计缓冲区。