CN115374444B - 基于虚拟主机行为分析的病毒检测方法和装置 - Google Patents
基于虚拟主机行为分析的病毒检测方法和装置 Download PDFInfo
- Publication number
- CN115374444B CN115374444B CN202211322109.8A CN202211322109A CN115374444B CN 115374444 B CN115374444 B CN 115374444B CN 202211322109 A CN202211322109 A CN 202211322109A CN 115374444 B CN115374444 B CN 115374444B
- Authority
- CN
- China
- Prior art keywords
- thread
- memory
- application
- host
- threads
- 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
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
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于虚拟主机行为分析的病毒检测方法和装置。该方法包括:主机在内存数据库中配置内存表,并将内存表共享给虚拟主机;检测虚拟主机中的被测程序所启动的主机行为相关线程,所述主机行为相关线程包括系统线程以及应用线程;利用LRU算法对应用线程的活跃程度进行排序;并且,对虚拟主机的所述主机行为相关线程进行特征码提取,其中,根据应用线程的活跃程度采用相应的特征码提取规则;根据应用线程的活跃程度的排序,将不活跃状态的应用线程置换到内存表中。本发明增强了病毒甄别的效率、减少虚拟主机的内存占用、提高了虚拟主机的运行速度,增强了虚拟主机和实体机的隔离特性。
Description
技术领域
本发明涉及工控安全技术领域,具体涉及一种基于虚拟主机行为分析的病毒检测方法和装置。
背景技术
虚拟主机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟主机中都能够实现。在计算机中创建虚拟主机时,需要将实体机的部分硬盘和内存容量作为虚拟主机的硬盘和内存容量。每个虚拟主机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟主机进行操作。在目前的计算机技术中,虚拟主机被应用于多种领域中,例如模拟计算机系统、测试恶意软件或病毒、云场景部署等,用于提高数据的运算效率。
虚拟主机行为分析是病毒检测的一种有效手段。基于虚拟主机所模拟的实体机软硬件环境,可以使病毒程序在该环境中充分运行,记录并分析病毒程序驱动下的虚拟主机的执行行为,并基于执行行为提取其特征码,实现对病毒程序的甄别。基于虚拟主机行为分析的病毒检测能够完全复原病毒程序,包括对加密后的病毒程序实现解密,从而提高了检测的强度,破解了大部分病毒程序的隐蔽手段,检测速度快,识别准确率高。
然而,虽然基于虚拟主机行为分析的病毒检测拥有很多优点,但是也同时存在着诸多局限。现有虚拟主机一般都是以实体机的部分硬盘和内存容量作为虚拟主机的硬盘和内存容量,因此在虚拟主机中运行程序时,避免不了从磁盘数据库中读写数据,虽然磁盘数据库也有一定的缓存机制,但是仍旧无法完全避免从外设到内存的数据交换,而这样的数据交换不但造成性能的损失,降低了病毒检测响应的实时性,而且也造成虚拟主机未能完全与实体机分隔,存在一定的外溢安全风险。
发明内容
本发明提供的一种基于虚拟主机行为分析的病毒检测方法和装置,能够解决上述过程中的技术问题。
本发明解决上述技术问题的技术方案如下:
第一方面,本发明提供了一种基于虚拟主机行为分析的病毒检测方法,包括以下步骤:
主机在内存数据库中配置内存表,并将内存表共享给虚拟主机;
检测虚拟主机中的被测程序所启动的主机行为相关线程,所述主机行为相关线程包括系统线程以及应用线程;
利用LRU算法对应用线程的活跃程度进行排序;并且,对虚拟主机的所述主机行为相关线程进行特征码提取,其中,根据应用线程的活跃程度采用相应的特征码提取规则;
根据应用线程的活跃程度的排序,将不活跃状态的应用线程置换到内存表中。
优选的是,通过主机将内存表给各个虚拟主机共享,使得虚拟主机中的线程数据能够按照内存表结构直接存储在内存之中并直接调用,当虚拟主机释放内存时,这些内存数据会归还至内存表中。
优选的是,所述系统线程为虚拟主机操作系统运行时必要的线程;所述应用线程为虚拟主机非操作系统的线程。
优选的是,通过所述LRU算法对虚拟主机中的应用线程的活跃程度进行检测,并按照活跃程度从小到大排序,具体包括:对虚拟主机所有应用线程进行标记;按照应用线程的调用时间次序,在预设的时间窗口范围内,将该时间窗口中最后一次调用的应用线程标记为最活跃线程,其活跃程度赋值最高,最开始调用的应用线程标记为最不活跃线程,其活跃程度赋值最低,其余应用线程按照调用的时间先后依序赋值,并按照活跃程度从小到大排序。
优选的是,对虚拟主机的所述主机行为相关线程进行特征码提取,具体包括:针对虚拟主机的主机行为相关线程在内存中吞吐的数据块单元,通过哈希计算,计算该主机行为相关线程的特征码。
优选的是,对于系统线程,对于其在内存中吞吐的每个数据块单元均计算其哈希值,从而形成系统线程的特征码。
优选的是,对于应用线程,则根据应用线程的活跃程度,采用相应的特征码提取规则,按照与活跃程度成正比的抽样率,抽取应用线程在内存中吞吐的数据块单元,并计算所抽取的数据块单元的哈希值,形成所述特征码。
优选的是,将活跃程度小于活跃程度阈值的应用线程进行内存回收。
本发明提供了一种基于虚拟主机行为分析的病毒检测装置,包括:内存表配置模块、线程检测模块、线程特征码提取模块、线程内存管理模块;
内存表配置模块,用于使主机在内存数据库中配置内存表,并将内存表共享给虚拟主机;
线程检测模块,用于检测虚拟主机中的被测程序所启动的主机行为相关线程,所述主机行为相关线程包括系统线程以及应用线程;
线程特征码提取模块,用于利用LRU算法对应用线程的活跃程度进行排序;并且,对虚拟主机的所述主机行为相关线程进行特征码提取,其中,根据应用线程的活跃程度采用相应的特征码提取规则;
线程内存管理模块, 用于根据应用线程的活跃程度的排序,将不活跃状态的应用线程置换到内存表中。
优选的是,对于系统线程和应用线程,线程特征码提取模块采用不同的特征码提取规则;其中,对于系统线程,对于其在内存中吞吐的每个数据块单元均计算其哈希值,从而形成系统线程的特征码;对于应用线程,则根据应用线程的活跃程度,采用相应的特征码提取规则,按照与活跃程度成正比的抽样率,抽取应用线程在内存中吞吐的数据块单元,并计算所抽取的数据块单元的哈希值,形成所述特征码。
本申请的有益效果是:本申请提供一种基于虚拟主机行为分析的病毒检测方法和装置,能够通过内存表的优势,并利用LRU算法,将虚拟主机中的非系统的应用线程进行活跃程度排序,从而标记虚拟主机中不活跃的非系统应用线程,在行为分析过程中,对系统线程、活跃的应用线程、不活跃的应用线程采用不同的规则提取其特征码,从而增强了病毒甄别的效率;并将这些非系统应用线程回收至内存表之中,进而减少虚拟主机的内存占用,提供空间利用率,同时提高了虚拟主机的运行速度,增强了虚拟主机和实体机的隔离特性,提升了病毒检测过程的安全性。
附图说明
图1为本申请的一种基于虚拟主机行为分析的病毒检测方法流程图;
图2为本申请步骤S3的子流程图;
图3为本申请步骤S31的子流程图;
图4为本申请的一种基于虚拟主机行为分析的病毒检测装置框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。此处所描述的具体实施例仅仅用于解释本公开,而非对本申请的限定。基于所描述的本申请的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请的一种基于虚拟主机行为分析的病毒检测方法,包括以下步骤:
S1:主机在内存数据库中配置内存表,并将内存表共享给虚拟主机;
在一些实施例中,所述内存表中存储的数据存放于内存之中,能够直接通过内存调用;所述虚拟主机在释放内存时,将内存数据直接归还于所述内存表中。
具体的,本方案中的内存表,也可称为内存数据库中的表,是数据库把表中的数据完全放在内存之中,可以通过内存直接点用,当重启数据库后,内存表中的数据会消失,但是内存表的表结构仍旧存在,而内存表的优点在于可以直接从内存之中读取数据,从而使内存表读取程序时和程序直接在内存中的操作速度是一样的。同时,通过主机将内存表给各个虚拟主机共享,使得虚拟主机中的线程数据能够按照内存表结构直接存储在内存之中并直接调用,当虚拟主机释放内存时,这些内存数据会归还至内存表中。
S2:检测虚拟主机中的被测程序所启动的主机行为相关线程,所述主机行为相关线程包括系统线程以及应用线程;
在一些实施例中,所述检测虚拟主机中的被测程序所启动的主机行为相关线程,具体包括:
S21:检测虚拟主机中的系统线程;
S22:检测虚拟主机中的应用线程;
其中,所述系统线程为虚拟主机操作系统运行时必要的线程;所述应用线程为虚拟主机非操作系统的线程。
在虚拟主机响应被测程序所下达的指令而新启动一个主机行为阶段,对该主机行为在所述虚拟主机所分配到的内存中新建的线程进行检测,这些线程被称之为主机行为相关线程;通过检测,从主机行为相关线程当中,识别出其中的系统线程,其他线程为应用线程。
为了管理内存,提高空间利用率,可以选择首先通过检测区分系统线程和应用线程,进而,将系统线程与应用线程分开处理,即对虚拟主机中的线程进行检测,标记出虚拟主机操作系统运行时必要的线程与虚拟主机非操作系统的线程,同时对非操作系统的线程即应用线程进行管理。
S3:利用LRU算法对应用线程的活跃程度进行排序;并且,对虚拟主机的所述主机行为相关线程进行特征码提取,其中,根据应用线程的活跃程度采用相应的特征码提取规则。
在一些实施例中,结合图2,即本方案S3的子流程图,所述S3包括:
S31:利用LRU算法对应用线程的活跃程度进行检测,并按照从小到大排序;
在一些实施例中,结合图3,即本方案S31的子流程图,所述通过LRU算法对虚拟主机中的应用线程的活跃程度进行检测,并从小到大排序包括:
S311:对虚拟主机所有应用线程进行标记;
S312:按照应用线程的调用时间次序,在预设的时间窗口范围内,将该时间窗口中最后一次调用的线程标记为最活跃线程,其活跃程度赋值最高,最开始调用的应用线程标记为最不活跃线程,其活跃程度赋值最低,其余应用线程按照调用的时间先后依序赋值,并按照活跃程度从小到大排序。
具体的,LRU算法是一种缓存淘汰算法,其名称为Least recently used(最近最少使用),即将最近最少使用的线程淘汰,例如,一块内存能够存储五个数据,在此内存中依次放入ABCDE五个数据,按照调用时间排序,E数据块为最近使用的数据,而A数据块为预设时间窗口内最先使用的数据块,当在这个内存中新插入一个数据F时,A数据则会被淘汰,在本方案中,已经对虚拟主机中应用线程的活跃程度进行了标记并排序。
S32:针对虚拟主机的主机行为相关线程在内存中吞吐的数据块单元,通过哈希计算,计算该主机行为相关线程的特征码。
对于上文提到的系统线程和应用线程,均以预定数据大小的数据块单元为基本单位;对于每个线程在内存中吞吐的数据块单元,即每个线程写入内存或者从内存中读出的数据块单元,将数据块单元执行哈希计算以获得与该数据块单元对应的一个固定比特长度的哈希值,并且将每个线程在内存中所吞吐的全部或部分数据块单元的哈希值数组作为该线程的特征码。
其中,对于步骤S2中检测并标记的系统线程和应用线程,步骤S32中采用不同的特征码提取规则。其中,对于系统线程,对于其在内存中吞吐的每个数据块单元均计算其哈希值,从而形成系统线程的特征码。对于应用线程,则根据应用线程的活跃程度,采用相应的特征码提取规则,按照与活跃程度成正比的抽样率,抽取应用线程在内存中吞吐的数据块单元,并计算所抽取的数据块单元的哈希值,形成所述特征码;从而,应用线程的活跃程度越高,则该应用线程用于计算特征码哈希值的数据块单元的数量越多,反之,应用线程的活跃程度越低,则用于计算特征码哈希值的数据块单元数量越少。
S4:根据应用线程的活跃程度的排序,将不活跃状态的应用线程置换到内存表中。
在一些实施例中,将活跃程度小于活跃程度阈值的应用线程进行内存回收。
具体的,本方案在上述线程淘汰的基础上,还能够对线程的活跃程度设置一个活跃程度阈值,例如如果最不活跃线程的活跃程度为1,其余活跃程度依序加1,且将活跃程度阈值设为2,即将活跃程度后2位的两个线程进行淘汰处理,将这两个线程数据存放进内存表中,待需要时再调取使用,从而进一步提高空间利用率。从而,根据LRU算法,将活跃程度处于末尾的线程数据淘汰掉,并将淘汰掉的数据存放进内存表之中,从而提高了空间利用率,而淘汰掉的数据在调用时还能够直接通过内存调用,从而提高了数据调用的速度。
本发明第二方面还提供了一种基于虚拟主机行为分析的病毒检测装置,如图4所示,包括:内存表配置模块、线程检测模块、线程特征码提取模块、线程内存管理模块。
具体而言,内存表配置模块,用于使主机在内存数据库中配置内存表,并将内存表共享给虚拟主机。
具体而言,在一些实施例中,所述内存表中存储的数据存放于内存之中,能够直接通过内存调用;所述虚拟主机在释放内存时,将内存数据直接归还于所述内存表中。
具体的,本方案中的内存表,也可称为内存数据库中的表,是数据库把表中的数据完全放在内存之中,可以通过内存直接点用,当重启数据库后,内存表中的数据会消失,但是内存表的表结构仍旧存在,而内存表的优点在于可以直接从内存之中读取数据,从而使内存表读取程序时和程序直接在内存中的操作速度是一样的。同时,通过主机将内存表给各个虚拟主机共享,使得虚拟主机中的线程数据能够按照内存表结构直接存储在内存之中并直接调用,当虚拟主机释放内存时,这些内存数据会归还至内存表中。
线程检测模块,用于检测虚拟主机中的被测程序所启动的主机行为相关线程,所述主机行为相关线程包括系统线程以及应用线程。
所述系统线程为虚拟主机操作系统运行时必要的线程;所述应用线程为虚拟主机非操作系统的线程。
线程检测模块在虚拟主机响应被测程序所下达的指令而新启动一个主机行为阶段,对该主机行为在所述虚拟主机所分配到的内存中新建的线程进行检测,这些线程被称之为主机行为相关线程;通过检测,从主机行为相关线程当中,识别出其中的系统线程,其他线程为应用线程。
为了管理内存,提高空间利用率,可以选择首先通过检测区分系统线程和应用线程,进而,将系统线程与应用线程分开处理,即对虚拟主机中的线程进行检测,标记出虚拟主机操作系统运行时必要的线程与虚拟主机非操作系统的线程,同时对非操作系统的线程即应用线程进行管理。
线程特征码提取模块,用于利用LRU算法对应用线程的活跃程度进行排序;并且,对虚拟主机的所述主机行为相关线程进行特征码提取,其中,根据应用线程的活跃程度采用相应的特征码提取规则。
线程特征码提取模块利用LRU算法对应用线程的活跃程度进行检测,并按照从小到大排序。具体包括:对虚拟主机所有应用线程进行标记;按照应用线程的调用时间次序,在预设的时间窗口范围内,将该事件窗口中最后一次调用的应用线程标记为最活跃线程,其活跃程度赋值最高,最开始调用的应用线程标记为最不活跃线程,其活跃程度赋值最低,其余应用线程按照调用的时间先后依序赋值,并按照活跃程度从小到大排序。
线程特征码提取模块针对虚拟主机的主机行为相关线程在内存中吞吐的数据块单元,通过哈希计算,计算该主机行为相关线程的特征码。
对于上文提到的系统线程和应用线程,均以预定数据大小的数据块单元为基本单位;对于每个线程在内存中吞吐的数据块单元,即每个线程写入内存或者从内存中读出的数据块单元,将数据块单元执行哈希计算以获得与该数据块单元对应的一个固定比特长度的哈希值,并且将每个线程在内存中所吞吐的全部或部分数据块单元的哈希值数组作为该线程的特征码。
其中,对于线程检测模块检测并标记的系统线程和应用线程,线程特征码提取模块采用不同的特征码提取规则。其中,对于系统线程,对于其在内存中吞吐的每个数据块单元均计算其哈希值,从而形成系统线程的特征码。对于应用线程,则根据应用线程的活跃程度,采用相应的特征码提取规则,按照与活跃程度成正比的抽样率,抽取应用线程在内存中吞吐的数据块单元,并计算所抽取的数据块单元的哈希值,形成所述特征码;从而,应用线程的活跃程度越高,则该应用线程用于计算特征码哈希值的数据块单元的数量越多,反之,应用线程的活跃程度越低,则用于计算特征码哈希值的数据块单元数量越少。
线程内存管理模块, 用于根据应用线程的活跃程度的排序,将不活跃状态的应用线程置换到内存表中。
进而,线程内存管理模块将活跃程度小于活跃程度阈值的应用线程进行内存回收。
具体的,本方案在上述线程淘汰的基础上,还能够对线程的活跃程度设置一个活跃程度阈值,例如如果最不活跃线程的活跃程度为1,其余活跃程度依序加1,且将活跃程度阈值设为2,即将活跃程度后2位的两个线程进行淘汰处理,将这两个线程数据存放进内存表中,待需要时再调取使用,从而进一步提高空间利用率。从而,根据LRU算法,将活跃程度处于末尾的线程数据淘汰掉,并将淘汰掉的数据存放进内存表之中,从而提高了空间利用率,而淘汰掉的数据在调用时还能够直接通过内存调用,从而提高了数据调用的速度。
本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。
本领域的技术人员能够理解,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
虽然结合附图描述了本申请的实施方式,但是本领域技术人员可以在不脱离本申请的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (7)
1.一种基于虚拟主机行为分析的病毒检测方法,其特征在于,包括以下步骤:
主机在内存数据库中配置内存表,并将内存表共享给虚拟主机;
检测虚拟主机中的被测程序所启动的主机行为相关线程,所述主机行为相关线程包括系统线程以及应用线程;
利用LRU算法对应用线程的活跃程度进行排序;并且,对虚拟主机的所述主机行为相关线程进行特征码提取,其中,对于系统线程,对于其在内存中吞吐的每个数据块单元均计算其哈希值,从而形成系统线程的特征码;对于应用线程,则根据应用线程的活跃程度,按照与活跃程度成正比的抽样率,抽取应用线程在内存中吞吐的数据块单元,并计算所抽取的数据块单元的哈希值,形成所述特征码;提取出的所述特征码用于病毒程序的甄别;
根据应用线程的活跃程度的排序,将不活跃状态的应用线程置换到内存表中。
2.根据权利要求1所述的基于虚拟主机行为分析的病毒检测方法,其特征在于:通过主机将内存表给各个虚拟主机共享,使得虚拟主机中的线程数据能够按照内存表结构直接存储在内存之中并直接调用,当虚拟主机释放内存时,这些内存数据会归还至内存表中。
3.根据权利要求2所述的基于虚拟主机行为分析的病毒检测方法,其特征在于:所述系统线程为虚拟主机操作系统运行时必要的线程;所述应用线程为虚拟主机非操作系统的线程。
4.根据权利要求3所述的基于虚拟主机行为分析的病毒检测方法,其特征在于:通过所述LRU算法对虚拟主机中的应用线程的活跃程度进行检测,并按照活跃程度从小到大排序,具体包括:对虚拟主机所有应用线程进行标记;按照应用线程的调用时间次序,在预设的时间窗口范围内,将该时间窗口中最后一次调用的应用线程标记为最活跃线程,其活跃程度赋值最高,最开始调用的应用线程标记为最不活跃线程,其活跃程度赋值最低,其余应用线程按照调用的时间先后依序赋值,并按照活跃程度从小到大排序。
5.根据权利要求4所述的基于虚拟主机行为分析的病毒检测方法,其特征在于:对虚拟主机的所述主机行为相关线程进行特征码提取,具体包括:针对虚拟主机的主机行为相关线程在内存中吞吐的数据块单元,通过哈希计算,计算该主机行为相关线程的特征码。
6.根据权利要求5所述的基于虚拟主机行为分析的病毒检测方法,其特征在于:将活跃程度小于活跃程度阈值的应用线程进行内存回收。
7.一种基于虚拟主机行为分析的病毒检测装置,其特征在于,包括:内存表配置模块、线程检测模块、线程特征码提取模块、线程内存管理模块;
内存表配置模块,用于使主机在内存数据库中配置内存表,并将内存表共享给虚拟主机;
线程检测模块,用于检测虚拟主机中的被测程序所启动的主机行为相关线程,所述主机行为相关线程包括系统线程以及应用线程;
线程特征码提取模块,用于利用LRU算法对应用线程的活跃程度进行排序;并且,对虚拟主机的所述主机行为相关线程进行特征码提取,其中,对于系统线程和应用线程,线程特征码提取模块采用不同的特征码提取规则;对于系统线程,对于其在内存中吞吐的每个数据块单元均计算其哈希值,从而形成系统线程的特征码;对于应用线程,则根据应用线程的活跃程度,按照与活跃程度成正比的抽样率,抽取应用线程在内存中吞吐的数据块单元,并计算所抽取的数据块单元的哈希值,形成所述特征码;提取出的所述特征码用于病毒程序的甄别;
线程内存管理模块, 用于根据应用线程的活跃程度的排序,将不活跃状态的应用线程置换到内存表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211322109.8A CN115374444B (zh) | 2022-10-27 | 2022-10-27 | 基于虚拟主机行为分析的病毒检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211322109.8A CN115374444B (zh) | 2022-10-27 | 2022-10-27 | 基于虚拟主机行为分析的病毒检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115374444A CN115374444A (zh) | 2022-11-22 |
CN115374444B true CN115374444B (zh) | 2022-12-27 |
Family
ID=84073344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211322109.8A Active CN115374444B (zh) | 2022-10-27 | 2022-10-27 | 基于虚拟主机行为分析的病毒检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115374444B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762888A (zh) * | 2018-05-17 | 2018-11-06 | 湖南文盾信息技术有限公司 | 一种基于虚拟机自省的病毒检测系统及方法 |
CN112988332A (zh) * | 2021-04-26 | 2021-06-18 | 杭州优云科技有限公司 | 一种虚拟机热迁移预测方法、系统和计算机可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836702B (zh) * | 2015-05-06 | 2018-06-19 | 华中科技大学 | 一种大流量环境下主机网络异常行为检测及分类方法 |
CN106209741B (zh) * | 2015-05-06 | 2020-01-03 | 阿里巴巴集团控股有限公司 | 一种虚拟主机及隔离方法、资源访问请求处理方法及装置 |
CN105117649B (zh) * | 2015-07-30 | 2018-11-30 | 中国科学院计算技术研究所 | 一种用于虚拟机的防病毒方法与系统 |
CN107423623A (zh) * | 2017-08-04 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种基于行为分析的勒索病毒检测方法及系统 |
US10713357B2 (en) * | 2017-11-23 | 2020-07-14 | Nicira, Inc. | Detecting lateral movement using a hypervisor |
CN110737888B (zh) * | 2019-09-12 | 2022-09-20 | 北京理工大学 | 虚拟化平台操作系统内核数据攻击行为检测方法 |
CN110795213B (zh) * | 2019-12-12 | 2022-06-07 | 东北大学 | 一种虚拟机迁移过程中活跃内存预测迁移方法 |
-
2022
- 2022-10-27 CN CN202211322109.8A patent/CN115374444B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762888A (zh) * | 2018-05-17 | 2018-11-06 | 湖南文盾信息技术有限公司 | 一种基于虚拟机自省的病毒检测系统及方法 |
CN112988332A (zh) * | 2021-04-26 | 2021-06-18 | 杭州优云科技有限公司 | 一种虚拟机热迁移预测方法、系统和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115374444A (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106557689B (zh) | 恶意程序码分析方法与系统、数据处理装置及电子装置 | |
EP1811381B1 (en) | Software operation modeling and monitoring device and method | |
CN100595778C (zh) | 鉴定病毒文件的方法、装置 | |
CN105138916B (zh) | 基于数据挖掘的多轨迹恶意程序特征检测方法 | |
CN111339293B (zh) | 告警事件的数据处理方法、装置和告警事件的分类方法 | |
CN111625833B (zh) | 一种高效的软件程序释放后重用漏洞判定方法和装置 | |
CN112866292B (zh) | 一种面向多样本组合攻击的攻击行为预测方法和装置 | |
CN105224600A (zh) | 一种样本相似度的检测方法及装置 | |
CN111222137A (zh) | 一种程序分类模型训练方法、程序分类方法及装置 | |
CN104881483B (zh) | 用于Hadoop平台数据泄露攻击的自动检测取证方法 | |
KR20160099160A (ko) | 명령어 집합의 행위 패턴을 엔-그램 방식으로 모델링하는 방법, 그 방법으로 동작하는 컴퓨팅 장치, 및 그 방법을 컴퓨팅 장치에서 실행하도록 구성되는 기록 매체에 저장된 프로그램 | |
CN113572719B (zh) | 一种域名检测方法、装置、设备及可读存储介质 | |
CN106301979B (zh) | 检测异常渠道的方法和系统 | |
CN109918901B (zh) | 实时检测基于Cache攻击的方法 | |
CN110865866B (zh) | 一种基于自省技术的虚拟机安全检测方法 | |
CN110175100B (zh) | 一种存储盘故障预测方法及预测系统 | |
KR20160099159A (ko) | 악성 코드를 탐지하기 위한 전자 시스템 및 방법 | |
CN108469997B (zh) | 一种基于动态特征的自定义堆管理函数的自动识别方法 | |
CN115374444B (zh) | 基于虚拟主机行为分析的病毒检测方法和装置 | |
WO2018071093A1 (en) | Programmable hardware security counters | |
CN112070161A (zh) | 一种网络攻击事件分类方法、装置、终端及存储介质 | |
CN107688481B (zh) | 一种支持多节点的kvm虚拟机隐藏进程检测系统 | |
CN108710800A (zh) | 一种安卓应用程序的加壳识别方法 | |
KR102344496B1 (ko) | 악성코드의 기능을 분석하는 방법 및 장치 | |
CN110674501B (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 |