Page 34 - 《软件学报》2026年第7期
P. 34

软件学报 ISSN 1000-9825, CODEN RUXUEW                                        E-mail: jos@iscas.ac.cn
                 2026,37(7):2719−2741 [doi: 10.13328/j.cnki.jos.007584] [CSTR: 32375.14.jos.007584]  http://www.jos.org.cn
                 ©中国科学院软件研究所版权所有.                                                          Tel: +86-10-62562563



                                                                                   *
                 Python   软件包库中          C/C++外部语言调用的安全性分析

                 胡明哲  1 ,    丁秋然  1 ,    张子涵  1 ,    谢金言  1 ,    于    乐  1 ,    韩丽萍  1,2


                 1
                  (南京邮电大学 计算机学院、软件学院、网络空间安全学院, 江苏 南京 210023)
                  (计算机软件新技术全国重点实验室        (南京大学), 江苏 南京 210093)
                 2
                 通信作者: 于乐, E-mail: yulele08@njupt.edu.cn

                 摘 要: 软件包库的安全性是软件供应链分析的重要一环, 但是现有研究和工具往往缺乏对软件包库中外部语言
                 调用的有效分析. PyPI 是     Python  语言的官方软件包库, 其中存储海量不同应用领域的               Python  软件包. 这些软件包
                 除了包含   Python  语言编写的程序外, 还常包含通过         Python  的外部接口  Python/C API 调用的  C/C++外部语言程序.
                 分析  Python  软件包库中外部语言调用的安全性对于保障软件供应链的安全可靠具有重要意义. 通过分析互操作官
                 方文档以及互操作程序分析的相关方法和工具, 构建                 Python-C/C++互操作程序的漏洞基准套件, 其中包括            9  小类
                 行为共计    15  种漏洞模式的基准测试程序, 覆盖内存、类型、异常、并发和数值这                     5  大类语言特性以及安装量最
                 大的  16  个包含  C/C++外部调用的    Python  软件包中的互操作程序漏洞. 通过在漏洞基准套件上评估已有的先进
                 Python-C/C++互操作漏洞检查工具, 对比分析现有研究和工具的可靠性、完备性和可扩展性, 分析总结                        Python-C/C++
                 互操作安全分析的现状和不足. 通过分析超过               700  个漏洞警告, 确认在    6  个  PyPI 库中新发现  3  种共计  21  个实际
                 漏洞.
                 关键词: 软件供应链分析; 跨语言互操作; 漏洞检查; 程序分析; 漏洞基准库
                 中图法分类号: TP311

                 中文引用格式: 胡明哲, 丁秋然, 张子涵, 谢金言, 于乐, 韩丽萍. Python软件包库中C/C++外部语言调用的安全性分析. 软件学报,
                 2026, 37(7): 2719–2741. http://www.jos.org.cn/1000-9825/7584.htm
                 英文引用格式: Hu MZ, Ding QR, Zhang ZH, Xie JY, Yu L, Han LP. Safety Analysis of C/C++ Foreign Language Calls in Python
                 Software Package Repositories. Ruan Jian Xue Bao/Journal of Software, 2026, 37(7): 2719–2741 (in Chinese). http://www.jos.org.cn/
                 1000-9825/7584.htm

                 Safety Analysis of C/C++ Foreign Language Calls in Python Software Package Repositories
                           1            1            1          1     1          1,2
                 HU Ming-Zhe , DING Qiu-Ran , ZHANG Zi-Han , XIE Jin-Yan , YU Le , HAN Li-Ping
                 1
                 (School of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing 210023, China)
                 2
                 (State Key Laboratory for Novel Software Technology (Nanjing University), Nanjing 210093, China)
                 Abstract:  The  safety  of  software  package  repositories  is  a  critical  aspect  of  software  supply  chain  analysis,  but  existing  research  and  tools
                 often  lack  effective  analysis  of  foreign  language  calls  in  the  package  repositories.  As  the  official  package  repository  for  Python,  PyPI
                 stores  a  vast  amount  of  Python  software  packages  from  various  application  domains.  In  addition  to  programs  written  in  Python,  these
                 packages  often  include  C/C++  foreign  language  programs  that  are  called  via  Python’s  foreign  interface—the  Python/C  API.  Analyzing  the
                 safety  of  foreign  language  calls  in  Python  package  repositories  is  crucial  for  ensuring  the  safety  and  reliability  of  software  supply  chains.


                 *    基金项目: 国家自然科学基金  (62502226, 62202406); 计算机软件新技术全国重点实验室  (南京大学) 开放课题  (KFKT2025B66); 江苏省
                  高等学校基础科学     (自然科学) 研究项目   (25KJB520029); 南京邮电大学引进人才科研启动基金     (自然科学) (NY224026, NY224023,
                  NY224001, NY223164); 南京邮电大学校级自然科学基金  (NY224143)
                  本文由“智能化基础软件可信构造和供应链安全”专题特约编辑王林章教授、司徒凌云研究员、钟浩研究员、 向剑文教授、张路教授
                  推荐.
                  收稿时间: 2025-09-06; 修改时间: 2025-10-20; 采用时间: 2025-12-08; jos 在线出版时间: 2025-12-26
                  CNKI 网络首发时间: 2026-06-02
   29   30   31   32   33   34   35   36   37   38   39