安全性是软件质量指标体系的重要组成部分,对于分布、协同式运行的Web服务系统来讲则尤为突出,而脆弱性分析是确保此特性的有效手段。本课题将在分析SOAP消息协议格式及安全控制策略的基础上,提出服务消息的变异模型,并结合最坏差异输入、安全规则违背、多路变异组合等策略来实现单个服务的脆弱性测试。在系统级别,将Web服务软件视作一个复杂网络系统,以消息数据扰动、异常消息输出等三种常见的脆弱性故障为例,拟建立故障传播的计算模型并运用动力学分析技术定位系统的安全脆弱点。针对Web服务系统的动态适配性,采用Agent技术模拟整个系统的协同执行网络,重点关注服务单元的动态替换行为。在此基础上,考虑服务响应迟缓、服务无法工作两类代表性的失效方式,量化评估脆弱性服务模块所引起的安全风险。本课题的研究将为Web服务系统安全性保证提供新的方法和思路,且有利于进一步阐明脆弱性故障的传播机理,具有积极的学术意义。
vulnerability testing;test cases generation;search algorithms;simulation-based evaluation;QoS prediction
随着面向服务开发范型的广泛普及与应用,通过Web服务构建而成的系统在整个软件领域所占的比重越来越大。然而,由于该类系统是通过聚合分布在互联网上的服务单元而形成的,一方面各服务单元在质量和构造上存在较大差异,另一方面互联网是一个动态多变、低度耦合的环境。因此,如何确保Web服务系统的可信性便成为一个极具挑战性的问题。 本课题紧紧围绕Web服务系统脆弱性分析和度量开展研究工作,完成的研究工作主要有(1)在分析SOAP消息协议格式及安全控制策略的基础上,提出服务消息的变异模型。在此模型的基础上,从消息机密性、完整性和身份认证等角度定义了不同类型的安全规则变异算子,并给出了基于安全规则变异的测试用例生成算法。同时,摆脱一次仅植入一个变异体的局限,分析同时植入多个变异体的测试效果。(2)为了保证整个Web服务系统的可信性,除了对服务之间的通信开展测试外,还需要以最大的可能保证服务单元的可靠性。为此,我们深入研究了运用元启发式搜索算法来生成高覆盖能力测试用例集的算法。针对粒子群优化、和声搜索和蚁群优化等多种算法开展了研究,并就生成的测试用例集覆盖能力等和传统的遗传算法开展了较为详尽的对比分析。(3)通过从BPEL、OWL-S等文件中提取服务组合逻辑,同时核定每个服务单元的脆弱性以及出现脆弱性故障的类型。在此基础上,通过在测试环境中模拟运行的手段来预测整个系统的脆弱性,以及触发系统崩溃的脆弱点。(4)针对部分服务单元可信性指标难以获取的问题,综合运用基于Pearson相关系数和Slope One两种协同过滤技术提出一种混合式的预测算法SASO,用以预测特定用户所缺失的Web服务质量观测记录。为了进一步提升预测精度,还运用统计过程控制来抹平异常数据点的干扰。 总之,本课题通过Web服务软件的脆弱性分析和测试方法开展研究,就测试用例生成、脆弱性度量和服务质量预测等具体问题提出了一些对应的算法和解决方案。这些方法将进一步丰富Web服务系统可信性保证的途径,并为实际应用提供有益借鉴。