论文部分内容阅读
随着信息技术深入发展,计算机软件在国民经济和国防建设各个领域被广泛应用,在现代信息社会中发挥着至关重要的作用。尽管当前社会越来越依赖软件信息系统,但是软件质量现状并不能令人满意。软件系统常常出现错误,甚至发生失效。利用Google搜索可以获得上亿个与软件错误相关页面,由此可见软件错误普遍存在于日常生活之中,给人们生活带来诸多不便,甚至让社会遭受巨大损失。因此,保障软件系统安全可靠运行的可信软件技术成为计算机软件与理论研究的重要方向。当前,可信计算领域对可信软件研究不够,可信软件技术面临挑战:一是传统面向正确性的软件理论和工程化方法已经难以满足现代信息化社会对软件系统的可信要求,至今尚未建立被普遍认可的可信软件计算理论模型;二是当前可信软件技术主要从软件静态结构或者内部逻辑上间接分析和评估软件的可信性质,缺少动态可信性分析。保证软件运行时行为与行为规约一致性是可信软件技术研究的重要目标,软件运行时行为、软件行为规约以及它们之间的一致性分析是软件动态可信分析的重要内容。基于此,本文从可信软件的基本概念出发,围绕软件运行时行为,提出了可信软件技术研究的几个基本问题,建立了软件行为动态分析技术框架,为可信软件技术研究提供了新的技术思路。按照技术框架,本文从软件行为基础研究,软件执行获取、分析和建模,基于模型的软件行为分析三个方面开展可信软件技术研究工作。本文主要研究成果如下:(1)软件层次行为研究。本文开展了软件运行时行为基础研究,给出了软件行为相关概念、研究内容和基本研究方法,综述了大部分现有软件行为模型,讨论了几种典型的软件行为建模算法,并且介绍了基于模型的软件行为分析技术研究现状。通过分析软件行为的层次性特征,从执行的三类行为主体入手研究软件层次行为,构建执行层次视图。软件执行层次化使冗长的直线型执行轨迹结构化,将事件流轨迹转换为具有横纵向立体结构的动作序列。层次行为模型分别从三个层次行为主体的角度抽象软件执行,有限状态自动机模型刻画了行为主体的控制流行为特征,并且能方便地应用于后继软件行为分析。通过将层次行为建模转换为文法推断问题,本文采用KTail算法自动构造有限状态自动机行为模型。针对当前模型提取算法在处理循环执行时的弱点,本文提出了改进算法,降低了生成模型的冗余度,并且通过加入了噪音容忍处理,减小了缺陷轨迹对行为模型挖掘质量的影响,实现了层次行为模型提取原型工具HBMer。(2)软件异常行为自动监测技术。结合规约挖掘和软件监测,本文提出了软件异常行为监测技术,实现了运行时异常行为发现的自动化方法。作为保证软件可信性的重要手段,监测技术面临着软件行为规约获取难题,因为待监测行为规约通常由人工构造与维护,存在成本高、错误多、不适应软件演化等缺点。本文利用规约挖掘技术,基于软件执行历史自动生成行为规约,并转换为运行时行为监测器,使软件系统具备运行时异常行为监测能力。另外,规约挖掘方法可提取软件的私有行为规约,相应监测器可发现软件自身特定的运行时异常行为。该技术克服了行为规约获取难题,实现了软件异常行为监测自动化,提高了软件调试和维护的效率,是当前运行时验证技术的有效补充。(3)基于层次行为模型的缺陷定位技术依据软件系统运行机理,软件失效由错误行为造成,分析软件运行时行为是查找程序缺陷的直接方法。传统基于程序谱的缺陷定位技术依据程序实体的执行覆盖信息评价其缺陷可疑程度,在本质上与软件失效机理不相符。另外,当缺陷实体被覆盖但测试通过时,传统缺陷定位方法失效。针对以上缺陷定位缺点,本文提出了基于层次行为模型的缺陷定位技术。它将软件行为作为分析对象,利用行为信息更加丰富的层次行为模型指导程序缺陷定位。在缺陷度量计算中,综合考虑执行覆盖和模型违背两种行为信息,提高了缺陷定位精度。本文实现了缺陷定位原型工具HMFLer,并开展了多个实验分析,实验结果表明了本文方法的有效性和相对技术优势。(4)云端行为分析技术本文深入研究了云端服务行为及其挖掘和验证方法。根据服务系统特点,服务行为被划分为三个层次:服务内部行为、服务外部行为和应用工作流行为,据此提出了服务行为的建模和验证方法。另外,伪装攻击对云端用户信息安全构成极大威胁,并且识别伪装攻击非常困难。本文讨论了伪装攻击检测的技术原理,分析了用户、用户行为和软件外部行为的关联关系,提出了基于软件行为分析的伪装攻击检测技术,并且针对传统伪装攻击检测方法的缺点,利用雾计算技术引入更多更易于判定的软件行为,给出了一种结合诱饵技术的伪装攻击检测新方法。它不仅保持了基于行为分析方法对异常行为的敏感性,还有效地降低了检测误报率。本文利用软件行为动态分析方法研究可信软件技术,为软件动态可信研究提供了新的技术思路,不仅具有重要的理论价值,在技术实践上也具有一定的指导意义。