论文部分内容阅读
随着信息技术和信息产业的高速发展,危害信息安全的事件层出不穷,如信息战、敌对势力的渗透、各种恶意软件、黑客入侵、系统安全隐患等。因此,保障信息安全事关国家安全、社会稳定和经济发展。入侵检测技术是保护信息网络安全的重要手段之一,其中基于主机的入侵检测系统针对重点主机实施保护,具有较高的检测效率和检测精度。但早期的主机入侵检测系统主要是分析用户级别的系统日志,很少分析系统级的软件行为。而软件作为应用程序的载体以及互联网服务平台的灵魂,才是恶意攻击的真正主体。因此只有深度分析软件行为并建立完备的软件行为模型,才能弥补现有主机入侵检测系统的不足,为软件的实时安全性分析提供理论、技术的支持。目前软件行为建模分析以及根据行为模型检测异常研究有三个问题值得探讨。第一是软件数量数不胜数,且更新速度快,因此不可能穷举分析所有软件的行为,以至于入侵检测系统的漏报率升高。第二是软件行为的表现形式也是多种多样的,在不同层次表现出不同的行为,那么选择哪个层次的何种行为有利于提高软件行为模型的完备性值得深究。第三是软件行为分析的方法和建模的方法也是多样的,需要研究选择何种方法能有效提高行为建模的精度和时间性能。针对上述三个问题,本文提出了将软件按安全属性归类到黑名单、白名单和灰名单并寻找它们的同源程序,然后针对软件不同属性而采用分层建模分析和分层检测的方法。具体来说,在软件行为分析时:首先采用静态分析方法抽取黑名单、白名单和灰名单软件调用图的结构指纹,并根据结构指纹和分类技术将软件名单分为不同的同源程序类;然后采用污点跟踪方法分析白名单和灰名单的同源程序类的动态行为并构造出正常行为模型。在实时入侵检测时:先采用误用检测法即结构指纹匹配来快速检测出黑名单软件,以及函数调用序列发生异常的白名单和灰名单软件;接着采用行为模型与实际的进程行为比对来检测针对白名单和灰名单软件的隐秘攻击。概括起来,本文主要取得以下成果:1.本文提出了软件结构指纹的概念和获取软件结构指纹的方法。借助图形图像技术和矩阵理论分析软件调用图获取结构指纹的方法在时间性能方面要优于与传统的获取指纹的方法如子图同构、指令序列比对等。根据快速得到的结构指纹和BSVM分类技术,本文将已收集的黑名单、白名单和灰名单软件分成不同的同源程序类,并计算该类程序的最大结构指纹距离,然后从知名软件库寻找新的同源程序来扩充软件名单,为误用检测和行为建模提供详实的软件名单,有效解决软件数量和入侵检测时间复杂度的问题。2.本文提出了将污点跟踪技术用于分析白名单和灰名单软件系统调用参数的方法。将污点跟踪技术用于分析白名单和灰名单软件的系统调用参数,能够捕获到软件更多的底层行为,譬如参数间的污点传播关系,参数与局部重要变量之间的关联等,这些底层行为可以用于构造完备性更高的行为模型。3.本文提出了一套基于结构指纹和污点跟踪来实现软件行为建模和分层检测的技术架构和原型系统SFTA。本文给出了完整的关于结构指纹、系统调用参数污点传播、以及软件行为模型的定义,并提出了行为模型的构造算法和异常检测算法,以及实现分层检测的技术流程。本论文的原型系统SFTA所构造的软件行为模型具有很强的抗攻击能力,误报率和漏报率均比较低。综上所述,本文初步建立了基于结构指纹和污点跟踪的软件行为建模的体系,为确保计算机软件的实时性安全提供了理论和技术基础。本文的研究具有重要的理论意义和应用价值。