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,访问完成后再恢复保护状态。

相关推荐
C_心欲无痕12 小时前
ts - tsconfig.json配置讲解
linux·前端·ubuntu·typescript·json
冰西瓜60012 小时前
国科大2025操作系统高级教程期末回忆版
linux
HIT_Weston13 小时前
93、【Ubuntu】【Hugo】搭建私人博客:面包屑(一)
linux·运维·ubuntu
cuijiecheng201813 小时前
Linux下Beyond Compare过期
linux·运维·服务器
HIT_Weston13 小时前
92、【Ubuntu】【Hugo】搭建私人博客:侧边导航栏(六)
linux·运维·ubuntu
CodeAllen嵌入式13 小时前
Windows 11 本地安装 WSL 支持 Ubuntu 24.04 完整指南
linux·运维·ubuntu
码农小韩15 小时前
基于Linux的C++学习——指针
linux·开发语言·c++·学习·算法
wdfk_prog15 小时前
[Linux]学习笔记系列 -- [fs]seq_file
linux·笔记·学习
Jay Chou why did16 小时前
wsl安装完无法进入wsl
linux
石头53017 小时前
Rocky Linux 9.6 docker k8s v1.23.17 kubeadm 高可用部署文档
linux