我目前正在使用 archlinux,例如,可以在 archlinux 安装 iso 上启动,挂载我当前的 archlinux 分区和启动分区,然后使用 arch-chroot。然后我可以访问 archlinux 系统中的 root shell,例如可以安装、卸载、更改 root 密码...
问题是:如何防止这种不需要 root 密码即可访问 root shell 的操作?
我认为这与磁盘加密有关。
假设我保护了 archlinux 分区不被 chroot,如果我需要 chroot 到它,它会如何工作?我通常只执行 mount /dev/sdax /mnt mount /dev/sday /mnt/boot arch-chroot /mnt
谢谢 !
答案1
该问题比所描述的情况更为普遍,并非特定于 chroot、archlinux 或 linux。
在一般情况下,如果攻击者可以物理访问系统,他们就可以读取/修改磁盘上存储的任何数据,无论是通过物理方式(删除磁盘并将其安装在自己的计算机上,之后可能替换它)还是通过软件(启动到自己的操作系统并读取/修改数据,不受原始问题中所述的限制)。
正如您所暗示的,针对此问题的一种可能的对策是利用加密。这可以防止没有密钥(文件、智能卡、密码等)的攻击者有意义地读取或修改数据。
遇到加密系统并且无法恢复密钥的攻击者可以读取加密数据(看起来是随机的)并写入不太可能被有意义解密的数据(相当于将随机位写入硬盘)。他们可能会通过这样做来损坏/破坏数据,但否则不应该能够安装/卸载程序或更改密码。
在完整系统加密的情况下,启动时需要解密密钥。一旦系统解锁,您就可以像往常一样进行 chroot(假设您拥有正确的权限)。
保护您的方式是,您需要密钥才能对数据进行有意义的读/写,一旦输入密钥并启动系统,操作系统的安全措施(用户身份验证、权限、ACL 等)就应该启动以控制访问。