怎么在Linux利用Auditd监控针对Swap分区的非法内存转储行为保护敏感私钥

酷宇同学_4824

酷宇同学_4824

2026-05-05

404人浏览

原创

auditd无法直接审计内存转储到Swap的行为,因其发生在内核内存管理层面,不触发用户空间系统调用;但可通过三重策略防护:①用mlock锁定私钥进程内存页;②严格限制Swap文件/分区权限并审计其变更;③审计私钥文件访问、调试器启动、/proc/PID/mem读取及swappiness篡改等高风险操作。

怎么在linux利用auditd监控针对swap分区的非法内存转储行为保护敏感私钥

直接回答核心问题:
Auditd 本身不能监控“内存转储到 Swap”的行为本身,因为它发生在内核内存管理层面(如 pageout、swap-out),不触发用户空间可审计的系统调用。但你可以通过 auditd 精准捕获所有可能触发敏感数据落入 Swap 的高风险操作,并结合内核参数与文件权限实现纵深防护——这正是保护私钥等敏感数据的实战思路。


一、为什么 auditd 无法直接审计“Swap 内存转储”

内存页被写入 Swap 是内核 VM 子系统自动完成的后台过程(例如当物理内存紧张时,内核将匿名页或脏私有页换出)。该过程不经过 execve、open、read 等 auditd 可监听的系统调用,auditd 无对应事件可记录。

⚠️ 注意:这不是 auditd 的缺陷,而是设计使然——Swap 操作属于底层内存调度,审计框架聚焦于**可归因到进程/用户的显式安全事件**(如谁读了 /etc/shadow、谁执行了 gdb、谁修改了 /proc/sys/vm/swappiness)。

二、真正有效的三重防御策略(auditd + 内核 + 权限)

保护私钥不因 Swap 泄露,关键不是“拦住 swap”,而是“不让私钥进 swap” + “拦住任何试图提取它的行为”:

  • ① 阻断私钥进入 Swap(最根本):
    对私钥文件所在进程启用 mlock() 或 mlockall() 锁定内存页。常用工具如 openssl、ssh-agent(带 -k 参数)、gpg-agent 默认已做此处理。确认方式:
    cat /proc/<pid>/status | grep Mlocked</pid> —— 值应 > 0。
  • ② 严控 Swap 文件/分区访问权限(防提权后读取):
    Swap 文件(如 /swapfile)必须为 600,且由 root 所有;Swap 分区设备节点(如 /dev/sdb2)权限应为 600。auditd 可监控其权限变更:
    sudo auditctl -w /swapfile -p wa -k swapfile_perm
  • ③ 审计所有可能泄露私钥的“入口”和“出口”行为:
    这才是 auditd 发挥作用的核心场景:

三、auditd 实战监控项(直接保护私钥生命周期)

以下规则建议写入 /etc/audit/rules.d/privkey.rules 并 reload:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 监控私钥文件的任意访问:
    -w /etc/ssl/private/ -p rwxa -k privkey_access
    -w /root/.ssh/id_rsa -p rwxa -k ssh_privkey_access
    (覆盖读、写、执行、属性修改,含子目录递归)
  • 拦截调试器/内存提取工具启动:
    -a always,exit -F arch=b64 -S ptrace -F a0=0x10 -k mem_dump_attempt
    (捕获 ptrace(PTRACE_ATTACH),gdb/strace/ltrace 常用)
    -a always,exit -F path=/usr/bin/gdb -F perm=x -k gdb_exec
  • 禁止非授权进程读取 /proc/PID/mem 或 /proc/PID/pagemap:
    -a always,exit -F path=/proc/*/mem -F perm=r -k proc_mem_read
    -a always,exit -F path=/proc/*/pagemap -F perm=r -k pagemap_read
  • 监控 swap 相关内核参数篡改(防攻击者调高 swappiness 强制换出):
    -w /proc/sys/vm/swappiness -p wa -k vm_swappiness_change

四、验证与告警建议

规则生效后,用以下命令快速验证:

  • 触发测试:sudo cat /root/.ssh/id_rsa 2>/dev/null | head -c 10
  • 查日志:sudo ausearch -k privkey_access -i | grep "exe="
  • 生成报告:sudo aureport -k privkey_access --summary

将关键 key(如 privkey_access、mem_dump_attempt)接入 SIEM 或配置 audispd 插件实时邮件/钉钉告警,比单纯看日志更有效。

不复杂但容易忽略:真正起效的不是单条规则,而是把私钥加载、使用、存储、销毁全流程中所有可审计的“接触点”全部覆盖,并配合 mlock 和最小权限原则形成闭环。

相关文章

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

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

下载

相关标签:

linux

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

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

4985

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

415

21

磁盘配额是什么
磁盘配额是什么

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

2023.06.21

4230

4

如何安装LINUX
如何安装LINUX

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

2023.06.29

3573

10

linux find
linux find

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

2023.06.30

2813

5

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

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

2023.07.05

6910

7

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

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

2023.07.06

6542

7

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

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

2023.07.20

3773

8

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

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

2023.07.20

3265

4

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习