CN111291368A - Cpu漏洞的防御方法及系统 - Google Patents
Cpu漏洞的防御方法及系统 Download PDFInfo
- Publication number
- CN111291368A CN111291368A CN201811494436.5A CN201811494436A CN111291368A CN 111291368 A CN111291368 A CN 111291368A CN 201811494436 A CN201811494436 A CN 201811494436A CN 111291368 A CN111291368 A CN 111291368A
- Authority
- CN
- China
- Prior art keywords
- instruction
- unknown process
- preset
- unknown
- cpu
- 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
- 238000000034 method Methods 0.000 title claims abstract description 308
- 230000008569 process Effects 0.000 claims abstract description 255
- 238000012544 monitoring process Methods 0.000 claims abstract description 78
- 230000007123 defense Effects 0.000 claims abstract description 68
- 238000004891 communication Methods 0.000 claims description 19
- 238000002347 injection Methods 0.000 claims description 11
- 239000007924 injection Substances 0.000 claims description 11
- 238000012549 training Methods 0.000 claims description 11
- 238000010801 machine learning Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 101150093240 Brd2 gene Proteins 0.000 description 2
- 208000032826 Ring chromosome 3 syndrome Diseases 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种CPU漏洞的防御方法及系统。其中,该方法包括:将预设监控代码注入未知进程;所述预设监控代码获取与所述未知进程相对应的指令;根据预设的漏洞防御规则,判断所述与所述未知进程相对应的指令是否为与CPU漏洞相关的指令;若是,针对所述未知进程进行拦截。该方式能够实现指令级别的监控,进而能够监控到与CPU漏洞相关的各个指令,实现更为全面的防御效果。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种CPU漏洞的防御方法及系统。
背景技术
中央处理器(Central Processing Unit,CPU)漏洞无疑属于一种高危漏洞,一旦恶意程序利用CPU漏洞发起攻击,则会对用户的个人设备造成不可估量的负面影响,甚至会造成设备瘫痪等重大问题。
在现有技术中,只能通过监控操作系统提供的接口来判断是否存在针对CPU漏洞的攻击行为。例如,当恶意程序试图通过调用操作系统提供的接口发起针对CPU漏洞的攻击行为时,通过在操作系统提供的接口处设置挂钩等监控方式即可监控到该恶意行为并进行拦截。
但是,发明人在实现本发明的过程中发现,现有技术中的上述方式至少存在下述缺陷:只能从操作系统提供的接口这一层面实现恶意行为的拦截操作,一旦恶意程序绕过操作系统提供的接口直接进入到操作系统内部,则会导致严重的后果。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的CPU漏洞的防御方法及系统。
根据本发明的一个方面,提供了一种CPU漏洞的防御方法,包括:
将预设监控代码注入未知进程;
所述预设监控代码获取与所述未知进程相对应的指令;
根据预设的漏洞防御规则,判断所述与所述未知进程相对应的指令是否为与CPU漏洞相关的指令;
若是,针对所述未知进程进行拦截。
根据本发明的另一个方面,提供了一种CPU漏洞的防御系统,包括:
注入模块,适于将预设监控代码注入未知进程;
获取模块,适于通过所述预设监控代码获取与所述未知进程相对应的指令;
判断模块,适于根据预设的漏洞防御规则,判断所述与所述未知进程相对应的指令是否为与CPU漏洞相关的指令;
拦截模块,适于在判断模块的判断结果为是时,针对所述未知进程进行拦截。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述CPU漏洞的防御方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述CPU漏洞的防御方法对应的操作。
根据本发明公开的CPU漏洞的防御方法及系统,能够将预设监控代码注入未知进程,由该预设监控代码获取与未知进程相对应的指令,进而根据预设的漏洞防御规则判断该未知进程相对应的指令是否为与CPU漏洞相关的指令;若是,则针对该未知进程进行拦截。由此可见,本发明通过向未知进程注入预设监控代码的方式,能够监控未知进程对应的各个指令,从而实现指令级别的监控,进而能够监控到与CPU漏洞相关的各个指令,实现更为全面的防御效果,即使未知进程绕过操作系统提供的接口直接进入到操作系统内部也能够通过指令进行拦截,提升了系统安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明一个实施例的CPU漏洞的防御方法的流程示意图;
图2示出了本发明另一个实施例的CPU漏洞的防御方法的流程示意图;
图3示出了本发明又一实施例提供的一种CPU漏洞的防御系统的系统结构图;
图4示出了根据本发明实施例的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了本发明一个实施例的CPU漏洞的防御方法的流程示意图。如图1所示,该方法包括:
步骤S110:将预设监控代码注入未知进程。
其中,注入是指:将一段第三方逻辑代码放置到应用程序内存中并执行。在本实施例中,该第三方逻辑代码即为预设监控代码。该预设监控代码用于实现对未知进程中的各个指令进行监控的目的,本发明不限定预设监控代码的具体实现方式,只要能够实现上述目的即可。例如,该预设监控代码可以是动态链接库(Dynamic Link Library,简称DLL)文件,进而通过DLL注入技术实现。
步骤S120:预设监控代码获取与未知进程相对应的指令。
具体地,该预设监控代码在监测到该未知进程发送的指令时,对监测到的指令进行拦截,以接管该未知进程发送的指令。具体实施时,可由该预设监控代码创建虚拟机,以模拟CPU运行环境,从而使未知进程运行于该虚拟机创建的虚拟CPU环境中,进而能够获取到与未知进程相对应的各个指令。当然,本领域技术人员也可以通过设置挂钩函数等多种方式来获取与未知进程相对应的指令,本发明对具体实现细节不做限定。
步骤S130:根据预设的漏洞防御规则,判断与未知进程相对应的指令是否为与CPU漏洞相关的指令。
其中,该预设的漏洞防御规则用于从指令级别判断一个指令是否为与CPU漏洞相关的指令。所谓与CPU漏洞相关的指令是指:通过指令的运行,能够利用CPU漏洞发起攻击的指令,相应地,凡是能够利用CPU漏洞进行恶意行为的指令均属于与CPU漏洞相关的指令。
在本实施例中,预设的漏洞防御规则主要用于从指令的执行频率、指令序列的序列特征等方面来识别一个指令是否为与CPU漏洞相关的指令。例如,可以预先确定与CPU漏洞相关的指令的执行频率以及指令序列特征,从而据此设置预设的漏洞防御规则。本发明对漏洞防御规则的具体内涵不做限定,只要能够从指令级别识别出恶意指令即可。
步骤S140:若是,针对未知进程进行拦截。
当判断出与未知进程相对应的指令为与CPU漏洞相关的指令时,即可确定该未知进程为恶意进程,意图利用CPU漏洞发起攻击。相应地,需要针对未知进程进行拦截,以便防御攻击。具体地,在针对未知进程进行拦截时,可通过多种方式实现,例如,可以直接杀死未知进程,以避免该进程继续发起攻击;又如,还可以拦截与未知进程相对应的指令,从而仅拦截某一条或多条恶意指令,从而避免误杀进程。
根据本发明公开的CPU漏洞的防御方法,能够将预设监控代码注入未知进程,由该预设监控代码获取与未知进程相对应的指令,进而根据预设的漏洞防御规则判断该未知进程相对应的指令是否为与CPU漏洞相关的指令;若是,则针对该未知进程进行拦截。由此可见,本发明通过向未知进程注入预设监控代码的方式,能够监控未知进程对应的各个指令,从而实现指令级别的监控,进而能够监控到与CPU漏洞相关的各个指令,实现更为全面的防御效果,即使未知进程绕过操作系统提供的接口直接进入到操作系统内部也能够通过指令进行拦截,提升了系统安全性。
图2示出了本发明另一个实施例的CPU漏洞的防御方法的流程示意图。在本实施例中,以预设监控代码为动态链接库DLL文件为例进行说明,并且,该动态链接库DLL文件用于通过虚拟机实现虚拟CPU环境。如图2所示,该方法包括:
步骤S200:当监测到未知进程启动时,根据预设的进程查询表查询该未知进程的等级,根据等级查询结果进行处理。
具体地,可通过回调函数或挂钩函数等多种机制实现未知进程的监测。例如,当未知程序启动时,操作系统调用安全软件中包含的回调函数,该回调函数能够将本次启动事件以及事件相关消息发送给安全软件的后台服务器,由后台服务器查询预设的进程查询表并返回查询结果。其中,事件相关消息包括:启动进程的身份标识(如进程的ID或PID)、进程的路径等相关信息。
其中,预设的进程查询表既可以直接存储在安全软件的后台服务器上,也可以存储在云服务器上。该进程查询表中存储了各个进程的等级信息,以便于根据等级信息判断进程是否安全。该等级信息可通过等级标识表示,例如,通过等级标识将进程等级划分为安全等级、危险等级以及可疑等级。或者,该等级信息也可通过黑白名单表示,例如,存储在白名单中的进程为安全等级、存储在黑名单中的进程为危险等级、存储在灰名单中的进程为可疑等级。相应地,后台服务器查询该进程查询表后返回查询结果,以供安全软件根据查询结果进行处理:若未知进程的等级为安全等级,则放行该未知进程;若未知进程的等级为危险等级,则拦截该未知进程(例如杀死该未知进程,以阻止该未知进程继续运行);若未知进程的等级为可疑等级,则执行步骤S210。
步骤S210:当未知进程的等级为可疑等级时,将动态链接库DLL注入未知进程。
具体实施时,需要确定未知进程的内存地址空间,然后,将DLL注入该未知进程的内存地址空间,以使该DLL成为该未知进程的一部分。在本实施例中,该DLL用于通过虚拟机实现虚拟CPU环境,以供未知进程运行于虚拟CPU环境中。也就是说,该DLL注入未知进程后,能够通过虚拟机模拟出虚拟的CPU环境以及其他各种硬件环境,并将该虚拟CPU环境提供给未知进程,以使该未知进程从真实CPU环境中切换到虚拟CPU环境中运行,具体可通过与未知进程进行通信以及消息转发等方式来实现上述切换过程。通过上述方式,即可实现通过动态链接库DLL监管未知进程的目的。
步骤S220:动态链接库DLL获取与未知进程相对应的指令。
具体地,由于DLL相当于一个能够支持进程运行的虚拟机,因此,未知进程运行于动态链接库DLL通过虚拟机创建的虚拟CPU环境中,因此,该未知进程通过操作系统发送的各个指令均由该DLL接管,相应地,该DLL能够获取到与该未知进程相对应的全部指令。
步骤S230:根据预设的漏洞防御规则,判断与未知进程相对应的指令是否为与CPU漏洞相关的指令。
其中,预设的漏洞防御规则包括以下两种规则中的至少一种:
第一种漏洞防御规则为:根据指令频率是否大于预设频率阈值进行防御的规则。具体地,发明人在实现本发明的过程中发现:恶意进程发起攻击时,通过会在短期内多次发送指令,以实现攻击目的。相应地,通过监测指令频率有利于筛查恶意指令。例如,在本实施例中,根据预设频率阈值确定一个预设次数阈值,当一秒内命中预设漏洞指令的次数超过该预设次数阈值时确定指令符合漏洞防御规则。其中,该预设漏洞指令可以为预先确定的与CPU漏洞相关的指令。
第二种漏洞防御规则为:根据指令序列和/或指令序列组合是否与预设的漏洞指令序列特征相匹配进行防御的规则。其中,预设的漏洞指令序列特征根据预先确定的与CPU漏洞相关的指令生成。该漏洞指令序列特征既可以是单个指令的单序列特征,也可以是由多个指令构成的指令集合的序列集合特征。
例如,该漏洞指令序列特征包括:与缓存线清除指令(例如CLFLUSH指令)相对应的指令序列特征、与读取时间标签计数器操作码指令(例如RDTSC指令)相对应的指令序列特征、和/或与读取TSC寄存器指令(例如RDTSCP指令)相对应的指令序列特征等。与CPU漏洞相关的指令除上述提到的CLFLUSH指令、RDTSC指令、以及RDTSCP指令之外,还可以包括CLFLUSHOPT指令(即刷新缓存行已优化指令),通过上述指令能够实现针对CPU漏洞进行攻击的目的,因此,在本发明中需要重点监控这些指令。具体地,根据上述指令设置的漏洞指令序列特征可以包括上述指令的全部内容,也可以仅包括从上述指令中抽取出的特征内容。另外,考虑到有时需要通过一组由多个不同的指令构成的指令集合来实现攻击目的,因此,漏洞指令序列特征还可以包括:依序排列的多个指令特征。
具体实施时,该预设的漏洞防御规则可以预先通过机器学习方式创建:首先,分别将样本监控代码注入各个样本进程,由样本监控代码接管与各个样本进程相对应的指令,以使与各个样本进程相对应的指令在虚拟CPU环境中执行;然后,通过机器学习算法,针对与各个样本进程相对应的指令以及指令执行结果进行训练,根据训练结果确定预设的漏洞防御规则。其中,样本监控代码与预设监控代码类似,都可以通过DLL实现,作用在于通过虚拟机模拟虚拟CPU环境,以使样本进程在虚拟CPU环境中运行。相应地,该样本监控代码能够监控到与该样本进程相关的全部指令,并且,该样本监控代码通过接管与该样本进程相关的全部指令并协助指令执行的方式能够获取到各个指令的执行结果,从而便于根据执行结果提取出恶意指令(即与CPU漏洞相关的指令),进而通过训练过程学习出恶意指令的指令特征,以扩充漏洞防御规则。通过机器学习方式,能够针对大量样本的指令进行学习,以确定各个指令是否为恶意指令,并进一步提取出恶意指令的特征,从而提升了漏洞防御规则的全面性及准确性。
步骤S240:若是,针对未知进程进行拦截。
当判断出与未知进程相对应的指令为与CPU漏洞相关的指令时,即可确定该未知进程为恶意进程,意图利用CPU漏洞发起攻击。相应地,需要针对未知进程进行拦截,以便防御攻击。具体地,在针对未知进程进行拦截时,可通过多种方式实现,例如,可以直接杀死未知进程,以避免该进程继续发起攻击;又如,还可以拦截与未知进程相对应的指令,从而仅拦截某一条或多条恶意指令,从而避免误杀进程。
步骤S250:若否,由动态链接库DLL接管与未知进程相对应的指令,以使与未知进程相对应的指令在虚拟CPU环境中执行;获取与未知进程相对应的指令的执行结果,当执行结果为与CPU漏洞相关的结果时,根据与未知进程相对应的指令更新预设的漏洞防御规则。
具体地,通过由动态链接库DLL接管与未知进程相对应的指令,以使与未知进程相对应的指令在虚拟CPU环境中执行的方式,能够使未知进程相对应的指令在模拟出的虚拟CPU环境中执行并监测到执行结果,从而准确确定各个未知指令的执行动机,进而实现漏洞防御规则的更新。
其中,步骤S250的执行目的在于:通过接管与未知进程相对应的指令并获取指令执行结果的方式,能够针对各个指令进行监控,从而便于挖掘出未包含在漏洞防御规则中的指令的特征,以便对漏洞防御规则进行扩充,进而提升后续的判断过程的准确性。实际情况中,漏洞防御规则可以在初始状态下为空,并随着本发明中的防御方式的不断执行,逐步扩充漏洞防御规则。
另外,需要强调的是,步骤S230与步骤S250之间并无严格的顺序关系,实际情况中,也可以在步骤S230中,由动态链接库DLL接管与未知进程相对应的指令,以使与未知进程相对应的指令在虚拟CPU环境中执行,并在执行过程中结合指令执行结果判断与未知进程相对应的指令是否为与CPU漏洞相关的指令,本发明对具体实现细节不做限定。
另外,在本实施例中,漏洞防御规则可以存储在云端,从而便于实现各个客户端间的共享,并且,在规则更新时,只需更新云端即可,各个客户端能够快速共享更新结果。
综上可知,通过本实施例中的方式,能够从指令级别监控进程,由于指令更为细化,因此,与传统的监测操作系统或CPU提供的接口的方式相比,扩大了监控范围、提升了监控的准确性。该方式能够把进程虚拟机(即提供进程运行环境的虚拟机)的DLL注入到该进程,后续该进程会在该进程虚拟机DLL中执行,相应地,该DLL能够在指令级别监控该进程,如果监控到符合漏洞防御规则的指令则会拦截,还可以触发报警,以提示用户。另外,该方案能够从环3(即Ring3)层来模拟CPU,实现监控,从而能够监控到指令级别的内容。
另外,本实施例提供的DLL注入方式能够在不改变进程运行环境的情况下实现DLL的注入过程,从而确保注入过程以及后续的监测过程对于用户而言是完全无感知的,从而提升了用户体验。在传统方式中,当发现可疑进程后,需要先杀死可疑进程,然后再重启该可疑进程,例如通过代理进程调用被监控的未知进程的方式实现重启,然而在这种方式中,当可疑进程被杀死时会对用户造成影响,且经重启后进程的父进程以及运行环境(例如,cmdline等)都会产生变化,不仅无法做到用户无感知,还容易被可疑进程发现异常。相比之下,本发明中的方式不仅实现了用户无感知,也不容易被可疑进程察觉,具有更好的实用性。
图3示出了本发明又一实施例提供的一种CPU漏洞的防御系统的系统结构图,如图3所示,所述系统包括:
注入模块31,适于将预设监控代码注入未知进程;
获取模块32,适于通过所述预设监控代码获取与所述未知进程相对应的指令;
判断模块33,适于根据预设的漏洞防御规则,判断所述与所述未知进程相对应的指令是否为与CPU漏洞相关的指令;
拦截模块34,适于在判断模块的判断结果为是时,针对所述未知进程进行拦截。
可选地,所述预设监控代码用于实现虚拟CPU环境,以供所述未知进程运行于所述虚拟CPU环境中。
可选地,所述拦截模块34进一步适于:
在判断模块的判断结果为否时,通过所述预设监控代码接管所述与所述未知进程相对应的指令,以使所述与所述未知进程相对应的指令在所述虚拟CPU环境中执行;获取所述与所述未知进程相对应的指令的执行结果,当所述执行结果为与CPU漏洞相关的结果时,根据所述与所述未知进程相对应的指令更新所述预设的漏洞防御规则。
可选地,所述预设的漏洞防御规则包括以下中的至少一个:
根据指令频率是否大于预设频率阈值进行防御的规则、以及根据指令序列和/或指令序列组合是否与预设的漏洞指令序列特征相匹配进行防御的规则。
可选地,所述预设的漏洞防御规则通过以下方式创建:
分别将样本监控代码注入各个样本进程,由所述样本监控代码接管与各个样本进程相对应的指令,以使所述与各个样本进程相对应的指令在虚拟CPU环境中执行;
通过机器学习算法,针对所述与各个样本进程相对应的指令以及指令执行结果进行训练,根据训练结果确定所述预设的漏洞防御规则。
可选地,所述拦截模块34具体适于:杀死所述未知进程,或者,拦截所述与所述未知进程相对应的指令。
可选地,所述系统进一步包括:
查询模块,适于当监测到未知进程启动时,根据预设的进程查询表查询该未知进程的等级;
若所述未知进程的等级为安全等级,则放行该未知进程;
若所述未知进程的等级为危险等级,则拦截该未知进程;
若所述未知进程的等级为可疑等级,则通知所述注入模块执行所述将预设监控代码注入未知进程的步骤。
可选地,所述预设的漏洞防御规则中存储的预设的漏洞指令序列特征包括以下中的至少一个:
与缓存线清除指令相对应的指令序列特征、与读取时间标签计数器操作码指令相对应的指令序列特征、以及与读取TSC寄存器指令相对应的指令序列特征。
可选地,所述预设监控代码包括:动态链接库DLL文件,且所述动态链接库DLL文件用于通过虚拟机实现虚拟CPU环境。
上述各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。
本申请实施例提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的CPU漏洞的防御方法。
图4示出了根据本发明实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器402,用于执行程序410,具体可以执行上述CPU漏洞的防御方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行上述CPU漏洞的防御方法实施例中的相关步骤。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的CPU漏洞的防御装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明还公开了A1.一种CPU漏洞的防御方法,包括:
将预设监控代码注入未知进程;
所述预设监控代码获取与所述未知进程相对应的指令;
根据预设的漏洞防御规则,判断所述与所述未知进程相对应的指令是否为与CPU漏洞相关的指令;
若是,针对所述未知进程进行拦截。
A2.根据权利要求A1所述的方法,其中,所述预设监控代码用于实现虚拟CPU环境,以供所述未知进程运行于所述虚拟CPU环境中。
A3.根据权利要求A2所述的方法,其中,所述判断所述与所述未知进程相对应的指令是否为与CPU漏洞相关的指令之后,进一步包括:
若否,由所述预设监控代码接管所述与所述未知进程相对应的指令,以使所述与所述未知进程相对应的指令在所述虚拟CPU环境中执行;
获取所述与所述未知进程相对应的指令的执行结果,当所述执行结果为与CPU漏洞相关的结果时,根据所述与所述未知进程相对应的指令更新所述预设的漏洞防御规则。
A4.根据权利要求A1-3任一所述的方法,其中,所述预设的漏洞防御规则包括以下中的至少一个:
根据指令频率是否大于预设频率阈值进行防御的规则、以及根据指令序列和/或指令序列组合是否与预设的漏洞指令序列特征相匹配进行防御的规则。
A5.根据权利要求A1-4任一所述的方法,其中,所述预设的漏洞防御规则通过以下方式创建:
分别将样本监控代码注入各个样本进程,由所述样本监控代码接管与各个样本进程相对应的指令,以使所述与各个样本进程相对应的指令在虚拟CPU环境中执行;
通过机器学习算法,针对所述与各个样本进程相对应的指令以及指令执行结果进行训练,根据训练结果确定所述预设的漏洞防御规则。
A6.根据权利要求A1-5任一所述的方法,其中,所述针对所述未知进程进行拦截包括:
杀死所述未知进程,或者,拦截所述与所述未知进程相对应的指令。
A7.根据权利要求A1-6任一所述的方法,其中,所述将预设监控代码注入未知进程之前,进一步包括:
当监测到未知进程启动时,根据预设的进程查询表查询该未知进程的等级;
若所述未知进程的等级为安全等级,则放行该未知进程;
若所述未知进程的等级为危险等级,则拦截该未知进程;
若所述未知进程的等级为可疑等级,则执行所述将预设监控代码注入未知进程的步骤。
A8.根据权利要求A1-7任一所述的方法,其中,所述预设的漏洞防御规则中存储的预设的漏洞指令序列特征包括以下中的至少一个:
与缓存线清除指令相对应的指令序列特征、与读取时间标签计数器操作码指令相对应的指令序列特征、以及与读取TSC寄存器指令相对应的指令序列特征。
A9.根据权利要求A1-8任一所述的方法,其中,所述预设监控代码包括:动态链接库DLL文件,且所述动态链接库DLL文件用于通过虚拟机实现虚拟CPU环境。
B10.一种CPU漏洞的防御系统,包括:
注入模块,适于将预设监控代码注入未知进程;
获取模块,适于通过所述预设监控代码获取与所述未知进程相对应的指令;
判断模块,适于根据预设的漏洞防御规则,判断所述与所述未知进程相对应的指令是否为与CPU漏洞相关的指令;
拦截模块,适于在判断模块的判断结果为是时,针对所述未知进程进行拦截。
B11.根据权利要求B10所述的系统,其中,所述预设监控代码用于实现虚拟CPU环境,以供所述未知进程运行于所述虚拟CPU环境中。
B12.根据权利要求B11所述的系统,其中,所述拦截模块进一步适于:
在判断模块的判断结果为否时,通过所述预设监控代码接管所述与所述未知进程相对应的指令,以使所述与所述未知进程相对应的指令在所述虚拟CPU环境中执行;获取所述与所述未知进程相对应的指令的执行结果,当所述执行结果为与CPU漏洞相关的结果时,根据所述与所述未知进程相对应的指令更新所述预设的漏洞防御规则。
B13.根据权利要求B10-12任一所述的系统,其中,所述预设的漏洞防御规则包括以下中的至少一个:
根据指令频率是否大于预设频率阈值进行防御的规则、以及根据指令序列和/或指令序列组合是否与预设的漏洞指令序列特征相匹配进行防御的规则。
B14.根据权利要求B10-13任一所述的系统,其中,所述预设的漏洞防御规则通过以下方式创建:
分别将样本监控代码注入各个样本进程,由所述样本监控代码接管与各个样本进程相对应的指令,以使所述与各个样本进程相对应的指令在虚拟CPU环境中执行;
通过机器学习算法,针对所述与各个样本进程相对应的指令以及指令执行结果进行训练,根据训练结果确定所述预设的漏洞防御规则。
B15.根据权利要求B10-14任一所述的系统,其中,所述拦截模块具体适于:杀死所述未知进程,或者,拦截所述与所述未知进程相对应的指令。
B16.根据权利要求B10-15任一所述的系统,其中,所述系统进一步包括:
查询模块,适于当监测到未知进程启动时,根据预设的进程查询表查询该未知进程的等级;
若所述未知进程的等级为安全等级,则放行该未知进程;
若所述未知进程的等级为危险等级,则拦截该未知进程;
若所述未知进程的等级为可疑等级,则通知所述注入模块执行所述将预设监控代码注入未知进程的步骤。
B17.根据权利要求B10-16任一所述的系统,其中,所述预设的漏洞防御规则中存储的预设的漏洞指令序列特征包括以下中的至少一个:
与缓存线清除指令相对应的指令序列特征、与读取时间标签计数器操作码指令相对应的指令序列特征、以及与读取TSC寄存器指令相对应的指令序列特征。
B18.根据权利要求B10-17任一所述的系统,其中,所述预设监控代码包括:动态链接库DLL文件,且所述动态链接库DLL文件用于通过虚拟机实现虚拟CPU环境。
C19.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求A1-9中任一项所述的CPU漏洞的防御方法对应的操作。
D20.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求A1-9中任一项所述的CPU漏洞的防御方法对应的操作。
Claims (10)
1.一种CPU漏洞的防御方法,包括:
将预设监控代码注入未知进程;
所述预设监控代码获取与所述未知进程相对应的指令;
根据预设的漏洞防御规则,判断所述与所述未知进程相对应的指令是否为与CPU漏洞相关的指令;
若是,针对所述未知进程进行拦截。
2.根据权利要求1所述的方法,其中,所述预设监控代码用于实现虚拟CPU环境,以供所述未知进程运行于所述虚拟CPU环境中。
3.根据权利要求2所述的方法,其中,所述判断所述与所述未知进程相对应的指令是否为与CPU漏洞相关的指令之后,进一步包括:
若否,由所述预设监控代码接管所述与所述未知进程相对应的指令,以使所述与所述未知进程相对应的指令在所述虚拟CPU环境中执行;
获取所述与所述未知进程相对应的指令的执行结果,当所述执行结果为与CPU漏洞相关的结果时,根据所述与所述未知进程相对应的指令更新所述预设的漏洞防御规则。
4.根据权利要求1-3任一所述的方法,其中,所述预设的漏洞防御规则包括以下中的至少一个:
根据指令频率是否大于预设频率阈值进行防御的规则、以及根据指令序列和/或指令序列组合是否与预设的漏洞指令序列特征相匹配进行防御的规则。
5.根据权利要求1-4任一所述的方法,其中,所述预设的漏洞防御规则通过以下方式创建:
分别将样本监控代码注入各个样本进程,由所述样本监控代码接管与各个样本进程相对应的指令,以使所述与各个样本进程相对应的指令在虚拟CPU环境中执行;
通过机器学习算法,针对所述与各个样本进程相对应的指令以及指令执行结果进行训练,根据训练结果确定所述预设的漏洞防御规则。
6.根据权利要求1-5任一所述的方法,其中,所述针对所述未知进程进行拦截包括:
杀死所述未知进程,或者,拦截所述与所述未知进程相对应的指令。
7.根据权利要求1-6任一所述的方法,其中,所述将预设监控代码注入未知进程之前,进一步包括:
当监测到未知进程启动时,根据预设的进程查询表查询该未知进程的等级;
若所述未知进程的等级为安全等级,则放行该未知进程;
若所述未知进程的等级为危险等级,则拦截该未知进程;
若所述未知进程的等级为可疑等级,则执行所述将预设监控代码注入未知进程的步骤。
8.一种CPU漏洞的防御系统,包括:
注入模块,适于将预设监控代码注入未知进程;
获取模块,适于通过所述预设监控代码获取与所述未知进程相对应的指令;
判断模块,适于根据预设的漏洞防御规则,判断所述与所述未知进程相对应的指令是否为与CPU漏洞相关的指令;
拦截模块,适于在判断模块的判断结果为是时,针对所述未知进程进行拦截。
9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的CPU漏洞的防御方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-7中任一项所述的CPU漏洞的防御方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811494436.5A CN111291368B (zh) | 2018-12-07 | 2018-12-07 | Cpu漏洞的防御方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811494436.5A CN111291368B (zh) | 2018-12-07 | 2018-12-07 | Cpu漏洞的防御方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291368A true CN111291368A (zh) | 2020-06-16 |
CN111291368B CN111291368B (zh) | 2024-06-18 |
Family
ID=71023624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811494436.5A Active CN111291368B (zh) | 2018-12-07 | 2018-12-07 | Cpu漏洞的防御方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291368B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883383A (zh) * | 2021-03-04 | 2021-06-01 | 北京明略昭辉科技有限公司 | 一种漏洞安全防御方法、系统及计算机设备 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154258A (zh) * | 2007-08-14 | 2008-04-02 | 电子科技大学 | 恶意程序动态行为自动化分析系统与方法 |
CN101515320A (zh) * | 2009-04-10 | 2009-08-26 | 中国科学院软件研究所 | 一种攻击时漏洞检测方法及其系统 |
CN101848092A (zh) * | 2009-03-25 | 2010-09-29 | 华为技术有限公司 | 恶意代码检测方法和装置 |
US20110231936A1 (en) * | 2010-03-19 | 2011-09-22 | Aspect Security Inc. | Detection of vulnerabilities in computer systems |
CN102254120A (zh) * | 2011-08-09 | 2011-11-23 | 成都市华为赛门铁克科技有限公司 | 恶意代码的检测方法、系统及相关装置 |
US20130298203A1 (en) * | 2012-05-07 | 2013-11-07 | Samsung Electronics Co., Ltd. | Apparatus and method of providing security to cloud data to prevent unauthorized access |
CN103593608A (zh) * | 2012-12-25 | 2014-02-19 | 卡巴斯基实验室封闭式股份公司 | 用于检测由虚拟机所执行的恶意代码的系统和方法 |
CN104915595A (zh) * | 2015-06-30 | 2015-09-16 | 北京奇虎科技有限公司 | 云平台虚拟化漏洞修复的方法及装置 |
CN105204985A (zh) * | 2014-06-23 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 漏洞检测方法及装置 |
US20170046518A1 (en) * | 2015-08-11 | 2017-02-16 | Symantec Corporation | Systems and methods for detecting unknown vulnerabilities in computing processes |
CN106611122A (zh) * | 2015-10-27 | 2017-05-03 | 国家电网公司 | 基于虚拟执行的未知恶意程序离线检测系统 |
CN106850582A (zh) * | 2017-01-05 | 2017-06-13 | 中国电子科技网络信息安全有限公司 | 一种基于指令监控的apt高级威胁检测方法 |
CN107220544A (zh) * | 2016-03-22 | 2017-09-29 | 趣斯特派普有限公司 | 用于检测感兴趣指令序列的系统和方法 |
CN107330331A (zh) * | 2016-04-29 | 2017-11-07 | 阿里巴巴集团控股有限公司 | 识别存在漏洞的系统的方法、装置和系统 |
US20180276372A1 (en) * | 2015-10-28 | 2018-09-27 | Fractal Industries, Inc. | System and methods for sandboxed malware analysis and automated patch development, deployment and validation |
-
2018
- 2018-12-07 CN CN201811494436.5A patent/CN111291368B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154258A (zh) * | 2007-08-14 | 2008-04-02 | 电子科技大学 | 恶意程序动态行为自动化分析系统与方法 |
CN101848092A (zh) * | 2009-03-25 | 2010-09-29 | 华为技术有限公司 | 恶意代码检测方法和装置 |
CN101515320A (zh) * | 2009-04-10 | 2009-08-26 | 中国科学院软件研究所 | 一种攻击时漏洞检测方法及其系统 |
US20110231936A1 (en) * | 2010-03-19 | 2011-09-22 | Aspect Security Inc. | Detection of vulnerabilities in computer systems |
CN102254120A (zh) * | 2011-08-09 | 2011-11-23 | 成都市华为赛门铁克科技有限公司 | 恶意代码的检测方法、系统及相关装置 |
US20130298203A1 (en) * | 2012-05-07 | 2013-11-07 | Samsung Electronics Co., Ltd. | Apparatus and method of providing security to cloud data to prevent unauthorized access |
CN103593608A (zh) * | 2012-12-25 | 2014-02-19 | 卡巴斯基实验室封闭式股份公司 | 用于检测由虚拟机所执行的恶意代码的系统和方法 |
US8713631B1 (en) * | 2012-12-25 | 2014-04-29 | Kaspersky Lab Zao | System and method for detecting malicious code executed by virtual machine |
CN105204985A (zh) * | 2014-06-23 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 漏洞检测方法及装置 |
CN104915595A (zh) * | 2015-06-30 | 2015-09-16 | 北京奇虎科技有限公司 | 云平台虚拟化漏洞修复的方法及装置 |
US20170046518A1 (en) * | 2015-08-11 | 2017-02-16 | Symantec Corporation | Systems and methods for detecting unknown vulnerabilities in computing processes |
CN106611122A (zh) * | 2015-10-27 | 2017-05-03 | 国家电网公司 | 基于虚拟执行的未知恶意程序离线检测系统 |
US20180276372A1 (en) * | 2015-10-28 | 2018-09-27 | Fractal Industries, Inc. | System and methods for sandboxed malware analysis and automated patch development, deployment and validation |
CN107220544A (zh) * | 2016-03-22 | 2017-09-29 | 趣斯特派普有限公司 | 用于检测感兴趣指令序列的系统和方法 |
CN107330331A (zh) * | 2016-04-29 | 2017-11-07 | 阿里巴巴集团控股有限公司 | 识别存在漏洞的系统的方法、装置和系统 |
CN106850582A (zh) * | 2017-01-05 | 2017-06-13 | 中国电子科技网络信息安全有限公司 | 一种基于指令监控的apt高级威胁检测方法 |
Non-Patent Citations (3)
Title |
---|
DAWEI SHI等: "Detecting environment-sensitive malware based on taint analysis", 2017 8TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND SERVICE SCIENCE (ICSESS), 23 April 2018 (2018-04-23) * |
程志炜;陈财森;邱雪欢;: "基于Flush+Reload的DES算法Cache计时攻击", 计算机工程, no. 12 * |
童瀛;牛博威;周宇;张旗;: "基于沙箱技术的恶意代码行为检测方法", 西安邮电大学学报, no. 05, 10 September 2018 (2018-09-10) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883383A (zh) * | 2021-03-04 | 2021-06-01 | 北京明略昭辉科技有限公司 | 一种漏洞安全防御方法、系统及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111291368B (zh) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684832B (zh) | 检测恶意文件的系统和方法 | |
EP3430557B1 (en) | System and method for reverse command shell detection | |
US9973531B1 (en) | Shellcode detection | |
JP6388485B2 (ja) | マルウェア発見方法及びシステム | |
CN109583202B (zh) | 用于检测进程的地址空间中的恶意代码的系统和方法 | |
EP3371953B1 (en) | System and methods for detecting domain generation algorithm (dga) malware | |
US20190141075A1 (en) | Method and system for a protection mechanism to improve server security | |
EP3422238B1 (en) | Detecting a malware process | |
US11042633B2 (en) | Methods for protecting software hooks, and related computer security systems and apparatus | |
JP6306265B2 (ja) | マルウェア検出方法、及びマルウェア検出装置 | |
US9910983B2 (en) | Malware detection | |
CN106415577B (zh) | 用于识别可疑事件来源的系统和方法 | |
CN114676424B (zh) | 一种容器逃逸检测与阻断方法、装置、设备及存储介质 | |
CN110674496A (zh) | 程序对入侵终端进行反制的方法、系统以及计算机设备 | |
CN103970574B (zh) | office程序的运行方法及装置、计算机系统 | |
CN111444509B (zh) | 基于虚拟机实现的cpu漏洞检测方法及系统 | |
CN112307482A (zh) | 基于靶场的入侵内核检测方法及装置、计算设备 | |
CN111444510A (zh) | 基于虚拟机实现的cpu漏洞检测方法及系统 | |
CN111291368A (zh) | Cpu漏洞的防御方法及系统 | |
CN111382440B (zh) | 基于虚拟机实现的cpu漏洞检测方法及系统 | |
CN112307469A (zh) | 入侵内核的防御方法及装置、计算设备、计算机存储介质 | |
KR101077855B1 (ko) | 컨텐츠 검사 장치와 악성 코드 관제 장치 및 이를 이용한 컨텐츠 검사 방법 | |
CN111444508A (zh) | 基于虚拟机实现的cpu漏洞检测装置及方法 | |
Cherny et al. | Well, that escalated quickly! how abusing docker api led to remote code execution, same origin bypass and persistence in the hypervisor via shadow containers | |
CN111767536A (zh) | 一种抵抗处理器投机访问漏洞的cache防护方法及装置 |
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 |