2025, 36(7):0-0. DOI: 10.13328/j.cnki.jos.007332
摘要:差分隐私凭借其强大的隐私保护能力被应用在随机森林算法解决其中的隐私泄露问题,然而,直接将差分隐私应用在随机森林算法会使模型的分类准确率严重下降.为了平衡隐私保护和模型准确性之间的矛盾,本文创新性地提出了一种高效的差分隐私随机森林训练算法——eDPRF(efficient Differential Privacy Random Forest, eDPRF).具体而言,该算法创新设计了决策树构建方法,通过引入重排翻转机制高效的查询输出优势,进一步设计相应的效用函数实现分裂特征以及标签的精准输出,有效改善树模型在扰动情况下对于数据信息的学习能力.同时基于组合定理设计了隐私预算分配的策略,通过不放回抽样获得训练子集以及差异化调整内部预算的方式提高树节点的查询预算.最后,通过理论分析以及实验评估,表明本文算法在给定相同隐私预算的情况下,模型的分类准确度优于同类算法.
2025, 36(7):0-0. DOI: 10.13328/j.cnki.jos.007333
摘要:模糊测试技术在软件质量保障、软件安全测试等领域起到重要作用。然而,在面对编译器这样输入语义复杂的系统时,现有的模糊测试工具由于其变异策略中缺乏对语义的感知能力,导致生成的程序难以通过编译器前端检查。本文提出了一种语义可感知的灰盒模糊测试方法,旨在提高模糊测试工具在编译器测试领域的效能。设计并实现了一系列可保持输入语义合法性并探索上下文多样性的变异操作符,并针对这些操作符的特点开发了高效的选择策略。将这些策略与传统的灰盒模糊测试工具相结合,实现了灰盒模糊测试工具SemaAFL。实验结果表明,通过应用这些变异操作符,SemaAFL在GCC和Clang编译器上的代码覆盖率相比AFL++和同类工具GrayC提高了约14.5%和11.2%。在近一个星期的实验期间,SemaAFL发现并报告了6个以前未被发现的GCC和Clang缺陷。
2025, 36(7):0-0. DOI: 10.13328/j.cnki.jos.007334
摘要:分布式系统是当今计算生态系统的支柱,它使得现代计算更加强大、可靠和灵活,覆盖了从云计算、大数据处理到物联网等多个关键领域。然而,由于系统的复杂性,分布式系统在代码实现过程中总是会不可避免地引入一些代码缺陷,从而对系统的可用性、鲁棒性以及安全性造成巨大威胁。因此,分布式系统的测试以及缺陷挖掘工作十分重要。动态测试技术在系统运行中进行实时分析,以挖掘其缺陷,评估其行为和功能,被广泛用于各种系统应用的缺陷检测中,并成功发现了许多代码缺陷。本文首先提出了分布式系统四层缺陷威胁模型,并基于它分析了分布式系统测试需求与主要挑战,提出了对分布式系统进行动态测试的一般框架;接着从挖掘不同类型系统缺陷的角度介绍了典型的分布式系统动态测试工具;然后总结了包括不同维度测试输入生成、系统关键状态感知、缺陷判定准则构建在内的分布式动态测试的关键技术;并对当前主流分布式系统动态测试工具的覆盖率和缺陷发现能力进行了评估,从初步实验结果中我们可以看出多维度测试输入技术能有效提高分布式系统测试效率。最后,本文讨论了分布式系统动态测试的新趋势以及可能的未来发展方向。
2025, 36(7):0-0. DOI: 10.13328/j.cnki.jos.007335
摘要:二进制到源代码函数相似性检测是软件组成成分分析的基础性工作之一.现有方法主要采用一对一的匹配策略,即使用单一的二进制函数和单一的源代码函数进行比对.然而,由于函数内联的存在,函数之间的映射关系实际上表现为一对多——单一的二进制函数能够关联至多个源代码函数.这一差异导致现有方法在函数内联场景下遭受了30%的性能损失.针对函数内联场景下的二进制到源代码函数匹配需求,本文提出了一种面向一对多匹配的二进制到源代码函数相似性检测方法,旨在生成源代码函数集合作为内联二进制函数的匹配对象,以弥补源代码函数库的缺失.本文通过一系列实验评估了方法的有效性.实验数据表明,方法不仅能够提升现有二进制到源代码函数相似性检测的能力,而且还能够找到内联的源代码函数,帮助现有工具更好地应对内联挑战.
2025, 36(7):0-0. DOI: 10.13328/j.cnki.jos.007336
摘要:深度学习编译器已被广泛应用于深度学习模型的性能优化和部署。与传统编译器类似,深度学习编译器也存在缺陷,存在缺陷的深度学习编译器会导致编译失败或者产生错误的编译结果,甚至有时会带来灾难性的后果。为了深入理解深度学习编译器缺陷的特性,已有工作针对深度学习编译器早期的603个缺陷进行研究分析。近年来,深度学习编译器在快速迭代更新,伴随着大量新特性的引入和旧特性的弃用。与此同时,一些针对深度学习编译器缺陷检测工具已经被开发出来。因此,需要分析之前对深度学习编译器缺陷的研究结论是否依然适用。此外,针对缺陷症状、根因与位置三者之间的关系缺乏深入的挖掘,并且缺乏针对关于触发缺陷的回归测试用例特征和修复缺陷的补丁特征的研究。为了深入分析当下深度学习编译器缺陷特征和缺陷分布随时间的演化过程,本文收集了当前三款主流深度学习编译器(即Apache的TVM、Facebook的Glow和华为的AKG)中的613个近期修复的缺陷,并对缺陷的根因、症状、位置等特征进行了人工标注。基于标注结果,本文从多个不同角度深入挖掘缺陷的分布特征并与已有研究发现进行对比分析。同时,本文对触发缺陷的回归测试用例和修复缺陷的补丁进行了研究。本文最终获得了12个主要研究发现,以全面了解深度学习编译器缺陷现状与演变过程,并为深度学习编译器缺陷的检测、定位、修复提供了一系列可行的指导方案。最后,为了验证本文研究发现的有效性,开发了一款基于优化配置的模糊测试工具CfgFuzz。CfgFuzz通过对编译配置选项进行组合测试,最终检测到了8个TVM缺陷,其中7个缺陷已经被开发人员确认或修复。
2025, 36(7):0-0. DOI: 10.13328/j.cnki.jos.007337
摘要:基于机器学习和深度学习的代码异味检测方法需要依赖大量的标注数据集,而在代码异味领域标注数据集数量稀缺,并且与此同时存在着大量的未标注数据。因此,可以将主动学习的方法应用于代码异味检测。以往的研究表明,在软件工程领域,主动学习可以在花费更少的标注和训练成本条件下得到性能更高的模型。然而,主动学习对代码异味检测模型性能的具体影响尚未明确。盲目在代码异味检测任务中应用在其他领域中表现良好的主动学习策略可能适得其反。本文旨在评估主动学习对代码异味检测模型性能的影响,为此,本文在代码异味数据集MLCQ上进行了广泛分析,包括5种查询策略的11种实现方式、8种分类器及10种不同的查询比率,以探究它们对代码异味检测模型性能的具体影响。结果表明:(1)在本研究涉及的11种查询策略中,基于不确定性的查询策略与基于委员会的查询策略表现均优于其他策略。特别是,边缘查询(基于不确定性)和投票熵查询(基于委员会)表现尤为突出。(2)在本研究涉及的8种分类器中,随机森林分类器综合表现最好(3)在主动学习查询比率方面,查询比率从0%增加至25%过程中,模型性能随查询比率增加提升明显,查询比率从25%增加至50%过程中,模型性能随查询比率增加提升放缓,且可能出现性能下降。
2025, 36(7):0-0. DOI: 10.13328/j.cnki.jos.007338
摘要:Java语言因丰富的依赖库和便捷的构建工具(如Maven和Gradle)已成为当今最流行的应用项目开发语言之一.然而,随着依赖库规模的持续增大,Java项目的依赖管理变得愈益复杂,也不断超越现有工具的管理能力,其潜藏问题容易在未预期情况下触发,严重影响当前项目及所在Java生态中其它项目的构建和运行,如造成构建错误、运行崩溃或语义冲突等后果.针对现有调研和技术工作对Java语言依赖管理问题分析不足的缺陷,本文提出依赖异味(Dependency Smell)的概念,统一建模此类问题,并对涉及Maven和Gradle构建工具所有类别的依赖管理问题开展大规模实证研究,分析来自开源社区(如GitHub)、官方文档(如Maven依赖管理手册)和系列调研及技术论文的各类依赖管理问题,最终总结出13类依赖异味,以及它们的触发根源和影响特征等.基于该实证研究发现,我们设计了面向Java项目依赖异味的统一检测算法,并实现了适配于Maven和Gradle构建工具的专项检测工具JDepAna.实验表明,对已知依赖异味,JDepAna达到95.9%的检测召回率,对新的上百个Java项目,JDepAna检测出30,689个依赖异味实例,从中选出360个实例,人工验证真阳率达到96.1%,其中进一步汇报48个实例给开发者,42个已被快速确认,21个已被及时修复,充分验证了我们Java依赖异味检测算法和工具的效果和实用性,以及对Java项目质量保障的有效支撑.
2025, 36(7):0-0. DOI: 10.13328/j.cnki.jos.007339
摘要:随着信息技术的快速发展,安全认证技术成为了个人隐私和数据安全的重要保障.其中,虹膜识别技术凭借其出色的准确性和稳定性,被广泛应用于系统访问控制、医疗保健以及司法实践等领域.然而用户的虹膜特征数据泄露,就是永久性丢失,无法进行更改或者撤销.因此,虹膜特征数据的隐私保护尤为重要.随着神经网络技术在图像处理上体现的突出性能,基于神经网络的安全虹膜识别方案被提出,在保护隐私数据的同时保持了识别系统的高性能.然而,面对不断变化的数据和环境,安全虹膜识别方案需要具备有效的可扩展性,即识别方案应当能够在新的用户注册下依旧保持性能.但大多数现有基于神经网络的安全虹膜识别方案研究并未考虑方案的可扩展性.针对上述问题,本文提出了基于生成特征重放的安全增量虹膜识别(Generative Feature Replay-based Secure Incremental Iris Recognition,GFR-SIR)方法和基于隐私保护模板重放的安全增量虹膜识别(Privacy-preserving Template Replay-based Secure Incremental Iris Recognition,PTR-SIR)方法.具体而言,GFR-SIR方法通过生成特征重放和特征蒸馏技术,缓解神经网络扩展过程中对以往任务知识的遗忘,并采用改进的TNCB方法来保护虹膜特征数据的隐私.PTR-SIR方法保存了以往任务中通过TNCB方法转换得到的隐私保护模板,并在当前任务的模型训练中重放这些模板,以实现识别方案的可扩展性.实验结果表明,在完成5轮扩展任务后,GFR-SIR和PTR-SIR在CASIA-IrisV4-Lamp数据集上的识别准确率分别达到了68.32%和98.49%,比微调方法分别提升了58.49%和88.66%.分析表明,GFR-SIR方法由于未保存以往任务的数据,安全性和模型训练效率方面具有明显优势;而PTR-SIR方法则在维持识别性能方面更为出色,但其安全性和效率低于GFR-SIR.
2025, 36(7):0-0. DOI: 10.13328/j.cnki.jos.007340
摘要:智能体路径规划算法旨在规划某个智能体的行为轨迹,使其在不碰到障碍物的情况下安全且高效地从起始点到达目标点。目前智能体路径规划算法已经被广泛应用到各种重要的物理信息系统中,因此在实际投入使用前对算法进行测试,以评估其性能是否满足需求就非常重要。然而,作为路径规划算法的输入,任务空间中威胁障碍物的分布形式复杂且多样。此外,路径规划算法在为每个测试用例规划路径时,通常需要较高的运行代价。为了提升路径规划算法的测试效率,本文将动态随机测试思想引入到路径规划算法中,提出了面向路径规划算法的动态随机测试方法(Dynamic Random Testing for Path Planning Algorithms,DRT-PP)。具体来说,DRT-PP 对路径规划任务空间进行离散划分,并在每个子区域内引入威胁生成概率,进而构建测试剖面,该测试剖面可以作为测试策略在测试用例生成过程中使用。此外,DRT-PP在测试过程中通过动态调整测试剖面,使其逐渐优化,从而提升测试效率。实验结果显示,与随机测试及自适应随机测试相比,DRT-PP方法能够在保证测试用例多样性的同时,生成更多能够暴露被测算法性能缺陷的测试用例。
2025, 36(7):0-0. DOI: 10.13328/j.cnki.jos.007341
摘要:漏洞检测是软件系统安全领域的关键技术. 近年来, 深度学习凭借其代码特征提取的卓越能力, 在漏洞检测领域取得了显著进展. 然而, 当前基于深度学习的方法仅关注于代码实例自身的独立结构特征, 而忽视了不同漏洞代码间存在的结构特征相似关联, 限制了漏洞检测技术的性能. 针对这一问题, 本文提出了一种基于函数间结构特征关联的软件漏洞检测方法(CSFF-VD). 该方法首先将函数解析为代码属性图, 并通过门控图神经网络提取函数内的独立结构特征. 在此基础之上, 利用特征之间的相似性构建函数间的关联网络并构建基于图注意力网络进一步提取函数间关联信息, 以此提升漏洞检测的性能. 实验结果显示, CSFF-VD在三个公开的漏洞检测数据集上超过了当前基于深度学习的漏洞检测方法. 此外, 本文在函数内各独立特征提取的基础上, 通过增加CSFF-VD中函数间关联特征提取方法的实验, 证明了集成函数间关联信息的有效性.