计算机科学>密码学与安全
标题: 重新思考错位以提高堆指针腐败的标准
摘要: 堆布局随机化使得很大一部分堆漏洞无法利用。 然而,即使在随机布局下,一些漏洞的残余仍然可以利用。 根据我们的分析,此类堆利用通常会滥用指针宽度分配粒度来喷射精心编制的指针。 为了解决这个问题,我们研究了字节粒度(最细粒度)堆随机化的效率。 一般来说,堆随机化是一个备受关注的领域; 然而,字节粒度随机化的有效性从未得到充分的研究,因为emph{不一致}引起了各种各样的关注。 本文通过从三个方面进行综合分析,揭示了字节粒度堆随机化的优缺点:(i)安全有效性,(ii)性能影响,以及(iii)兼容性分析,以衡量部署成本。 基于20个CVE案例研究的安全性讨论表明,字节粒度堆随机化提高了阻止堆利用的门槛,超出了我们最初的预期; 由于指针喷射方法在现代堆利用中越来越流行。 之后,为了消除对不对中的怀疑,我们进行了循环级微基准测试,并报告了性能成本高度集中于边缘情况,这取决于L1缓存线。 基于这些观察结果,我们设计并实现了一个适合优化字节粒度堆随机化性能成本的分配器; 然后使用内存密集型基准(SPEC2006)评估性能。 最后,我们讨论了使用Coreutils、Nginx和ChakraCore的兼容性问题。