当前位置:主页 > 科技论文 > 软件论文 >

系统软件交界面缺陷检测技术研究

发布时间:2020-11-03 16:51
   分层理论是计算机发展的基础,而层级间交互的部分通常是系统的薄弱环节,容易存在安全缺陷。本文基于计算机系统的分层现状,提出系统交界面的概念,并进一步抽象出了线程间的并行交界面,内核与用户间的权限交界面,以及操作系统与外围设备间的硬件交界面。针对系统交界面的安全性问题,本文具体对并行交界面中的原子性违例缺陷、权限交界面中的double fetch缺陷、以及硬件交界面中的硬件double fetch缺陷展开下列研究。(1)基于预测的高效原子性违例缺陷检测。线程间的原子性违例缺陷是最常见的一类并发缺陷。线程调度引入的不确定性使得同一原子性违例缺陷可能对应多个能够触发该缺陷的线程交织,因此难检测、难复现、难修复。本文提出了一种基于预测技术的高效检测和复现方法,基于所提形式化定义和候选交织理论,该方法能够暴露同一原子性违例缺陷的所有可能缺陷交织,从而帮助开发者彻底的修复缺陷。本文还实现了原型工具AVPredictor,实验评测证明,AVPredictor能够有效检测到测试用例中所有的已知缺陷以及一个未知缺陷。AVPredictor的运行时间开销适度(监控器为18x,线程控制器为31x),低于同类工作(AVIO,Maple等)。AVPredictor所采用的分组策略可以避免最多66.7%的无效执行。AVPredictor相比于现有工作Maple,效率平均提高了5.8x。(2)基于多污点并行追踪的double fetch缺陷检测。针对内核与用户空间之间的double fetch缺陷,本文提出了一种基于多污点并行追踪的检测方法。该方法首次将污点追踪技术应用到double fetch缺陷检测上。所提方法结合了double fetch缺陷特点,将访存顺序的时间维度映射到了污点传播的空间维度上,避免了线程调度对符号化执行中状态空间爆炸的加剧。本文基于所提方法实现了一个原型工具DFTracker。DFTracker具有路径覆盖率高、时间开销低等优点。实验评测证明,DFTracker能有效检测出测试集中的double fetch缺陷,没有漏报,只有少量误报,单文件测试的时间开销为2x左右。将DFTracker应用到Linux内核3.18分析,其发现了一个新的double fetch缺陷,全路径覆盖分析完整内核的时间开销为9x。(3)基于静态模式匹配的double fetch缺陷检测。针对驱动程序中缺陷的动态检测需要特定硬件支持、且路径覆盖率低的问题,本文提出了一种基于模式匹配的静态方法来检测double fetch缺陷。该方法能够在一次执行中覆盖完整Linux内核(包括所有驱动程序)。将所提方法应用到Linux,FreeBSD及Android,共发掘6个未知double fetch漏洞。此外,本文还抽象了三种double fetch情况容易发生的典型场景,基于CVE-2016-6516实现了double fetch漏洞利用的PoC,并提出了double fetch缺陷的预防策略。目前,所有发现的漏洞已经汇报给内核开发者团队并得到确认和修复。所提方法已经被Coccinelle团队采用并被集成到Linux内核补丁的审计中。(4)针对I/O内存中硬件double fetch缺陷的研究。操作系统通过读写映射到I/O内存中的设备寄存器和设备内存来控制外围设备。由于缺乏有效的验证机制,恶意硬件可能在两次操作系统读取之间篡改数据,对操作系统造成破坏。本文首次提出并定义了操作系统和外围设备之间存在的硬件double fetch缺陷,并基于静态模式匹配的方法从Linux内核中识别到361个硬件double fetch情况。然后根据I/O内存特性对匹配到的硬件double fetch情况进行分类,并分析了每一类引发缺陷的可能。最终从中发现了4个未知硬件double fetch漏洞,目前已被内核开发团队确认并修复。本工作将double fetch问题的范围扩展到操作系统与外围设备之间,为double fetch问题的研究开辟了新的视角。
【学位单位】:国防科技大学
【学位级别】:博士
【学位年份】:2018
【中图分类】:TP311.53
【文章目录】:
摘要
ABSTRACT
术语和符号使用说明
第一章 绪论
    1.1 研究背景
        1.1.1 并发缺陷
        1.1.2 隔离缺陷
        1.1.3 驱动缺陷
    1.2 研究重点
        1.2.1 系统交界面的定义
        1.2.2 并行交界面中的原子性违例缺陷研究
        1.2.3 权限交界面中的double fetch缺陷研究
        1.2.4 硬件交界面中的硬件double fetch缺陷研究
    1.3 研究贡献
    1.4 文章结构
第二章 相关研究介绍
    2.1 研究方法介绍
    2.2 相关技术介绍
        2.2.1 符号化执行技术
        2.2.2 模糊测试技术
    2.3 相关工作介绍
        2.3.1 原子性违例缺陷研究
        2.3.2 竞争研究
        2.3.3 Double fetch缺陷研究
第三章 基于预测的高效原子性违例缺陷检测
    3.1 原子性违例缺陷介绍
    3.2 候选交织介绍
    3.3 原子性违例的形式化定义
    3.4 基于预测的原子性违例缺陷检测
        3.4.1 方法介绍
        3.4.2 候选交织的识别技术
        3.4.3 不可转换交织的剔除技术
        3.4.4 待测候选交织的分组技术
        3.4.5 线程调度的动态控制技术
    3.5 原型工具AVPredictor的实现
    3.6 实验评价
        3.6.1 有效性测试
        3.6.2 运行时开销测试
        3.6.3 对比分析
    3.7 讨论
        3.7.1 优势
        3.7.2 不足
    3.8 本章小结
第四章 基于多污点并行追踪的double fetch缺陷检测
    4.1 Double fetch缺陷模式抽象
        4.1.1 案例分析
        4.1.2 模式总结
    4.2 多污点并行追踪检测方法设计
    4.3 原型工具DFTracker的实现
        4.3.1 Clang Static Analyzer介绍
        4.3.2 DFTracker结构及模块功能介绍
        4.3.3 优化措施介绍
    4.4 DFTracker性能评价
        4.4.1 有效性测试
        4.4.2 效率测试
        4.4.3 实用性分析
        4.4.4 工作对比
        4.4.5 局限性分析
    4.5 讨论
    4.6 本章小结
第五章 基于静态模式匹配的double fetch缺陷检测
    5.1 Coccinelle模式匹配引擎介绍
    5.2 基于Coccinelle引擎的静态模式匹配分析方法
        5.2.1 基本double fetch情况识别
        5.2.2 Double fetch情况场景分类
        5.2.3 精确double fetch缺陷检测
    5.3 实验与分析
        5.3.1 基本double fetch情况识别结果分析
        5.3.2 精确double fetch缺陷检测结果分析
        5.3.3 工作对比评价
        5.3.4 发掘的缺陷和漏洞
        5.3.5 Double fetch缺陷相关总结
        5.3.6 未来工作
    5.4 Double fetch漏洞利用技术分析
        5.4.1 CVE-2016-6516 介绍
        5.4.2 插桩内核
        5.4.3 编译安装新内核
        5.4.4 构造PoC
        5.4.5 运行结果分析
        5.4.6 漏洞利用小结
    5.5 Double fetch缺陷预防策略总结
    5.6 本章小结
第六章 针对I/O内存中的硬件double fetch问题研究
    6.1 硬件double fetch相关背景介绍
        6.1.1 内存映射I/O和端口映射I/O介绍
        6.1.2 驱动在I/O映射中的作用介绍
        6.1.3 硬件double fetch缺陷介绍
    6.2 硬件double fetch缺陷的静态模式匹配分析
        6.2.1 方法介绍
        6.2.2 方法实现
        6.2.3 实验结果
    6.3 硬件double fetch缺陷实例分析
        6.3.1 状态寄存器
        6.3.2 配置/控制寄存器
        6.3.3 数据寄存器
        6.3.4 设备内存
    6.4 讨论
        6.4.1 研究发现
        6.4.2 利用分析
        6.4.3 防范策略
        6.4.4 未来工作
    6.5 本章小结
第七章 总结与展望
    7.1 工作总结
    7.2 未来展望
致谢
参考文献
作者在学期间取得的学术成果

【相似文献】

相关期刊论文 前10条

1 吴恒山,薛慧,朱虹;多级安全数据库系统中多级事务原子性的研究[J];计算机工程与应用;2002年10期

2 李潇;刘剑;易秋萍;;一种并发程序原子性错误的检测方法及工具[J];计算机应用与软件;2012年11期

3 余建军;;非原子性异常处理的静态分析[J];计算机应用与软件;2006年05期

4 王云飞;刘剑;马越;;基于锁信息的多线程软件原子性错误检测方法[J];计算机应用与软件;2014年06期

5 黄少寅,高传善;合同原子性及ACAP协议的实现[J];计算机研究与发展;2004年04期

6 阳富民,吴学锋,胡贯荣;一种小额支付协议的研究与设计[J];华中科技大学学报(自然科学版);2003年02期

7 甘早斌;肖仕成;李开;肖国强;;基于四方的安全电子商务支付协议研究[J];计算机科学;2011年10期

8 吴博;洪帆;杨木祥;;基于电子钱包的乐观公平交易协议[J];计算机工程与科学;2007年08期

9 李金友,张永亮;如何利用事务处理保证数据的一致性[J];通化师范学院学报;2005年02期

10 周晨叶;史小宏;;基于移动组的全序可靠多播通信[J];舰船电子工程;2008年02期


相关博士学位论文 前1条

1 王鹏飞;系统软件交界面缺陷检测技术研究[D];国防科技大学;2018年


相关硕士学位论文 前7条

1 王德智;基于AJAX的Web应用原子性违反检测及定位[D];南京大学;2017年

2 李文全;基于符号模型检验的电子商务协议原子性的研究与实现[D];东北大学;2005年

3 胡敏;对涉及到多变量的原子性违例错误的动态检测[D];上海交通大学;2012年

4 吴学光;多级中断环境下航天C程序中的数据竞争和原子性问题研究[D];国防科学技术大学;2011年

5 张恺悌;基于SET协议的网络电子支付系统的研究[D];西安工业大学;2013年

6 秦靖辉;安全电子商务SET协议的研究与改进[D];广东工业大学;2016年

7 陈军;基于ECC和限制性盲签名的移动电子现金协议[D];燕山大学;2007年



本文编号:2868837

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2868837.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户b7d12***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com