- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
系统内核漏洞利用迁移技术
自黑客的攻击方向开始瞄向操作系统开始,内核安全性问题日益凸显岀它的重要性。攻 击兴趣的主要助推器还是因为现代操作系统内核的特性所决定。系统内核包含许多子系统模 块的实现代码,子系统之间通过复杂的接口交互;另外,系统内核还包含大量的用户数据接 入点,如系统调用、IOCTLS.文件系统及网络连接等,允许可控的用户数据?成功访问到内 核中的重要代码区,这些都是可能被黑客利用的漏洞,从而形成各种系统BUG。本文是在参 考 Patroklos 在 bh-eu-2011 上发表的文章 u Protecting the Core-Kernel Exploitation Mitigation”、 Adam 在 Phrack-67 上发表的文章 “Scraps of notes on remote stack overflow exploitation 以 及 Tarjei Mandt 在 bh-dc-2011 上发表的文章 u Kernel Pool Exploitation on Windows 7” 的基础 上并结合自己的理解分析完成的,主要分析Linux与Windows系统上可能存在的各种漏洞利 用及其迁移保护技术。
内核内存污染漏洞
NULL指针解引用是最常见的漏洞之一。在内核代码中NULL值常在变量初始化、设 置为缺省值或者作为一个错误返回值时使用。在系统中,虚拟地址空间分为两个部分,分别 称为内核空间和用户进程空间,当内核尝试解引用一个NULL指针时,若用户又允许映射 NULL地址(如首个页面包含0地址),则可直接或间接控制内核代码路径。(注:NULL指 针引用BUG主要是因进程在执行指针解引用时,没有检查其合法性造成的,若待解引用的 地址为NULL,则在内核态访问NULL指针时会引发Oops,此时若黑客在用户态将NULL 地址设置为可执行并注入恶意代码,则内核代码将会执行NULL地址的恶意指令。
系统内核中另一个利用最为频繁的漏洞即缓冲区溢出。内核通常使用两种类型的栈结 构:内核态堆栈和用户态堆栈。在内核内存分配中,通过邻居堆对象污染或者破坏内存分配 中的元数据实现内存溢出。内存污染漏洞的bugs实现技术己经在很多公开文献中出现过, 这里我们只做简要分析,如用户输入验证不足依旧是内存污染的主耍漏洞之一,可采用传统 的边界检查或用户数组索引(边界)控制等防止漏洞产生;有符号Bugs也可产生内核漏洞, 如:
int func ( size_t user_size){
int size = user_size;
i f (size MAX.SIZE) {
/* do some operation with size considered safe */
}
}
若无符号变量user_size值大于231 - 1,则有符号变量size的值将变为负数,此时if语 句恒为true.尽管Fl前这种有符号bugs并不常见,但在特定的系统内核中还是可以找到。 数字运算时可能产生整数溢出,如乘法运算可能导致内核分配比实际所需内存小的内存块。 当前大多数处理器都是SMP结构,故内核中共享的资源需要慎重使用,避免资源在使用有 效期内发送状态的改变。
用户级内存污染迁移
大量传统的用户级漏洞利用方法己经被系统中的各种防范措施堵死。栈canaries可能是 最著名的漏洞迁移技术,用来保护栈内的元数据信息,这些栈元素(如保存的返回地址、栈 桢指针)因程序bugs可能被污染,如栈缓冲区溢出可能导致安全漏洞;一个类似的保护技 术是堆canaries的使用,有效探测堆内元数据是否被覆写;另一个堆迁移技术是目的地址验 证,即验证链表中待卸载元素从链表中拆除之前节点指针值,女山
BOOLEAN RemoveEntryList (IN PLIST.ENTRY Entry) {
PLIST_ENTRY Blink,Flink;
Flink = Entry-Flink;
Blink = Entry-Blink;
if (Flink-Blink != Entry) KeBugCheckEx(...);
if (Blink-Flink != Entry) KeBugCheckEx(...);
return (BOOLEAN) (Blink-Flink == Flink-Blink);
〃即验证双端队列中的ft!等式:Entiy-Flink-Blink == Entiy-Blink-Flink == Entry; }
地址空间随机化(ASLR)是针对缓冲区溢岀的漏洞利用迁移技术,通过对栈、共享库映 射等线性区布局的随机化,防止攻击者定位攻击代码位置,达到阻止溢出攻击的目的。不同 的系统会在不同区域使用ASLR,如用户级栈地址通常在应用程序实例化时随机
您可能关注的文档
最近下载
- 汉英翻技巧译第一讲词类转译法.ppt VIP
- 基于跨学科融合的课程资源开发与利用实践研究.pptx VIP
- DB11_T 1834-2021城市道路工程施工技术规程.docx VIP
- 押车借款合同范本3篇 借款抵押车合同范本 .pdf VIP
- 2024-2025学年天津市西青区高一上学期11月期中考试数学检测试题(含解析).docx VIP
- 2A Chapter 3 People who help me 课件(新思维小学英语).pptx VIP
- 矿井建井地质报告.doc VIP
- 医院门诊服务优化与创新体系构建ppt课件.pptx
- 基于课程标准的跨学科主题学习:内涵阐释与实施要点.docx VIP
- MES智能制造实施技术方案及项目推进计划.pptx VIP
原创力文档


文档评论(0)