如何配置 Linux 审计守护进程 Auditd 记录所有敏感系统调用实战

舞姬之光

舞姬之光

2026-06-23

1008人浏览

原创

auditd有效审计不靠全量记录,而是精准筛选ptrace、execve、openat等高风险系统调用,并结合arch、uid、path等上下文细粒度控制;盲目启用-s all会导致日志爆炸与性能崩溃。

如何配置 linux 审计守护进程 auditd 记录所有敏感系统调用实战

auditd 记录所有敏感系统调用不是靠“全量开启”,而是靠精准筛选高风险系统调用并绑定关键上下文。盲目记录所有系统调用(如 -a always,entry -S all)会导致日志爆炸、磁盘写满、CPU负载陡增,实际生产中不可行。真正有效的做法是聚焦攻击链中最常被滥用的调用,结合架构(arch)、操作类型(syscall)、目标进程(comm/pid)、用户权限(uid/euid)等维度做细粒度控制。

明确哪些系统调用属于“敏感”
以下调用在入侵链中高频出现,且难以绕过审计(除非内核级提权):

  • ptrace:用于调试、注入、读写内存(PTRACE_ATTACH/PTRACE_PEEKDATA/PTRACE_POKEDATA)
  • execve:执行新程序,是横向移动和恶意载荷落地的关键入口
  • openat / open:打开文件,尤其配合 /etc/shadow/proc/*/mem 等路径时极可疑
  • setuid / setgid / setreuid:权限提升操作,常出现在提权利用中
  • mmap / mprotect:内存映射与权限变更,常见于 shellcode 注入或 bypass DEP
  • socket / connect / bind:异常网络行为,特别是非标准用户发起的监听或外连

分步配置实战(以 64 位主流系统为例)

1. 先确认环境并清空临时规则

sudo systemctl is-active auditd && echo "running" || sudo systemctl start auditd
sudo auditctl -e 0        # 临时禁用审计(便于重载规则)
sudo auditctl -D            # 清除所有已有临时规则

2. 添加核心敏感系统调用规则(带标签、过滤架构、聚焦上下文)

PyCharm 2026.2.0.1 Linux版
PyCharm 2026.2.0.1 Linux版

PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。

下载
# 记录所有 ptrace 调用(含 attach/peek/poke),仅限 64 位
sudo auditctl -a always,exit -F arch=b64 -S ptrace -k suspicious_ptrace

# 记录非 root 用户执行 execve(重点关注普通用户启用了特权程序)
sudo auditctl -a always,exit -F arch=b64 -S execve -F uid!=0 -k user_execve

# 记录对 /etc/shadow、/etc/passwd 的 open/openat(无论读写)
sudo auditctl -a always,exit -F arch=b64 -S open,openat -F path=/etc/shadow -k auth_shadow_access
sudo auditctl -a always,exit -F arch=b64 -S open,openat -F path=/etc/passwd -k auth_passwd_access

# 记录 setuid/setgid 调用(排除 root 自身的合法调用,聚焦异常提升)
sudo auditctl -a always,exit -F arch=b64 -S setuid,setgid,setreuid,setregid -F uid!=0 -k suspicious_setuid

# 记录对 /proc/*/mem 的 open/openat(典型内存注入信号)
sudo auditctl -a always,exit -F arch=b64 -S open,openat -F path=/proc/*/mem -k proc_mem_access

3. 让规则永久生效
把上述命令写入 /etc/audit/rules.d/sensitive-syscalls.rules

# /etc/audit/rules.d/sensitive-syscalls.rules
-a always,exit -F arch=b64 -S ptrace -k suspicious_ptrace
-a always,exit -F arch=b64 -S execve -F uid!=0 -k user_execve
-a always,exit -F arch=b64 -S open,openat -F path=/etc/shadow -k auth_shadow_access
-a always,exit -F arch=b64 -S open,openat -F path=/etc/passwd -k auth_passwd_access
-a always,exit -F arch=b64 -S setuid,setgid,setreuid,setregid -F uid!=0 -k suspicious_setuid
-a always,exit -F arch=b64 -S open,openat -F path=/proc/*/mem -k proc_mem_access

然后重载:

sudo augenrules --load
sudo systemctl restart auditd

4. 验证与快速排查

  • 查看是否加载成功:sudo auditctl -l | grep -E "(ptrace|execve|shadow|setuid)"
  • 模拟测试(如用 strace -p $(pgrep sshd) 触发 ptrace)后查日志:
    sudo ausearch -k suspicious_ptrace -i | head -15
  • 过滤失败调用(success=no)可发现暴力提权尝试:
    sudo ausearch -m avc -i | grep "denied.*ptrace"  # SELinux 拒绝也可辅助判断

关键细节提醒

  • -a always,exit-a always,entry 更可靠:它在系统调用返回后记录,能拿到完整的 success=exit= 值,便于区分成功/失败行为。
  • -F arch=b64 必须显式指定:x86_64 系统上若不加此过滤,32 位兼容调用可能漏捕。
  • /proc/*/mem 使用通配符需确保 auditd 版本 ≥ 3.0(CentOS 7.6+/RHEL 8+ 默认支持)。
  • 标签(-k)务必语义清晰:后续用 ausearch -k xxx 可秒级定位,比全文 grep 快 10 倍以上。

不复杂但容易忽略。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux linux系统安全

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

2649

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

1625

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

1271

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

2631

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

2372

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

1636

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

1228

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

1398

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

209

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Apifox下载与安装手册
Apifox下载与安装手册

共0课时 | 0人学习

安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 127人学习