CN114637993A - 恶意代码包的检测方法、装置、计算机设备和存储介质 - Google Patents

恶意代码包的检测方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN114637993A
CN114637993A CN202210287634.4A CN202210287634A CN114637993A CN 114637993 A CN114637993 A CN 114637993A CN 202210287634 A CN202210287634 A CN 202210287634A CN 114637993 A CN114637993 A CN 114637993A
Authority
CN
China
Prior art keywords
score
detected
code
code packet
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210287634.4A
Other languages
English (en)
Inventor
叶敏
郭慧军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Yigeyun Technology Co ltd
Original Assignee
Hangzhou Yigeyun Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Yigeyun Technology Co ltd filed Critical Hangzhou Yigeyun Technology Co ltd
Priority to CN202210287634.4A priority Critical patent/CN114637993A/zh
Publication of CN114637993A publication Critical patent/CN114637993A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Abstract

本申请涉及一种恶意代码包的检测方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:根据待检测代码包的属性信息以及开发者的特征信息;计算待检测代码包的包元素维度的第一分数、待检测代码包在开发者信誉维度的第二分数、待检测代码包在代码静态检测维度的第三分数、待检测代码包在代码动态检测维度的第四分数,继而加权计算,得到待检测代码包的目标恶意度评分;如果目标恶意度评分大于或等于预设恶意阈值,则确定待检测代码包为恶意代码包。通过采用上述多个维度的评价分数进行加权计算后得到目标恶意度评分去判断待检测代码包的恶意程度,可以全面地检测代码包中的风险信息,保证代码包恶意检测的准确度。

Description

恶意代码包的检测方法、装置、计算机设备和存储介质
技术领域
本申请涉及网络安全技术领域,特别是涉及一种恶意代码包的检测方法、装置、计算机设备和存储介质。
背景技术
随着互联网领域的发展,出现了存储有多个代码包的代码仓库,如,PyPi(PythonPackageIndex)仓库,该仓库是Python的Packag索引(官方索引),也是python程序员常使用的寻找资源包的仓库。很多开源镜像站与该PyPi官方仓库同步。因此,该种仓库的特点是所有人可以在PyPi中下载别人上传的代码包,所有人也可以在PyPi官方仓库中上传自己的代码包供其他使用者进行下载。目前PyPi已经包含大量projects(项目)、文件以及开发者。类似的,还出现了npm(Node Package Manager)仓库,通过npm仓库,用户可以从npm服务器下载别人共享的第三方包本地,用户也可以将自己的包上传到npm供别人使用。
但是,由于任何人都可以在PyPi仓库和npm仓库上传代码包,同样的,恶意攻击者也可以上传恶意包,则代码包仓库存在安全风险。当使用者下载恶意包并使用后,该恶意包就会在使用者(受害者)的电脑中运行其中的恶意代码,以实现攻击者的恶意目的。因此,需要对公开的代码包仓库中的代码包进行恶意检测。但是,现有的恶意代码包的检测方法一般是依赖于既定检测规则的静态检测,在检测规则不准确时,对代码包的检测也不准确,导致出现漏检或误检。
发明内容
基于此,有必要针对上述技术问题,提供一种能够准确检测恶意代码包的恶意代码包的检测方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种恶意代码包的检测方法。所述方法包括:
获取待检测代码包的属性信息以及开发者的特征信息;
根据所述待检测代码包的属性信息,计算所述待检测代码包的包元素维度的第一分数;
通过预设开发者信誉确定算法,根据所述待检测代码包的开发者的特征信息,计算所述待检测代码包在开发者信誉维度的第二分数;
根据预设恶意样本检测规则以及预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数;
根据所述待检测代码包对应的执行结果,计算所述待检测代码包在代码动态检测维度的第四分数;
通过预设加权算法,根据所述第一分数、所述第二分数、所述第三分数以及所述第四分数,计算所述待检测代码包的目标恶意度评分;
如果所述目标恶意度评分大于或等于预设恶意阈值,则确定所述待检测代码包为恶意代码包。
在其中一个实施例中,所述属性信息包括包名称以及开发者标识信息;
所述根据所述待检测代码包的属性信息,计算所述待检测代码包的包元素维度的第一分数,包括:
通过预设编辑距离计算算法,计算所述待检测代码包的包名称与满足预设下载量条件的正常代码包的包名称之间的编辑距离;
根据所述编辑距离确定包名相似度分数;
根据所述开发者标识信息确定开发者恶意度分数;
通过预设包属性评分算法,根据所述属性信息计算包属性恶意分数;
对所述包名相似度分数、所述开发者恶意度分数以及所述包属性恶意分数进行加权计算,确定所述待检测代码包在包元素维度的第一分数。
在其中一个实施例中,所述根据预设恶意样本检测规则以及预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数,包括:
根据预设恶意样本检测规则对所述待检测代码包进行筛选,确定所述待检测代码包中包含的恶意操作的数量;
根据所述待检测代码包中包含的恶意操作的数量及所述预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数。
在其中一个实施例中,所述根据所述待检测代码包对应的执行结果,计算所述待检测代码包在代码动态检测维度的第四分数,包括:
在预设沙箱中执行所述待检测代码包,生成执行结果,所述执行结果包括调用文件列表、执行进程列表以及网络通信列表;
对所述执行结果中的所述调用文件列表、执行进程列表以及网络通信列表进行筛选,确定满足预设高危操作条件的表项的数量;
根据所述满足预设高危操作条件的表项的数量,计算所述待检测代码包在代码动态检测维度的第四分数。
在其中一个实施例中,所述方法还包括:
获取所述待检测代码包中包含的多个IOC威胁情报指标;
针对于每一所述IOC,对目标数量的包含所述目标IOC的代码包分别对应的多个目标恶意度评分,进行均值处理,确定所述目标IOC的初始评价分数;
在所述待检测代码包中包含的多个目标IOC中,将最高的所述初始评价分数作为所述待检测代码包的目标IOC评价分数。
在其中一个实施例中,所述方法还包括:
通过将待检测代码包的待输入分数输入至预先训练的评估模型,确定所述待检测代码包的恶意度等级,所述待输入分数包括所述第一分数、所述第二分数、所述第三分数、所述第四分数、所述目标IOC评价分数中的一种或多种。
在其中一个实施例中,所述获取所述待检测代码包中包含的多个IOC,包括:
剔除所述多个IOC中符合预设IOC白名单条件的IOC,得到处理后的多个IOC。
第二方面,本申请还提供了一种恶意代码包的检测装置。所述装置包括:
获取模块,用于获取待检测代码包的属性信息以及开发者的特征信息;
第一分数计算模块,用于根据所述待检测代码包的属性信息,计算所述待检测代码包的包元素维度的第一分数;
第二分数计算模块,用于通过预设开发者信誉确定算法,根据所述待检测代码包的开发者的特征信息,计算所述待检测代码包在开发者信誉维度的第二分数;
第三分数计算模块,用于根据预设恶意样本检测规则以及预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数;
第四分数计算模块,用于根据所述待检测代码包对应的执行结果,计算所述待检测代码包在代码动态检测维度的第四分数;
目标恶意度评分计算模块,用于通过预设加权算法,根据所述第一分数、所述第二分数、所述第三分数以及所述第四分数,计算所述待检测代码包的目标恶意度评分;
确定模块,用于如果所述目标恶意度评分大于或等于预设恶意阈值,则确定所述待检测代码包为恶意代码包。
在其中一个实施例中,所述属性信息包括包名称以及开发者标识信息;
所述第一分数计算模块,具体用于:
通过预设编辑距离计算算法,计算所述待检测代码包的包名称与满足预设下载量条件的正常代码包的包名称之间的编辑距离;
根据所述编辑距离确定包名相似度分数;
根据所述开发者标识信息确定开发者恶意度分数;
通过预设包属性评分算法,根据所述属性信息计算包属性恶意分数;
对所述包名相似度分数、所述开发者恶意度分数以及所述包属性恶意分数进行加权计算,确定所述待检测代码包在包元素维度的第一分数。
在其中一个实施例中,所述第三分数计算模块,具体用于:
根据预设恶意样本检测规则对所述待检测代码包进行筛选,确定所述待检测代码包中包含的恶意操作的数量;
根据所述待检测代码包中包含的恶意操作的数量及所述预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数。
在其中一个实施例中,所述第四分数计算模块,具体用于:
在预设沙箱中执行所述待检测代码包,生成执行结果,所述执行结果包括调用文件列表、执行进程列表以及网络通信列表;
对所述执行结果中的所述调用文件列表、执行进程列表以及网络通信列表进行筛选,确定满足预设高危操作条件的表项的数量;
根据所述满足预设高危操作条件的表项的数量,计算所述待检测代码包在代码动态检测维度的第四分数。
在其中一个实施例中,所述装置还包括:
目标IOC评价分数确定模块,用于获取所述待检测代码包中包含的多个IOC威胁情报指标;针对于每一所述IOC,对目标数量的包含所述目标IOC的代码包分别对应的多个目标恶意度评分,进行均值处理,确定所述目标IOC的初始评价分数;在所述待检测代码包中包含的多个目标IOC中,将最高的所述初始评价分数作为所述待检测代码包的目标IOC评价分数。
在其中一个实施例中,所述装置还包括:
模型使用模块,用于通过将待检测代码包的待输入分数输入至预先训练的评估模型,确定所述待检测代码包的恶意度等级,所述待输入分数包括所述第一分数、所述第二分数、所述第三分数、所述第四分数、所述目标IOC评价分数中的一种或多种。
在其中一个实施例中,目标IOC评价分数确定模块,具体用于剔除所述多个IOC中符合预设IOC白名单条件的IOC,得到处理后的多个IOC。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待检测代码包的属性信息以及开发者的特征信息;
根据所述待检测代码包的属性信息,计算所述待检测代码包的包元素维度的第一分数;
通过预设开发者信誉确定算法,根据所述待检测代码包的开发者的特征信息,计算所述待检测代码包在开发者信誉维度的第二分数;
根据预设恶意样本检测规则以及预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数;
根据所述待检测代码包对应的执行结果,计算所述待检测代码包在代码动态检测维度的第四分数;
通过预设加权算法,根据所述第一分数、所述第二分数、所述第三分数以及所述第四分数,计算所述待检测代码包的目标恶意度评分;
如果所述目标恶意度评分大于或等于预设恶意阈值,则确定所述待检测代码包为恶意代码包。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待检测代码包的属性信息以及开发者的特征信息;
根据所述待检测代码包的属性信息,计算所述待检测代码包的包元素维度的第一分数;
通过预设开发者信誉确定算法,根据所述待检测代码包的开发者的特征信息,计算所述待检测代码包在开发者信誉维度的第二分数;
根据预设恶意样本检测规则以及预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数;
根据所述待检测代码包对应的执行结果,计算所述待检测代码包在代码动态检测维度的第四分数;
通过预设加权算法,根据所述第一分数、所述第二分数、所述第三分数以及所述第四分数,计算所述待检测代码包的目标恶意度评分;
如果所述目标恶意度评分大于或等于预设恶意阈值,则确定所述待检测代码包为恶意代码包。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取待检测代码包的属性信息以及开发者的特征信息;
根据所述待检测代码包的属性信息,计算所述待检测代码包的包元素维度的第一分数;
通过预设开发者信誉确定算法,根据所述待检测代码包的开发者的特征信息,计算所述待检测代码包在开发者信誉维度的第二分数;
根据预设恶意样本检测规则以及预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数;
根据所述待检测代码包对应的执行结果,计算所述待检测代码包在代码动态检测维度的第四分数;
通过预设加权算法,根据所述第一分数、所述第二分数、所述第三分数以及所述第四分数,计算所述待检测代码包的目标恶意度评分;
如果所述目标恶意度评分大于或等于预设恶意阈值,则确定所述待检测代码包为恶意代码包。
上述恶意代码包的检测方法、装置、计算机设备、存储介质和计算机程序产品,所述方法包括:根据待检测代码包的属性信息以及开发者的特征信息;计算待检测代码包的包元素维度的第一分数、待检测代码包在开发者信誉维度的第二分数、待检测代码包在代码静态检测维度的第三分数、待检测代码包在代码动态检测维度的第四分数,继而加权计算,得到待检测代码包的目标恶意度评分;如果目标恶意度评分大于或等于预设恶意阈值,则确定待检测代码包为恶意代码包。通过采用上述多个维度的评价分数进行加权计算后得到目标恶意度评分去判断待检测代码包的恶意程度,可以全面地检测代码包中的风险信息,保证代码包恶意检测的准确度,实现对恶意包的动态检测。
附图说明
图1为一个实施例中恶意代码包的检测方法的流程示意图;
图2为一个实施例中第一分数计算步骤的流程示意图;
图3为一个实施例中第三分数计算步骤的流程示意图;
图4为一个实施例中第四分数计算步骤的流程示意图;
图5为一个实施例中目标IOC评价分数计算步骤的流程示意图;
图6为一个实施例中恶意代码包的检测装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种恶意代码包的检测方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现,上述终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本实施例中,该恶意代码包的检测方法包括以下步骤:
步骤102,获取待检测代码包的属性信息以及开发者的特征信息。
其中,待检测代码包可以是其他用户已经上传到代码仓库中,已经供用户进行下载的代码包,或者是代码仓库实时接收到的用户上传的代码包。
具体地,响应于用户的代码包选中操作,终端确定待检测代码包。这样,终端需要获取该待检测代码包的属性信息以及开发者的特征信息。其中,待检测代码包的属性信息包括待检测代码包的包名称、下载量信息、开发者标识信息、该待检测代码包的创建时间信息、该待检测代码包的版本信息以及更新频率中的一种或多种。下载量信息表示该待检测代码包被多个用户下载的次数信息。开发者的特征信息是创建该待检测代码包的开发者的相关特征信息,包括该开发者在该检测代码包所属于的代码仓库中的注册时长信息、该开发者维护的代码包数量、该开发者上传的代码包的总下载量、该开发者维护代码包的平均时长、该开发者的活跃时长以及该开发者的合作者的数量中的一种或多种。
步骤104,根据待检测代码包的属性信息,计算待检测代码包的包元素维度的第一分数。
具体地,终端可以根据待检测代码包中的多种属性信息,分别计算该待检测代码包的各种属性信息对应的评价分数,这样,终端可以多个评价分数进行加权计算,确定该待检测代码包在包元素维度的第一分数(attri_score)。其中,每一种属性信息是待检测代码包的一种包元素。
可选地,各种属性信息对应的评价分数的权重可以是根据实际应用场景确定的,也可以响应于用户在终端上的权重配置操作确定的。
在一个示例中,属性信息可以包括包名称信息,针对于包名称属性信息对应的评价分数,终端可以通过预设的相似度算法进行计算。
步骤106,通过预设开发者信誉确定算法,根据待检测代码包的开发者的特征信息,计算待检测代码包在开发者信誉维度的第二分数。
具体地,开发者信誉维度表示开发该待检测代码包的开发者的恶意程度。终端确定该待检测代码包的开发者,并且获取该开发者的特征信息,根据该开发者的一种或多种特征信息以及预先为各种特征信息配置的权重,进行计算,确定该待检测代码包在开发者信誉维度的第二分数(author_score)。
在一个示例中,终端可以获取待检测代码包的开发者的特征信息,以开发者做维度,获取每个开发者的多种特征信息,针对于每一种特征信息,开发者进行各维度独立打分,得到第i个特征信息对应的评价分数Scorei,第i个特征信息对应的权重可以是Weightsi,那么终端可以通过以下公式计算待检测代码包在开发者信誉维度的第二分数:
Figure BDA0003560501180000091
可选地,该开发者在该检测代码包所属于的代码仓库中的注册时长信息可以与恶意度成反比,注册时长较短的开发者,注册时长维度的恶意度较高;该开发者的合作者的数量可以与恶意度成反比,合作者多的开发者,恶意度较低,合作者维度恶意分较低;该开发者上传的代码包的总下载量可以与恶意度成反比,例如包下载量多的开发者,恶意度也较低,其下载量维度恶意分较低。
步骤108,根据预设恶意样本检测规则以及预设恶意操作权重集,计算待检测代码包在代码静态检测维度的第三分数。
具体地,预设恶意样本检测规则包括样本恶意代码包中的多个类别的多种恶意操作,可以包括网络行为类别、命令执行类别等等。终端根据预设恶意样本检测规则对待检测代码包中包含的多种操作进行检测,确定该待检测代码包包含的恶意操作的类别以及数量,这样,终端可以根据待检测代码包的恶意操作的类别、数量以及预先配置的各种恶意操作的恶意权重,计算该待检测代码包在代码静态检测维度的第三分数。
步骤110,根据待检测代码包对应的执行结果,计算待检测代码包在代码动态检测维度的第四分数。
具体地,终端可以通过python执行该待检测代码包,获得该检测代码包的执行结果。该执行结果可以包括待检测代码包在执行过程中调用文件列表、执行进程列表以及网络通信列表,这样,终端可以对上述调用文件列表、执行进程列表以及网络通信列表进行筛选,确定其中包含的高危文件、高危进程以及高危通信的数量,并根据包含的高危文件、高危进程以及高危通信的数量,计算该待检测代码包在代码动态检测维度的第四分数。
步骤112,通过预设加权算法,根据第一分数、第二分数、第三分数以及第四分数,计算待检测代码包的目标恶意度评分。
具体地,终端可以根据实际应用场景确定第一分数、第二分数、第三分数以及第四分数的权重,并根据各个分数的权重对各个分数进行加权计算,得到该待检测代码包的目标恶意度评分(malscore)。
可选地,终端可以根据历史数据确定第一分数、第二分数、第三分数以及第四分数的权重。具体地,历史数据可以包括多个样本恶意代码包、非恶意代码包及其各个维度的第一分数、第二分数、第三分数以及第四分数。
步骤114,如果目标恶意度评分大于或等于预设恶意阈值,则确定待检测代码包为恶意代码包。
具体地,终端可以根据实际应用场景确定代码包的恶意检测阈值,即预设恶意阈值。终端将计算得到的该检测代码包的初始恶意度分数与预设恶意阈值比较。如果目标恶意度评分大于或等于预设恶意阈值,则确定待检测代码包为恶意代码包。如果目标恶意度评分小于预设恶意阈值,则确定待检测代码包为非恶意代码包。
上述恶意代码包的检测方法中,根据待检测代码包的属性信息以及开发者的特征信息;计算待检测代码包的包元素维度的第一分数、待检测代码包在开发者信誉维度的第二分数、待检测代码包在代码静态检测维度的第三分数、待检测代码包在代码动态检测维度的第四分数,继而加权计算,得到待检测代码包的目标恶意度评分;如果目标恶意度评分大于或等于预设恶意阈值,则确定待检测代码包为恶意代码包。通过采用上述多个维度的评价分数进行加权计算后得到目标恶意度评分去判断待检测代码包的恶意程度,可以全面地检测代码包中的风险信息,保证代码包恶意检测的准确度,实现对恶意包的动态检测。
在一个实施例中,属性信息包括包名称以及开发者标识信息。包名称是开发者为代码包设置的名称信息,用于与其他代码包进行区分,也可以是开发者在将代码包上传至代码仓库时随机生成的。
相应地,如图2所示,步骤104“根据待检测代码包的属性信息,计算待检测代码包的包元素维度的第一分数”的具体处理过程,包括:
步骤202,通过预设编辑距离计算算法,计算待检测代码包的包名称与满足预设下载量条件的正常代码包的包名称之间的编辑距离。
具体地,预设编辑距离计算算法可以是Edit Distance算法,终端确定满足预设下载量条件的正常代码包的过程可以是:终端根据各个代码包的下载量,在代码仓库中包含的所有代码包中进行筛选,确定下载量最多的目标数量的代码包的正常包名称。针对每一正常包名称,终端根据预设编辑距离计算算法,计算待检测代码包的包名称与该正常包名称之间的编辑距离。
步骤204,根据编辑距离确定包名相似度分数。
具体地,终端可以根据待检测代码包的包名称的字符串长度、该正常包名称的字符串长度以及该编辑距离进行计算,确定包名相似度分数。
这样,终端可以通过以下公式计算包名相似度分数(相似度)Similarity:
Similarity=(Max(x,y)-Levenshtein)/Max(x,y),
其中,x可以是待检测代码包的包名称的字符串长度;y可以是该正常包名称的字符串长度;Max(x,y)为x和y中长度最大的值;Levenshtein表示x与y之间的编辑距离。
在一个示例中,待检测代码包的包名称可以是requests,该正常包名称可以是request。终端通过确定两个包名称之间对应的两个字符串之间,由一个字符串转成另一个所需的最少编辑次数,确定两个包名称之前的编辑距离为1(增加一个字符s)。那么终端可以通过以下公式计算包名相似度分数(相似度)Similarity:
Similarity=(Max(x,y)-Levenshtein)/Max(x,y),
其中,x可以是待检测代码包的包名称的字符串长度8;y可以是该正常包名称的字符串长度7;Max(x,y)为x和y中长度最大的值8;Levenshtein表示x与y之间的编辑距离1。
这样,待检测代码包的包名称requests与该正常包名称request的编辑距离为1,该待检测代码包的相似度分数可以是(8-1)/8=0.875。
在一个示例中,终端可以把包名称与预先收集的下载量最高的目标数量的正常包名进行相似度匹配,确认该待检测代码包是否通过相似包名进行欺骗钓鱼。编辑距离表示的含义可以是两个字符串之间,由一个字符串转成另一个所需的最少编辑次数,编该辑操作包括字符替换、字符插入、字符删除。当编辑距离越小时,两个字符串的相似度就越大。
可选地,终端根据实际应用场景确定包名相似度分数的权重可以是60%。
步骤206,根据开发者标识信息确定开发者恶意度分数。
具体地,终端可以根据历史数据预先确定恶意开发者集合。终端在恶意开发者集合中进行查询。如果能够查询到该待检测代码包的开发者标识信息,则确定该开发者恶意度分数为1;如果无法查询到该待检测代码包的开发者标识信息,则确定该开发者恶意度分数为0。
可选地,终端根据实际应用场景确定开发者恶意度分数的权重可以是20%。
步骤208,通过预设包属性评分算法,根据属性信息计算包属性恶意分数。
具体地,预设包属性评分算法可以是加权算法,待检测代码包的属性信息包括包名称、下载量信息、开发者标识信息、该待检测代码包的创建时间信息、该待检测代码包的版本信息以及更新频率。终端可以针对于上述每一种属性信息,分别根据该属性信息对应的实际参数值进行评分,并根据各个属性信息的评分以及各个属性信息对应权重,通过预设包属性评分算法,计算包属性恶意分数。
可选地,终端根据实际应用场景确定开发者恶意度分数的权重可以是20%。
步骤210,对包名相似度分数、开发者恶意度分数以及包属性恶意分数进行加权计算,确定待检测代码包在包元素维度的第一分数。
本实施例中,通过待检测代码包的属性信息进行多次加权计算,得到待检测代码包在包元素维度的第一分数,可以从代码包的属性方面,准确地评价该代码包的恶意度。
在一个实施例中,如图3所示,步骤108“根据预设恶意样本检测规则以及预设恶意操作权重集,计算待检测代码包在代码静态检测维度的第三分数”的具体处理过程,包括:
步骤302,根据预设恶意样本检测规则对待检测代码包进行筛选,确定待检测代码包中包含的恶意操作的数量。
具体地,待检测代码包中代码中包含多个操作。终端获取预设恶意样本检测规则,该规则中包括预先确定的多种类别的多个恶意操作,例如网络行为类、命令执行类,多个恶意操作包括命令执行类别的反弹shell操作、网络行为类别的长字符串解密操作、命令执行类别的长字符串解密操作、平均值类别的对网络通信后response调用exec平均值操作、代码混淆操作、敏感路径操作、敏感命令操作以及敏感信息字符操作等等。
在一个示例中,终端根据预设恶意样本检测规则对待检测代码包中包含的多个操作进行筛选,提取多个恶意操作,并确定待检测代码包中包含的恶意操作的数量以及类别。
步骤304,根据待检测代码包中包含的恶意操作的数量及预设恶意操作权重集,计算待检测代码包在代码静态检测维度的第三分数。
其中,每一个类别的恶意操作的恶意分数(恶意权重)不同,每一个类别中包含的多个恶意操作的恶意分数也不同,终端可以根据实际场景确定各个类别的恶意分数以及各个恶意操作的恶意分数。终端根据该规则所包含的各个恶意操作的恶意分数进行加权计算,得到待检测代码包在代码静态检测维度的第三分数。
可选地,终端对待检测代码包的代码进行检测,并通过上述实施例所述的方法输出静态代码检测结果和恶意代码,以及预先定义常见风险操作行为链,如敏感路径遍历—>文件读取—>网络发送、敏感信息获取—>网络发送、字符串解码—>命令执行等,其中包含的各个操作均为恶意操作,形成检测规则。终端可以通过CodeQL方法进行检测,输出待检测代码包的静态代码检测结果和恶意代码,按照存在的恶意行为数及行为的恶意程度(权重)进行计算,输出待检测代码包在代码静态检测维度的第三分数(code_score)。
在一个实施例中,如图4所示,步骤110“根据待检测代码包对应的执行结果,计算待检测代码包在代码动态检测维度的第四分数”的具体处理过程,包括:
步骤402,在预设沙箱中执行待检测代码包,生成执行结果,执行结果包括调用文件列表、执行进程列表以及网络通信列表。
其中,预设沙箱是隔离的网络编程虚拟执行环境,是一种虚拟系统程序,终端可以在预设沙箱中执行待检测代码包,而执行结果不会对终端的环境产生任何影响。
具体地,终端在预设沙箱环境中执行待检测代码包,在执行过程中生成调用文件列表、执行进程列表以及网络通信列表。调用文件列表表示待检测代码包调用的文件列表,执行进程列表表示待检测代码包在执行过程中执行的进程列表,网络通信列表表示待检测代码包在执行过程中产生的网络通信列表。
步骤404,对执行结果中的调用文件列表、执行进程列表以及网络通信列表进行筛选,确定满足预设高危操作条件的表项的数量。
具体地,终端可以根据实际应用环境确定预设高危操作条件,例如可以是进程信息调用了base64、scp、ssh等命令,或者文件操作读取了/etc/passwd、crontab等等。这样,终端可以对执行结果中的调用文件列表、执行进程列表以及网络通信列表进行筛选,确定满足上述预设高危操作条件的表项的数量。
步骤406,根据满足预设高危操作条件的表项的数量,计算待检测代码包在代码动态检测维度的第四分数。
具体地,终端可以预先配置满足不同的预设高危操作条件的表项的分数。这样,终端可以根据预先配置的满足各预设高危操作条件的表项的分数以及数量,进行计算,得到待检测代码包在代码动态检测维度的第四分数(run_score)。
在一个示例中,终端利用沙箱,对待检测代码包(可疑包)调用python进行install和import。Python的输出结果可以是文件调用信息、进程执行信息、网络通信信息。终端可以对上述信息进行检测,得到代码运行检测结果,该代码运行检测结果包括满足预设高危操作条件的表项的数量。
在一个实施例中,如图5所示,该恶意代码包的检测方法还包括:
步骤502,获取待检测代码包中包含的多个IOC。
具体地,待检测代码包中包含的IOC(Indicators of Compromise,威胁情报指标),其网络情报的形式通常是域名、IP地址(Internet Protocol Address,互联网协议地址)、URL(Uniform Resource Locator,统一资源定位器)。威胁情报指标的文件情报的形式通常是文件信息、Hash等。在此应用场景中,终端可以确定待检测代码包中包含的IOC的表现形式可以是域名、IP地址以及URL。
这样,在终端对待检测代码包进行代码静态检测以及代码动态检测的阶段,可以获取该待检测代码包存在的所有的IOC。
步骤504,针对于每一IOC,对目标数量的包含目标IOC的代码包分别对应的多个目标恶意度评分,进行均值处理,确定目标IOC的初始评价分数。
具体地,终端对于每一个IOC进行恶意度评分。针对于每一个IOC,终端需要获取包含该IOC的代码包的目标恶意度评分,并在其中提取目标恶意度评分最高的目标数量的目标恶意度评分,进行均值计算,将计算得到的均值作为该IOC的初始评价分数。
在一个示例中,目标数量可以是5,包含该目标IOC的目标恶意度评分可以分别是1、6、7、8、9、10、11。这样,终端提取目标恶意度评分最高的目标数量的目标恶意度评分,可以是7、8、9、10、11。终端对上述目标恶意度评分进行均值计算,得到平均值9,并将9作为该目标IOC的初始评价分数。
在另一个示例中,在代码静态检测阶段和代码动态检测阶段,输出存在网络调用行为的操作中的IOC(域名、IP、URL),终端并对该IOC进行恶意度评分。首先,终端可以将预设白名单中的IOC剔除,例如pypi.org、pypa.io等。其次,终端可以将出现频次过于预设出现次数阈值的IOC剔除,例如,终端可以将出现包名超过X个的IOC作为高频IOC,确定该高频IOC为非恶意。这样,终端可以对剩余IOC进行恶意度评分。进行评分的具体过程可以是:针对于目标IOC,提取包含该目标IOC且malscore是TOP5的包的iocscore。例如,待评分IOC可以是:123.xxxx.com,包含该IOC的TOP5的malscore为:1、1、2、2、3,则当前IOC的iocscore为:(1+1+2+2+3)/5=1.8。
步骤506,在待检测代码包中包含的多个目标IOC中,将最高的初始评价分数作为待检测代码包的目标IOC评价分数。
本实施例中,通过在待检测代码包中提取多个IOC,并分别进行评分,将恶意度最高的目标IOC的初始评价分数作为该待检测代码包的目标IOC评价分数,可以在IOC维度评价该待检测代码包的恶意程度。
在一个实施例中,该恶意代码包的检测方法还包括:
将待检测代码包的待输入分数输入至预先训练的评估模型,确定待检测代码包的恶意度等级。
其中,待输入分数包括第一分数、第二分数、第三分数、第四分数、目标IOC评价分数中的一种或多种。
具体地,预先训练的评估模型的待输入分数可以包括包元素检测对应的第一分数、开发者信誉检测对应的第二分数、代码静态检测对应的第三分数、代码动态检测对应的第四分数、IOC检测对应的目标IOC评价分数。终端将该输入分数输入至预先训练的评估模型,模型的计算过程可以包括:如果终端确定待输入分数包括的多种分数均大于或等于预设分数阈值,则确定该待检测代码包的恶意度等级为恶意;如果终端确定待输入分数包括的多种分数均小于预设分数阈值,则确定该待检测代码包的恶意度等级为安全;如果终端确定在待输入分数包括的多种分数中,大于或等于预设分数阈值的种类数量大于或等于分数总种类数量的预设百分比(例如百分之五十),则可以确定该待检测代码包的恶意度等级为恶意;如果终端确定在待输入分数包括的多种分数中,大于或等于预设分数阈值的种类数量小于分数总种类数量的预设百分比(例如百分之五十),则可以确定该待检测代码包的恶意度等级为疑似。
可选地,预先训练的评估模型可以包括神经网络或者机器学习网络。终端可以根据样本代码包的恶意度等级以及样本代码包的待输入分数,该待输入分数包括第一分数、第二分数、第三分数、第四分数、目标IOC评价分数的一种或多种。终端根据上述数据对初始的深度学习模型进行训练,以建立恶意度等级与待输入分数之间的关联关系。这样,终端可以通过训练的完成的评估模型中的神经网络或者机器学习网络,根据待检测代码包的待输入分数,确定该待检测代码包的恶意度等级。
在一个示例中,待输入分数可以包括包元素检测对应的第一分数、开发者信誉检测对应的第二分数、IOC检测对应的目标IOC评价分数:
第一种情况,如果三个评价分数均大于或等于预设分数阈值,则确定待检测代码包的恶意度等级为恶意。
第二种情况,如果三个评价分数均小于预设分数阈值,则确定待检测代码包的恶意度等级为安全。
第三种情况,如果开发者信誉检测对应的第二分数大于或等于预设分数阈值,另两个其中之一也大于或等于预设分数阈值,则确定待检测代码包的恶意度等级为恶意。
第四种情况,如果开发者信誉检测对应的第二分数大于或等于预设分数阈值,另两个均小于预设分数阈值,则确定待检测代码包的恶意度等级为疑似。
第五种情况,如果IOC检测对应的目标IOC评价分数大于或等于预设分数阈值,另两个均小于预设分数阈值,则确定待检测代码包的恶意度等级为疑似。
第六种情况,如果包元素检测对应的第一分数大于或等于预设分数阈值,另两个均小于预设分数阈值,则确定待检测代码包的恶意度等级为疑似。
可选地,预先训练的评估模型输出的恶意度等级包括恶意、疑似、未知、安全。
在一个实施例中,上述实施例中的步骤“获取待检测代码包中包含的多个IOC”的具体处理过程,包括:剔除多个IOC中符合预设IOC白名单条件的IOC,得到处理后的多个IOC。
以下结合一个具体实施例详细描述该恶意代码包的检测方法的具体执行过程:
终端可以从多个代码仓库中采集待检测包(待检测代码包),代码仓库可以包括PyPi代码仓库以及npm代码仓库。终端在采集到待检测代码包后,需要对该待检测代码包进行预处理,获取该待检测代码包的包属性信息、包作者信息。本实施例所提供的恶意代码包的检测方法啊可以包括以下四个维度;包属性检测(第一分数)、开发者信誉检测(第二分数)、静态检测引擎(第三分数)以及动态检测引擎(第四分数)。
具体地,在包属性检测中,需要根据包名、下载量、开发者、创建时间、版本数以及更新频率进行第一分数的计算,即得到元素检测分;
在开发者信誉检测中,需要根据注册时长、维护包数、包总下载量、单包维护平均时长、活跃时长以及合作者数进行第二分数的计算,即得到开发者信誉分;
在静态检测引擎中,需要根据已有的恶意样本,形成yara规则库(恶意操作样本数据库),筛选待检测代码包中是否存在恶意命令、代码混淆执行、网络接收执行、敏感字符等等操作,并进行API提取、污点跟踪以及IOC提取,计算得到第三分数。
在动态检测引擎中,需要利用沙箱,对待检测代码包调用python进行install和import。输出文件调用信息(文件行为),进程执行信息(进程行为),网络通信信息(网络行为)等,并对输出信息进行黑名单过滤以及白名单过滤。进而计算得到第四分数。
具体地,黑名单过滤:如进程信息调用了base64、scp、ssh等命令;文件操作读取了/etc/passwd、crontab等,则认为属于黑名单。
在一个示例中,在代码静态检测和代码动态检测阶段,输出存在网络调用行为的操作中的IOC(域名、IP、URL),进行IOC恶意度评分。评分首先排除含白名单域名的IOC如:pypi.org、pypa.io等。对出现频次很高的IOC,如出现包名超过X个的IOC为高频IOC,一般非恶意,进行剔除。对剩余的IOC进行评分,评分思路为:恶意包所含的IOC也为恶意。IOC的评分使用恶意包的恶意分malscore。评分过程:取含某IOC的TOP5的包的malscore,取平均分置为当前IOC的恶意分数。
在另一个示例中,将综合包元素检测、开发者信誉检测、代码静态检测、代码动态检测以及IOC检测的结果分输入综合评估模型,判断恶意度评分,对于分值高的进行人工分析,进行误报确认以及恶意IOC的提取,并给对恶意开发者进行标记,并订正开发者的信誉分。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的恶意代码包的检测方法的恶意代码包的检测装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个恶意代码包的检测装置实施例中的具体限定可以参见上文中对于恶意代码包的检测方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种恶意代码包的检测装置600,包括:
获取模块601,用于获取待检测代码包的属性信息以及开发者的特征信息;
第一分数计算模块602,用于根据所述待检测代码包的属性信息,计算所述待检测代码包的包元素维度的第一分数;
第二分数计算模块603,用于通过预设开发者信誉确定算法,根据所述待检测代码包的开发者的特征信息,计算所述待检测代码包在开发者信誉维度的第二分数;
第三分数模块604,用于根据预设恶意样本检测规则以及预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数;
第四分数模块605,用于根据所述待检测代码包对应的执行结果,计算所述待检测代码包在代码动态检测维度的第四分数;
目标恶意度评分计算模块606,用于通过预设加权算法,根据所述第一分数、所述第二分数、所述第三分数以及所述第四分数,计算所述待检测代码包的目标恶意度评分;
确定模块607,用于如果所述目标恶意度评分大于或等于预设恶意阈值,则确定所述待检测代码包为恶意代码包。
上述恶意代码包的检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待检测代码包数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种恶意代码包的检测方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (11)

1.一种恶意代码包的检测方法,其特征在于,所述方法包括:
获取待检测代码包的属性信息以及开发者的特征信息;
根据所述待检测代码包的属性信息,计算所述待检测代码包的包元素维度的第一分数;
通过预设开发者信誉确定算法,根据所述待检测代码包的开发者的特征信息,计算所述待检测代码包在开发者信誉维度的第二分数;
根据预设恶意样本检测规则以及预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数;
根据所述待检测代码包对应的执行结果,计算所述待检测代码包在代码动态检测维度的第四分数;
通过预设加权算法,根据所述第一分数、所述第二分数、所述第三分数以及所述第四分数,计算所述待检测代码包的目标恶意度评分;
如果所述目标恶意度评分大于或等于预设恶意阈值,则确定所述待检测代码包为恶意代码包。
2.根据权利要求1所述的方法,其特征在于,所述属性信息包括包名称以及开发者标识信息;
所述根据所述待检测代码包的属性信息,计算所述待检测代码包的包元素维度的第一分数,包括:
通过预设编辑距离计算算法,计算所述待检测代码包的包名称与满足预设下载量条件的正常代码包的包名称之间的编辑距离;
根据所述编辑距离确定包名相似度分数;
根据所述开发者标识信息确定开发者恶意度分数;
通过预设包属性评分算法,根据所述属性信息计算包属性恶意分数;
对所述包名相似度分数、所述开发者恶意度分数以及所述包属性恶意分数进行加权计算,确定所述待检测代码包在包元素维度的第一分数。
3.根据权利要求1所述的方法,其特征在于,所述根据预设恶意样本检测规则以及预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数,包括:
根据预设恶意样本检测规则对所述待检测代码包进行筛选,确定所述待检测代码包中包含的恶意操作的数量;
根据所述待检测代码包中包含的恶意操作的数量及所述预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述待检测代码包对应的执行结果,计算所述待检测代码包在代码动态检测维度的第四分数,包括:
在预设沙箱中执行所述待检测代码包,生成执行结果,所述执行结果包括调用文件列表、执行进程列表以及网络通信列表;
对所述执行结果中的所述调用文件列表、执行进程列表以及网络通信列表进行筛选,确定满足预设高危操作条件的表项的数量;
根据所述满足预设高危操作条件的表项的数量,计算所述待检测代码包在代码动态检测维度的第四分数。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述方法还包括:
获取所述待检测代码包中包含的多个IOC威胁情报指标;
针对于每一所述IOC,对目标数量的包含所述目标IOC的代码包分别对应的多个目标恶意度评分,进行均值处理,确定所述目标IOC的初始评价分数;
在所述待检测代码包中包含的多个目标IOC中,将最高的所述初始评价分数作为所述待检测代码包的目标IOC评价分数。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
通过将待检测代码包的待输入分数输入至预先训练的评估模型,确定所述待检测代码包的恶意度等级,所述待输入分数包括所述第一分数、所述第二分数、所述第三分数、所述第四分数、所述目标IOC评价分数中的一种或多种。
7.根据权利要求5所述的方法,其特征在于,所述获取所述待检测代码包中包含的多个IOC,包括:
剔除所述多个IOC中符合预设IOC白名单条件的IOC,得到处理后的多个IOC。
8.一种恶意代码包的检测装置,其特征在于,所述装置包括:
获取模块,用于获取待检测代码包的属性信息以及开发者的特征信息;
第一分数计算模块,用于根据所述待检测代码包的属性信息,计算所述待检测代码包的包元素维度的第一分数;
第二分数计算模块,用于通过预设开发者信誉确定算法,根据所述待检测代码包的开发者的特征信息,计算所述待检测代码包在开发者信誉维度的第二分数;
第三分数模块,用于根据预设恶意样本检测规则以及预设恶意操作权重集,计算所述待检测代码包在代码静态检测维度的第三分数;
第四分数模块,用于根据所述待检测代码包对应的执行结果,计算所述待检测代码包在代码动态检测维度的第四分数;
目标恶意度评分计算模块,用于通过预设加权算法,根据所述第一分数、所述第二分数、所述第三分数以及所述第四分数,计算所述待检测代码包的目标恶意度评分;
确定模块,用于如果所述目标恶意度评分大于或等于预设恶意阈值,则确定所述待检测代码包为恶意代码包。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202210287634.4A 2022-03-23 2022-03-23 恶意代码包的检测方法、装置、计算机设备和存储介质 Pending CN114637993A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210287634.4A CN114637993A (zh) 2022-03-23 2022-03-23 恶意代码包的检测方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210287634.4A CN114637993A (zh) 2022-03-23 2022-03-23 恶意代码包的检测方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN114637993A true CN114637993A (zh) 2022-06-17

Family

ID=81949605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210287634.4A Pending CN114637993A (zh) 2022-03-23 2022-03-23 恶意代码包的检测方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN114637993A (zh)

Similar Documents

Publication Publication Date Title
CN111935192B (zh) 网络攻击事件溯源处理方法、装置、设备和存储介质
EP3574430B1 (en) Continuous learning for intrusion detection
US11188650B2 (en) Detection of malware using feature hashing
Aburrous et al. Intelligent phishing detection system for e-banking using fuzzy data mining
CN103679031B (zh) 一种文件病毒免疫的方法和装置
CN110177114B (zh) 网络安全威胁指标识别方法、设备、装置以及计算机可读存储介质
Ramesh et al. Identification of phishing webpages and its target domains by analyzing the feign relationship
Shrivastava et al. Android application behavioural analysis for data leakage
Kumar et al. Mlspd-machine learning based spam and phishing detection
CN110855716B (zh) 一种面向仿冒域名的自适应安全威胁分析方法及系统
CN115080956A (zh) 基于移动终端已安装应用程序违规权限的检测方法和系统
CN117478433B (zh) 一种网络与信息安全动态预警系统
CN111049828B (zh) 网络攻击检测及响应方法及系统
WO2023072002A1 (zh) 开源组件包的安全检测方法及装置
CN116738369A (zh) 一种流量数据的分类方法、装置、设备及存储介质
EP4024252A1 (en) A system and method for identifying exploited cves using honeypots
CN113992371B (zh) 一种流量日志的威胁标签生成方法、装置及电子设备
CN112099870B (zh) 文档处理方法、装置、电子设备及计算机可读存储介质
CN114637993A (zh) 恶意代码包的检测方法、装置、计算机设备和存储介质
CN115001763A (zh) 钓鱼网站攻击检测方法、装置、电子设备及存储介质
Noh et al. Phishing Website Detection Using Random Forest and Support Vector Machine: A Comparison
CN114285639A (zh) 一种网站安全防护方法及装置
Yüksel et al. Towards useful anomaly detection for back office networks
Bo et al. Tom: A threat operating model for early warning of cyber security threats
Sokolov Applied Machine Learning for Cybersecurity in Spam Filtering and Malware Detection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination