2010, 21(2):179-193.
摘要:面向高可信软件提出了一种二进制级高危整数溢出错误的全自动测试方法(dynamic automatic integer-overflow detection and testing,简称DAIDT).该方法无需任何源码甚至是符号表支持,即可对二进制应用程序进行全面测试,并自动发现高危整数溢出错误.在理论上形式化证明了该技术对高危整数溢出错误测试与发掘的无漏报性、零误报性与错误可重现特性.为了验证该方法的有效性,实现了IntHunter原型系统.IntHunter对3个最新版本的高可信应用程序(微软公司Windows 2003和2000 Server的WINS服务、百度公司的即时通讯软件BaiDu Hi)分别进行了24小时测试,共发现了4个高危整数溢出错误.其中3个错误可导致任意代码执行,其中两个由微软安全响应中心分配漏洞编号CVE-2009-1923,CVE-2009-1924,另一个由百度公司分配漏洞编号CVE-2008-6444.
2010, 21(2):209-217.
摘要:提出一种多项式复杂度的路径敏感静态缺陷检测算法.该方法采用变量的抽象取值范围来表示属性状态条件,通过属性状态条件中的变量抽象取值范围为空来判断不可达路径.在控制流图(control flow graph,简称CFG)中的汇合节点上合并相同属性状态的状态条件,从而避免完整路径上下文分析的组合爆炸问题.该算法已应用于缺陷检测系统DTS(defect testing system).实际测试结果表明,该方法能够减少误报.
2010, 21(2):231-247.
摘要:通过分析服务组合的故障需求,给出服务组合故障处理的框架.该框架采用Petri网来解决服务组合的错误发现及其处理问题.重点讨论了可用服务失败、组件失败及网络故障的情况,并相应地给出了服务组合故障模型.在此基础上对故障处理模型进行分析,给出服务组合故障处理正确性准则,并证明了其正确性.最后,采用CTL (computational tree logic)描述相关性质并提出验证服务组合故障分析的实施算法.仿真结果表明,该方法在处理服务组合故障时具有一定的优越性.
2010, 21(2):248-260.
摘要:提出了一种应用动态描述逻辑对被诊断系统进行分析的方法.动态描述逻辑的语法和语义非常适宜刻画系统的正常行为和异常行为.给出了算法使用动态描述逻辑的可满足性检测来测试离散事件系统的可诊断性.同时,给出了故障诊断器的构造算法.该故障诊断器通过实时地观察系统的行为完成故障诊断.以例子对算法进行了说明.
2010, 21(2):261-276.
摘要:以基于服务组合的可信软件为研究对象,重点研究通过组合服务的动态演化机制保障网络化软件的可信性.首先,提出了一个合理性保持的演化操作集,避免复杂的验证过程,使得演化后的组合服务保持结构合理性;在此基础上,通过构造冗余路径的方式给出了一个面向可用性保障的组合服务演化方法;然后,针对组合服务动态演化过程中运行实例的处理,设计了一个组合服务演化中运行实例在线迁移算法,为正确实施演化提供支持;最后,设计实现了一个支持动态演化的组合服务执行引擎,并通过实验验证了所提出方法的有效性.
2010, 21(2):277-286.
摘要:针对普适环境中可靠的多媒体传输问题,提出了LD/RPath(lowest delay/reliability path)算法.LD/RPath算法通过合理的数据量近似来拟合服务节点和传输边上动态变化的数据量,引入节点分裂技术将节点时延转化为边时延,同时考虑了节点可靠性因素,并作为时延的系数.通过这样的处理,该传输问题可以转化为传统的最短路径问题来解决.实验结果表明,LD/Rpath能够达到较好的路径选择效果,且系统开销较低.
2010, 21(2):287-304.
摘要:以构件化的软件开发方法为背景,提出了一种将UML模型自动地转换为可靠性分析模型Markov链的方法.该方法基于构件化的软件体系结构,从UML的用况图、顺序图、活动图和构件图出发,对其进行扩展,在模型中标注了可靠性分析所需的信息.在此基础上,通过构造一个称为构件转移图的中间模型,将标注了可靠性信息的UML模型转换为Markov链.该方法产生的结果能够直接作为现有可靠性相关的数学分析方法的输入,从而使可靠性分析工作变得更加方便、高效.
2010, 21(2):305-317.
摘要:提出一种虚拟机构造和验证方案.给出字节码程序运行环境BVM(bytecode virtual machine)的形式化定义;采用X86机器语言构造虚拟机CertVM(certified virtual machine);并证明该虚拟机实现符合相应程序规范并和BVM之间具有模拟关系.利用辅助工具Coq给出证明,所有证明均可机器自动检查.CertVM确保在硬件环境满足其语义规范的情况下,已验证的字节码程序能够在给定虚拟机环境中正常运行.给出的方案不仅为虚拟机验证提供理论基础,而且为可信软件构造提供了一种有益的尝试.
2010, 21(2):318-333.
摘要:介绍了一种基于自动机理论的参数化LTL(parameterized LTL(linear temporal logic),简称PALTL)公式运行时预测监控器构造方法.一方面研究PALTL公式的语法、预测语义、赋值提取以及赋值绑定等重要概念,从语法层面保证公式中参数化变量的正确绑定(binding)和使用(using);另一方面给出参数化预测监控器的概念.它由静态和动态两部分组成,静态部分由参数化Büchi自动机表示,动态部分为当前状态处的变量赋值.在系统运行过程中,预测监控器基于静态部分的参数化Büchi自动机,以on-the-fly的方式在当前状态处动态地提取和绑定变量赋值,递进地验证当前程序运行是否满足指定的参数化性质规约.在该过程中,参数化监控器能够精确地识别被验证性质的最小好/坏前缀.
2010, 21(2):334-343.
摘要:为类C小语言PointerC设计的指针逻辑是Hoare逻辑的一种扩展,可用来对指针程序进行精确的指针分析,以支持指针相等关系确定的程序的安全性验证.通过增加相等关系不确定的指针类型访问路径集合,可扩展这种指针逻辑,使得扩展后的指针逻辑可以应用于有向图等指针相等关系不确定的抽象数据结构上的指针程序性质 证明.
2010, 21(2):344-358.
摘要:将现有入侵容忍、自毁技术与自律计算相结合,提出了一种基于SM-PEPA(semi-Markov performance evaluation process algebra)的关键任务系统自律可信性模型以支持形式化分析和推理.该模型具有一定程度的自管理能力,采用分级处理的方式应对各种程度的可信性威胁,满足了关键任务系统对可信性的特殊需求.在此基础上,从稳态概率角度提出了一种自律可信性度量方法.最后,结合具体实例对模型参数对自律可信性的影响进行了初步分析.实验结果表明,增大关键任务系统可信性威胁检测率和自恢复成功率,可在较大范围内提高系统的自律可信 特性.
2010, 21(2):373-387.
摘要:扩展了已有的软件可信性证据模型,引入了运行时软件可信证据,从而提供了更为全面的软件可信证据模型.为了提供客观、真实、全面的可信证据,提出了一种基于可信计算技术的软件运行时可信证据收集机制.利用可信平台模块(trusted platform module,简称TPM)提供的安全功能,结合“最新加载技术(late launch)”,在操作系统层引入了一个可信证据收集代理.此代理利用TPM,可以客观地收集目标应用程序的运行时可作为软件可信证据的信息,并保障可信证据本身的可信性.该可信证据收集机制具有良好的可扩展性,能够支持面向不同应用的信任评估模型.基于Linux Security Module,在Linux中实现了一个可信证据收集代理的原型.基于该原型,分析了一个分布式计算客户端实例的相关可信属性,并且分析了可信证据收集代理在该应用实例中的性能开销.该应用实例验证了该方案的可行性.
2010, 21(2):388-400.
摘要:为了满足开放系统的高度动态性,特别是系统在线演化对服务评估高效性提出的要求,提出了一种基于声誉的推荐者发现方法,首先引入一个相关因子量化不同上下文中的推荐信任关系,得到信任可传递空间,然后应用信任子网分割算法得到评估发起者的可信推荐者群,最后通过主体群内的信任传递与迭代计算,确定具有高声誉值的推荐信息源.初步实验结果表明,该方法有助于在保证推荐信息准确性基础上减少信息收集中的网络资源消耗,从而有效提高可信服务评估的效率.