论文部分内容阅读
软件行为度量技术是确保软件动态可信的重要方法。目前,软件行为度量相关的研究较多,并且大多采用“模型建立-行为监控-可信度量”的模式,针对该模式中的一点或多点进行研究成为当前软件行为度量的研究热点。但是,当前的研究存在一些问题:一是大多数研究只针对单一层次的软件行为进行建模,对复杂的软件行为无法有效获取。在对软件行为进行动态度量时,忽略了度量对系统资源的消耗,以及对软件运行的影响。二是当前软件动态度量技术针对软件某些局部敏感区域的恶意行为不能有效检测,并且对系统中敏感资源的保护有待提高。 针对上述问题,本文综合当前软件动态度量的研究成果,在此基础上,设计了一个多层次的软件行为动态度量系统,该系统以可信平台为基础,分别对软件行为动态度量中的“模型建立”和“可信度量”进行研究。引入行为轨迹属性的概念和信息论中最大熵的思想,定义并获取系统各层次的软件行为,对软件行为度量的灵活性和有效性进行扩展,本文以“建立行为模型-设计原型系统-对系统进行实验验证”的顺序展开研究,设计并实现了软件行为多层次动态度量系统。论文的研究内容和创新点如下: 1.提出一个基于行为轨迹属性的软件行为模型,解决了软件运行过程中局部敏感区域信息无法有效获取和保护的问题。通过系统调用分析技术对系统调用的功能进行分析,得到软件功能的作用域,并根据功能的作用域划分软件的行为区间,从而对软件结构重新定义。通过定义和收集软件行为区间的功能属性、执行属性、路径属性、行为属性以及系统属性对不同层次的软件行为进行收集。 2.提出一个基于最大熵原理的软件行为模型,解决了软件运行过程中行为不确定性导致的行为度量准确性和效率的问题。该模型以系统调用序列表示软件的行为,采用最大熵原理,对软件运行过程中系统调用序列出现的概率进行统计和估计。 3.提出一个软件行为动态切片方法,实现了最大熵模型建立过程中训练样例的精简。该方法根据需求,定义不同的切片规则和切片算法,对软件运行时的系统调用序列进行切片,从训练样例中去除软件运行过程中对软件可信性影响较小或无关的系统调用序列,得到精简的训练样例,能够有效减少最大熵模型的建立时间。 4.设计了一个多层次的软件行为动态度量系统,通过定义不同的度量需求,实现了对不同层次软件行为的灵活度量,相比较EMPDA模型和Dyck模型,该模型的度量效率具有一定提升,并且灵活性较高。