CN103984899B - 一种虚拟机在线高效批量杀毒系统及杀毒方法 - Google Patents
一种虚拟机在线高效批量杀毒系统及杀毒方法 Download PDFInfo
- Publication number
- CN103984899B CN103984899B CN201410252445.9A CN201410252445A CN103984899B CN 103984899 B CN103984899 B CN 103984899B CN 201410252445 A CN201410252445 A CN 201410252445A CN 103984899 B CN103984899 B CN 103984899B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- module
- privately owned
- result
- suspicious
- 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.)
- Active
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/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
Abstract
本发明涉及一种虚拟机在线高效批量杀毒系统及杀毒方法。本发明创造性的为每台虚拟机维护三张私有表,在其中分别存放经由判断后的安全、可疑和应被终止的进程的信息,当需要对进程的安全性进行判断时,查表,若存在匹配进程则进行与匹配进程相同的处理,可避免对同一虚拟机中同一进程的重复扫描;为所有虚拟机维护公共表,在其中存放所有经由杀毒软件扫描的进程信息及扫描结果,当需要对进程的安全性进行判断且需要进程不在当前虚拟机私有表中时,查询公共表,依据匹配进程的扫描结果进行处理,可避免对不同虚拟机中扫描过的相同进程的重复扫描;最后才对在私有表和公共表中都查询失败的进程调用杀毒软件扫描,以此达到高效批量杀毒的目的。
Description
技术领域
本发明涉及病毒查杀技术领域,尤其涉及一种虚拟机在线高效批量杀毒系统及杀毒方法。
背景技术
随着云计算的迅速发展,其核心之一的虚拟化技术也越来越多的运用到各个领域。小到 PC,大到各大型企业服务器虚拟环境的部署,虚拟机的应用越来越来广泛。利用虚拟化技术,不仅可以提高整个系统软、硬件资源的利用率,为企业充分节约成本,而且给管理带来了极大的方便。
虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。虚拟化技术的本质就是在硬件软件的支持下,将物理上的单个资源通过时分空分复用的途径使得多个虚拟机共同使用,使得每个虚拟机都拥有一份相对应的虚拟资源,从而提高了对真实物理资源的利用率。
尽管虚拟化技术发展迅速,但是虚拟机的安全问题却日益严重。各类病毒依靠网络四处传播,在虚拟化环境下的虚拟机统一会受到与物理机类似的威胁而且同一宿主机上的所有虚拟机一般同处在一个网络中,这样更加加快了病毒等的传播而导致整个虚拟环境的崩溃。另一方面,虚拟化环境下虚拟机并存运行和动态变化的特性,使得虚拟化层面的安全问题与传统系统安全问题大有不同。目前国内外针对恶意代码攻击的安全防护在物理机层面的技术较多,检测手段多样,效果比较明显。但是,对于应用日趋广泛的虚拟化条件下的恶意代码检测防范研究相对较少,导致虚拟机在网络中容易被攻击和利用,降低应用的整体安全性能。因此,为了保证虚拟化环境的安全和稳定,如何在虚拟化环境下对恶意进程进行监控和查杀成了亟待解决的问题。
现有的虚拟化环境下的安全防护主要有以下两种方法:
传统的较为简单的防止恶意攻击的方法,即在计算机上安装杀毒软件并即使更新病毒库,定期对计算机扫描查杀病毒,可以一定程度上保护计算机。但是这样的杀毒机制占用资源,如果每台虚拟机上的杀毒软件都同时开始进行病毒扫描,会影响虚拟机用户对虚拟机的正常使用;每台虚拟机都只能依靠对应用户的命令进行杀毒,不能进行统一化管理。
对虚拟机进行监控。有将监控系统部署于虚拟机之外(无代理模式),也有部署于虚拟机内部(代理模式)。在外部监控和杀毒方面,佐治亚理工学院开发的 Ether、乌克兰软件开发公司开发的Hypertection、趋势科技和VMware合作推出的Deep Security等都是无代理模式的反恶意程序及反病毒功能的软件。在内部监控方面,Monirul Sharif 等提出了一种虚拟机框架利用最新的处理器的硬件虚拟化功能,创建一个虚拟机管理程序的保护地址空间。
现有的安全防护方法需要消耗大量资源,导致虚拟机新能降低,与虚拟化目标相悖。而且对同一台物理机上的多台虚拟机的安全防护都是相互独立的,对同一台虚拟机或物理机上出现的相同进程重复查杀,占用时间与资源。
发明内容
本发明主要是解决现有技术所存在的技术问题;提供了一种不对客户机做安装代理插件等改变的方式,达到统一管理虚拟机,不影响客户机使用的目标的虚拟机在线高效批量杀毒系统及杀毒方法。
本发明还有一目的是解决现有技术所存在的技术问题;提供了一种避免了对同一台虚拟机或物理机上出现的相同进程重复查杀;使用结构化数组存放已扫描过的信息,采用私有表和公共表相结合的方式,既保证了不同虚拟机的个性化需求,又避免了同一物理机对相同进程的重复查杀的一种虚拟机在线高效批量杀毒系统及杀毒方法。
本发明再有一目的是解决现有技术所存在的技术问题;提供了一种使用基于进程切换的监控模式,避免了恶意进程通过进程隐藏等方式的欺骗;通过这些与虚拟化相结合的特性,在为多台虚拟机同时提供安全保护的同时,避免了常规杀毒方式对客户机工作效率的影响的一种虚拟机在线高效批量杀毒系统及杀毒方法。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种虚拟机在线高效批量杀毒系统,其特征在于,定义三张私有表和一张公共表;所述三张私有表配备在每个虚拟机中,所述三张私有表分别是私有的安全表、可疑表和终止表;所述公共表为公共的已扫描表,其中:
私有表一,即安全表:用于保存安全进程,具体为一个结构体数组,包含了安全进程的关键信息;
私有表二,即终止表:用于保存终止进程,具体为一个结构体数组,包含了危险进程的关键信息;
私有表三,即可疑表:用于保存可疑进程,具体为一个结构体数组,包含了可疑进程的关键信息;
公共表,即公共的已扫描表:用于保存经由杀毒软件扫描过的所有进程信息,存储了已经过杀毒软件扫描过进程的关键信息,包括进程名、进程PE映像大小、程序入口地址以及扫描结果;
该虚拟机在线高效批量杀毒系统包括:
一监控模块:用于监控虚拟机内进程切换,当发现进程切换时调用进程分析函数,获取虚拟机中切换后的当前进程数据并进行解析,保存切换后当前进程的PE映像,并将解析结果发送给决策模块;
一决策模块:用于对监控模块监控到的切换后的进程进行消重处理,具体是维护每台虚拟机三张私有表,并维护公共表,在四个表中查询监控模块发送的虚拟机中切换后的当前进程,并根据查询结果选择执行:
选择执行一:
若查询到当前进程与四个表的任意一个表中存储的进程相匹配,则根据该表对应的处理方式进行处理;
选择执行二:
若当前进程与四个表的任何一个表对应的进程均不匹配,则将该进程信息发送给扫描模块,扫描模块调用杀毒引擎查杀,并将查杀结果反馈给决策模块;
如果扫描结果为安全,将该进程信息加入公共表和安全表并提示监控模块继续监测进程切换;
如果扫描结果为可疑,则将该进程信息加入公共表和可疑表,并将可疑进程信息发送给询问模块,并根据询问模块返回的用户判断的结果,将用户决策为信任的进程加入安全表提示监控模块继续监测进程切换,将用户决策为终止的进程加入终止表并终止进程后提示监控模块继续监测进程切换,同时删除可疑表中的当前进程信息;
一扫描模块:用于对决策模块发送的查询失败的进程调用杀毒引擎进行扫描,将扫描结果返回给决策模块;
一询问模块:用于与用户进行交互,推送可疑进程信息,接收用户判断的结果,将用户判断的结果发送给决策模块。
本发明创造性的为每台虚拟机维护三张私有表,在其中分别存放经由判断后的安全、可疑和应该被终止的进程的信息,当下一次需要对进程的安全性进行判断时,查询表中是否存在匹配的进程,若存在则进行与匹配进程相同的处理,可避免对同一虚拟机中同一进程的重复扫描;为所有虚拟机维护公共表,在其中存放所有虚拟机中出现过、并经由杀毒软件扫描的进程信息及扫描结果,当下一次需要对进程的安全性进行判断且需要进行判断的进程不在当前虚拟机私有表中时,查询公共表,对当前进程依据匹配进程的扫描结果进行处理,可避免对不同虚拟机中扫描过的相同进程的重复扫描;最后才对在私有表和公共表中都查询失败的未扫描过的进程调用杀毒软件扫描,以此达到高效批量杀毒的目的。
在上述的一种虚拟机在线高效批量杀毒系统,其特征在于,所述选择执行一中,具体的步骤是:
步骤2.1、若查询到当前进程与私有表一中存储的某个进程相匹配,则不进行任何操作,继续监测进程切换;若查询到当前进程与私有表一中存储的所有进程均不匹配,则继续执行以下步骤;
步骤2.2、若查询到当前进程与私有表二中存储的某个进程相匹配,则终止该进程,并继续监测进程切换;若查询到当前进程与私有表二中存储的所有进程均不匹配,则继续执行以下步骤;
步骤2.3、若查询到当前进程与私有表三中存储的某个进程相匹配,则将结果发送给询问模块,由询问模块与用户进行交互,接收用户判断的结果,并将结果发送给决策模块,若返回的用户决策为信任则将该进程信息加入私有表一,并继续监测进程切换;若为终止则将该进程信息加入私有表二并终止进程,继续监测进程切换;若都无匹配,则继续执行以下步骤;
步骤2.4、获取当前进程的进程名、进程PE映像大小、程序入口地址后,查询到当前进程与公共表中存储的所有进程的匹配情况,若查询到当前进程与公共表中存储的某个进程相匹配,则根据该进程对应的扫描结果进行选择操作:
选择操作一:若扫描结果安全,则更新该私有表一,继续监测进程切换;
选择操作一:若扫描结果为可疑,则更新该私有表三,并将结果发送给询问模块,由询问模块与用户进行交互,接收用户判断的决策结果,并将结果发送给决策模块;若返回的用户决策结果为信任则将该进程信息加入私有表一并继续监测进程切换,若返回的用户决策结果为终止则将该进程信息加入私有表二并终止进程,继续监测进程切换。
一种虚拟机在线高效批量杀毒方法,其特征在于,
定义三张私有表和一张公共表;所述三张私有表配备在每个虚拟机中,所述三张私有表分别是私有的安全表、可疑表和终止表;所述公共表为公共的已扫描表,其中:
私有表一,即安全表:用于保存安全进程,具体为一个结构体数组,包含了安全进程的关键信息;
私有表二,即可疑表:用于保存可疑进程,具体为一个结构体数组,包含了可疑进程的关键信息;
私有表三,即终止表:用于保存终止进程,具体为一个结构体数组,包含了危险进程的关键信息;
公共表,即公共的已扫描表:用于保存经由杀毒软件扫描过的所有进程信息,存储了已经过杀毒软件扫描过进程的关键信息,包括进程名、进程PE映像大小、程序入口地址以及扫描结果;
包括以下步骤:
步骤1,虚拟机用户通过VNC控制自己的虚拟机运行各类程序;
步骤2,监控模块监测虚拟机内进程切换,如果监控模块监测到进程切换,则调用进程分析函数取得切换后的当前进程相关数据,并将相应信息发送给决策模块,决策模块接收到监控模块发送的的进程信息后,查询决策模块中属于当前虚拟机的三张私有表,如果当前进程在安全表中,则不进行任何处理,转步骤2继续监测进程切换;如果在可疑表中,则转步骤6;如果在终止表中,则终止当前进程,转步骤2继续监测进程切换;若没有匹配,则说明当前进程未曾出现在当前虚拟机中,继续执行步骤3;
步骤3,获取当前进程的进程名、进程PE映像大小、程序入口地址,查公共表,即已扫描表,如果有相符项,则获取该项的扫描结果,继续执行步骤4;如果没有相符项,则转步骤5;
步骤4,如果扫描结果值为安全,则将进程的进程名、进程PE映像大小、程序入口地址将加入该虚拟机的安全表,转步骤2继续监测进程切换;如果扫描结果值为可疑,则转步骤6;
步骤5,将获取的进程在内存中的PE映像放到内存的待扫描空间,扫描模块调用杀毒引擎,对内存待扫描空间进行扫描,将进程信息以及扫描结果加入公共表,如果当前进程安全,则加入决策模块该虚拟机的安全表,,不进行任何处理,转步骤2继续监测进程切换;若当前进程可疑,则加入可疑表,并发送给询问模块,继续执行步骤6;
步骤6:询问模块收到可疑进程信息后用户发送警示,由用户选择是信任还是终止,用户做出决策,返回信息给询问模块,如果返回结果为信任,则将进程信息添加到当前虚拟机安全表,转步骤2继续监测进程切换;如果返回结果为终止,则将进程信息添加到当前虚拟机终止表,转步骤2继续监测进程切换。
因此,本发明具有如下优点:1.采用在主机上进行集中监控管理,不对客户机做安装代理插件等改变的方式,达到统一管理虚拟机,不影响客户机使用的目标;2.在出现新进程时,采取先在私有表中查找,再在公共表中查找,最后才用杀毒引擎进行扫描,避免了对同一台虚拟机或物理机上出现的相同进程重复查杀;3.使用结构化数组存放已扫描过的信息,采用私有表和公共表相结合的方式,既保证了不同虚拟机的个性化需求,又避免了同一物理机对相同进程的重复查杀;4.使用基于进程切换的监控模式,避免了恶意进程通过进程隐藏等方式的欺骗;通过这些与虚拟化相结合的特性,在为多台虚拟机同时提供安全保护的同时,避免了常规杀毒方式对客户机工作效率的影响。
附图说明
附图1为虚拟化的基本结构架构图。
附图2为本发明的模块与虚拟化基本结构架构的关系图。
附图3为本发明的系统模块间详细关系示意图。
附图4为本发明的系统工作流程图。
附图5为本发明的系统工作流程中询问用户过程的流程图。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
一、首先介绍一下本发明的模块结构:
如图2所示,本发明基于KVM虚拟化平台,包括装有Linux系统的具有支持虚拟化CPU的服务器、主机以及服务器上安装的数台虚拟机,并设置监控模块、决策模块、扫描模块以及询问模块。
如图3所示,本发明提供的一种虚拟机在线高效批量杀毒系统,具体包括:
1.监控模块301,用于监控进程切换;
实施时,当发现进程切换时获取客户机获取当前进程信息并进行解析,保存新进程PE映像,并将解析结果发送给决策模块;
其中,所述客户机当前进程信息主要包括vimd,pid和cr3值,通过调用进程分析函数获得;
2.决策模块302,用于对监控模块监控到的切换后的进程进行消重处理,将之前处理过的进程及处理结果记录下来,对一致进程做一致处理,减少杀毒软件的扫描,从而提高系统的效率;
实施时,决策模块维护一张公共表以及每台虚拟机对应的三张私有表,并能对表进行相应操作,当接收到监控模块发送的当前进程信息后查相应表,如果没有查到结果就将当前进程信息发送给扫描模块;私有表包括了为每台虚拟机构建的三张表,包括安全表、可疑表和终止表;
四个表的具体结构是这样的:
公共表,具体为:一个结构体数组,包含了进程的进程名、进程PE映像大小、程序入口地址以及扫描结果,查询时使用当前进程的进程名、进程PE映像大小、程序入口地址三个值匹配表中对应值,如果能匹配到则说明该进程已被杀毒模块扫描过,返回扫描结果的值;
安全表,具体为:一个结构体数组,包含了进程的关键信息,查询时使用当前进程的vmid,pid,cr3三个值匹配表中对应值,如果对应值完全一致则说明能匹配到对应进程,说明该进程是安全的或在该虚拟机中被用户信任;
可疑表,具体为:一个结构体数组,包含了进程的关键信息,查询时使用当前进程的vmid,pid,cr3三个值匹配表中对应值,如果对应值完全一致则说明能匹配到对应进程,说明该进程的扫描结果为可疑,需要询问用户对其信任或者终止;
终止表,具体为:一个结构体数组,包含了进程的关键信息,查询时使用当前进程的vmid,pid,cr3三个值匹配表中对应值,如果对应值完全一致则说明能匹配到对应进程,说明该进程是危险的且不被用户信任的,需要终止该进程;
决策模块对表的操作,具体包括查询、添加和删除:
查询,具体为:当决策模块接收到监控模块发送的进程信息时,使用当前进程的vmid,pid,cr3三个值匹配表中对应值,如果对应值完全一致则说明能匹配到对应进程,返回查询结果;
添加,具体为:当查询公共表返回扫描结果为安全时或者杀毒引擎扫描的结果为安全时或者询问用户返回信息为信任时将进程信息添加到安全表,当查询公共表返回扫描结果为可疑时或者杀毒引擎扫描的结果为可疑时将进程信息添加到可疑表,当询问用户返回信息为终止时加入终止表;
删除,具体为:对可疑表中进程进行询问用户并得到结果后将可疑表中的该进程信息删除;
3.扫描模块303,用于对新进程调用杀毒引擎进行扫描;
实施时,扫描模块对监控模块中保存的新进程PE映像调用杀毒引擎进行扫描,将扫描结果为安全的进程信息返回给决策模块,将扫描结果为危险的进程信息发送给询问模块。
4.询问模块304,用于决定可疑进程的信任或终止;
实施时,当可疑表不为空时,询问模块循环执行以下操作:将当前可疑进程信息发送给用户,接收用户的返回结果,将返回结果发送给决策模块;
二、接下来介绍结合上述的模块结构进行查杀的步骤:
结合图4,下面给出使用该杀毒系统进行虚拟机在线高效批量杀毒的详细过程:
1)首先管理员启动服务(S401),虚拟机用户通过VNC连接到自己的虚拟机(S402)并控制自己的机器运行各类程序;
实施例在具有支持虚拟化CPU的裸机上安装Linux系统作为服务器,在每个服务器上安装KVM(Kernel-based Virtual Machine,基于内核的虚拟机),并在服务器上安装了数台虚拟机,在这些虚拟机上可以运行Linux或windows镜像,虚拟虚拟机用户通过VNC(Virtual Network Computer,虚拟网络计算机)连接到自己的虚拟机,VNC是基于UNIX和Linux操作系统的免费的开源软件,能将完整的窗口界面通过网络,传输到另一台计算机的屏幕上,工作流程如下:管理员在服务器端启动VNC Server,虚拟机用户在VNC客户端通过浏览器或VNC Viewer连接至VNC Server,VNC Server传送一对话窗口至客户端,要求输入连接密码,以及存取的VNC Server显示装置,在客户端输入联机密码后,VNC Server验证客户端是否具有存取权限,若是客户端通过 VNC Server 的验证,客户端即要求VNC Server显示桌面环境,VNC Server通过X Protocol 要求X Server将画面显示控制权交由VNCServer负责,VNC Server将来由 X Server 的桌面环境利用VNC通信协议送至客户端, 并且允许客户端控制VNC Server的桌面环境及输入装置,具体实施时,也可以在个人计算机上使用;
2)监控模块会一直监测进程的切换,如果发现进程切换,则获得Guest OS进程相关信息(S403),保存新进程PE映像,将进程信息发送给决策模块;如果没有,则继续监测;
为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行,这种行为被称为进程切换,进程切换可以在操作系统从当前正在运行的进程中获得控制权的任何时刻发生。本系统监控进程切换的目的在于,每当虚拟机运行下一进程时都经过判断,能在恶意进程运行的第一时间发现并终止或交给用户判断,有效的防范的恶意进程的侵害;
以Windows系统为例,cr3控制寄存器用于分页机制,含有存放页目录表页面的物理地址,当切换进程时,cr3的内容也会随之改变,监控模块监控cr3寄存器,当监控到对cr3寄存器的写操作时,说明进程进行了切换;
客户机当前进程信息主要包括vimd,pid和cr3值,通过调用进程分析函数获得;
3)决策模块接收监控模块发来的进程信息后,查该进程是否在决策模块中的属于该虚拟机的三张私有表中(S404),如果当前进程在安全表中,则不进行任何处理;如果在可疑表中,则询问用户(S411);如果在终止表中,则终止该进程(S411);若没有匹配,则说明当前进程为该虚拟机中的新进程;
例如,当决策模块接收到监控模块发来的新进程信息时,进行查询,本例中查询时使用当前进程的vmid,pid,cr3三个值匹配表中对应值,如果该进程已经在该虚拟机中出现过并且扫描结果为安全或者扫描结果可疑但是被用户信任,则该进程的vmid,pid,cr3被存放在安全表这个结构体数组中,所以能在该虚拟机安全表中匹配到一致进程,说明该进程是安全的或在该虚拟机中被用户信任,如果该进程已经在该虚拟机中出现过并且扫描结果为可疑,则该进程的vmid,pid,cr3被存放在可疑表这个结构体数组中,所以能在该虚拟机可疑表中匹配到一致进程,说明该进程的扫描结果为可疑,需要询问用户对其信任或者终止,如果该进程已经在该虚拟机中出现过并且扫描结果为危险且不被用户信任,则该进程的vmid,pid,cr3被存放在终止表这个结构体数组中,所以能在该虚拟机终止表中匹配到一致进程,说明该进程是危险的且不被用户信任的,需要终止该进程,如果该进程没在该虚拟机中出现过则查询失败,说明当前进程为该虚拟机中的新进程;
4)如果当前进程为该虚拟机中的新进程,则获取该进程的该进程的进程名、进程PE映像大小、程序入口地址(S405),依照获得的信息查公共表;
Windows操作系统用户众多,稳定性好,因此我们选用Windows 7系统为例,说明如何获取该进程的该进程的进程名、进程PE映像大小、程序入口地址:
获取进程名,原理为:Windows 7内核数据结构在Windows GuestOS中,当进程运行在内核级别(Ring0)时,FS寄存器里的地址指向全局描述符表(Global DescriptorTable,GDT)中某一段,该段存储的地址经过转换后指向系统的处理器控制区域(ProcessorControl Region, KPCR),当前线程指针CurrentThread保存在KPCR偏移0x124的位置。在这个KTHREAD结构体偏移0x50的位置保存有当前线程所属进程的KPROCESS结构指针,此KPROCESS指针等于当前进程EPROCESS结构体指针。通过EPROCESS结构体可以获得当前进程的所有信息,所以,所述获取进程名的步骤为:通过Windows系统中的段寄存器FS找到系统的处理器控制区域KPCR,在KPCR偏移0x124的位置存储着当前进程指针CurrentThread,该指针指向KTHERAD结构体,在这个KTHREAD结构体偏移0x50处找到当前线程所属进程的KPROCESS结构指针,此KPROCESS指针等于当前进程EPROCESS结构体指针,通过EPROCESS结构体获得当前进程的进程名;
获取进程PE映像大小,原理为:Win32可执行文件的标准格式为PE文件格式,进程的PE映像大小存放在PE文件结构中的NT映像头中的可选映像头中偏移量为0x130处,所以,所述获取进程PE映像大小的步骤为:获取该进程PE映像,在DOS程序头中的偏移0x3CH处的四个字节找到字串“PE\0\0”(“50\45\00\00”)的偏移位置(e_ifanew),这个字串标志着NT映像头的开始,在该字串之后的0x14H字节的映像文件头(FileHeader)之后找到可选映像头(OptionalHeadr),在可选映像头偏移0x130处找到装入内存后映像的总尺寸(SizeOfImage);
获取程序入口地址,原理与获取进程PE映像大小类似,程序入口地址存放在PE文件结构中的NT映像头中的可选映像头中偏移量为0x108处,所以,所述获取程序入口地址的步骤为:获取该进程PE映像,在DOS程序头中的偏移0x3CH处的四个字节找到字串“PE\0\0”(“50\45\00\00”)的偏移位置(e_ifanew),这个字串标志着NT映像头的开始,在该字串之后的0x14H字节的映像文件头(FileHeader)之后找到可选映像头(OptionalHeadr),在可选映像头偏移0x108处找到程序开始执行的位置(AddressOfEntryPoint);
获取相应信息后使用当前进程的进程名、进程PE映像大小、程序入口地址三个值查询,匹配表中对应值,如果能匹配到则说明该进程已被杀毒模块扫描过,返回扫描结果的值,如果无匹配值,则返回查询失败;
5)如果找到的对应进程的扫描结果(S407)的值为安全,则加入该虚拟机安全表(S410),不做其他处理;如果扫描结果为可疑,则加入改虚拟机可疑表(S412),询问用户(S413);
公共表中存放着所有被杀毒软件扫描过的进程,当出现一致进程时,可以使用之间扫描的结果,避免杀毒引擎对同一进程的多次扫描,获取4)返回值,如果查询成功,则判断扫描结果的值为安全还是可疑,分别加入安全表和可疑表;
6)如果公共表中仍无匹配进程,则调用杀毒引擎扫描当前进程(S408),将当前进程的进程名、进程PE映像大小、程序入口地址以及扫描结果添加到公共表中(S409);
实施例使用现有的ClamAV杀毒引擎,具体实施时,也可采用其他杀毒引擎;
7)如果扫描结果为安全,则加入该虚拟机安全表(S410),不做其他处理;如果扫描结果为可疑,则加入该虚拟机的可疑表(S412),询问用户(S413)。
结合图5,下面给出使用该杀毒系统进行虚拟机在线高效批量杀毒过程中询问用户的详细过程:
当可疑表不为空时,询问用户(S501),在对应虚拟机中进行弹窗提醒用户发现可疑进程,窗口中包含可疑进程的进程名等信息以及扫描结果,给出信任或终止的选项,如果用户选择信任,则将进程相应信息加入该虚拟机安全表(S502),如果用户选择终止,则终止进程(S503),将进程相应信息加入该虚拟机终止表(S504)。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (3)
1.一种虚拟机在线高效批量杀毒系统,其特征在于,定义三张私有表和一张公共表;所述三张私有表配备在每个虚拟机中,所述三张私有表分别是私有的安全表、可疑表和终止表;所述公共表为公共的已扫描表,其中:
私有表一,即安全表:用于保存安全进程,具体为一个结构体数组,包含了安全进程的关键信息;
私有表二,即终止表:用于保存终止进程,具体为一个结构体数组,包含了危险进程的关键信息;
私有表三,即可疑表:用于保存可疑进程,具体为一个结构体数组,包含了可疑进程的关键信息;
公共表,即公共的已扫描表:用于保存经由杀毒软件扫描过的所有进程信息,存储了已经过杀毒软件扫描过进程的关键信息,包括进程名、进程PE映像大小、程序入口地址以及扫描结果;
该虚拟机在线高效批量杀毒系统包括:
一监控模块:用于监控虚拟机内进程切换,当发现进程切换时调用进程分析函数,获取虚拟机中切换后的当前进程数据并进行解析,保存切换后当前进程的PE映像,并将解析结果发送给决策模块;
一决策模块:用于对监控模块监控到的切换后的进程进行消重处理,具体是维护每台虚拟机三张私有表,并维护公共表,在四个表中查询监控模块发送的虚拟机中切换后的当前进程,并根据查询结果选择执行:
选择执行一:
若查询到当前进程与四个表的任意一个表中存储的进程相匹配,则根据该表对应的处理方式进行处理;
选择执行二:
若当前进程与四个表的任何一个表对应的进程均不匹配,则将该进程信息发送给扫描模块,扫描模块调用杀毒引擎查杀,并将查杀结果反馈给决策模块;
如果扫描结果为安全,将该进程信息加入公共表和安全表并提示监控模块继续监测进程切换;
如果扫描结果为可疑,则将该进程信息加入公共表和可疑表,并将可疑进程信息发送给询问模块,并根据询问模块返回的用户判断的结果,将用户决策为信任的进程加入安全表提示监控模块继续监测进程切换,将用户决策为终止的进程加入终止表并终止进程后提示监控模块继续监测进程切换,同时删除可疑表中的当前进程信息;
一扫描模块:用于对决策模块发送的查询失败的进程调用杀毒引擎进行扫描,将扫描结果返回给决策模块;
一询问模块:用于与用户进行交互,推送可疑进程信息,接收用户判断的结果,将用户判断的结果发送给决策模块。
2.根据权利要求1所述的一种虚拟机在线高效批量杀毒系统,其特征在于,所述选择执行一中,具体的步骤是:
步骤2.1、若查询到当前进程与私有表一中存储的某个进程相匹配,则不进行任何操作,继续监测进程切换;若查询到当前进程与私有表一中存储的所有进程均不匹配,则继续执行以下步骤;
步骤2.2、若查询到当前进程与私有表二中存储的某个进程相匹配,则终止该进程,并继续监测进程切换;若查询到当前进程与私有表二中存储的所有进程均不匹配,则继续执行以下步骤;
步骤2.3、若查询到当前进程与私有表三中存储的某个进程相匹配,则将结果发送给询问模块,由询问模块与用户进行交互,接收用户判断的结果,并将结果发送给决策模块,若返回的用户决策为信任则将该进程信息加入私有表一,并继续监测进程切换;若为终止则将该进程信息加入私有表二并终止进程,继续监测进程切换;若都无匹配,则继续执行以下步骤;
步骤2.4、获取当前进程的进程名、进程PE映像大小、程序入口地址后,查询到当前进程与公共表中存储的所有进程的匹配情况,若查询到当前进程与公共表中存储的某个进程相匹配,则根据该进程对应的扫描结果进行选择操作:
选择操作一:若扫描结果安全,则更新该私有表一,继续监测进程切换;
选择操作一:若扫描结果为可疑,则更新该私有表三,并将结果发送给询问模块,由询问模块与用户进行交互,接收用户判断的决策结果,并将结果发送给决策模块;若返回的用户决策结果为信任则将该进程信息加入私有表一并继续监测进程切换,若返回的用户决策结果为终止则将该进程信息加入私有表二并终止进程,继续监测进程切换。
3.一种虚拟机在线高效批量杀毒方法,其特征在于,
定义三张私有表和一张公共表;所述三张私有表配备在每个虚拟机中,所述三张私有表分别是私有的安全表、可疑表和终止表;所述公共表为公共的已扫描表,其中:
私有表一,即安全表:用于保存安全进程,具体为一个结构体数组,包含了安全进程的关键信息;
私有表二,即可疑表:用于保存可疑进程,具体为一个结构体数组,包含了可疑进程的关键信息;
私有表三,即终止表:用于保存终止进程,具体为一个结构体数组,包含了危险进程的关键信息;
公共表,即公共的已扫描表:用于保存经由杀毒软件扫描过的所有进程信息,存储了已经过杀毒软件扫描过进程的关键信息,包括进程名、进程PE映像大小、程序入口地址以及扫描结果;
包括以下步骤:
步骤1,虚拟机用户通过VNC控制自己的虚拟机运行各类程序;
步骤2,监控模块监测虚拟机内进程切换,如果监控模块监测到进程切换,则调用进程分析函数取得切换后的当前进程相关数据,并将相应信息发送给决策模块,决策模块接收到监控模块发送的的进程信息后,查询决策模块中属于当前虚拟机的三张私有表,如果当前进程在安全表中,则不进行任何处理,转步骤2继续监测进程切换;如果在可疑表中,则转步骤6;如果在终止表中,则终止当前进程,转步骤2继续监测进程切换;若没有匹配,则说明当前进程未曾出现在当前虚拟机中,继续执行步骤3;
步骤3,获取当前进程的进程名、进程PE映像大小、程序入口地址,查公共表,即已扫描表,如果有相符项,则获取该项的扫描结果,继续执行步骤4;如果没有相符项,则转步骤5;
步骤4,如果扫描结果值为安全,则将进程的进程名、进程PE映像大小、程序入口地址将加入该虚拟机的安全表,转步骤2继续监测进程切换;如果扫描结果值为可疑,则转步骤6;
步骤5,将获取的进程在内存中的PE映像放到内存的待扫描空间,扫描模块调用杀毒引擎,对内存待扫描空间进行扫描,将进程信息以及扫描结果加入公共表,如果当前进程安全,则加入决策模块该虚拟机的安全表,不进行任何处理,转步骤2继续监测进程切换;若当前进程可疑,则加入可疑表,并发送给询问模块,继续执行步骤6;
步骤6:询问模块收到可疑进程信息后用户发送警示,由用户选择是信任还是终止,用户做出决策,返回信息给询问模块,如果返回结果为信任,则将进程信息添加到当前虚拟机安全表,转步骤2继续监测进程切换;如果返回结果为终止,则将进程信息添加到当前虚拟机终止表,转步骤2继续监测进程切换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410252445.9A CN103984899B (zh) | 2014-06-09 | 2014-06-09 | 一种虚拟机在线高效批量杀毒系统及杀毒方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410252445.9A CN103984899B (zh) | 2014-06-09 | 2014-06-09 | 一种虚拟机在线高效批量杀毒系统及杀毒方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103984899A CN103984899A (zh) | 2014-08-13 |
CN103984899B true CN103984899B (zh) | 2017-02-01 |
Family
ID=51276864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410252445.9A Active CN103984899B (zh) | 2014-06-09 | 2014-06-09 | 一种虚拟机在线高效批量杀毒系统及杀毒方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103984899B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104573519B (zh) * | 2015-01-30 | 2018-04-13 | 北京瑞星网安技术股份有限公司 | 文件扫描方法和系统 |
CN105426758B (zh) * | 2015-12-18 | 2018-07-27 | 北京奇虎科技有限公司 | 一种虚拟机逃逸的防护方法及装置 |
CN106055976B (zh) * | 2016-05-16 | 2021-05-28 | 新华三技术有限公司 | 文件检测方法及沙箱控制器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478407A (zh) * | 2008-01-03 | 2009-07-08 | 联想(北京)有限公司 | 在线安全登录的方法及装置 |
CN101925057A (zh) * | 2010-08-20 | 2010-12-22 | 河南省电力公司 | 一种电力系统用手机终端安全加固系统 |
CN102164138A (zh) * | 2011-04-18 | 2011-08-24 | 奇智软件(北京)有限公司 | 一种保证用户网络安全性的方法及客户端 |
CN103530557A (zh) * | 2013-03-12 | 2014-01-22 | Tcl集团股份有限公司 | 一种基于云端海量样本的病毒apk的扫描方法及系统 |
-
2014
- 2014-06-09 CN CN201410252445.9A patent/CN103984899B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478407A (zh) * | 2008-01-03 | 2009-07-08 | 联想(北京)有限公司 | 在线安全登录的方法及装置 |
CN101925057A (zh) * | 2010-08-20 | 2010-12-22 | 河南省电力公司 | 一种电力系统用手机终端安全加固系统 |
CN102164138A (zh) * | 2011-04-18 | 2011-08-24 | 奇智软件(北京)有限公司 | 一种保证用户网络安全性的方法及客户端 |
CN103530557A (zh) * | 2013-03-12 | 2014-01-22 | Tcl集团股份有限公司 | 一种基于云端海量样本的病毒apk的扫描方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103984899A (zh) | 2014-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10027709B2 (en) | Generating a honey network configuration to emulate a target network environment | |
US20200366694A1 (en) | Methods and systems for malware host correlation | |
US20210029156A1 (en) | Security monitoring system for internet of things (iot) device environments | |
US10225280B2 (en) | System and method for verifying and detecting malware | |
US10630643B2 (en) | Dual memory introspection for securing multiple network endpoints | |
EP3567504B1 (en) | A framework for coordination between endpoint security and network security services | |
US10033745B2 (en) | Method and system for virtual security isolation | |
EP3652668B1 (en) | Systems and methods for detecting vulnerabilities on servers | |
US10152597B1 (en) | Deduplicating malware | |
US20140137180A1 (en) | Hypervisor-Based Enterprise Endpoint Protection | |
US9804869B1 (en) | Evaluating malware in a virtual machine using dynamic patching | |
US20100199351A1 (en) | Method and system for securing virtual machines by restricting access in connection with a vulnerability audit | |
US10678918B1 (en) | Evaluating malware in a virtual machine using copy-on-write | |
MXPA04011271A (es) | Interfase de programacion relacionada con la seguridad. | |
US11252167B2 (en) | System and method for detecting and classifying malware | |
CN102523215A (zh) | 基于kvm虚拟化平台的虚拟机在线杀毒系统 | |
Schmidt et al. | Malware detection and kernel rootkit prevention in cloud computing environments | |
CN103984899B (zh) | 一种虚拟机在线高效批量杀毒系统及杀毒方法 | |
US10645107B2 (en) | System and method for detecting and classifying malware | |
US10382456B2 (en) | Remote computing system providing malicious file detection and mitigation features for virtual machines | |
CN105704087A (zh) | 一种基于虚拟化实现网络安全管理的装置及其管理方法 | |
Zhang et al. | Xen-based virtual honeypot system for smart device | |
US20190266328A1 (en) | Web-based malware mitigation system | |
WO2023121862A1 (en) | Identification of.net malware with "unmanaged imphash" | |
RU2761542C1 (ru) | Система и способ формирования системы ресурсов-ловушек |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |