开源组件包的安全检测方法及装置与流程

文档序号:34111175发布日期:2023-05-10 22:15阅读:34来源:国知局
开源组件包的安全检测方法及装置与流程

本技术涉及网络安全,尤其涉及一种开源组件包的安全检测方法及装置。


背景技术:

1、近年来,越来越多的软件产品依赖于免费的开源组件包,软件供应链越来越复杂,导致软件供应链安全问题日益严重,攻击者利用在软件交付环节将包含恶意代码的开源组件包注入到包管理器(python包管理器、node.js包管理器等),在用户使用环节对软件用户实施攻击,给用户的隐私和财产安全造成了巨大威胁。

2、恶意包引发的安全风险可能在安装阶段发起攻击,攻击代码从网络段远程执行,无本地文件存留;或者恶意包攻击者在安装阶段隐藏自己不发起攻击,而是将恶意代码隐藏在开源组件包中,软件开发人员在编写产品源代码时调用各种开源组件包实现一些功能模块,则可能调用到攻击者精心伪装的恶意包,并且在软件开发人员发布产品时将源代码和组件包一起打包发布,打包发布的产品通过扫描软件扫描时,恶意包注入后门到开发产品以躲避杀毒软件扫描。

3、传统代码安全性检测框架是通过攻击行为发生过程中检测到异常行为或攻击发生后根据攻击后果回溯检测攻击行为,均属于被动防守,当面对低成本的脚本类软件供应链攻击时,应急压力大。而且现有代码安全性检测框架基于本地源文件的终端检测和云检测,但是包管理器的攻击者上传攻击代码,攻击代码在用户使用环节之前发起攻击,并打包安装代码存在终端开发环境,攻击者可以轻易在开发环境中植入后门或安装阶段窃取信息通过网络通道传输到指定网络地址。


技术实现思路

1、本技术实施例提供了一种开源组件包的安全检测方法及装置,通过先获取在线开源组件包,并对开源组件包的安全性进行评估,使得恶意代码检测能力前移,构建安全开源仓库,有效抑制开源化对研发环境的安全影响,降低被攻击的可能性。

2、第一方面,提供一种开源组件包的安全检测方法,该方法包括:获取在线开源组件包,并对所述在线开源组件包进行特征提取,获取所述在线开源组件包的特征信息;针对所述开源组件包的特征信息进行安全检测,确定所述在线开源组件包是否为合法包;若所述在线开源组件包中的第一组件包为合法包,则将所述第一组件包同步到本地开源镜像仓,所述本地开源镜像仓用于向用户提供调用的开源组件包。

3、在本技术实施例中,在将在线开源组件包同步到本地开源镜像仓之前,先对在线开源组件包进行安全检测,确定在线开源组件包为合法包的情况下,将其同步到本地开源镜像仓,使得恶意代码检测能力前移,构建安全开源仓库,有效抑制开源化对研发环境的安全影响,降低开源组件包使用者被攻击的可能性。

4、在一个可选的示例中,获取在线开源组件包的特征信息包括获取在线开源组件包的创建信息;针对开源组件包的创建信息进行安全检测,确定在线开源组件包是否为合法包,包括:将在线开源组件包的创建信息与规则数据库中的多条规则进行匹配,根据匹配程度确定在线开源组件包是否为合法包。

5、在一个可选的示例中,该方法还包括:若确定在线开源组件包中的第二组件包为恶意包,则将第二组件包存储到增量恶意包数据库。

6、在一个可选的示例中,针对开源组件包的特征信息进行安全检测,确定在线开源组件包是否为合法包,包括:将在线开源组件包的特征信息与规则数据库中的多条规则进行匹配,根据匹配程度确定在线开源组件包是否为合法包。

7、在本技术实施例中,采用在线开源组件包的特征信息与规则数据库中的多条规则进行匹配,根据两者的匹配程度确定在线开源组件包是否为合法包。这个过程中,生成规则数据库是一个较为直接和简明的步骤,进而可以降低安全检测过程中的处理资源消耗,提升安全检测效率。

8、在一个可选的示例中,该方法还包括:获取本地开源组件包中的本地恶意包,并对本地恶意包进行特征提取,获取本地恶意包的恶意特征;获取本地恶意源代码,并对本地恶意源代码进行特征提取,获取本地恶意源代码的恶意代码特征;将本地恶意包的恶意特征和本地恶意源码的恶意代码特征作为规则数据库中的恶意特征规则。

9、在一个可选的示例中,获取在线开源组件包的特征信息还包括获取在线开源组件包的创建信息;该方法还包括:获取本地恶意包的创建信息;从外部数据库中获取黑客信息;将本地恶意包的创建信息和黑客信息作为规则数据库中的恶意信息规则;

10、针对开源组件包的特征信息进行安全检测还包括:将在线开源组件包的创建信息与规则数据库中的恶意信息规则进行匹配。

11、在一个可选的示例中,针对开源组件包的特征信息进行安全检测,确定在线开源组件包是否为合法包,包括:将在线开源组件包的特征信息输入人工智能ai标注模型,采用ai标注模型对在线开源组件包进行推理,确定在线开源组件包是否为合法包,其中不为合法包的在线开源包为恶意包。

12、在本技术实施例中,采用ai标注模型对在线开源组件包进行安全检测,该过程由于ai标注模型为机器学习模型,经过迭代训练获得,因此ai标注模型具有确定性,那么将在线开源组件包的特征信息输入ai标注模型获得的推理结果,能够保证结果的准确性。

13、在一个可选的示例中,特征信息包括风险函数特征、api调用序列特征和操作码序列特征,将在线开源组件包的特征信息输入ai标注模型,采用ai标注模型对在线开源组件包进行推理,确定在线开源组件包是否为合法包,包括:将在线开源组件包的特征信息分别输入三个第一分类器,获得三个第一分类器中每个第一分类器的分类结果;使用绝对多数投票法对每个第一分类器的分类结果进行投票获得投票结果,根据投票结果确定三个第一分类器的分类结果中的标签预测结果,标签预测结果用于指示在线开源组件包是否为合法包,其中不为合法包的在线开源包为恶意包。

14、在一个可选的示例中,该方法还包括:获取自适应提升算法分类器,自适应提升算法分类器中包括n个对应不同权值的第二分类器,n个对应不同权值的第二分类器根据本地恶意包的多个恶意特征训练获得;对本地恶意包的源代码进行特征提取,获得本地恶意包的特征信息;将本地恶意包的特征信息分别输入自适应提升算法分类器,训练获得三个第一分类器作为ai标注模型。

15、在一个可选的示例中,针对开源组件包的特征信息进行安全检测,确定在线开源组件包是否为合法包,包括:将在线开源组件包的特征信息输入增量ai模型,采用增量ai模型对在线开源组件包进行推理,确定在线开源组件包是否为合法包,并确定不为合法包的在线开源组件包为疑似恶意包。

16、在本技术实施例中,采用增量ai模型对在线开源组件包进行安全检测,该过程由于增量ai模型的训练过程中,同时考虑了本地恶意包和本地合法包的特征信息,使得增量ai模型的推理结果考虑更全面,将不为合法包的在线开源组件包确定为疑似恶意包,并进行再判断,可以进一步提升安全检测结果的准确性,减少误判的概率。

17、在一个可选的示例中,特征信息包括风险函数特征、api调用序列特征和操作码序列特征,方法还包括:对本地开源组件包中的本地恶意包和本地合法包进行特征提取,获取本地恶意包的特征信息和本地合法包的特征信息;将本地恶意包的特征信息和本地合法包的特征信息作为初始支持向量机svm算法分类器的输入进行迭代,直到确定初始svm算法分类器的预测准确率大于第一预设阈值,获得最终svm算法分类器作为增量ai模型。

18、在一个可选的示例中,在确定不为合法包的在线开源组件包为疑似恶意包之后,方法还包括:对所述疑似恶意包进行信誉评估,获得所述疑似恶意包的信誉评分,并根据所述疑似恶意包的信誉评分确定所述疑似恶意包是否为合法包,其中不为合法包的所述疑似恶意包为恶意包,计算获得疑似恶意包的信誉评分,并根据疑似恶意包的信誉评分确定疑似恶意包是否为合法包。

19、在一个可选的示例中,信誉评估包括以下一项或多项:疑似恶意包的依赖包评估,疑似恶意包的包名评估,疑似恶意包的结构评估,疑似恶意包的作者信誉评估,疑似恶意包的包信誉评估。

20、在一个可选的示例中,该方法还包括:根据增量恶意包数据库中的恶意包获取增量恶意特征规则和/或增量信息规则;根据增量恶意特征规则和/或增量信息规则更新规则数据库。

21、在一个可选的示例中,该方法还包括:对目标恶意包进行特征提取,获得目标恶意包的特征信息,目标恶意包为增量恶意包数据库中的部分或全部恶意包;将目标恶意包的特征信息作为增量ai模型的输入进行迭代,获得更新后的增量ai模型。

22、第二方面,提供一种安全检测装置,该装置包括:获取单元,用于获取在线开源组件包,并对在线开源组件包进行特征提取,获取在线开源组件包的特征信息;处理单元,用于针对开源组件包的特征信息进行安全检测,确定在线开源组件包是否为合法包;存储单元,用于若在线开源组件包中的第一组件包为合法包,则将第一组件包同步到本地开源镜像仓,本地开源镜像仓用于向用户提供调用的开源组件包。

23、在一个可选的示例中,存储单元还用于:若确定在线开源组件包中的第二组件包为恶意包,则将第二组件包存储到增量恶意包数据库。

24、在一个可选的示例中,处理单元具体用于:将在线开源组件包的特征信息与规则数据库中的多条规则进行匹配,根据匹配程度确定在线开源组件包是否为合法包。

25、在一个可选的示例中,处理单元还用于:获取本地开源组件包中的本地恶意包,并对本地恶意包进行特征提取,获取本地恶意包的恶意特征;获取本地恶意源代码,并对本地恶意源代码进行特征提取,获取本地恶意源代码的恶意代码特征;将本地恶意包的恶意特征和本地恶意源码的恶意代码特征作为规则数据库中的恶意特征规则。

26、在一个可选的示例中,获取在线开源组件包的特征信息还包括获取在线开源组件包的创建信息;处理单元还用于:获取本地恶意包的创建信息;从外部数据库中获取黑客信息;将本地恶意包的创建信息和黑客信息作为规则数据库中的恶意信息规则;针对开源组件包的特征信息进行安全检测还包括:将在线开源组件包的创建信息与规则数据库中的恶意信息规则进行匹配。

27、在一个可选的示例中,处理单元还用于:将在线开源组件包的特征信息输入人工智能ai标注模型,采用ai标注模型对在线开源组件包进行推理,确定在线开源组件包是否为合法包,其中不为合法包的在线开源包为恶意包。

28、在一个可选的示例中,特征信息包括风险函数特征、api调用序列特征和操作码序列特征,将在线开源组件包的特征信息输入ai标注模型,采用ai标注模型对在线开源组件包进行推理,确定在线开源组件包是否为合法包,包括:将在线开源组件包的特征信息分别输入三个第一分类器,获得三个第一分类器中每个第一分类器的分类结果;使用绝对多数投票法对每个第一分类器的分类结果进行投票获得投票结果,根据投票结果确定三个第一分类器的分类结果中的标签预测结果,标签预测结果用于指示在线开源组件包是否为合法包,其中不为合法包的在线开源包为恶意包。

29、在一个可选的示例中,处理单元还用于:获取自适应提升算法分类器,自适应提升算法分类器中包括n个对应不同权值的第二分类器,n个对应不同权值的第二分类器根据本地恶意包的多个恶意特征训练获得;对本地恶意包的源代码进行特征提取,获得本地恶意包的特征信息;将本地恶意包的特征信息分别输入自适应提升算法分类器,训练获得三个第一分类器作为ai标注模型。

30、在一个可选的示例中,处理单元具体用于:将在线开源组件包的特征信息输入增量ai模型,采用增量ai模型对在线开源组件包进行推理,确定在线开源组件包是否为合法包,并确定不为合法包的在线开源组件包为疑似恶意包。

31、在一个可选的示例中,特征信息包括风险函数特征、api调用序列特征和操作码序列特征,处理单元还用于:对本地开源组件包中的本地恶意包和本地合法包进行特征提取,获取本地恶意包的特征信息和本地合法包的特征信息;将本地恶意包的特征信息和本地合法包的特征信息作为初始支持向量机svm算法分类器的输入进行迭代,直到确定初始svm算法分类器的预测准确率大于第一预设阈值,获得最终svm算法分类器作为增量ai模型。

32、在一个可选的示例中,在确定不为合法包的在线开源组件包为疑似恶意包之后,处理单元还用于:对疑似恶意包进行信誉评估,获得疑似恶意包的信誉评分,并根据疑似恶意包的信誉评分确定疑似恶意包是否为合法包,其中不为合法包的疑似恶意包为恶意包。

33、在一个可选的示例中,信誉评估包括以下一项或多项:疑似恶意包的依赖包评估,疑似恶意包的包名评估,疑似恶意包的结构评估,疑似恶意包的作者信誉评估,疑似恶意包的包信誉评估。

34、在一个可选的示例中,该装置还包括更新单元,用于:根据增量恶意包数据库中的恶意包获取增量恶意特征规则和/或增量信息规则;根据增量恶意特征规则和/或增量信息规则更新规则数据库。

35、在一个可选的示例中,该装置还包括封信单元,用于:对目标恶意包进行特征提取,获得目标恶意包的特征信息,目标恶意包为增量恶意包数据库中的部分或全部恶意包;将目标恶意包的特征信息作为增量ai模型的输入进行迭代,获得更新后的增量ai模型。

36、第三方面,本技术实施例提供一种通信装置,该装置包括通信接口和至少一个处理器,该通信接口用于该装置与其它设备进行通信。示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。至少一个处理器用于调用一组程序、指令或数据,执行上述第一方面或第二方面描述的方法。该装置还可以包括存储器,用于存储处理器调用的程序、指令或数据。存储器与至少一个处理器耦合,该至少一个处理器执行该存储器中存储的、指令或数据时,可以实现上述第一方面描述的方法。

37、第四方面,本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行如第一方面或第一方面中任一种可能的实现方式中的方法。

38、第五方面,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第一方面或第一方面中任一种可能的实现方式中的方法,该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。

39、在一个可能的示例中,该芯片系统还包括收发器。

40、第六方面,本技术实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行如第一方面或第一方面中任一种可能的实现方式中的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1