首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有共享资源malloc攻击的VPS

问具有共享资源malloc攻击的VPS
EN

Security用户
提问于 2018-06-19 15:40:17
回答 2查看 160关注 0票数 3

如果我理解正确,那么:

  1. C函数malloc提供一个具有不确定值的内存块(取决于该内存块的前一个用户)
  2. 共享VPS主机共享资源,如RAM和CPU。

在这种情况下,我的问题是:是否有可能利用这一事实创建一个C程序,该程序将反复释放内存并记录已找到的内存值,以便嗅探其他用户的重要数据,如密码等?

如果不可能,为甚麽不可能呢?

如果有可能,我们如何才能防止这种情况发生?

编辑:在阅读了很长时间的VMware手册之后,我找到了一个:手册

第5页,第2.3节,列出项目3,第6和第7行:

为了避免虚拟机之间的信息泄漏,虚拟机管理程序在将其分配给虚拟机之前,总是将零写入主机物理内存。

我的问题至少有一个是由管理人员回答的。对于所有的虚拟机监控程序,我都无法验证它是否正确。

EN

回答 2

Security用户

回答已采纳

发布于 2018-06-19 16:40:10

C函数malloc提供一个具有不确定值的内存块(取决于该内存块的前一个用户)

对,是这样。

共享VPS主机共享资源,如RAM和CPU。

是的,它们使用的物理CPU和RAM与其他VPS相同吗?

可以利用这一事实创建一个C程序,该程序将反复释放内存并记录找到的内存值.

这很复杂。

您忘记了一个额外的层,而层创建了抽象。VPS中的V显然代表了虚拟,但是要创建虚拟的东西,我们需要技术来虚拟化。

简单地说,虚拟化将您的物理硬件划分为可以由虚拟机使用的较小的部分,这是由Hypervisor完成的,它使用公开的内核函数来公开它为VM保留的硬件。

如果不可能,为甚麽不可能呢?

如果系统管理程序中存在一个bug,以便从它为您的VPS设置的虚拟边框中转义,这是可能的。

像您的malloc()这样的简单示例以前曾被其他进程用来逃避Linux上的低特权用户帐户。

这基本上是这样的,但更复杂的是,如果您可以逃离VM,您将成为hypervisor的用户,从而可以访问托管在同一虚拟机监控程序上的其他VPS中的任何内容。

如果有可能,我们如何才能防止这种情况发生?

作为最终用户,除了密切关注诸如packetstorm和cvedetails这样的网站以监视易受攻击的服务外,没有什么可以做的。

一个愚蠢的例子是最近对CPU体系结构的攻击,这些攻击允许访问受保护的内存等。如果有人对您正在使用的VPS执行这种攻击,他们也可以访问您的VPS正在使用的RAM。

您唯一能做的就是等待修补程序并更改所有敏感信息(密码、密钥、.)后来,因为他们可能已经在记忆中,可以被合并。

票数 1
EN

Security用户

发布于 2018-06-19 20:57:55

C函数malloc提供一个具有不确定值的内存块(取决于该内存块的前一个用户)

由于我将解释的原因,仅限于以前在该程序中的使用情况。

是否有可能利用这一事实创建一个C程序,该程序将反复释放内存并记录已找到的内存值,以便嗅探其他用户的重要数据,如密码等?

不是的。

当进程从内核请求一块内存时,该内存将为空(零)。一旦一个进程接收到该内存,它就会将其拆分,并将其部分重用到单个malloc()调用中。malloc()的大多数实现都不会在使用之间对内存进行重归零,这就是您所指的“不确定值”的来源。

一个像你描述的那样工作的程序不会发现任何有趣的东西。充其量,它可能在内存中找到自己的一些数据,但它不会从其他进程或其他用户中找到数据。

票数 4
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/188050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档