2025, 36(7):1-18. DOI: 10.13328/j.cnki.jos.007332
摘要:差分隐私凭借其强大的隐私保护能力被应用在随机森林算法解决其中的隐私泄露问题, 然而, 直接将差分隐私应用在随机森林算法会使模型的分类准确率严重下降. 为了平衡隐私保护和模型准确性之间的矛盾, 提出了一种高效的差分隐私随机森林训练算法eDPRF (efficient differential privacy random forest). 具体而言, 该算法设计了决策树构建方法, 通过引入重排翻转机制高效地查询输出优势, 进一步设计相应的效用函数实现分裂特征以及标签的精准输出, 有效改善树模型在扰动情况下对于数据信息的学习能力. 同时基于组合定理设计了隐私预算分配的策略, 通过不放回抽样获得训练子集以及差异化调整内部预算的方式提高树节点的查询预算. 最后, 通过理论分析以及实验评估, 表明算法在给定相同隐私预算的情况下, 模型的分类准确度优于同类算法.
2025, 36(7):1-17. DOI: 10.13328/j.cnki.jos.007333
摘要:模糊测试技术在软件质量保障、软件安全测试等领域起到重要作用. 然而, 在面对编译器这样输入语义复杂的系统时, 现有的模糊测试工具由于其变异策略中缺乏对语义的感知能力, 导致生成的程序难以通过编译器前端检查. 提出了一种语义可感知的灰盒模糊测试方法, 旨在提高模糊测试工具在编译器测试领域的效能. 设计并实现了一系列可保持输入语义合法性并探索上下文多样性的变异操作符, 并针对这些操作符的特点开发了高效的选择策略. 将这些策略与传统的灰盒模糊测试工具相结合, 实现了灰盒模糊测试工具SemaAFL. 实验结果表明, 通过应用这些变异操作符, SemaAFL在GCC和Clang编译器上的代码覆盖率相比AFL++和同类工具GrayC提高了约14.5%和11.2%. 在为期一周的实验期间, SemaAFL发现并报告了6个以前未被发现的GCC和Clang缺陷.
2025, 36(7):1-39. DOI: 10.13328/j.cnki.jos.007334
摘要:分布式系统是当今计算生态系统的支柱, 它使得现代计算更加强大、可靠和灵活, 覆盖了从云计算、大数据处理到物联网等多个关键领域. 然而, 由于系统的复杂性, 分布式系统在代码实现过程中总是不可避免地引入一些代码缺陷, 从而对系统的可用性、鲁棒性以及安全性造成巨大威胁. 因此, 分布式系统的测试以及缺陷挖掘工作十分重要. 动态测试技术在系统运行中进行实时分析, 以挖掘其缺陷, 评估其行为和功能, 被广泛用于各种系统应用的缺陷检测中, 并成功发现了许多代码缺陷. 首先提出了分布式系统4层缺陷威胁模型, 并基于它分析了分布式系统测试需求与主要挑战, 提出了对分布式系统进行动态测试的一般框架. 从挖掘不同类型系统缺陷的角度介绍了典型的分布式系统动态测试工具. 总结了包括不同维度测试输入生成、系统关键状态感知、缺陷判定准则构建在内的分布式动态测试的关键技术. 对当前主流分布式系统动态测试工具的覆盖率和缺陷发现能力进行了评估, 从初步实验结果中可以看出多维度测试输入技术能有效提高分布式系统测试效率. 最后, 讨论了分布式系统动态测试的新趋势以及可能的未来发展方向.
2025, 36(7):1-19. DOI: 10.13328/j.cnki.jos.007335
摘要:二进制到源代码函数相似性检测是软件组成成分分析的基础性工作之一. 现有方法主要采用一对一的匹配策略, 即使用单一的二进制函数和单一的源代码函数进行比对. 然而, 由于函数内联的存在, 函数之间的映射关系实际上表现为一对多——单一的二进制函数能够关联至多个源代码函数. 这一差异导致现有方法在函数内联场景下遭受了30%的性能损失. 针对函数内联场景下的二进制到源代码函数匹配需求, 提出了一种面向一对多匹配的二进制到源代码函数相似性检测方法, 旨在生成源代码函数集合作为内联二进制函数的匹配对象, 以弥补源代码函数库的缺失. 通过一系列实验评估了方法的有效性. 实验数据表明, 方法不仅能够提升现有二进制到源代码函数相似性检测的能力, 而且还能够找到内联的源代码函数, 帮助现有工具更好地应对内联挑战.
2025, 36(7):1-19. DOI: 10.13328/j.cnki.jos.007336
摘要:深度学习编译器已被广泛应用于深度学习模型的性能优化和部署. 与传统编译器类似, 深度学习编译器也存在缺陷. 存在缺陷的深度学习编译器会导致编译失败或者产生错误的编译结果, 甚至有时会带来灾难性的后果. 为了深入理解深度学习编译器缺陷的特性, 已有工作针对深度学习编译器早期的603个缺陷进行研究分析. 近年来, 深度学习编译器在快速迭代更新, 伴随着大量新特性的引入和旧特性的弃用. 与此同时, 一些针对深度学习编译器缺陷的检测工具已被开发出来. 因此, 需要分析之前对深度学习编译器缺陷的研究结论是否依然适用. 此外, 缺乏对缺陷症状、根因、位置三者之间关系的深入挖掘, 并且缺乏对触发缺陷的回归测试用例特征和修复缺陷的补丁特征的研究. 为了深入分析当下深度学习编译器缺陷特征和缺陷分布随时间的演化过程, 收集当前3款主流深度学习编译器(即Apache的TVM、Facebook的Glow和华为的AKG)中的613个近期修复的缺陷, 并对缺陷的根因、症状、位置等特征进行人工标注. 基于标注结果, 从多个不同角度深入挖掘缺陷的分布特征,并与已有研究进行对比分析. 同时, 对触发缺陷的回归测试用例和修复缺陷的补丁进行研究. 最终获得12个主要研究发现, 以全面了解深度学习编译器缺陷现状与演变过程, 并为深度学习编译器缺陷的检测、定位、修复提供一系列可行的指导方案. 最后, 为了验证本文研究发现的有效性, 开发了一款基于优化配置的测试工具CfgFuzz. CfgFuzz通过对编译配置选项进行组合测试, 最终检测到8个TVM缺陷, 其中7个缺陷已被开发人员确认或修复.
2025, 36(7):1-46. 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检测出30689个依赖异味实例, 从中选出360个实例, 人工验证真阳率达到96.1%, 其中, 进一步汇报48个实例给开发者, 42个已被快速确认, 21个已被及时修复, 充分验证了所提出的Java依赖异味检测算法和工具的效果和实用性以及对Java项目质量保障的有效支撑.
2025, 36(7):1-22. 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-Iris-Lamp数据集上的识别准确率分别达到了68.32%和98.49%, 比微调方法分别提升了58.49%和88.66%. 分析表明, GFR-SIR方法由于未保存以往任务的数据, 在安全性和模型训练效率方面具有明显优势; PTR-SIR方法则在维持识别性能方面更为出色, 但其安全性和效率低于GFR-SIR.
2025, 36(7):1-25. DOI: 10.13328/j.cnki.jos.007340
摘要:智能体路径规划算法旨在规划某个智能体的行为轨迹, 使其在不碰到障碍物的情况下安全且高效地从起始点到达目标点. 目前智能体路径规划算法已经被广泛应用到各种重要的物理信息系统中, 因此在实际投入使用前对算法进行测试, 以评估其性能是否满足需求就非常重要. 然而, 作为路径规划算法的输入, 任务空间中威胁障碍物的分布形式复杂且多样. 此外, 路径规划算法在为每个测试用例规划路径时, 通常需要较高的运行代价. 为了提升路径规划算法的测试效率, 将动态随机测试思想引入到路径规划算法中, 提出了面向智能体路径规划算法的动态随机测试方法(dynamic random testing approach for intelligent agent path planning algorithms, DRT-PP). 具体来说, DRT-PP 对路径规划任务空间进行离散划分, 并在每个子区域内引入威胁生成概率, 进而构建测试剖面, 该测试剖面可以作为测试策略在测试用例生成过程中使用. 此外, DRT-PP在测试过程中通过动态调整测试剖面, 使其逐渐优化, 从而提升测试效率. 实验结果显示, 与随机测试及自适应随机测试相比, DRT-PP方法能够在保证测试用例多样性的同时, 生成更多能够暴露被测算法性能缺陷的测试用例.
2025, 36(7):1-17. DOI: 10.13328/j.cnki.jos.007341
摘要:漏洞检测是软件系统安全领域的关键技术. 近年来, 深度学习凭借其代码特征提取的卓越能力, 在漏洞检测领域取得了显著进展. 然而, 当前基于深度学习的方法仅关注于代码实例自身的独立结构特征, 而忽视了不同漏洞代码间存在的结构特征相似关联, 限制了漏洞检测技术的性能. 针对这一问题, 提出了一种基于函数间结构特征关联的软件漏洞检测方法(vulnerability detection method based on correlation of structural features between functions, CSFF-VD). 该方法首先将函数解析为代码属性图, 并通过门控图神经网络提取函数内的独立结构特征. 在此基础之上, 利用特征之间的相似性构建函数间的关联网络并构建基于图注意力网络进一步提取函数间关联信息, 以此提升漏洞检测的性能. 实验结果显示, CSFF-VD在3个公开的漏洞检测数据集上超过了当前基于深度学习的漏洞检测方法. 此外, 在函数内各独立特征提取的基础上, 通过增加CSFF-VD中函数间关联特征提取方法的实验, 证明了集成函数间关联信息的有效性.