【发布时间】:2020-08-09 22:50:31
【问题描述】:
我想知道Linux内核在执行copy_from_user()函数时如何禁用x86 SMAP。我试图在源代码中找到一些东西,但我失败了。
Supervisor Mode Access Prevention (SMAP) 是 x86 CPU 的一项安全功能,可防止内核访问意外的用户空间内存,有助于抵御各种攻击。
【问题讨论】:
-
如果您能告诉我相关代码,我将不胜感激
-
能否请您扩展“SMAP”的首字母缩写词?
-
管理模式访问保护 (SMAP) 是 Intel CPU 的一项安全功能,可防止内核访问意外的用户空间内存,进而帮助抵御各种攻击。
-
copy_from_user 函数将数据从用户空间复制到内核空间,但在 SMAP 保护下,在内核空间访问用户空间内存是非法的。所以当真正复制数据的时候,内核会暂时关闭SMAP保护,这样就可以从用户空间传输数据,当传输完成后,SMAP保护会再次开启。
标签: security linux-kernel x86 operating-system kernel