基于模糊测试的车载CAN总线漏洞挖掘系统的设计与实现文献综述

 2023-03-21 04:03


基于强化学习的控制流完整性保护方案研究

本文献综述文档主要对于现有关于控制流完整性相关文献进行了整理与论述,主要从国内外研究现状,研究主要成果、发展趋势、存在的问题四个方面进行论述

一、国内外研究现状

系统安全中,基于堆、栈溢出等系统漏洞所造成的代码重用攻击对于系统安全构成了严重的威胁。代码重用攻击在劫持程序控制流后即可使被攻击程序按照攻击者的意图执行特定操作,从而绕过数据执行保护机制。基于控制流完整性(Control Flow Integrity,CFI)的防护方法是当前用来防御代码重用攻击的主流技术之一。

2005年Martiacute;n Abadi和Mihai Budiu等人第一次在《Control-flow integrity》中提出了控制流完整性(Control-FlowIntegrity, CFI)的思路,主要过程如下:程序在其执行过程中,应当遵循预先定义好的控制流图(Control Flow Graph, CFG),以确保程序控制流不被劫持或非法篡改,以防止背离程序编制时所设计的控制流转移关系。CFI在运行时检测程序的控制转移是否在控制流图中,以识别是否遭遇了攻击。这种方法在控制流转移指令前插入检验代码,来判断目标地址的合法性。

对比所有的控制流完整性保护方案,可以发现方案保护侧重点有所不同,根据保护的精准度可以分为流敏感和流不敏感、上下文敏感与上下文不敏感。流敏感算法使用程序的控制流信息来确定指针的可能值,而流不敏感算法则计算一组对所有程序输入有效的值;上下文敏感算法在分析函数时考虑上下文,防止值传播到不可行的路径,从而保证调用的上下文与其他调用上下文保持独立;上下文不敏感算法允许函数返回到所有调用者的计算集。根据跳转的保护可以分为保护前向跳转与保护后向跳转的。前向跳转为间接调用与跳转等,只提供控制流传输的前向强制的CFI解决方案已经被发现是不安全的;后向跳转为返回指令等,而强制后向传输的解决方案通常依赖于一个影子堆栈或分支记录寄存器(LBR),维持影子堆栈会导致程序开销增加10%,分支记录寄存器(LBR)则只能用于CPU的一个子集,并且存储容量有限。

这些研究对本课题具有借鉴意义,它们在广度上为本课题的实现方式和技术选型提供了参考,在深度上对本课题的功能实现,特色创新和技术路线具有借鉴意义。

二、研究主要成果

目前现有的CFI保护方案主要可以分为保护用户空间的方案与保护内核空间的方案。在不同类型的方案中也存在针对不同类型跳转的保护。以下为目前比较常见的方案的分类论述:

(1)基于用户空间的控制流完整性保护

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。