/system
当有人想以读写模式重新挂载时,我想阻止挂载系统调用。这意味着我不想允许执行以下操作:mount -o remount,rw /system
. 任何人都知道我需要在哪里查看更改内核中的代码?我试图查看/fs/namespace.c
与安装相关的一些功能在哪里,但我不太确定。
/system
当有人想以读写模式重新挂载时,我想阻止挂载系统调用。这意味着我不想允许执行以下操作:mount -o remount,rw /system
. 任何人都知道我需要在哪里查看更改内核中的代码?我试图查看/fs/namespace.c
与安装相关的一些功能在哪里,但我不太确定。
您可以使用 SELinux 或 之类的东西
seccomp
,但鉴于完全的 root 权限允许修改任何分区而无需挂载它们并做其他讨厌的事情,甚至可能加载内核模块以规避限制,这可能不是那么简单。至少你需要一个全面的规则集来阻止所有常见的漏洞。修改
mount
二进制或 C 库不是解决方案,因为直接调用系统调用相当简单,无需通过现成的二进制甚至库。SELinux 以及通常的划分和强化手段首先会使破解 root 变得更加困难,这也可能出于其他原因而有用。
另外,还有一个关于你在那个挂载点上有什么的问题?如果它仅与该系统相关,那么是否有人可以修改它是否重要?如果他们在机器上获得了完全的管理权限,他们就可以搞砸一切,留下后门,至少可能会破坏有问题的分区。如果您不希望对其进行修改,而只是想防止丢失内容,则将其放在只读存储上会更容易。并进行备份。
如果那里的文件系统被多个系统使用,它可能是通过网络安装的。在这种情况下,最好在服务器端阻止对其进行写入,因此内核是否尝试进行读写挂载都没关系,它仍然无法工作。