CN110414236A - 一种恶意进程的检测方法及装置 - Google Patents
一种恶意进程的检测方法及装置 Download PDFInfo
- Publication number
- CN110414236A CN110414236A CN201910683011.7A CN201910683011A CN110414236A CN 110414236 A CN110414236 A CN 110414236A CN 201910683011 A CN201910683011 A CN 201910683011A CN 110414236 A CN110414236 A CN 110414236A
- Authority
- CN
- China
- Prior art keywords
- detected
- malicious
- sample
- name
- malicious process
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种恶意进程的检测方法及装置,属于网络安全技术领域。该方法包括:获取目标设备的运行日志,对运行日志中的每个待检测进程,根据模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,将该待检测进程的进程名和每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对该非恶意进程进行伪装的恶意进程,然后输出各待检测进程的检测结果。由于恶意进程检测模型是对每个样本对中待检测进程样本和非恶意进程样本的进程名之间的差异进行学习得到的,所以利用恶意进程检测模型可检测出与非恶意进程样本的进程名之间差异较小的一些未知恶意进程,检测未知恶意进程的能力更强。
Description
技术领域
本申请涉及网络安全技术领域,尤其涉及一种恶意进程的检测方法及装置。
背景技术
近年来,木马、病毒、蠕虫等恶意软件在个人主机或服务器上频频出现,给企业和用户造成了极大的损失。
目前,杀毒软件是一种主要的检测技术,它基于病毒库来对恶意软件进行检测,具体地,先从已知病毒的代码中抽取特征码,然后将该病毒的标识和特征码存储在病毒库中,后续,在需要进行检测时,从待检测软件的代码中抽取特征码,与病毒库中存储的特征码进行匹配以判断待检测软件是否是恶意软件,该方案可以较好地应对已知病毒,但却无法检测出病毒变种、也无法检测出未知恶意软件。
发明内容
本申请实施例提供一种恶意进程的检测方法及装置,用以解决现有技术中存在的对未知恶意软件的检测难的问题。
第一方面,本申请实施例提供的一种恶意进程的检测方法,包括:
获取目标设备的运行日志;
对所述运行日志中的每个待检测进程,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,组成非恶意进程集合;以及将该待检测进程的进程名和所述非恶意进程集合中每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对所述非恶意进程进行伪装的恶意进程,其中,所述恶意进程检测模型是对每个样本对中的待检测进程样本和非恶意进程样本的进程名之间的差异进行学习得到的;
输出各待检测进程的检测结果。
本申请实施例中,获取目标设备的运行日志,对运行日志中的每个待检测进程,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,组成非恶意进程集合,将该待检测进程的进程名和非恶意进程集合中的每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对该非恶意进程进行伪装的恶意进程,然后输出各待检测进程的检测结果,由于恶意进程检测模型是对每个样本对中待检测进程样本和非恶意进程样本的进程名之间的差异进行学习得到的,所以利用恶意进程检测模型可检测出与非恶意进程样本的进程名之间差异较小的一些未知恶意进程,比如检测一类伪装路径和一类伪装进程名的未知恶意软件的能力更强。
可选地,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程之前,还包括:
判断该待检测进程的进程名是否存在白名单库中;
若否,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若是,则确定该待检测进程为非恶意进程。
可选地,若确定所述白名单库中与该待检测进程的进程名相同的非恶意进程为系统进程,则在确定该待检测进程为非恶意进程之前,还包括:
判断该待检测进程的存储路径是否包含在所述系统进程对应的合法存储路径集合中;
若是,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若否,则确定该待检测进程为恶意进程。
可选地,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程之前,还包括:
判断该待检测进程的进程名是否存在黑名单库中;
若否,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若是,则确定该待检测进程为恶意进程。
可选地,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,包括:
从所述白名单库中查找与该待检测进程的进程名的首字符相同的非恶意进程;
从查找到的非恶意进程中筛选出进程名的字符长度在目标长度范围内的非恶意进程作为与该待检测进程相似的非恶意进程,所述目标长度范围根据该待检测进程的进程名的字符长度确定。
可选地,输出各待检测进程的检测结果,包括:
若确定各待检测进程中不存在恶意进程,则输出用于表示各待检测进程中不存在恶意进程的信息;
若确定各待检测进程中存在至少两个恶意进程,则按照恶意概率从大到小的顺序输出各待检测进程中每个恶意进程的伪装信息,所述伪装信息包括该恶意进程的进程名、该恶意进程进行伪装的非恶意进程的进程名和该恶意进程的恶意概率。
第二方面,本申请实施例提供的一种用于检测恶意进程的模型的建立方法,包括:
获取样本对,其中,每个样本对中包含一个待检测进程样本和一个非恶意进程样本;
对每个样本对,根据该样本对中待检测进程样本的进程名和非恶意进程样本的进程名确定该样本对对应的差分向量,所述差分向量用于表征该样本对中所述待检测进程样本的进程名与所述非恶意进程样本的进程名之间的差异;以及
以该样本对对应的差分向量为输入,用于表示所述待检测进程样本是否是对所述非恶意进程样本进行伪装的恶意进程的标注信息为输出,对给定的模型进行训练。
可选地,根据该样本对中待检测进程样本的进程名和非恶意进程样本的进程名确定该样本对对应的差分向量,包括:
根据设定的字符映射规则和所述待检测进程样本的进程名确定所述待检测进程样本的特征向量,以及根据所述字符映射规则和所述非恶意进程样本的进程名确定所述非恶意进程样本的特征向量;
根据所述待检测进程样本的特征向量和所述非恶意进程样本的特征向量确定该样本对对应的差分向量。
可选地,根据所述待检测进程样本的特征向量和所述非恶意进程样本的特征向量确定该样本对对应的差分向量,包括:
对第一特征向量中的第i个元素,判断该元素是否与第二特征向量中的第i个元素相同,若是,则将所述差分向量中的第i个元素设置为第一预设值;若否,则将所述差分向量中的第i个元素设置为第二预设值,i为整数;
其中,所述第一特征向量为所述待检测进程样本的特征向量时,所述第二特征向量为所述非恶意进程样本的特征向量;所述第一特征向量为所述非恶意进程样本的特征向量时,所述第二特征向量为所述待检测进程样本的特征向量。
第三方面,本申请实施例提供的一种恶意进程的检测装置,包括:
获取模块,用于获取目标设备的运行日志;
查找模块,用于对所述运行日志中的每个待检测进程,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,组成非恶意进程集合;
检测模块,用于将该待检测进程的进程名和所述非恶意进程集合中每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对所述非恶意进程进行伪装的恶意进程,其中,所述恶意进程检测模型是对每个样本对中的待检测进程样本和非恶意进程样本的进程名之间的差异进行学习得到的;
输出模块,用于输出各待检测进程的检测结果。
可选地,所述检测模块还用于:
在根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程之前,判断该待检测进程的进程名是否存在白名单库中;
若否,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若是,则确定该待检测进程为非恶意进程。
可选地,所述检测模块还用于:
若确定所述白名单库中与该待检测进程的进程名相同的非恶意进程为系统进程,则在确定该待检测进程为非恶意进程之前,判断该待检测进程的存储路径是否包含在所述系统进程对应的合法存储路径集合中;
若是,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若否,则确定该待检测进程为恶意进程。
可选地,所述检测模块还用于:
在根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程之前,判断该待检测进程的进程名是否存在黑名单库中;
若否,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若是,则确定该待检测进程为恶意进程。
可选地,所述检测模块具体用于:
从所述白名单库中查找与该待检测进程的进程名的首字符相同的非恶意进程;
从查找到的非恶意进程中筛选出进程名的字符长度在目标长度范围内的非恶意进程作为与该待检测进程相似的非恶意进程,所述目标长度范围根据该待检测进程的进程名的字符长度确定。
可选地,所述输出模块具体用于:
若确定各待检测进程中不存在恶意进程,则输出用于表示各待检测进程中不存在恶意进程的信息;
若确定各待检测进程中存在至少两个恶意进程,则按照恶意概率从大到小的顺序输出各待检测进程中每个恶意进程的伪装信息,所述伪装信息包括该恶意进程的进程名、该恶意进程进行伪装的非恶意进程的进程名和该恶意进程的恶意概率。
第四方面,本申请实施例提供的一种用于检测恶意进程的模型的建立装置,包括:
获取模块,用于获取样本对,其中,每个样本对中包含一个待检测进程样本和一个非恶意进程样本;
确定模块,用于对每个样本对,根据该样本对中待检测进程样本的进程名和非恶意进程样本的进程名确定该样本对对应的差分向量,所述差分向量用于表征该样本对中所述待检测进程样本的进程名与所述非恶意进程样本的进程名之间的差异;以及
训练模块,用于以该样本对对应的差分向量为输入,用于表示所述待检测进程样本是否是对所述非恶意进程样本进行伪装的恶意进程的标注信息为输出,对给定的模型进行训练。
可选地,所述确定模块具体用于:
根据设定的字符映射规则和所述待检测进程样本的进程名确定所述待检测进程样本的特征向量,以及根据所述字符映射规则和所述非恶意进程样本的进程名确定所述非恶意进程样本的特征向量;
根据所述待检测进程样本的特征向量和所述非恶意进程样本的特征向量确定该样本对对应的差分向量。
可选地,所述确定模块具体用于:
对第一特征向量中的第i个元素,判断该元素是否与第二特征向量中的第i个元素相同,若是,则将所述差分向量中的第i个元素设置为第一预设值;若否,则将所述差分向量中的第i个元素设置为第二预设值,i为整数;
其中,所述第一特征向量为所述待检测进程样本的特征向量时,所述第二特征向量为所述非恶意进程样本的特征向量;所述第一特征向量为所述非恶意进程样本的特征向量时,所述第二特征向量为所述待检测进程样本的特征向量。
第五方面,本申请实施例提供的一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
存储器存储有可被至少一个处理器执行的指令,该指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面或第二方面中的方法。
第六方面,本申请实施例提供的一种计算机可读介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述第一方面或第二方面中的方法。
本申请的这些方面或其它方面在以下实施例的描述中会更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种计算装置的结构示意图;
图2为本申请实施例提供的一种恶意进程的检测方法的流程图;
图3为本申请实施例提供的又一种恶意进程的检测方法的流程图;
图4为本申请实施例提供的又一种恶意进程的检测方法的流程图;
图5为本申请实施例提供的又一种恶意进程的检测方法的流程图;
图6为本申请实施例提供的一种用于检测恶意进程的模型的建立方法的流程图;
图7为本申请实施例提供的一种恶意进程的检测装置的结构示意图;
图8为本申请实施例提供的一种用于检测恶意进程的模型的建立装置的结构示意图。
具体实施方式
为了解决现有技术中存在的对未知恶意软件的检测难的问题,本申请实施例提供了一种恶意进程的检测方法及装置。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
为了便于理解本申请,本申请涉及的技术术语中:
系统进程,是指属于某种类型操作系统(如Window XP/Win7/Win10/Ubutun/CentOS等)的自有进程,如进程svchost.exe、explorer.exe是Window XP/Win7/Win10的系统进程。
白名单库,用于保存非恶意进程的进程名、存储路径等信息。
黑名单库,用于保存恶意进程的进程名、存储路径等信息。
恶意概率,是指待检测进程是对某个非恶意进程进行伪装的恶意进程的概率。
本申请提供的任一种方法均可以应用到多种计算装置中,图1给出了一种计算装置的结构示意图,这里,图1所示的计算装置10仅仅是一个示例,并不对本申请实施例的功能和使用范围带来任何限制。
如图1所示,计算装置10以通用计算设备的形式表现,计算装置10的组件可以包括但不限于:至少一个处理单元101、至少一个存储单元102、连接不同系统组件(包括存储单元102和处理单元101)的总线103。
总线103表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元102可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1021和/或高速缓存存储器1022,还可以进一步包括只读存储器(ROM)1023。
存储单元102还可以包括具有一组(至少一个)程序模块1024的程序/实用工具1025,这样的程序模块1024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置10也可以与一个或多个外部设备104(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置10交互的设备通信,和/或与使得该计算装置10能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口105进行。并且,计算装置10还可以通过网络适配器106与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图1所示,网络适配器106通过总线103与用于计算装置10的其它模块通信。应当理解,尽管图1中未示出,可以结合计算装置10使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
本领域技术人员应当理解,图1仅仅是计算装置的举例,并不构成对计算装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
参照图2,图2为本申请实施例提供的一种恶意进程的检测方法的流程图,该方法的具体实施流程如下:
S201:获取目标设备的运行日志。
比如,可以获取目标设备在过去一天或一周内生成的运行日志,其中,运行日志中包含有多个待检测进程,且对每个待检测进程记录有进程名和存储路径等信息。
S202:对运行日志中的每个待检测进程,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,组成非恶意进程集合。
实际应用中,黑客会尽可能地将恶意进程伪装地像非恶意进程,比如使恶意进程的进程名和其进行伪装的非恶意进程的进程名的首个字符相同,再比如使恶意进程的进程名和其进行伪装的非恶意进程的进程名之间仅差一个字符,预先分析恶意进程和其进行伪装的非恶意进程的进程名即可确定一些模糊匹配规则。
具体实施时,可从白名单库中查找进程名的首字符与该待检测进程的进程名的首字符相同的非恶意进程,然后再从这些非恶意进程中筛选出进程名的字符长度在目标长度范围内的非恶意进程,将这些非恶意进程作为与该待检测进程相似的非恶意进程,组成非恶意进程集合,其中,目标长度范围根据该待检测进程的进程名的字符长度确定,比如目标长度范围为:该待检测进程的进程名的字符长度±3。
S203:将该待检测进程的进程名和非恶意进程集合中每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对该非恶意进程进行伪装的恶意进程。
其中,恶意进程检测模型是对每个样本对中的待检测进程样本和非恶意进程样本的进程名之间的差异进行学习得到的,并且,多个样本对中的待检测进程样本中既有恶意进程又有非恶意进程。
具体实施时,将该待检测进程的进程名和每个非恶意进程的进程名输入到恶意进程检测模型中之后,恶意进程检测模型会输出用于表示该待检测进程是否是对该恶意进程进行伪装的恶意进程的信息,比如,恶意进程检测模型输出“1”,则代表该待检测进程不是对该恶意进程进行伪装的恶意进程;恶意进程检测模型输出“-1”,则代表该待检测进程是对该恶意进程进行伪装的恶意进程,另外,还可控制恶意进程检测模型输出该待检测进程是对该恶意进程进行伪装的恶意进程的概率,即该恶意进程的恶意概率。
S204:输出各待检测进程的检测结果。
具体实施时,若确定各待检测进程中不存在恶意进程,则输出用于表示各待检测进程中不存在恶意进程的信息;若确定各待检测进程中存在恶意进程,则可按照恶意概率从大到小的顺序输出各待检测进程中每个恶意进程的伪装信息,其中,伪装信息包括该恶意进程的进程名、该恶意进程进行伪装的非恶意进程的进程名和该恶意进程的恶意概率。
假设待检测进程PS被判定为是对非恶意进程PS1进行伪装的恶意进程,且恶意概率为80%,则对待检测进程PS输出的伪装信息可以为(PS--->PS1,80%),以这种格式输出各待检测进程中每个恶意进程的伪装信息,便于安全人员优先选择恶意概率最高的进程进行确认。
本申请实施例中,获取目标设备的运行日志,对运行日志中的每个待检测进程,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,进而将该待检测进程的进程名和每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对该非恶意进程进行伪装的恶意进程,然后输出各待检测进程的检测结果,由于恶意进程检测模型是对每个样本对中待检测进程样本和非恶意进程样本的进程名之间的差异进行学习得到的,所以利用恶意进程检测模型可检测出与非恶意进程样本的进程名之间差异较小的一些未知恶意进程,检测未知恶意进程的能力更强。
在一种可能的实施方式下,还可结合白名单库来对待检测进程进行识别,比如在图2所示的流程中,对每个待检测进程,可先判断该待检测进程的进程名是否包含在白名单库中,若否,则执行根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若是,则确定该待检测进程为非恶意进程,对该进程的检测结束。
另外,对系统进程而言,其存储路径一般地是固定的,比如Win7系统的系统进程svchost.exe,其合法存储路径集为{c:\windows\syswow64\svchost.exe,c:\windows\system32\svchost.exe},如果待检测进程svchost.exe的存储路径变成了:c:\windows\sysw0w64\svchost.exe,该存储路径不存在系统进程svchost.exe的合法存储路径集合中,则说明待检测进程svchost.exe是进行了存储路径伪装的恶意进程。
基于此,上述流程中,对每个待检测进程,若确定白名单库中与该待检测进程的进程名相同的非恶意进程为系统进程,则还可判断该待检测进程的存储路径是否包含在系统进程对应的合法存储路径集合中,若是,则执行根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若否,则可确定该待检测进程为对系统进程的路径进行了伪装的恶意进程。
下面结合具体的实施例对上述过程进行说明,参见图3,图3为本申请实施例提供的又一种恶意进程的检测方法的流程图,包括以下步骤:
S301:获取目标设备的运行日志。
比如,可以获取目标设备在过去一天或一周内生成的运行日志,其中,运行日志中包含有多个待检测进程,且对每个待检测进程记录有进程名和存储路径等信息。
S302:对运行日志中的每个待检测进程,判断该待检测进程的进程名是否包含在白名单库中,若是,则进入S303;若否,则进入S304。
具体实施时,若确定白名单库中与该待检测进程的进程名相同的非恶意进程为系统进程,则还可进一步判断该待检测进程的存储路径是否包含在非恶意进程对应的合法存储路径集合中,若是,则执行S303的步骤;若否,则执行S304的步骤。
S303:确定该待检测进程为非恶意进程。
S304:根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,组成非恶意进程集合。
具体实施时,可从白名单库中查找进程名的首字符与该待检测进程的进程名的首字符相同的非恶意进程,再从这些非恶意进程中筛选出进程名的字符长度在目标长度范围内的非恶意进程作为与该待检测进程相似的非恶意进程,其中,目标长度范围根据该待检测进程的进程名的字符长度确定,比如目标长度范围为:该待检测进程的进程名的字符长度±3。
S305:将该待检测进程的进程名和非恶意进程集合中每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对该非恶意进程进行伪装的恶意进程。
具体实施时,将该待检测进程的进程名和每个非恶意进程的进程名输入到恶意进程检测模型中之后,恶意进程检测模型会输出用于表示该待检测进程是否是对该恶意进程进行伪装的恶意进程的信息,比如,恶意进程检测模型输出“1”,则代表该待检测进程不是对该恶意进程进行伪装的恶意进程;恶意进程检测模型输出“-1”,则代表该待检测进程是对该恶意进程进行伪装的恶意进程,另外,还可控制恶意进程检测模型输出该待检测进程是对该恶意进程进行伪装的恶意进程的概率,即该恶意进程的恶意概率。
S306:输出各待检测进程的检测结果。
具体实施时,若确定各待检测进程中不存在恶意进程,则输出用于表示各待检测进程中不存在恶意进程的信息;若确定各待检测进程中存在恶意进程,则可按照恶意概率从大到小的顺序输出各待检测进程中每个恶意进程的伪装信息,其中,伪装信息包括该恶意进程的进程名、该恶意进程进行伪装的非恶意进程的进程名和该恶意进程的恶意概率,这样,便于安全人员优先选择恶意概率最高的进程进行确认。
本申请实施例中,获取目标设备的运行日志,对运行日志中的每个待检测进程,判断该待检测进程的进程名是否包含在白名单库中,若是,则确定该待检测进程为非恶意进程,若否,则利用恶意进程检测模型进行检测,并且,当确定白名单库中与该待检测进程的进程名相同的非恶意进程为系统进程时,还可判断该待检测进程的存储路径是否存在系统进程对应的合法存储路径中,若是,再确定该待检测进程为非恶意进程;若否,再利用恶意进程检测模型进行检测,这样,依靠待检测进程的存储路径和进程名来判别待检测进程是否是恶意进程,检测时需要的时间和空间开销都比较小,是一种轻量级检测方案,并且,由于恶意进程检测模型是对每个样本对中的待检测进程样本和非恶意进程样本的进程名之间的差异进行学习得到的,所以利用恶意进程检测模型可检测出与非恶意进程样本的进程名之间差异较小的一些未知恶意进程,检测未知恶意进程的能力也较强。
在一种可能的实施方式下,还可结合黑名单库来对待检测进程进行识别,具体地,参见图4,图4为本申请实施例提供的又一种恶意进程的检测方法的流程图,包括以下步骤:
S401:获取目标设备的运行日志。
比如,可以获取目标设备在过去一天或一周内生成的运行日志,其中,运行日志中包含有多个待检测进程,且对每个待检测进程记录有进程名和存储路径等信息。
S402:对运行日志中的每个待检测进程,判断该待检测进程的进程名是否包含在黑名单库中,若是,则进入S403;若否,则进入S404。
S403:确定该待检测进程为恶意进程。
S404:根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,组成非恶意进程集合。
具体实施时,可从白名单库中查找进程名的首字符与该待检测进程的进程名的首字符相同的非恶意进程,再从这些非恶意进程中筛选出进程名的字符长度在目标长度范围内的非恶意进程作为与该待检测进程相似的非恶意进程,其中,目标长度范围根据该待检测进程的进程名的字符长度确定,比如目标长度范围为:该待检测进程的进程名的字符长度±3。
S405:将该待检测进程的进程名和非恶意进程集合中每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对该非恶意进程进行伪装的恶意进程。
具体实施时,将该待检测进程的进程名和每个非恶意进程的进程名输入到恶意进程检测模型中之后,恶意进程检测模型会输出用于表示该待检测进程是否是对该恶意进程进行伪装的恶意进程的信息,另外,还可控制恶意进程检测模型输出该待检测进程是对该恶意进程进行伪装的恶意进程的概率,即该恶意进程的恶意概率。
S406:输出各待检测进程的检测结果。
具体实施时,若确定各待检测进程中不存在恶意进程,则输出用于表示各待检测进程中不存在恶意进程的信息;若确定各待检测进程中存在至少两个恶意进程,则可按照恶意概率从大到小的顺序输出各待检测进程中每个恶意进程的伪装信息,其中,伪装信息包括该恶意进程的进程名、该恶意进程进行伪装的非恶意进程的进程名和该恶意进程的恶意概率,这样,便于安全人员优先选择恶意概率最高的进程进行确认。
另外,上述结合白名单库和黑名单库对待检测进程进行识别的方式也可结合使用,具体地,参见图5,图5为本申请实施例提供的又一种恶意进程的检测方法的流程图,包括以下步骤:
S501:获取目标设备的运行日志。
比如,可以获取目标设备在过去一天或一周内生成的运行日志,其中,运行日志中包含有多个待检测进程,且对每个待检测进程记录有进程名和存储路径等信息。
S502:对运行日志中的每个待检测进程,判断该待检测进程的进程名是否包含在白名单库中,若是,则进入S503;若否,则进入S504。
具体实施时,若确定白名单库中与该待检测进程的进程名相同的非恶意进程为系统进程,则还可判断该待检测进程的存储路径是否包含在系统进程对应的合法存储路径集合中,若是,则执行S503的步骤;若否,则执行S504的步骤。
S503:确定该待检测进程为非恶意进程。
S504:判断该待检测进程的进程名是否存在黑名单库中,若是,则进入S505;若否,则进入S506。
S505:确定该待检测进程为恶意进程。
S506:根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,组成非恶意进程集合。
具体实施时,可从白名单库中查找进程名的首字符与该待检测进程的进程名的首字符相同的非恶意进程,再从这些非恶意进程中筛选出进程名的字符长度在目标长度范围内的非恶意进程作为与该待检测进程相似的非恶意进程,其中,目标长度范围根据该待检测进程的进程名的字符长度确定,比如目标长度范围为:该待检测进程的进程名的字符长度±3。
S507:将该待检测进程的进程名和非恶意进程集合中每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对该非恶意进程进行伪装的恶意进程。
具体实施时,将该待检测进程的进程名和每个非恶意进程的进程名输入到恶意进程检测模型中之后,恶意进程检测模型会输出用于表示该待检测进程是否是对该恶意进程进行伪装的恶意进程的信息,另外,还可控制恶意进程检测模型输出该待检测进程是对该恶意进程进行伪装的恶意进程的概率,即该恶意进程的恶意概率。
S508:输出各待检测进程的检测结果。
具体实施时,若确定各待检测进程中不存在恶意进程,则输出用于表示各待检测进程中不存在恶意进程的信息;若确定各待检测进程中存在至少两个恶意进程,则可按照恶意概率从大到小的顺序输出各待检测进程中每个恶意进程的伪装信息,其中,伪装信息包括该恶意进程的进程名、该恶意进程进行伪装的非恶意进程的进程名和该恶意进程的恶意概率,这样,便于安全人员优先选择恶意概率最高的进程进行确认。
上述图5所示的流程中,S502、S504和S506之间没有严格的顺序关系,在不冲突的情况下,三者的执行顺序可以进行互换。
具体实施时,若确定该待检测进程为非恶意进程,则可将该待检测进程加入到白名单库中,若确定该待检测进程为恶意进程,则可将该待检测进程加入到黑名单库中。
参见图6,本申请实施例还提供一种用于检测恶意进程的模型的建立方法的流程图,该方法的具体实施流程如下:
S601:获取多个样本对,其中,每个样本对中包含一个待检测进程样本和一个非恶意进程样本。
这里,多个样本对中的待检测进程样本既有恶意进程又有非恶意进程,且待检测进程样本为恶意进程的样本对为负样本对,待检测进程样本为非恶意进程的样本对为正样本对,即,包括两种类型的样本对:正样本对和负样本对,正样本对由两个非恶意进程组成;负样本对由一个非恶意进程和一个伪装该非恶意进程的恶意进程组成。
S602:对每个样本对,根据该样本对中待检测进程样本的进程名和非恶意进程样本的进程名确定该样本对对应的差分向量。
其中,差分向量用于表征该样本对中待检测进程样本与非恶意进程样本的进程名之间的差异。
具体实施时,对每个样本对,可根据设定的字符映射规则和该样本对中待检测进程样本的进程名确定待检测进程样本的特征向量,以及根据设定的字符映射规则和该样本对中非恶意进程的进程名确定非恶意进程样本的特征向量。
假设设定的字符映射规则中,字母a映射为数值23,数字0和字母o映射为数值5,字母b映射为数值12,字母e映射为数值10,字母d映射为数值15,数字1和字母l映射为数值3,且某样本对A中待检测进程样本的进程名为aod1b、非恶意进程样本的进程名为a0eld,则根据设定的字符映射规则对待检测进程样本aod1b进行映射之后得到的特征向量为(23,5,15,3,12),根据设定的字符映射规则对非恶意进程样本a0eld进行映射之后得到的特征向量为(23,5,10,3,15)。
进一步地,根据待检测进程样本的特征向量和非恶意进程样本的特征向量确定该样本对对应的差分向量。
具体地,对第一特征向量中的第i个元素,判断该元素是否与第二特征向量中的第i个元素相同,若是,则将该样本对对应的差分向量中的第i个元素设置为第一预设值;若否,则将该样本对对应的差分向量中的第i个元素设置为第二预设值,i为整数,其中,第一特征向量为该样本对中待检测进程样本的特征向量时,第二特征向量为该样本对中非恶意进程样本的特征向量;第一特征向量为该样本对中非恶意进程样本的特征向量时,第二特征向量为该样本对中待检测进程样本的特征向量。
假设第一预设值为“0”,第二预设值为“1”,沿用上例,则根据待检测进程样本aod1b的特征向量(23,5,15,3,12)和非恶意进程样本a0eld的特征向量(23,5,10,3,15),确定的样本对A对应的差分向量为(0,0,1,0,1)。
S603:以该样本对对应的差分向量为输入,用于表示该样本对中待检测进程样本是否是对该样本对中非恶意进程样本进行伪装的恶意进程的标注信息为输出,对给定的模型进行训练。
具体实施时,将该样本对的差分向量为输入到给定的模型中,如果模型输出的标注信息与实际的标准信息不一致,则对模型的参数进行调整,直至模型输出的标注信息与实际的标准信息一致。
下面结合具体的实施例对上述图6所示的流程进行说明。
首先,预先收集一定数量进程信息。
对于白名单库的建立,可以通过扫描系统路径记录系统进程名、收集或人工自定义等方法,收集进程名和完整路径,去除进程的后缀.exe,并将所有大写字母转为小写字母,其中,白名单库中构建两张表,表I中包括系统进程的进程名和存储路径,表II中包括所有进程的进程名,这样,表I中可能包含同一种进程名但路径不同的进程,如c:\windows\syswow64\svchost.exe和C:\windows\system32\svchost.exe;但在表II只有一条记录svchost.exe。
分析白名单库中非恶意进程的进程名可知,进程名的首字母有36种:字符a~z,数字0~9,由于黑客常将数字“1”伪装为字母“l”,如恶意进程exp1orer试图伪装为非恶意进程explorer,数字“0”字母“o”,如恶意进程expl0rer试图伪装为非恶意进程explorer,为此,将数字“1”伪装为字母“l”视为同一种“字符”,将数字“0”字母“o”视为同一种“字符”,这样,进程名的首字母变为34个,并且,一般进程名的字符长度不会超过16,所以对白名单库而言,可以建立一个以进程名的首字母为横坐标、进程名的字符长度为纵坐标的34×16的二维表,这样,可提高对白名单库的查询速度。
对于黑名单库,可以通过披露的样本报告的伪装系统进程名,比如恶意进程svhost.exe伪装系统进程svchost.exe,或自定义的方法,仅收集进程名,去除进程的后缀.exe,并将所有大写字母转为小写字母。
其次,组建样本对,其中,每个样本对中包含一个待检测进程样本和一个非恶意进程样本,如果样本对中的待检测进程样本为非恶意进程,则该样本对为正样本对,如explore(svchost),如果样本对中的待检测进程样本为恶意进程,则该样本对为负样本对,如exp1orer(explorer)、expl0rer(explorer)、explore(explorer)、svhost(svchost)、svthost(svchost)。
然后,对每个样本对,对样本对中待检测进程样本和非恶意进程样本的进程名进行规范化处理,具体地,对待检测进程样本和非恶意进程样本中的每个进程样本,先将该进程样本的进程名中不在“a-z”和“0-9”中的字符统一用“*”号表示,再统计该进程样本的进程名的字符长度,若超过16位,则只取前16位;若不足16位,则在后面补“0”直至字符长度为16位。
进一步地,分别确定待检测进程样本和非恶意进程样本的特征向量,具体地,对待检测进程样本和非恶意进程样本中的每个进程样本,根据建立的字符与数值之间的映射关系,将该进程样本的进程名中包含的16个字符逐个进行映射,得到包含16个数值元素的行向量,该行向量即为该进程样本的特征向量,其中,数字“1”与字母“l”映射为同一数值,数字“0”与字母“o”映射为同一数值。
进一步地,对待检测进程样本的特征向量中的第i个元素,判断该元素是否与非恶意进程样本的特征向量中的第i个元素相同,若是,则将差分向量中的第i个元素设置为“0”;若否,则将差分向量中的第i个元素设置为“1”,1≤i≤16,且为整数。
经过以上步骤,每个样本对都对应一个差分向量,假设正样本对用“1”进行标注,负样本对用“-1”进行标注,则可以样本对对应的差分向量为输入,用于表示该样本对中待检测进程样本是否是对该样本对中非恶意进程样本进行伪装的恶意进程的标注信息为输出,对决策树进行训练。
相对于现有病毒库检测方法,本申请提出的基于机器学习的恶意进程快速检测方法,有以下优点:
(1)、检测半自动化:病毒库检测方法,需要投入专业的安全人员进行分析;而本申请可通过机器学习方法筛选出可能的恶意进程,然后反馈普通的安全人员确认,大大节约了人力和时间成本。
(2)、检测未知威胁:病毒库检测方法,只能检测出已知的恶意进程;而本申请可以通过对样本对的学习检测出一类未知的恶意进程名,无需人工去定义和预测。
(3)、检测模型轻量化:相比病毒库检测需要占用大量存储和计算资源而言,本申请提出的方案仅需存储少量的进程名,另外通过样本对训练轻量级的恶意进程检测模型,从进程名和存储路径两个维度上对进程进行检测,检测速度也比较快。
下面对上述模型的应用进行介绍。
步骤1,进程日志统计。
比如,统计一天或一周内某主机的运行日志中出现的进程,其中,运行日志中对每个进程存储有创建时间、进程名、存储路径等信息。
步骤2,路径伪装判定。
对运行日志中的每个进程,若确定该进程的进程名包含在白名单库的表I中,且该进程的存储路径也存在表1保存的该进程的合法存储路径集合中,则说明该进程是正常进程。剩下的进程集合C1,跳入步骤3进行识别。
步骤3,黑名单库检测。
对进程集合C1中的每个进程,检测该进程是否存在黑名单库中,若存在,则判定该进程为恶意进程。剩下的进程集合C2,跳入步骤4进行识别。
步骤4,进行白名单库检测。
对进程集合C2中的每个进程,若确定该进程的进程名包含白名单库的表II中,则说明该进程为非恶意进程。剩下的进程集合C3,跳入步骤5进行识别。
步骤5,进行模型检测。
以进程集合C3中的任一进程PS为例,确定PS进程名的首字符和进程名的字符长度len,根据首字母从白名单库的表II中返回非恶意进程集合S1,再根据该进程的长度len,从非恶意进程集合S1中选出进程名的字符长度为len±3的非恶意进程集合S2,假设S2中的进程为{PS1,PS2,…,PSn0},之后,将PS与非恶意进程集合S2{PS1,PS2,…,PSn0}中的每个线程进行组合、检测。
具体地,假设某线程组合为(PS,PSi),确定该线程组合对应的差分向量,将差分向量输入到模型进行检测,以检测PS是否是对PSi进行伪装的恶意进程,模型可输出非恶意概率和恶意概率。
若判定运行日志中都为正常进程,则可输出用于表示不存在恶意进程的信息;否则,返回恶意概率最大的进程的信息,输出格式为:PS-伪装PSi-恶意概率,并且,如果不止存在一个恶意进程,还可根据伪装进程的恶意程度对恶意进程进行排序,以便安全人员根据恶意程度的排序,结合其他维度的日志及经验,进行人工判断,若确定为正常进程,则入库白名单(更新表I和表II),若确定为恶意进程,则入库黑名单。
当本申请实施例中提供的恶意进程的检测方法以软件或硬件或软硬件结合实现的时候,电子设备中可以包括多个功能模块,每个功能模块可以包括软件、硬件或其结合。
具体的,参见图7所示,为本申请实施例提供的一种恶意进程的检测装置的结构示意图,包括获取模块701、查找模块702、检测模块703、输出模块704。
获取模块701,用于获取目标设备的运行日志;
查找模块702,用于对所述运行日志中的每个待检测进程,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,组成非恶意进程集合;
检测模块703,用于将该待检测进程的进程名和所述非恶意进程集合中每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对所述非恶意进程进行伪装的恶意进程,其中,所述恶意进程检测模型是对每个样本对中的待检测进程样本和非恶意进程样本的进程名之间的差异进行学习得到的;
输出模块704,用于输出各待检测进程的检测结果。
可选地,所述检测模块703还用于:
在预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程之前,判断该待检测进程的进程名是否存在白名单库中;
若否,则执行所述预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若是,则确定该待检测进程为非恶意进程。
可选地,所述检测模块703还用于:
若确定所述白名单库中与该待检测进程的进程名相同的非恶意进程为系统进程,则在确定该待检测进程为非恶意进程之前,判断该待检测进程的存储路径是否包含在所述系统进程对应的合法存储路径集合中;
若是,则执行所述预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若否,则确定该待检测进程为恶意进程。
可选地,所述检测模块703还用于:
在预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程之前,判断该待检测进程的进程名是否存在黑名单库中;
若否,则执行所述预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若是,则确定该待检测进程为恶意进程。
可选地,所述检测模块703具体用于:
从所述白名单库中查找与该待检测进程的进程名的首字符相同的非恶意进程;
从查找到的非恶意进程中筛选出进程名的字符长度在目标长度范围内的非恶意进程作为与该待检测进程相似的非恶意进程,所述目标长度范围根据该待检测进程的进程名的字符长度确定。
可选地,所述输出模块704具体用于:
若确定各待检测进程中不存在恶意进程,则输出用于表示各待检测进程中不存在恶意进程的信息;
若确定各待检测进程中存在至少两个恶意进程,则按照恶意概率从大到小的顺序输出各待检测进程中每个恶意进程的伪装信息,所述伪装信息包括该恶意进程的进程名、该恶意进程进行伪装的非恶意进程的进程名和该恶意进程的恶意概率。
当本申请实施例中提供的用于检测恶意进程的模型的建立方法以软件或硬件或软硬件结合实现的时候,电子设备中可以包括多个功能模块,每个功能模块可以包括软件、硬件或其结合。具体的,参见图8所示,为本申请实施例提供的恶意进程的检测装置的结构示意图,包括获取模块801、确定模块802、训练模块803。
获取模块801,用于获取样本对,其中,每个样本对中包含一个待检测进程样本和一个非恶意进程样本;
确定模块802,用于对每个样本对,根据该样本对中待检测进程样本的进程名和非恶意进程样本的进程名确定该样本对对应的差分向量,所述差分向量用于表征该样本对中所述待检测进程样本的进程名与所述非恶意进程样本的进程名之间的差异;
训练模块803,用于以该样本对对应的差分向量为输入,用于表示所述待检测进程样本是否是对所述非恶意进程样本进行伪装的恶意进程的标注信息为输出,对给定的模型进行训练。
可选地,所述确定模块802具体用于:
根据设定的字符映射规则和所述待检测进程样本的进程名确定所述待检测进程样本的特征向量,以及根据所述字符映射规则和所述非恶意进程样本的进程名确定所述非恶意进程样本的特征向量;
根据所述待检测进程样本的特征向量和所述非恶意进程样本的特征向量确定该样本对对应的差分向量。
可选地,所述确定模块802具体用于:
对第一特征向量中的第i个元素,判断该元素是否与第二特征向量中的第i个元素相同,若是,则将所述差分向量中的第i个元素设置为第一预设值;若否,则将所述差分向量中的第i个元素设置为第二预设值,i为整数;
其中,所述第一特征向量为所述待检测进程样本的特征向量时,所述第二特征向量为所述非恶意进程样本的特征向量;所述第一特征向量为所述非恶意进程样本的特征向量时,所述第二特征向量为所述待检测进程样本的特征向量。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本申请提供的恶意进程的检测方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的恶意进程的检测方法中的步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于恶意进程的检测的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (20)
1.一种恶意进程的检测方法,其特征在于,包括:
获取目标设备的运行日志;
对所述运行日志中的每个待检测进程,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,组成非恶意进程集合;以及将该待检测进程的进程名和所述非恶意进程集合中每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对所述非恶意进程进行伪装的恶意进程,其中,所述恶意进程检测模型是对每个样本对中的待检测进程样本和非恶意进程样本的进程名之间的差异进行学习得到的;
输出各待检测进程的检测结果。
2.如权利要求1所述的方法,其特征在于,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程之前,还包括:
判断该待检测进程的进程名是否存在白名单库中;
若否,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若是,则确定该待检测进程为非恶意进程。
3.如权利要求2所述的方法,其特征在于,若确定所述白名单库中与该待检测进程的进程名相同的非恶意进程为系统进程,则在确定该待检测进程为非恶意进程之前,还包括:
判断该待检测进程的存储路径是否包含在所述系统进程对应的合法存储路径集合中;
若是,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若否,则确定该待检测进程为恶意进程。
4.如权利要求1所述的方法,其特征在于,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程之前,还包括:
判断该待检测进程的进程名是否存在黑名单库中;
若否,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若是,则确定该待检测进程为恶意进程。
5.如权利要求1~4任一所述的方法,其特征在于,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,包括:
从所述白名单库中查找与该待检测进程的进程名的首字符相同的非恶意进程;
从查找到的非恶意进程中筛选出进程名的字符长度在目标长度范围内的非恶意进程作为与该待检测进程相似的非恶意进程,所述目标长度范围根据该待检测进程的进程名的字符长度确定。
6.如权利要求1所述的方法,其特征在于,输出各待检测进程的检测结果,包括:
若确定各待检测进程中不存在恶意进程,则输出用于表示各待检测进程中不存在恶意进程的信息;
若确定各待检测进程中存在至少两个恶意进程,则按照恶意概率从大到小的顺序输出各待检测进程中每个恶意进程的伪装信息,所述伪装信息包括该恶意进程的进程名、该恶意进程进行伪装的非恶意进程的进程名和该恶意进程的恶意概率。
7.一种用于检测恶意进程的模型的建立方法,其特征在于,包括:
获取样本对,其中,每个样本对中包含一个待检测进程样本和一个非恶意进程样本;
对每个样本对,根据该样本对中待检测进程样本的进程名和非恶意进程样本的进程名确定该样本对对应的差分向量,所述差分向量用于表征该样本对中所述待检测进程样本的进程名与所述非恶意进程样本的进程名之间的差异;以及
以该样本对对应的差分向量为输入,用于表示所述待检测进程样本是否是对所述非恶意进程样本进行伪装的恶意进程的标注信息为输出,对给定的模型进行训练。
8.如权利要求7所述的方法,其特征在于,根据该样本对中待检测进程样本的进程名和非恶意进程样本的进程名确定该样本对对应的差分向量,包括:
根据设定的字符映射规则和所述待检测进程样本的进程名确定所述待检测进程样本的特征向量,以及根据所述字符映射规则和所述非恶意进程样本的进程名确定所述非恶意进程样本的特征向量;
根据所述待检测进程样本的特征向量和所述非恶意进程样本的特征向量确定该样本对对应的差分向量。
9.如权利要求7所述的方法,其特征在于,根据所述待检测进程样本的特征向量和所述非恶意进程样本的特征向量确定该样本对对应的差分向量,包括:
对第一特征向量中的第i个元素,判断该元素是否与第二特征向量中的第i个元素相同,若是,则将所述差分向量中的第i个元素设置为第一预设值;若否,则将所述差分向量中的第i个元素设置为第二预设值,i为整数;
其中,所述第一特征向量为所述待检测进程样本的特征向量时,所述第二特征向量为所述非恶意进程样本的特征向量;所述第一特征向量为所述非恶意进程样本的特征向量时,所述第二特征向量为所述待检测进程样本的特征向量。
10.一种恶意进程的检测装置,其特征在于,包括:
获取模块,用于获取目标设备的运行日志;
查找模块,用于对所述运行日志中的每个待检测进程,根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程,组成非恶意进程集合;
检测模块,用于将该待检测进程的进程名和所述非恶意进程集合中每个非恶意进程的进程名输入到恶意进程检测模型中,以检测该待检测进程是否是对所述非恶意进程进行伪装的恶意进程,其中,所述恶意进程检测模型是对每个样本对中的待检测进程样本和非恶意进程样本的进程名之间的差异进行学习得到的;
输出模块,用于输出各待检测进程的检测结果。
11.如权利要求10所述的装置,其特征在于,所述检测模块还用于:
在根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程之前,判断该待检测进程的进程名是否存在白名单库中;
若否,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若是,则确定该待检测进程为非恶意进程。
12.如权利要求11所述的装置,其特征在于,所述检测模块还用于:
若确定所述白名单库中与该待检测进程的进程名相同的非恶意进程为系统进程,则在确定该待检测进程为非恶意进程之前,判断该待检测进程的存储路径是否包含在所述系统进程对应的合法存储路径集合中;
若是,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若否,则确定该待检测进程为恶意进程。
13.如权利要求10所述的装置,其特征在于,所述检测模块还用于:
在根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程之前,判断该待检测进程的进程名是否存在黑名单库中;
若否,则执行所述根据预先确定的模糊匹配规则从白名单库中查找与该待检测进程相似的非恶意进程的步骤;若是,则确定该待检测进程为恶意进程。
14.如权利要求10~13任一所述的装置,其特征在于,所述检测模块具体用于:
从所述白名单库中查找与该待检测进程的进程名的首字符相同的非恶意进程;
从查找到的非恶意进程中筛选出进程名的字符长度在目标长度范围内的非恶意进程作为与该待检测进程相似的非恶意进程,所述目标长度范围根据该待检测进程的进程名的字符长度确定。
15.如权利要求10所述的装置,其特征在于,所述输出模块具体用于:
若确定各待检测进程中不存在恶意进程,则输出用于表示各待检测进程中不存在恶意进程的信息;
若确定各待检测进程中存在至少两个恶意进程,则按照恶意概率从大到小的顺序输出各待检测进程中每个恶意进程的伪装信息,所述伪装信息包括该恶意进程的进程名、该恶意进程进行伪装的非恶意进程的进程名和该恶意进程的恶意概率。
16.一种用于检测恶意进程的模型的建立装置,其特征在于,包括:
获取模块,用于获取样本对,其中,每个样本对中包含一个待检测进程样本和一个非恶意进程样本;
确定模块,用于对每个样本对,根据该样本对中待检测进程样本的进程名和非恶意进程样本的进程名确定该样本对对应的差分向量,所述差分向量用于表征该样本对中所述待检测进程样本的进程名与所述非恶意进程样本的进程名之间的差异;以及
训练模块,用于以该样本对对应的差分向量为输入,用于表示所述待检测进程样本是否是对所述非恶意进程样本进行伪装的恶意进程的标注信息为输出,对给定的模型进行训练。
17.如权利要求16所述的装置,其特征在于,所述确定模块具体用于:
根据设定的字符映射规则和所述待检测进程样本的进程名确定所述待检测进程样本的特征向量,以及根据所述字符映射规则和所述非恶意进程样本的进程名确定所述非恶意进程样本的特征向量;
根据所述待检测进程样本的特征向量和所述非恶意进程样本的特征向量确定该样本对对应的差分向量。
18.如权利要求17所述的装置,其特征在于,所述确定模块具体用于:
对第一特征向量中的第i个元素,判断该元素是否与第二特征向量中的第i个元素相同,若是,则将所述差分向量中的第i个元素设置为第一预设值;若否,则将所述差分向量中的第i个元素设置为第二预设值,i为整数;
其中,所述第一特征向量为所述待检测进程样本的特征向量时,所述第二特征向量为所述非恶意进程样本的特征向量;所述第一特征向量为所述非恶意进程样本的特征向量时,所述第二特征向量为所述待检测进程样本的特征向量。
19.一种电子设备,其特征在于,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1~6或7~9任一权利要求所述的方法。
20.一种计算机可读介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行如权利要求1~6或7~9任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910683011.7A CN110414236B (zh) | 2019-07-26 | 2019-07-26 | 一种恶意进程的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910683011.7A CN110414236B (zh) | 2019-07-26 | 2019-07-26 | 一种恶意进程的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110414236A true CN110414236A (zh) | 2019-11-05 |
CN110414236B CN110414236B (zh) | 2021-04-16 |
Family
ID=68363272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910683011.7A Active CN110414236B (zh) | 2019-07-26 | 2019-07-26 | 一种恶意进程的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110414236B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717183A (zh) * | 2019-12-09 | 2020-01-21 | 深信服科技股份有限公司 | 病毒查杀方法、装置、设备及存储介质 |
CN110909352A (zh) * | 2019-11-26 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | Linux服务器下的恶意进程检测方法 |
CN111079139A (zh) * | 2019-12-24 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 进程预警方法、装置、计算机设备和计算机可读存储介质 |
CN111277585A (zh) * | 2020-01-16 | 2020-06-12 | 深信服科技股份有限公司 | 威胁处理方法、装置、设备和可读存储介质 |
CN112257065A (zh) * | 2020-09-28 | 2021-01-22 | 网宿科技股份有限公司 | 一种进程事件处理方法和装置 |
CN113569242A (zh) * | 2021-07-28 | 2021-10-29 | 中国南方电网有限责任公司 | 违规软件识别方法 |
CN115904863A (zh) * | 2022-10-26 | 2023-04-04 | 荣耀终端有限公司 | 一种pc场景识别方法及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2128798A1 (en) * | 2008-05-27 | 2009-12-02 | Deutsche Telekom AG | Unknown malcode detection using classifiers with optimal training sets |
CN101986324A (zh) * | 2009-10-01 | 2011-03-16 | 卡巴斯基实验室封闭式股份公司 | 用于恶意软件检测的事件的异步处理 |
CN105488091A (zh) * | 2015-06-19 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种基于关键字匹配的网络数据检测方法及系统 |
CN105718795A (zh) * | 2015-08-28 | 2016-06-29 | 哈尔滨安天科技股份有限公司 | Linux下基于特征码的恶意代码取证方法及系统 |
CN106203122A (zh) * | 2016-07-25 | 2016-12-07 | 西安交通大学 | 基于敏感子图的安卓恶意重打包软件检测方法 |
CN106557695A (zh) * | 2015-09-25 | 2017-04-05 | 卓望数码技术(深圳)有限公司 | 一种恶意应用检测方法和系统 |
CN106973051A (zh) * | 2017-03-27 | 2017-07-21 | 山石网科通信技术有限公司 | 建立检测网络威胁模型的方法、装置、存储介质和处理器 |
CN107392021A (zh) * | 2017-07-20 | 2017-11-24 | 中南大学 | 一种基于多类特征的Android恶意应用检测方法 |
-
2019
- 2019-07-26 CN CN201910683011.7A patent/CN110414236B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2128798A1 (en) * | 2008-05-27 | 2009-12-02 | Deutsche Telekom AG | Unknown malcode detection using classifiers with optimal training sets |
CN101986324A (zh) * | 2009-10-01 | 2011-03-16 | 卡巴斯基实验室封闭式股份公司 | 用于恶意软件检测的事件的异步处理 |
CN105488091A (zh) * | 2015-06-19 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种基于关键字匹配的网络数据检测方法及系统 |
CN105718795A (zh) * | 2015-08-28 | 2016-06-29 | 哈尔滨安天科技股份有限公司 | Linux下基于特征码的恶意代码取证方法及系统 |
CN106557695A (zh) * | 2015-09-25 | 2017-04-05 | 卓望数码技术(深圳)有限公司 | 一种恶意应用检测方法和系统 |
CN106203122A (zh) * | 2016-07-25 | 2016-12-07 | 西安交通大学 | 基于敏感子图的安卓恶意重打包软件检测方法 |
CN106973051A (zh) * | 2017-03-27 | 2017-07-21 | 山石网科通信技术有限公司 | 建立检测网络威胁模型的方法、装置、存储介质和处理器 |
CN107392021A (zh) * | 2017-07-20 | 2017-11-24 | 中南大学 | 一种基于多类特征的Android恶意应用检测方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909352A (zh) * | 2019-11-26 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | Linux服务器下的恶意进程检测方法 |
CN110717183A (zh) * | 2019-12-09 | 2020-01-21 | 深信服科技股份有限公司 | 病毒查杀方法、装置、设备及存储介质 |
CN111079139A (zh) * | 2019-12-24 | 2020-04-28 | 腾讯科技(深圳)有限公司 | 进程预警方法、装置、计算机设备和计算机可读存储介质 |
CN111277585A (zh) * | 2020-01-16 | 2020-06-12 | 深信服科技股份有限公司 | 威胁处理方法、装置、设备和可读存储介质 |
CN112257065A (zh) * | 2020-09-28 | 2021-01-22 | 网宿科技股份有限公司 | 一种进程事件处理方法和装置 |
CN113569242A (zh) * | 2021-07-28 | 2021-10-29 | 中国南方电网有限责任公司 | 违规软件识别方法 |
CN115904863A (zh) * | 2022-10-26 | 2023-04-04 | 荣耀终端有限公司 | 一种pc场景识别方法及电子设备 |
CN115904863B (zh) * | 2022-10-26 | 2023-11-07 | 荣耀终端有限公司 | 一种pc场景识别方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110414236B (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110414236A (zh) | 一种恶意进程的检测方法及装置 | |
US9256831B2 (en) | Match engine for detection of multi-pattern rules | |
CN108920954B (zh) | 一种恶意代码自动化检测平台及方法 | |
RU2580036C2 (ru) | Система и способ создания гибкой свертки для обнаружения вредоносных программ | |
KR101162051B1 (ko) | 문자열 비교 기법을 이용한 악성코드 탐지 및 분류 시스템 및 그 방법 | |
CN111431939B (zh) | 基于cti的sdn恶意流量防御方法 | |
Darshan et al. | Performance evaluation of filter-based feature selection techniques in classifying portable executable files | |
WO2017165018A1 (en) | Automated event id field analysis on heterogeneous logs | |
CN112468347B (zh) | 一种云平台的安全管理方法、装置、电子设备及存储介质 | |
CN106485146B (zh) | 一种信息处理方法及服务器 | |
Haddadi et al. | On botnet behaviour analysis using GP and C4. 5 | |
CN108491228A (zh) | 一种二进制漏洞代码克隆检测方法及系统 | |
CN106254321A (zh) | 一种全网络异常数据流分类方法 | |
CN110177123B (zh) | 基于dns映射关联图的僵尸网络检测方法 | |
RU2587429C2 (ru) | Система и способ оценки надежности правила категоризации | |
US11533325B2 (en) | Automatic categorization of IDPS signatures from multiple different IDPS systems | |
CN107247902A (zh) | 恶意软件分类系统及方法 | |
CN110691080A (zh) | 自动溯源方法、装置、设备及介质 | |
WO2022180613A1 (en) | Global iterative clustering algorithm to model entities' behaviors and detect anomalies | |
CN114915475A (zh) | 攻击路径的确定方法、装置、设备及存储介质 | |
Boffa et al. | Towards NLP-based processing of honeypot logs | |
CN114511330A (zh) | 一种基于改进的cnn-rf的以太坊庞氏骗局检测方法及系统 | |
CN106528805A (zh) | 基于用户的移动互联网恶意程序url智能分析挖掘方法 | |
WO2010149986A2 (en) | A method, a computer program and apparatus for analysing symbols in a computer | |
CN105279434A (zh) | 恶意程序样本家族命名方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Patentee after: NSFOCUS Technologies Group Co.,Ltd. Patentee after: NSFOCUS TECHNOLOGIES Inc. Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd. Patentee before: NSFOCUS TECHNOLOGIES Inc. |
|
CP01 | Change in the name or title of a patent holder |