论文部分内容阅读
如今,计算机软件已经成为人们生活中不可或缺的一部分了,然而,计算机软件所面临的安全问题也随之增长,漏洞就是威胁人们隐私安全的主要原因之一。同时,由于近些年来多核体系结构逐渐占领主要市场,各国对大规模并行计算的发展,产生了一种新型漏洞,即并发漏洞。不同于以往漏洞只需单线程顺序执行程序即可触发,并发漏洞需要至少两个线程并且交织执行才可触发,所以难以被传统漏洞挖掘技术发掘,如Fuzz、符号化执行等技术,更具隐蔽性,同时并发漏洞多处于操作系统内核中,一旦发生错误,会影响整个操作系统运行,因此破坏性也更高。然而目前对于并发漏洞的研究仅限于寥寥几篇顶会文章,因此对于并发漏洞的研究还需要进一步深入。本文主要针对并发漏洞的挖掘技术、防护技术进行研究。具体来讲,本文的研究工作与创新点如下:(1)并发漏洞挖掘技术。提出使用非传递函数作为目标函数应用于并发漏洞挖掘。在之前的工作中,对于并发漏洞挖掘仅使用系统定义的四个传递函数作为目标函数进行处理,而实际系统中还有大量的非传递函数是对传递函数进行了封装从而实现了类似的功能,因此同样需要对该部分函数进行处理。同时,本文提出了更加完善的模式匹配规则,相对之前的工作具有覆盖广、漏报率低、误报率低的特点;(2)并发漏洞防护技术。提出事务化内存与一致性检验相结合的并发漏洞防护技术。相对于单一事务化内存过于敏感容易误报,单一一致性检验开销较大的缺点,两者相结合的技术具有事务化内存部署简单、性能开销小的优点和一致性检验精确验证的优点;(3)并发漏洞修补技术。提出基于模式匹配的并发漏洞自动化修补技术。目前尚未有自动化的并发漏洞修补技术,所有对于并发漏洞的修补工作需要研究人员对漏洞成因进行分析,需要大量的人工成本。本文提出的基于模式匹配的并发漏洞自动化修补技术结合了本文提出的防护技术,极大的降低了对漏洞成因和修补方案分析的成本,通过模式匹配方法自动定位完成修补工作;(4)自动化并发漏洞挖掘及防护原型系统。基于以上技术实现了一套自动挖掘及防护系统,无需人工干预,极大减少了人工成本,能以自动部署的方式实际应用于代码审计和漏洞防护中。对主流开源操作系统内核进行了漏洞挖掘测试和防护测试,实验结果表明能有效检测并防护并发漏洞。