我注意到 Linux 上的 Firefox 和 Chromium 浏览器都可以打开文件/proc/self/mem
进行阅读。据我所知,我系统上没有其他程序读取这个文件。
/proc/self/mem
臭名昭著的是无休止的特权升级漏洞,通常内存被恶意代码覆盖,程序执行被劫持。
这更令人难过,因为浏览器是最暴露的程序,具有最多的攻击面,因为它们从互联网接收不受信任的输入。
有正当理由,为什么现代浏览器需要阅读/proc/self/mem
?
我注意到 Linux 上的 Firefox 和 Chromium 浏览器都可以打开文件/proc/self/mem
进行阅读。据我所知,我系统上没有其他程序读取这个文件。
/proc/self/mem
臭名昭著的是无休止的特权升级漏洞,通常内存被恶意代码覆盖,程序执行被劫持。
这更令人难过,因为浏览器是最暴露的程序,具有最多的攻击面,因为它们从互联网接收不受信任的输入。
有正当理由,为什么现代浏览器需要阅读/proc/self/mem
?
Firefox 和 Chromium 等浏览器使用多个进程,主要是为了减少它们的攻击面。这种拆分成多个进程的一个方面是错误处理:如果在给定进程中发生严重错误,最好在另一个进程中处理它(因为崩溃的进程可能不处于允许其分析自身的兼容状态,并且以避免拥有崩溃的进程)。
因此浏览器保持句柄打开,
/proc/self/mem
以便它们可以传递这些句柄,允许崩溃处理进程读取崩溃进程的内存,或分析进程读取正在分析的进程的内存。这特别用于堆栈展开;有关详细信息,请参阅Perfetto 文档(这是 Chromium 中使用的展开器)。