论文部分内容阅读
随着软件在人们日常生活中的作用越来越重要,软件安全与否将直接影响到人们的生活。软件的安全不仅影响着系统的稳定运行,安全的破坏还会造成数以万计的经济损失,从而产生不良的社会影响。然而,现有的对软件安全的保护机制,不是需要大量的特殊硬件支持,从而不能应用在现实生活中;就是需要大量的修改软件的二进制代码;或者需要软件的源代码,进行重新编译,使得人们不愿意去使用。更进一步,对于现今新提出并广泛使用的重用代码类型攻击,现有的软件安全保护机制不能很好的保护软件的安全。这篇论文提出了一种全新的方法来保护软件的安全性,即使用性能计数器来检测,防御并分析攻击。运用此方法进行软件的保护主要基于一个关键的事实:当程序在正常状态下和被攻击状态下运行时,其性能计数器上的表现将会有很大的区别,并且这些区别可以被精确的捕捉到。基于以上提到的事实,此论文设计并实现了一个系统,我们称之为Eunomia,这个系统是目前现实系统中唯一的可以不需要对二进制代码进行修改,不需要源代码重新编译,也不需要特殊硬件修改的能检测重用代码类型攻击的系统。此系统不但能针对重用代码类型攻击进行检测,对于广泛使用并且广泛研究过的注入代码类攻击和返回函数栈类攻击也有很好的检测,防御能力。同时,在最新的跳转跟踪机制(Branch Trace Store)支持下,此系统可以记录程序被攻击时的不正常跳转,从而帮助程序员分析程序可能的漏洞。在我们用现实系统中的攻击进行的安全检测能力评测中,Eunomia系统表现出了良好的攻击检测能力,能以较小的误报率高效的检测到攻击。在性能评测中,Eunomia系统只产生了平均4.72%的性能开销,从最小的0.09%到最大的10.49%。通过这两项评测,我们可以看到,Eunomia系统可以被广泛的应用到软件的日常工作中,保护软件的安全。