论文部分内容阅读
近年来,软件供应链污染问题日益严重,给用户的隐私和财产安全造成了巨大的威胁。攻击者利用软件生产、交付或使用环节中的安全漏洞,通过劫持或篡改软件供应链上的合法软件,对终端用户悄然实施攻击。目前针对软件供应链安全的研究较少,且现有工作多从宏观层面对软件供应链污染、污染检测及污染防治问题进行阐述,鲜有工作提出系统性检测方案。本文对软件供应链下游的污染检测方法进行了系统研究,主要工作和贡献如下:1.目前软件供应链污染检测工作依靠程序逆向分析技术实现,但尚未有工作综述其研究进展。对此,本文分析了国内外百余个影响广泛的软件供应链安全事件,综述了程序逆向分析技术在软件供应链污染检测问题中的研究现状,并指出了自动化程序分析技术在软件供应链污染检测中仍存在的问题。2.针对当前软件供应链污染检测工作较少,相关研究不够系统、深入的问题,本文在软件供应链下游展开污染检测研究;从污染目标和污染途径两方面入手,提出软件供应链污染分类模型,详细分析了软件供应链污染检测中存在的特殊问题;并提出了软件供应链污染检测框架,将软件供应链下游的污染检测问题划分为检测安装包捆绑安装、检测第三方漏洞或恶意模块复用以及检测目标程序中植入恶意代码三大类问题。3.软件供应链下游的污染检测需要能够从软件安装包或压缩包中释放出软件的可执行文件,但目前软件安装包的自动化安装方案普适性差、成功率低。针对该问题,本文提出了可靠的增量式软件自动化安装方法。依次使用基于静默安装参数、控件识别和OCR识别的方式进行安装,实现了高度自动化的软件安装。实验结果表明,对于搜集到的1万余款、超3万个软件安装包,该方案可以成功自动化安装超过95%的样本,为实现污染检测框架中具体的检测方法奠定了基础。4.针对软件供应链污染检测框架重点关注的三类污染检测问题,本文分别详细分析了现有技术存在的不足,并提出了系统性的解决方法:a)针对现有安装包捆绑安装检测方案普适性差的问题,本文提出了基于软件安装信息和机器学习技术的软件捆绑检测方法。首先采集软件安装过程中的行为信息,以及释放的文件信息;然后使用带注意力机制的LSTM(长短期记忆神经网络)模型检测恶意程序捆绑;最后结合软件安装目录和软件家族分类方法实现良性软件捆绑检测。实验结果表明,该方法能够有效检测出存在捆绑行为的软件安装包。b)针对目前缺乏高效、准确的第三方漏洞或恶意模块复用检测方法的问题,本文提出了基于哈希比对和函数相似性分析的模块复用检测方法。通过哈希比对实现文件复用检测;通过跨平台、跨编译器的二进制函数相似性分析实现源代码复用检测。实验结果表明,该方案能够有效发现软件二进制程序中的模块复用问题。c)针对植入型恶意代码隐蔽性强、动态分析覆盖率有限、深度检测耗时巨大的问题,本文提出了基于差分思想的植入型恶意代码检测方案。首先对软件进行家族分类,之后对同家族软件进行谱系分析,进而使用深度神经网络DNN判断相邻版本软件间的差异性,最后对目标程序中出现的差异代码进行深度恶意性分析。实验结果表明,本文的软件家族分类和谱系分析方案快速有效,提高了整体的恶意代码筛查效率。