正在加载图片...
中国科学:信息科学第50卷第11期 准确,可能影响系统验证的正确性.对此,我们改进了VERSA技术22,基于构造反例的预估概率和实 际发生概率的偏差,识别非确定模型中的不准确性,并以最小化偏差为导向系统化地校准非确定模型 并将其归结为一个基于搜索的软件工程问题予以解决.实验表明,VESA可大幅提升非确定环境模 型的准确度(绝对值提升30.9%,相对值提升120.3%),进一步推进了自适应系统的缺陷验证水平,支 撑了可成长软件的过程演进质量, 4.2.3软件演化质量评估方法和保障机制 这方面研究要解决软件适应与演化质量保障方法和工具集等问题.前述的环境感知和软件演化技 术也蕴含针对可成长软件适应与演化质量的评估方法和保障机制,覆盖了对环境上下文一致性错误的 检测效率,动态软件更新的一致性和停顿时间等方面的考虑.与此同时,可成长软件的适应与演化也需 要关注其他侧面的质量保障工具集,比如考虑如何触发并发缺陷、诊断能耗异常、检测恶意打包、合 成正则攻击、检验场景适配、发现服务泄露,以及测试深度学习等各个方面,这些侧面也都蕴含重要的 质量保障技术.下面我们介绍其中两项工作 可成长软件的思想直接适用于服务类软件系统,因为可以支撑以提供长久有效的服务.然而,现 代服务类软件通常采用正则表达式处理用户输入的字符串信息,而设计有误的正则表达式可引发指数 级的匹配复杂度,进而导致拒绝服务式的攻击.那么,如何判断服务类软件的一个新版本是否修复了 这样的问题?我们提出了ReScue技术23)进行分析,它解决了输入的长前缀和攻击串之间特征不匹 配的问题,以及检测时间有限和串演化缓慢之间的矛盾,利用三阶段灰盒分析自动产生针对给定正则 表达式的攻击字符串.实验表明,ReScue可提升攻击字符串生成率49%,并实际检测到真实服务类软 件中前所未知的多个正则表达式攻击缺陷,有效提升了服务类软件的安全性.这项工作也获得了ASE 2018 ACM SIGSOFT杰出论文奖, 此外,采用机器学习模块参与可成长软件决策行为的趋势在逐步增强,而机器学习模块往往基于 深度神经网络DNN搭建,如何保障DNN的可靠性?测试这类软件通常借用测试常规软件中的结构 化覆盖率标准,以方便评估测试的充分性.然而,我们发现这类标准可能具有误导性,因为DNN软件 和常规软件有着本质区别.我们的初步调研24发现:(1)结构化覆盖率标准对发现DNN软件的恶意 输入可能太粗粒度了(容易满足其标准却不能实质性提升检错能力),而对于发现误判的正常输入则可 能太细粒度了(很难满足其标准,即很难发现真实缺陷);(②)己有的DNN软件测试显得覆盖率高,很 可能是因为其基于面向恶意输入的搜索,而要达成找到很多恶意输入的效果(显得检错能力高),实际 是很容易做到的(无关真实的覆盖率).基于该调研,我们把DNN软件输入界定为预期输入和非预期 输入两类,而需要着重保障可靠性的是预期输入.对此,我们提出了基于容错思想的DISSECTOR技 术2),自动识别并隔离超出原模型处理能力的未预期输入,以保证原应用仍能保持所期望的可靠性 实验表明,DISSECTOR能对DNN模型自动适应,并对超大数据应用场景非常高效(高至O.99的有 效性,可提升模型准确度16%~20%,以及仅有36ms的运行时间),有效增强了基于机器学习决策的 可成长软件的可靠性 4.3外围关键支撑的研究进展 软件可成长性也需外围支撑的辅助,下面我们介绍关于静态分析和模型生成、动态检测和智能决 策,以及应用探索和安全验证3方面的需求,限于篇幅,各列举一至两项代表性工作 1605 https://engine.scichina.com/doi/10.1360/SSI-2020-0079中国科学 : 信息科学 第 50 卷 第 11 期 准确, 可能影响系统验证的正确性. 对此, 我们改进了 VERSA 技术[22] , 基于构造反例的预估概率和实 际发生概率的偏差, 识别非确定模型中的不准确性, 并以最小化偏差为导向系统化地校准非确定模型, 并将其归结为一个基于搜索的软件工程问题予以解决. 实验表明, VERSA 可大幅提升非确定环境模 型的准确度 (绝对值提升 30.9%, 相对值提升 120.3%), 进一步推进了自适应系统的缺陷验证水平, 支 撑了可成长软件的过程演进质量. 4.2.3 软件演化质量评估方法和保障机制 这方面研究要解决软件适应与演化质量保障方法和工具集等问题. 前述的环境感知和软件演化技 术也蕴含针对可成长软件适应与演化质量的评估方法和保障机制, 覆盖了对环境上下文一致性错误的 检测效率, 动态软件更新的一致性和停顿时间等方面的考虑. 与此同时, 可成长软件的适应与演化也需 要关注其他侧面的质量保障工具集, 比如考虑如何触发并发缺陷、诊断能耗异常、检测恶意打包、合 成正则攻击、检验场景适配、发现服务泄露, 以及测试深度学习等各个方面, 这些侧面也都蕴含重要的 质量保障技术. 下面我们介绍其中两项工作. 可成长软件的思想直接适用于服务类软件系统, 因为可以支撑以提供长久有效的服务. 然而, 现 代服务类软件通常采用正则表达式处理用户输入的字符串信息, 而设计有误的正则表达式可引发指数 级的匹配复杂度, 进而导致拒绝服务式的攻击. 那么, 如何判断服务类软件的一个新版本是否修复了 这样的问题? 我们提出了 ReScue 技术 [23] 进行分析, 它解决了输入的长前缀和攻击串之间特征不匹 配的问题, 以及检测时间有限和串演化缓慢之间的矛盾, 利用三阶段灰盒分析自动产生针对给定正则 表达式的攻击字符串. 实验表明, ReScue 可提升攻击字符串生成率 49%, 并实际检测到真实服务类软 件中前所未知的多个正则表达式攻击缺陷, 有效提升了服务类软件的安全性. 这项工作也获得了 ASE 2018 ACM SIGSOFT 杰出论文奖. 此外, 采用机器学习模块参与可成长软件决策行为的趋势在逐步增强, 而机器学习模块往往基于 深度神经网络 DNN 搭建, 如何保障 DNN 的可靠性? 测试这类软件通常借用测试常规软件中的结构 化覆盖率标准, 以方便评估测试的充分性. 然而, 我们发现这类标准可能具有误导性, 因为 DNN 软件 和常规软件有着本质区别. 我们的初步调研 [24] 发现: (1) 结构化覆盖率标准对发现 DNN 软件的恶意 输入可能太粗粒度了 (容易满足其标准却不能实质性提升检错能力), 而对于发现误判的正常输入则可 能太细粒度了 (很难满足其标准, 即很难发现真实缺陷); (2) 已有的 DNN 软件测试显得覆盖率高, 很 可能是因为其基于面向恶意输入的搜索, 而要达成找到很多恶意输入的效果 (显得检错能力高), 实际 是很容易做到的 (无关真实的覆盖率). 基于该调研, 我们把 DNN 软件输入界定为预期输入和非预期 输入两类, 而需要着重保障可靠性的是预期输入. 对此, 我们提出了基于容错思想的 DISSECTOR 技 术 [25] , 自动识别并隔离超出原模型处理能力的未预期输入, 以保证原应用仍能保持所期望的可靠性. 实验表明, DISSECTOR 能对 DNN 模型自动适应, 并对超大数据应用场景非常高效 (高至 0.99 的有 效性, 可提升模型准确度 16%∼20%, 以及仅有 3∼6 ms 的运行时间), 有效增强了基于机器学习决策的 可成长软件的可靠性. 4.3 外围关键支撑的研究进展 软件可成长性也需外围支撑的辅助, 下面我们介绍关于静态分析和模型生成、动态检测和智能决 策, 以及应用探索和安全验证 3 方面的需求, 限于篇幅, 各列举一至两项代表性工作. 1605 https://engine.scichina.com/doi/10.1360/SSI-2020-0079
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有