值得一提的是,即使你禁用/dev/mem
和/dev/kmem
内存仍然可以倾倒; 看看man proc
揭示/proc/kcore
; 它是系统的物理内存。一个非常好的取证工具包rekall已经有一个工具可以完成这个工作 ; 它转储内存(和/boot
文件)以便可以对其进行分析。
实际上,Ubuntu默认禁用/dev/kmem
:
/dev/kmem
除了攻击者使用它来加载内核rootkit之外,没有其他现代用途。CONFIG_DEVKMEM
设置为“ n”。尽管/dev/kmem
设备节点通过Ubuntu 9.04在Ubuntu 8.04 LTS中仍然存在,但实际上并没有附加到内核中的任何节点上。
Ubuntu不会/dev/mem
因为应用程序需要而禁用它。
某些应用程序(Xorg)需要直接从用户空间访问物理内存。/dev/mem
存在特殊文件以提供此访问。过去,如果攻击者具有root用户访问权限,则可以从该文件查看和更改内核内存。该CONFIG_STRICT_DEVMEM
内核选项被介绍给阻断非设备存储器存取(原名CONFIG_NONPROMISC_DEVMEM
)。
如何禁用/proc/kcore
?
CONFIG_PROC_KCORE
构建内核时不要启用。
您如何禁用/dev/mem
?
好吧,查看一下可以man mem
为我们提供有关其创建方式的详细信息:
mknod -m 660 /dev/mem c 1 1
chown root:kmem /dev/mem
你应该能够公正rm -rf /dev/mem
; 您可以在内核构建阶段通过不启用来禁用CONFIG_STRICT_DEVMEM
。
如何禁用/dev/kmem
?
确保CONFIG_DEVKMEM
在内核构建时未启用该功能。
如何防止冷启动攻击?
如果我能够禁用/proc/kcore
,/dev/mem
,/dev/kmem
然后用于加密交换分区或根本没有使用掉呢?好吧,您的内存可能只是被冻结并以这种方式访问。您如何防止这种攻击?您对RAM进行加密;您如何加密RAM?你不能 有关详细信息,请参见TRESOR。
/dev/mem
。不确定是否仍然有意义。