Linux中的SMEP&SMAP

SMEP/SMAP

概述: 是x86处理器提供的硬件安全特性,目的是防止一些常见的内核攻击

SMEP

Supervisor Mode Execution Prevention

作用: 防止内核模式代码意外或恶意执行位于用户空间的代码。

实现方式: 通过控制寄存器CR4中设置特定位(位20)来启用的。linux内核在启动时会检测CPU是否支持SMEP,如果支持,则在早期初始化阶段启用该特定。这样,即时由于漏洞泄露导致内核错误地跳转到用户空间地址,CPU也会产生异常,阻止这种执行。

SMAP

Supervisor Mode Access Prevention

作用: 它禁止内核模式代码在没有明确许可的情况下访问用户空间内存。

实现方式: 通过控制寄存器CR4设置特定位(位21)来启用的。由于内核有时确实需要访问用户空间(例如执行 copy_to_user/copy_from_user 操作),内核在需要访问用户数据时,会暂时关闭SMAP保护。具体来说,内核会使用特殊的指令(如 stac 和 clac)来临时禁用 SMAP,访问完成后再恢复保护状态。

相关推荐
盐焗鹌鹑蛋24 分钟前
【Linux】权限
linux
小此方40 分钟前
Re:Linux系统篇(四十六)信号篇·四:一文串联操作系统底层:时钟中断、内核态切换、系统调用与 Linux 信号处理全解析
linux·驱动开发·信号处理
无人生还别怕2 小时前
如何制作一个linux标准iso镜像
linux·iso·opencloudos·openanolisos
Yana.nice10 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
DFT计算杂谈13 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
Zhang~Ling14 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind14 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森15 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
XMAIPC_Robot16 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
重生的黑客16 小时前
Linux 进程优先级、切换与调度:从孤儿进程到 O(1) 调度模型
linux·运维·服务器·进程优先级·nice