Linux 为什么对CONFIG\u GCC\u PLUGIN\u RANDSTRUCT种子文件的读取权限不限于特权用户?

Linux 为什么对CONFIG\u GCC\u PLUGIN\u RANDSTRUCT种子文件的读取权限不限于特权用户?,linux,module,kernel,Linux,Module,Kernel,CONFIG_GCC_PLUGIN_RANDSTRUCT启用了一个安全特性,该特性使数据结构布局随机化,从而提高攻击标准。此功能作为GCC插件实现,随机种子文件向需要构建第三方或树外内核模块的用户公开。由于普通用户可以构建内核模块,攻击者作为普通用户可以读取种子文件,从而击败这种随机化 为什么不将种子文件的读取权限限制为特权用户?当然,这意味着我们需要使用sudo/root访问来编译内核模块。但在安装内核模块需要sudo/root访问之后,我看不出有任何理由拒绝它 我自己构建内核,因为我找不到能

CONFIG_GCC_PLUGIN_RANDSTRUCT启用了一个安全特性,该特性使数据结构布局随机化,从而提高攻击标准。此功能作为GCC插件实现,随机种子文件向需要构建第三方或树外内核模块的用户公开。由于普通用户可以构建内核模块,攻击者作为普通用户可以读取种子文件,从而击败这种随机化

为什么不将种子文件的读取权限限制为特权用户?当然,这意味着我们需要使用sudo/root访问来编译内核模块。但在安装内核模块需要sudo/root访问之后,我看不出有任何理由拒绝它


我自己构建内核,因为我找不到能够启用此功能的发行版。

如果您自己构建内核,那么您就要对这些文件负责。只需根据需要限制对种子文件的访问。如果您不这样做,每个可以读取(复制)文件的人也可以在自己的计算机上构建内核模块。在预构建的内核中启用此功能是没有意义的,因为所有用户都将共享同一个公开的种子。

您认为编译内核模块会有什么风险?(由于内核源代码是免费提供的,因此不可能阻止人们编译或扩展它。)通过CONFIG_GCC_PLUGIN_RANDSTRUCT启用的安全功能。此功能使数据结构布局随机化,以提高攻击标准。此功能作为GCC插件实现。要构建第三方或树外内核模块,需要随机化种子。因此,攻击者可以利用此来击败随机化。如果将内核模块编译限制为特权用户,我们不必担心种子的暴露,因为只有特权用户才能读取。因此,问题实际上是:为什么对种子文件的读取访问(
randomize\u layout\u seed.h
)不限于特权用户?此文件应特定于您的系统,以防止攻击。您系统上的此文件来自何处?你自己编译内核了吗?请将您的问题和所有信息添加到此处,而不是在评论中回答。谢谢。我已根据建议更新了我的问题。:)你没有澄清种子文件的来源。我试图找出谁将负责保护种子文件。你自己构建内核了吗?