关于glibc堆保护机制的信息?

时间:2016-12-10 03:13:24

标签: c security heap glibc exploit

有没有关于glibc采取哪些措施来使基于堆的漏洞更难的信息?我听说过几个Linux发行版的安全功能列表页面上有一些像PTR_MANGLE和一些模糊的“堆一致性检查”,但是我无法找到有关这些机制如何实际实现的详细信息,如果它们是有效的,它们包含哪些漏洞类别。即使按名称搜索上述功能,我也无法找到任何glibc文档。

那么实现了哪些功能,以及它们的工作情况如何? glibc是否有任何类型的堆一致性检查机制,类似于堆栈上的堆栈粉碎保护器? PTR_MANGLE“加密”所有指针,还是仅加密它们的一部分?最重要的是,这些功能可以由最终用户打开,还是依赖于某些特定的API使用,这样我就不得不希望编写我使用的程序的人实际启用了保护机制?

1 个答案:

答案 0 :(得分:1)

PTR_MANGLE是glibc本身的内部实现,对程序使用的指针没有影响。它也不是可以即时打开/关闭或特定程序的东西。它只保护对程序不透明的内部glibc数据结构,即便如此,它只关注那些可以用来直接劫持代码流的数据结构(即vtable / function指针)。它不能用于一般数据(例如计数器)。

目前我不相信glibc正在使用保护页面,但人们正在努力。您可以尝试在上游邮件列表中搜索有关该主题的最新帖子。它长期以来一直使用保护页面作为堆栈,但更多的是用于吹制堆栈而不是堆栈金丝雀(ssp)。