有user1和user2。所有工作都是在user1下完成的。创建user2只是为了存储重要信息。
如果重要信息存储在内存中,而是存储在user1会话中,那么攻击者更容易访问哪些信息: user1下的RAM还是user2的主文件夹?
这里的威胁模型是什么?
假设攻击者获得了用户1‘S帐户的访问权限,并且可以执行任何代码,就像user1一样。如果攻击者获得了根权限,显然攻击者可以轻松地访问内存和user2。
攻击者能以用户1‘S的权限运行任意代码吗?
假设user1使用了一个易受攻击或受感染的程序
用户2‘S主目录的权限是多少?
User2文件夹(根目录: user2 2730)、文件和文件夹只有user2才能访问
幽灵一样的侧通道攻击在范围内吗?
该设备很容易受到这些攻击,所有的希望都在操作系统上。
发布于 2022-05-15 23:25:11
如果攻击者能够在user1上运行任意代码,他将能够相当容易地访问在同一用户下运行的进程的内存。这是由于Linux中的用户分离设计:单个用户之间相互保护,但在同一用户下运行的进程之间提供的保护很少或根本不提供。换句话说,Linux提供了很强的用户间隔离,但是用户内部隔离能力很弱。攻击者必须打破用户内部隔离,以绕过DAC (自主访问控制)并访问user2的主文件夹。这将需要获取根或类似的东西,例如CAP_DAC_OVERRIDE in capabilities(7)。这更难。
运行为user1的攻击者可以使用ptrace(2)连接到user1下的另一个进程,并读取或修改其内存内容。或者,攻击者可以使用process_vm_readv(2)来做同样的事情。虽然可以通过使用限制某些类型的直接内存访问的Yama LSM来减轻特定的向量,但还有许多其他技术可能危及user1进程,例如导出LD_PRELOAD (参见ld.so(8)),使目标进程在下一次启动时加载攻击者控制的库。
请注意,理论上可以保护在同一用户下运行的两个进程彼此之间的相互保护,但这并不简单,需要对Linux系统体系结构有很强的了解。可以使用各种Linux沙箱技术和强制访问控制系统来实现细粒度隔离策略。例如,用seccomp(2)实现的强白名单可以限制目标进程可以使用的系统,这可以防止它执行可能用于危害另一个进程的操作,即使它是在同一个用户下运行的。
https://security.stackexchange.com/questions/261989
复制相似问题