依托我院软件研发效能实验室与华为合作开展的“开源防投毒社区可疑活动分析”研究项目的进展和成果,在张贺教授的指导和匡宏宇老师的协助下,刘博涵老师带领马维刚(21级专硕)、杨易(22级专硕)、徐近伟(22级直博生)等同学共克难关,首创性地提出了一种基于过程挖掘的开源软件开发过程的异常行为检测方法,对开源软件供应链防投毒这一备受关注的软件工程新兴问题的研究具有重要意义,研究成果被软件工程学科国际顶级会议ICSE2024(CCF-A类)录用,论文标题为“Mining Pull Requests to Detect Process Anomalies in Open Source Software Development”。

图 1研究方法概览

开源软件现已被广泛集成到各种商业软件系统中,形成了纷繁复杂的开源供应链生态。近年来,针对软件供应链的投毒事件频发,引起了全球各大商业软件企业的高度重视。开源软件投毒是包括向开源软件中植入恶意代码、恶意损坏代码仓库、制造“李鬼”式恶意项目等各种故意对开源软件供应链产生危害的一系列行为的统称,其具有意想不到、难以察觉、短时间内影响巨大的特点。

开源软件防投毒是一个包含多环节、多角度的系统性的工程。正如规范的安检过程是防范恐怖袭击的重要手段,规范的软件Pull Request(PR)过程也被业界的领域专家认为是降低开源软件投毒风险的关键措施,是“过程内建安全”思想的体现。受此启发,刘博涵老师重点关注在风险预警阶段,创新性地提出了一种基于过程挖掘的异常识别方法,该方法概览如图1所示,能够从控制流和上下文语义两个角度识别PR过程中的异常,具备较强的可解释性。该工作结合了人工的根因分析以及对异常PR过程参与者的问卷调查这两种手段验证了方法的有效性。进一步地,对被投毒过和未被投毒过的两组项目进行了统计检验,结果表明被投毒过的项目中的异常显著多于未被投毒过的项目,证实了该方法应用在开源软件投毒预警上的可行性。该工作对于供应链安全及软件过程这两个方向的研究,都具有重要的参考价值。