该研究方向:把基于深度学习的方法和软件供应链安全检测结合起来研究。

软件供应链污染检测技术研究

{2019}, {武振华}, {硕士论文}

武振华.软件供应链污染检测技术研究[D].战略支援部队信息工程大学,2019.DOI:10.27188/d.cnki.gzjxu.2019.000053.

Key Points

  • 软件供应链
  • 静默安装参数、控件识别和 OCR 识别
  • 三类软件供应链下游的污染检测问题
  • LSTM
  • 哈希比对
  • DNN

Summary

软件供应链污染威胁用户隐私与财产安全,现有研究较少且不系统。本文聚焦软件供应链下游,分析众多安全事件,综述程序逆向分析技术应用现状与问题。提出污染分类模型与检测框架,创新自动化安装方法,并针对安装包捆绑、模块复用、恶意代码植入问题分别给出有效检测方案,经大量实验验证各方法的有效性,为软件供应链污染检测提供全面解决方案。

Research Objective(s)

全面综述程序逆向分析技术在软件供应链污染检测中的应用与问题,填补研究空白。

构建软件供应链污染分类模型与检测框架,解决检测问题分类不明、缺乏系统框架的问题。

提出高效的自动化安装方法及各类污染检测方法,应对现有安装方法效率低、检测技术不足的状况

Background / Problem Statement

背景:软件供应链攻击隐蔽性强、影响范围广、威胁程度大;对软件供应链上的软件进行安全性分析,遏制软件供应链污染问题势在必行。

问题:软件供应链污染检测研究不足且不系统,现有程序逆向分析技术用于检测时,静态分析易受代码混淆等干扰,动态分析有覆盖率低等缺陷,符号执行和污点分析也存在路径爆炸、约束求解难等问题,且现有自动化安装方法无法满足大规模软件安装需求。

Method(s)

自动化安装:采用增量式策略,先解压压缩包,再依次用静默安装、控件识别、OCR 识别安装,根据安装结果调整规则,对万余款软件实验,成功率超 95%。

安装包捆绑检测:对恶意程序捆绑,用沙箱获取安装 API 序列,经处理后用带注意力机制的 LSTM 模型检测;对良性软件捆绑,监控安装目录结合家族分类判断,实验检测出 49 个捆绑软件。

模块复用检测:直接复用检测通过校验库文件 MD5 值判断;源码编译复用检测用 αDiff 分析函数相似性并优化,实验发现多款软件存在复用漏洞。

恶意代码检测:先依文件名和 Mean - Shift 聚类进行软件家族分类,再用版本号或特定算法分析谱系,然后用 IDA Pro 和 αDiff 检测二进制代码相似性,最后对差异大的函数深度分析,实验表明可大幅节省分析时间

Evaluation

评估方法:以安装成功率评估自动化安装方法;用检测准确率和召回率衡量捆绑、复用、恶意代码检测方法;对比实验展示各方法相对已有方法的优势。

Conclusion

  • 成功构建软件供应链污染检测体系,涵盖分类、框架及多种有效检测方法,自动化安装方法成功率高,各检测方法能有效发现污染问题。
  • 实验充分验证各方法有效性,软件家族分类和谱系分析等环节表现良好,提高了恶意代码筛查效率。

Notes

软件供应链是指软件从软件供应商到达用户手中并被用户使用的整个过程中相关环节的连接,从软件设计开始,到代码编写与软件生成,再到软件分发与用户下载,并最终由用户使用的一个软件供应商与软件用户之间,紧密围绕软件,由开发环节(上游),交付环节(中游)和使用环节(下游)三大环节所组成的链状结构。

现有的程序分析方法主要包括静态分析、动态分析、符号执行和污点分析。

  • 静态分析和动态分析是检测代码安全的基本方法,两者的区别在于获取信息的方式不同:静态分析方法的数据源是可执行文件中的数据,动态分析的数据源是动态执行过程中获取的运行时数据。符号执行和污点分析技术是应用最广泛的二进制程序分析技术,静态分析方法和动态分析方法均可以实现这两种技术。

References

周振飞. 软件供应链污染机理与防御研究 [D]. 北京: 北京邮电大学, 2018: 2-20.

陈波. 软件供应链的文献综述 [J]. 科协论坛, 2008, 1(10): 75.

面向软件供应链的异常分析方法综述

{2023}, {葛丽丽,帅东昕,谢金言,等}, {软件学报}

葛丽丽,帅东昕,谢金言,等.面向软件供应链的异常分析方法综述[J].软件学报,2023,34(06):2606-2627.DOI:10.13328/j.cnki.jos.006850.

Key Points

  • 软件供应链
  • 库函数、
  • 精度和效率

Summary

软件供应链安全受关注,库函数异常影响其安全。本文针对库函数,从精度和效率两方面综述异常分析方法,涵盖抽象解释、集合约束等多种方法,分析各方法优劣,指出面临挑战并提出解决思路,对保障软件供应链安全有重要意义。

Research Objective(s)

  • 归纳适用于库函数的异常分析方法,从精度和效率角度梳理其基本思想与步骤。

  • 剖析现有方法在库函数异常分析中的优缺点,明确面临的挑战。

  • 探寻应对挑战的初步思路,为提高软件供应链安全提供方法支撑

Background / Problem Statement

背景:万物互联下软件供应链安全关键,库函数是其重要部分。使用库函数或 API 虽提高开发效率,但其中异常处理不当会引发安全问题,如 Xcode 恶意代码污染事件。

问题:已有软件供应链和异常分析综述未聚焦库函数。库函数异常分析面临精度受动态调度等影响、无源库函数分析可拓展性差、新型语言特性增加分析难度、函数调用产生回调函数干扰分析、并发场景异常分析不足等问题。

Method(s)

精度优化方法

  • 抽象解释:将源程序转中间表示,语义抽象后在抽象域计算不动点分析异常,如 Yi 等用于检测 SML 程序异常。
  • 集合约束:收集和求解约束分析异常,分表达式和方法 / 函数层面,如 Yi 和 Ryu 用于检测 SML 程序潜在异常。
  • 数据流分析:基于控制流图分析程序点状态,分过程内和间分析,如针对异常处理结构建 IECFG 或 IFCFG 图分析。
  • 符号执行:用符号输入模拟程序执行,收集约束求解确定异常捕获链,动态符号执行可解决第三方库问题。

效率优化方法

  • 类型系统:在已有类型系统加异常规则推导类型信息,如 Leroy 等设计基于类型和效果系统分析 OCaml 异常。
  • 函数摘要:提取函数摘要用于过程间分析,预先分析库函数收集摘要加速分析,符号化摘要可实现上下文敏感分析。

Evaluation

评估方法:以检出率和误报率衡量精度,分析时间和空间开销评估效率,通过对比实验和实际案例分析展示方法有效性。

Conclusion

  • 总结多种库函数异常分析方法,明确其优势与不足,如抽象解释精度高但有局限,函数摘要适合无源库函数但扩展性弱。

  • 指出库函数异常分析面临的挑战,并基于函数式编程和类型系统特性提出解决思路。

面向 Java 语言生态的软件供应链安全分析技术

{2023}, {毛天宇, 王星宇, 常瑞, 申文博, 任奎. }, {软件学报}

毛天宇, 王星宇, 常瑞, 申文博, 任奎. 面向 Java 语言生态的软件供应链安全分析技术. 软件学报, 2023, 34(6): 2628–2640. http://www.jos.org.cn/1000-9825/6852.htm

Key Points

  • 软件供应链
  • POM
  • Log4j2

Summary

开源软件发展促使组件化开发形成软件供应链,但也带来安全问题,如 Log4j2 漏洞影响巨大。已有研究多抽样且难扩至生态层面。本文针对 Java 语言生态,定义组件依赖和影响力等指标,构建提取与解析框架,分析 Log4j2 漏洞影响及修复情况,为软件供应链安全研究提供支撑。

Research Objective(s)

  • 给出软件供应链安全领域组件依赖关系和影响力等重要指标的形式化定义,为后续分析提供理论基础。
  • 构建自动化依赖信息提取与解析框架,实现高效精准的依赖解析,以应对 Java 生态组件规模大、依赖复杂的情况。
  • 以 Log4j2 漏洞为例,基于提取的依赖关系全面分析其对 Java 生态的影响及修复情况,揭示漏洞传播规律

Background / Problem Statement

背景:开源软件繁荣使基于第三方组件的开发模式成为趋势,Java 生态的 Maven - Central 托管大量组件,其下载量巨大,但也带来新安全威胁,Log4j2 漏洞就是典型案例。

问题:现有研究多是小规模抽样分析项目依赖和漏洞影响,受动态分析方法及效率限制,难以扩展到生态层面,且在完整性、准确性和特征分析方面存在不足。

Method(s)

指标定义:将 Maven 生态组件及依赖关系建模为有向无环图,定义直接依赖、间接依赖、组件直接影响力、层级影响力、间接影响力和传播影响力等指标,为分析提供依据。

依赖关系提取与解析框架

  • 增量式组件配置收集:利用 Maven - Central 索引文件,设计爬虫按全量和增量方式获取组件配置文件,加速更新。
  • 多核并行依赖解析:研究 POM 文件语义,通过继承和插值处理确保准确性,采用缓存和多核并行优化效率。

评测

  • 效率:在特定平台测试,组件收集首次全量更新耗时多,后续增量更新快,依赖解析 880 万个组件版本配置文件耗时小于 2 小时。
  • 准确性:以 Libraries.io 数据筛选组件,与 Maven Effective - Pom 解析结果比对,准确率达 94.64%。

Evaluation

评估方法:通过实际数据测试框架效率,与基准工具解析结果比对评估准确性;从受影响组件数量、层次分布和关键组件等方面分析漏洞影响力,按时间统计直接依赖组件修复比例评估修复情况。

Conclusion

  • 成功定义组件依赖和影响力等指标,构建高效准确的依赖解析框架,为软件供应链安全分析奠定基础。
  • 分析 Log4j2 漏洞影响和修复情况,揭示漏洞在 Java 生态中的传播规律和修复现状。

Python软件供应链攻击自动检测系统的设计与实现

{2023}, {柴志刚}, {硕士论文}

柴志刚.Python软件供应链攻击自动检测系统的设计与实现[D].北京邮电大学,2023.DOI:10.26969/d.cnki.gbydu.2023.002099.

Key Points

  • Python软件供应链
  • 域名抢注
  • 安装脚本恶意代码

Summary

软件供应链攻击频发,Python 软件供应链面临域名抢注和安装脚本恶意代码植入等威胁。本文针对这些问题,提出基于包流行度与相似度的域名抢注检测法及基于 AST 和 Att - BiLSTM 的恶意安装脚本检测法,并设计实现自动检测系统,有效检测常见攻击,提高域名抢注检测召回率,经实验验证了方法和系统的有效性。

Research Objective(s)

  • 解决域名抢注检测召回率低的问题,提出基于包流行度和包名相似度的检测方法,提高检测效果。

  • 实现有效准确检测 Python 包安装脚本恶意代码的方法,利用深度学习避免手动定义特征。

  • 设计并实现能检测 Python 软件供应链常见攻击的自动检测系统,具备良好可用性。

Background / Problem Statement

背景:软件供应链发展迅速,开源软件增多,同时软件供应链攻击事件频繁爆发、软件供 应链安全风险不断加剧,针对Python软件供应链,则出现了域名抢注和安装脚本恶意代码植入两种低成本而高效的攻击方式。

问题:现有域名抢注检测召回率低,恶意代码检测的静态分析误报高、动态分析覆盖率低,且缺乏针对 Python 软件供应链特定攻击的有效检测方案。

Method(s)

域名抢注检测方法:基于总、月、周下载量定义包流行度;分析抢注实例总结命名模式,设计新包名相似度算法;结合流行度和相似度,设置两级阈值检测,提高召回率并减少告警。

恶意安装脚本检测方法:将安装脚本源代码转抽象语法树获取结构信息;用Word2Vec 转单词为向量,结合 TF - IDF 值和敏感 API 权重计算加权向量;用 BiLSTM 捕获双向语义依赖,引入 Attention 机制找关键特征。

系统设计与实现:采用 B/S 和前后端分离架构,含域名抢注、安装脚本检测和系统管理模块,各模块细分功能子模块,通过数据库协同工作,实现用户操作、任务调度和结果展示等功能。

Evaluation

评估方法:用准确率、召回率等指标评估模型;对比不同包名相似度算法和检测模型;对系统进行功能和性能测试。

Conclusion

  • 提出的域名抢注和恶意安装脚本检测方法有效,提高了检测能力和准确性。
  • 设计的自动检测系统能有效检测 Python 软件供应链常见攻击,可用性良好。

Notes

域名抢注攻击是近些年研究人员发现的一种低成本的软件供应链攻击方式。不仅大型网站的域名存在被第三者利用相似域名抢注和滥用的风险,包管理器同样也会受到这一类型的攻击,即,用户在打算下载安装某一流行的第三方包时如果输入了错误的包名,有可能会下载到恶意的抢注包,导致系统受到攻击。

开源密码软件供应链安全综述

{2023}, {荣景峰, 刘新荣, 贾培养, 葛平原, 陈颖, 司喜绢, 孙承一, 张玉清.}, {密码学报}

荣景峰, 刘新荣, 贾培养, 葛平原, 陈颖, 司喜绢, 孙承一, 张玉清. 开源密码软件供应链安全综述 [J]. 密码学报, 2023, 10(5): 966–985.[DOI:10.13868/j.cnki.jcr.000651]

Key Points

  • 开源密码软件供应链
  • 开源软件供应链

Summary

本文首篇调研开源密码软件供应链安全综述。通过梳理文献明确其研究范围,依典型事件构建风险模型,参考案例总结防控手段,指出挑战机遇与方向,助力后续研究,涵盖从基础概念到风险应对及未来展望等多方面内容。

Research Objective(s)

  • 剖析开源软件与开源密码软件供应链差异,界定开源密码软件供应链研究范畴。
  • 构建风险模型,梳理各类安全风险,为防控提供基础。
  • 借鉴成熟案例与应对措施,总结防控手段,增强安全性。
  • 明确面临挑战与机遇,指引未来研究方向。

Background / Problem Statement

背景:开源密码软件兴起,但开源密码软件供应链安全研究匮乏。OpenSSL 等广泛应用,其漏洞影响大,如 “心脏滴血” 漏洞。现有研究多关注开源软件供应链通用风险,未聚焦密码软件特性。

问题:开源密码软件供应链攻击面广,包括恶意软件包、依赖混淆等开源软件供应链风险,及后门、断供、证书安全等自身风险,威胁信息安全,亟需全面研究应对。

Method(s)

检索 ACM、IEEE 等数据库及顶级会议文献,分析开源软件与密码软件供应链定义及差异,确定研究范围。

收集典型攻击事件与威胁文献,归纳风险模型,涵盖开源软件供应链风险及密码软件特有风险。

参考实体供应链案例与开源密码措施,从技术(算法、检测工具等)和非技术(许可证、标准等)维度总结防控手段。

Evaluation

评估方法:统计开源密码软件漏洞数据,对比不同软件漏洞情况;分析防控措施对各风险的适用性与有效性。

Conclusion

  • 明确开源密码软件供应链定义、范围与风险模型,涵盖多方面风险。

  • 总结多维度防控手段,包含传统加密算法、供应链技术与非技术措施。

  • 指出挑战与机遇,涉及检测体系、漏洞分析、工具开发、新环境研究等方面。

Notes

开源密码软件供应链的定义是指, 以保护信息安全为目的开源软件供应链. 在其软件生命 周期中, 与第三方开源软件共同组建的一种多层次软件供求关系模型.