Memory utilization can be reduced by merging identical memory blocks into copy-on-write mappings. Previous work showed that this so-called memory deduplication can be exploited in local attacks to break ASLR, spy on other programs,and determine the presence of data, i.e., website images. All these attacks exploit memory deduplication across security domains, which in turn was disabled. However, within a security domain or on an isolated system with no untrusted local access, memory deduplication is still not considered a security risk and was recently re-enabled on Windows by default. In this paper, we present the first fully remote memorydeduplication attacks. Unlike previous attacks, our attacks require no local code execution. Consequently, we can disclose memory contents from a remote server merely by sending and timing HTTP/1 and HTTP/2 network requests. We demonstrate our attacks on deduplication both on Windows and Linux and attack widely used server software such as Memcached and InnoDB. Our side channel leaks up to 34.41 B/h over the internet, making it faster than comparable remote memory-disclosure channels. We showcase our remote memory-deduplication attack in three case studies: First, we show that an attacker can disclose the presence of data in memory on a server running Memcached. We show that this information disclosure channel can also be used for fingerprinting and detect the correct libc version over the internet in 166.51 s. Second, in combination with InnoDB, we present an information disclosure attack to leak MariaDB database records. Third, we demonstrate a fully remote KASLR break in less than 4 minutes allowing to derandomize the kernel image of a virtual machine over the Internet, i.e., 14 network hops away. We conclude that memory deduplication must also be considered a security risk if only applied within a single security domain.
翻译:将相同的内存区块合并成文字版地图可以降低内存的利用率。 先前的工作显示, 这种所谓的内存减少作用可以在当地攻击中被利用, 以打破 ASLR, 监视其他程序, 并确定数据的存在, 即网站图像。 所有这些攻击都利用了跨安全域的内存减少作用, 而这反过来又被禁用。 但是, 在安全域内或在没有本地访问的孤立系统中, 内存消减仍然不被视为安全风险, 最近又默认地在 Windows 上重新启用。 在本文中, 我们首次展示了完全远程的内存消减攻击。 与以往的攻击不同, 我们的内存攻击不需要本地代码执行。 因此, 我们只能通过远程服务器发送和计时 HTTP/1 和 HTTP/2 网络请求来披露内存的内存减少内存; 我们展示了在Windows 和 Linux 以及广泛使用的服务器软件, 例如Memcashed and IndnoDB。 在互联网上, 我们的侧频道只能将内存到3441 B/ h 显示一个比可比较的远程内存的内存的内存的内存系统。 我们的内存记录, 我们的内存记录显示比我们更快的内存的内存的内存的内存的内存的内存的内存的内存, 我们的内存的内存的内存的内存的内存的内存的内存的内存记录, 我们的内存的内存的内存的内存的内存记录, 我们的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存数据, 我们的内存记录, 我们的内存的内存的内存的内存的内存的内存的内存的内存的内存记录, 显示在用来在三, 我们在内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存,