CN113127149A - 一种基于自省技术的虚拟机安全监控方法及系统 - Google Patents
一种基于自省技术的虚拟机安全监控方法及系统 Download PDFInfo
- Publication number
- CN113127149A CN113127149A CN202110265368.0A CN202110265368A CN113127149A CN 113127149 A CN113127149 A CN 113127149A CN 202110265368 A CN202110265368 A CN 202110265368A CN 113127149 A CN113127149 A CN 113127149A
- Authority
- CN
- China
- Prior art keywords
- plug
- virtual
- library
- virtual machine
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012544 monitoring process Methods 0.000 title claims abstract description 36
- 238000005516 engineering process Methods 0.000 title claims abstract description 19
- 230000006399 behavior Effects 0.000 claims abstract description 36
- 238000004458 analytical method Methods 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 121
- 230000008569 process Effects 0.000 claims description 18
- 238000011084 recovery Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 230000002155 anti-virotic effect Effects 0.000 claims description 5
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 230000004931 aggregating effect Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 abstract description 6
- 239000008186 active pharmaceutical agent Substances 0.000 description 52
- 230000007246 mechanism Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 101001095231 Homo sapiens Peptidyl-prolyl cis-trans isomerase D Proteins 0.000 description 1
- 206010033799 Paralysis Diseases 0.000 description 1
- 102100037827 Peptidyl-prolyl cis-trans isomerase D Human genes 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004575 stone 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
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于自省技术的虚拟机安全监控方法及系统。该方法包括:建立虚拟机行为的插件库,根据监控指令从插件库中选择所要监控的插件,读取插件库中的API函数名称以及API函数的相对偏移地址,计算出API函数的虚拟地址;读取插件库中API函数的虚拟地址,保存其存储的机器码,然后将该虚拟地址存储的机器码修改为中断指令的机器码;虚拟机访问修改后的该虚拟地址并触发中断后,对虚拟机进行语义解析;语义解析完成后将该虚拟地址中存储的原机器码写回该虚拟地址中,设置虚拟机为单步执行后恢复虚拟机执行。本发明动态接收用户对主机行为的检测需求,调用相应行为插件库,能够对虚拟机进行高性能、高精准、高覆盖的行为监控。
Description
技术领域
本发明涉及虚拟化安全监控领域,具体涉及一种基于自省技术的虚拟机安全监控方法及系统。
背景技术
虚拟化技术能够将底层物理计算资源整合为一个运行环境,对底层的计算资源进行逻辑抽象与统一,虚拟化技术是云计算实现基础性关键技术,其安全性直接决定整个云平台中用户数据的安全。目前,网络攻击形式多样,攻击持续时间及攻击数量不断增加,设备及应用面临巨大安全威胁,相比于传统环境,云计算带来巨大的经济效益,使各国的黑客都从中看到了利益,纷纷转向对虚拟化环境的攻击,导致虚拟化环境的安全问题十分严峻。
通过虚拟化技术,各种类型的虚拟机和软件可以由用户自由地创建和删除,这给用户带来了极大的便利,但同时也隐藏着虚拟化平台自身的安全问题如:如何保障虚拟机安全以及控制虚拟机网络流量等。这类问题随着网络的迅速发展和计算机系统的日益更新与开放,变的越来越复杂,若恶意攻击出现在虚拟化环境中并恶意隐藏敏感进程、敏感文件或其他恶意系统调用程序等,将直接造成云服务的不可靠,云中数据更是无安全可言,所以,虚拟化安全是云平台安全的基石。在所有攻击类型中,恶意软件是云平台最大的威胁,传统环境下基于主机的安全软件通常和恶意软件处于同一特权级别,安全软件很容易成为恶意软件的攻击目标,一旦恶意软件找到安全软件的漏洞,则会利用该漏洞使其陷入瘫痪,从而直接获得系统的最高权限,以便进一步从事非法活动。在云环境下,同一台物理服务器上的若干虚拟机不是物理隔离的,一旦某一台虚拟机被攻破,则会对整个云环境产生很大的威胁,恶意软件的盛行以及过时的安全工具让云环境的安全形势变得十分复杂。目前,云环境比以往更需要创新的安全工具。
面对如此严峻的安全问题,相关学者针对性的提出了建议如隔离和分段虚拟网络,引入安全软件保护虚拟化环境,并采用加密技术和访问控制管理通信。在虚拟化安全保障方面,虚拟机自省技术(Virtual Machine Introspection,简称:VMl)是个很好的选择,它可以监控虚拟机内部事件,使用户更透明地看到虚拟机运行情况,及时了解虚拟机动态信息,帮助用户分析决策。所谓虚拟机自省(VMl)就是在虚拟机外部通过分析其内部的系统状态(软硬件),来了解虚拟机的内部状态。由于虚拟机管理器兼具基于主机的入侵检测框架的高“能见度”和基于网络入侵检测框架良好的隔离性,所以虚拟机自省借助于虚拟机管理器(VMM)实现对虚拟机的监控。要实现虚拟机自省,解决“语义鸿沟”问题是一大关键,所谓“语义鸿沟”是指从虚拟机外部观测到的信息和虚拟机内部真实情况之间的差异。虚拟机管理器通常是一台独立并且受信任的虚拟机,由于该虚拟机独立于被监控的客户机,所以有着很好的隔离作用。虚拟机管理器通过读取虚拟机内的内存页面、寄存器、中断等低级语义事件,将其还原成用户能够识别的高级语义对象,如虚拟机进程、内核模块、系统调用等。
虚拟机自省(VMI)有带内、带外两种主要的模式,其中带内模式需要在虚拟机内部署监控模块以详细了解虚拟机内状态信息,该模式由于监控模块部署在虚拟机内部,较容易受到恶意攻击,并不是一种安全有效的安全模式。带外模式无需在虚拟机内部署安全代理,但是其高度依赖虚拟机操作系统的外部语义,由于该技术是通过虚拟机寄存器、中断、内存页面等攻击者不可绕过的底层硬件状态实现针对虚拟机的状态监控,所以安全性高,是目前最可靠的VMI技术。
发明内容
本发明实现了高效的自省机制,能够细粒度地监控虚拟机物理地址访问行为,最小化自省机制对虚拟机运行效率的影响,同时采用了动态行为截获分析方法,可以根据用户需要动态调整所监控的API函数,也从侧面保证了虚拟机运行效率。针对系统需要,设计了两种应用方法,一个是虚拟机的异常弹窗截获,另一个是行为插件库的建立,两者都为恶意行为检测和分析提供了良好的基础。
本发明采用的技术方案如下:
一种基于自省技术的虚拟机安全监控方法,包括以下步骤:
建立虚拟机行为的插件库,该插件库中功能相似的API函数聚合在一起作为插件;
根据监控指令从插件库中选择所要监控的插件,通过读取插件库中的API函数名称以及API函数的相对偏移地址,计算出API函数的虚拟地址;
读取插件库中API函数的虚拟地址,保存该虚拟地址存储的机器码,然后将该虚拟地址存储的机器码修改为中断指令的机器码;
虚拟机访问修改后的该虚拟地址并触发中断后,暂停虚拟机运行,对虚拟机进行语义解析以获得API函数的调用信息;
在语义解析完成后,将API函数的虚拟地址中存储的原机器码写回该虚拟地址中,设置虚拟机为单步执行后恢复虚拟机执行。
进一步地,所述插件库将WindowsAPI函数按文件、进程、网络、注册表、shell、驱动进行主机行为分类,每个行为类为一个插件,每个行为类中涵盖该类中常用的API函数名称和用来计算虚拟地址的库函数相对偏移地址。
进一步地,所述根据监控指令从插件库中选择所要监控的插件,通过读取插件库中的API函数名称以及API函数的相对偏移地址,计算出API函数的虚拟地址,包括:
接收到目标虚拟机配置和监控配置消息,解析后下发给插件库进行匹配;
通过插件库匹配插件,依次读取目标插件库中的API函数名称和此函数的相对偏移地址;
将dll库的基址与API函数的相对偏移地址相加,计算生成此函数的虚拟地址;
将此虚拟地址和函数名称的对应关系存储在映射表A。
进一步地,所述读取插件库中API函数的虚拟地址,保存该虚拟地址存储的机器码,然后将该虚拟地址存储的机器码修改为中断指令的机器码,包括:
读取指定目录文件中的函数,与当前程序中已监控的函数进行匹配,判断该函数是需要动态添加还是需要动态减少的;
如果是需要动态减少的函数,则修改该函数的虚拟地址内容为原先保存的机器码;
如果是需要动态添加的函数,则依次读取插件库存储的虚拟地址,读取该虚拟地址的存储内容,建立虚拟地址与存储内容的映射关系;然后将该虚拟地址原本存储的机器码改写为中断指令的机器码,等待虚拟机访问该虚拟地址触发中断陷入。
进一步地,所述对虚拟机进行语义解析以获得API函数的调用信息,包括:
根据CPU寄存器RCX、RDX的值调用libvmi库函数读取内存值;
使用内存值,配合符号偏移表,还原出调用API函数的进程名称、进程id、函数参数。
进一步地,虚拟机单步执行指令后陷入到虚拟机管理器层,此时取消虚拟机的单步执行,将虚拟地址内容恢复为中断指令,等待下次触发。
进一步地,通过所述插件库实现虚拟机异常弹窗截获,通过拦截弹窗API并分析弹窗内容,知晓虚拟机是否出现过杀毒软件告警提示。
一种采用上述方法的基于自省技术的虚拟机安全监控系统,其包括:
插件库模块,用于建立虚拟机行为的插件库,该插件库中功能相似的API函数聚合在一起作为插件;根据监控指令从插件库中选择所要监控的插件,通过读取插件库中的API函数名称以及API函数的相对偏移地址,计算出API函数的虚拟地址;
中断设置模块,用于读取插件库中API函数的虚拟地址,保存该虚拟地址存储的机器码,然后将该虚拟地址存储的机器码修改为中断指令的机器码;
语义解析模块,用于在虚拟机访问修改后的该虚拟地址并触发中断后,对虚拟机进行语义解析以获得API函数的调用信息;
中断恢复模块,用于在语义解析完成后,将API函数的虚拟地址中存储的原机器码写回该虚拟地址中,设置虚拟机为单步执行后恢复虚拟机执行。
本发明公开了一种基于自省技术的虚拟机安全监控系统,该系统动态接收用户对主机行为的检测需求,调用相应行为插件库,对虚拟机进行高性能、高精准、高覆盖的行为监控,与已公开的方法相比,具有如下优点:
1)细粒度的高效自省机制,对虚拟机API调用监控细化到指令级别,只有调用该API时候才会触发自省陷入,从而最小化自省机制对虚拟机运行效率的影响;
2)主机行为动态截获,根据虚拟机运行不同阶段和用户需要,动态添加所需要监控的API函数,动态删除已监控的API函数,保证监控数据的高效性;
3)通过监控Windows虚拟机弹窗行为,并分析弹窗内容,能够在带外发现虚拟机潜在的异常行为,知晓此虚拟机是否出现过杀毒软件告警提示,为入侵检测进行辅助分析;
4)建立了虚拟机行为插件库,将Windows提供的API按文件、进程、网络、注册表等操作进行分类,能够全方面覆盖某一类主机行为,为用户提供精准的监控信息。
附图说明
图1.一种基于自省技术的虚拟机安全监控系统架构图。
图2.插件库匹配流程图。
图3.中断陷入流程图。
图4.中断恢复流程图。
图5.语义解析流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。
本发明主要包括以下内容:
(1)细粒度的高效自省机制。本发明能够对虚拟机API的物理地址设置中断陷入,使虚拟机在调用该API时陷入VMM层,达到指令级别的VMM层陷入,从而最小化自省机制对虚拟机原有运行效率的影响。
(2)主机行为动态截获分析。本发明可以根据需要动态调整所监控虚拟机的API,根据虚拟机运行不同阶段和用户需要,动态添加所需要监控的API函数,动态删除已监控的API函数,保证监控数据的高效性。
(3)虚拟机异常弹窗截获。本发明可以监控Windows弹窗,一般情况下,一些恶意入侵行为都会触发杀毒软件告警弹窗,系统通过拦截弹窗API并分析弹窗内容,能够知晓此虚拟机是否出现过杀毒软件告警提示,为入侵检测辅证分析。
(4)行为插件库的建立。本发明建立了虚拟机行为插件库,将Windows提供的API按文件、进程、网络、注册表等操作进行分类,当虚拟机需要某些主机行为监控时,直接调用插件库中关于该类的插件,完成对虚拟机主机行为监控。
本发明公开的一种基于自省技术的虚拟机安全监控系统如图1所示,主要由插件库模块、中断设置模块、中断恢复模块、语义解析模块组成。插件库模块与语义解析模块是上层应用程序,中断设置及中断恢复模块通过ioctl通道与VMM交互。插件库模块将WindowsAPI函数按文件、进程、网络、注册表、shell、驱动进行主机行为分类,功能相似的一类API函数聚合在一起成为一个插件,即每个行为类为一个插件,每个行为类中涵盖了该类别中常用的API函数名称和用来计算虚拟地址的库函数相对偏移地址。本发明中的虚拟机异常弹窗截获为插件库中一个恶意弹窗的插件,主要做法是通过监控windowsAPI函数DrawTextExW,当被监控的windows虚拟机发生弹窗行为时,会陷入到语义解析模块中,语义解析模块通过解析此函数的第二个参数(弹窗标题文本)内容来分析是否是杀毒软件弹窗。中断设置模块主要负责将计算得出的API地址进行中断设置;中断恢复模块主要负责在虚拟机中断陷入时进行虚拟机中断恢复操作和单步执行操作;语义解析模块通过统一分析中断陷入虚拟机的CPU寄存器值和内存状态,解析出当前调用API的进程及参数等信息。
上述系统运行的具体步骤如下:
(1)系统开启后会根据下达的监控指令从插件库模块中选择所要监控的插件,通过读取插件库模块中的API函数名称以及该函数的相对偏移地址,计算出该函数的虚拟地址,建立映射表(表A)即虚拟地址和API函数名称的对应关系并保存。
(2)中断设置模块读取插件库模块中(表A)保存的虚拟地址,首先读取该虚拟地址内存中的机器码并保存在映射表(表B)中,然后改写该虚拟地址的机器码为中断指令的机器码(0xCC),等待虚拟机访问该地址触发中断。
(3)当所修改的地址触发访问操作后,暂停虚拟机运行,语义解析模块会根据虚拟机内的内存页面、寄存器、符号偏移等还原本次调用的进程信息、函数信息等。
(4)中断恢复模块等待语义解析模块完成解析后,将之前中断设置模块保存在表B中的该地址的值写入中断地址,设置虚拟机为单步执行后恢复虚拟机执行。
图2给出了本发明一个实施例的插件库匹配流程图,插件库模块的具体实施步骤如下:
(1)接收到目标虚拟机配置和监控配置消息,解析后下发给插件库匹配;
(2)匹配标记的插件,依次读取目标插件库中的API函数名称和此函数的相对偏移地址;
(3)将dll库的基址与上述函数相对偏移地址相加,计算生成此函数的虚拟地址;
(4)将此虚拟地址和函数名称的对应关系存储在表A后结束。
图3给出了本发明一个实施例的中断设置流程图,中断设置模块的具体实施步骤如下:
(1)读取指定目录文件中的函数,与当前程序中已监控的函数进行匹配,判断该函数是需要动态添加还是减少的;
(2)如果是需要动态减少的函数,则修改该函数的虚拟地址内容为原先保存的机器码;
(3)如果是需要动态添加的函数,则依次读取插件库存储的虚拟地址,读取该虚拟地址的存储内容,建立虚拟地址与存储内容的映射关系(表B);然后将该虚拟地址原本存储的机器码改写为中断指令的机器码(0xcc),等待虚拟机访问该虚拟地址触发中断陷入。
图4给出了本发明一个实施例的中断恢复流程图,中断恢复模块的具体实施步骤如下:
(1)触发中断会陷入到VMM层,获得触发此中断的虚拟地址,暂停虚拟机执行;
(2)保存当前虚拟机CPU寄存器值,调用语义解析模块进行语义解析处理;
(3)语义解析模块处理完成后,根据之前建立的虚拟地址与存储内容的映射关系(表B)匹配虚拟地址,得到该虚拟地址内存中原本存储的机器码(未设置中断前存储的内容),将该值写回虚拟地址中,同时设置虚拟机运行模式为单步运行;
(4)虚拟机单步执行指令后依旧陷入VMM层,此时取消虚拟机的单步执行,将虚拟地址内容恢复为中断指令,等待下次触发。
图5给出了本发明一个实施例的语义解析流程图,语义解析模块的具体实施步骤如下:
(1)根据CPU寄存器RCX、RDX的值调用libvmi库函数读取内存值;
(2)使用内存值,配合符号偏移表,还原出调用此函数的进程名称,进程id,函数参数;其中符号偏移是指每个参数(结构体)在内存中所占空间大小或相对于结构体基址的偏移量,可以通过下载微软官网公布的符号文件建立符号偏移表;
(3)完成调用信息还原后,返回中断恢复模块继续执行。
以下为此方案运行得到的一条数据,其为json格式,其中type字段表示此api类型user为用户层函数,TimeStamp字段表示此api调用时间戳,ProcessName字段表示进程名称,TID字段表示线程ID,PID表示进程ID,PPID表示父进程ID,Module表示所属模块,Method表示此api的名称,Args表示每一个参数名称及数值。
基于同一发明构思,本发明的另一实施例提供一种采用上述方法的基于自省技术的虚拟机安全监控系统,其包括:
插件库模块,用于建立虚拟机行为的插件库,该插件库中功能相似的API函数聚合在一起作为插件;根据监控指令从插件库中选择所要监控的插件,通过读取插件库中的API函数名称以及API函数的相对偏移地址,计算出API函数的虚拟地址;
中断设置模块,用于读取插件库中API函数的虚拟地址,保存该虚拟地址存储的机器码,然后将该虚拟地址存储的机器码修改为中断指令的机器码;
语义解析模块,用于在虚拟机访问修改后的该虚拟地址并触发中断后,对虚拟机进行语义解析以获得API函数的调用信息;
中断恢复模块,用于在语义解析完成后,将API函数的虚拟地址中存储的原机器码写回该虚拟地址中,设置虚拟机为单步执行后恢复虚拟机执行。
基于同一发明构思,本发明的另一实施例提供一种电子装置(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
基于同一发明构思,本发明的另一实施例提供一种计算机可读存储介质(如ROM/RAM、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
以上公开的本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的普通技术人员可以理解,在不脱离本发明的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书的实施例所公开的内容,本发明的保护范围以权利要求书界定的范围为准。
Claims (10)
1.一种基于自省技术的虚拟机安全监控方法,其特征在于,包括以下步骤:
建立虚拟机行为的插件库,该插件库中功能相似的API函数聚合在一起作为插件;根据监控指令从插件库中选择所要监控的插件,通过读取插件库中的API函数名称以及API函数的相对偏移地址,计算出API函数的虚拟地址;
读取插件库中API函数的虚拟地址,保存该虚拟地址存储的机器码,然后将该虚拟地址存储的机器码修改为中断指令的机器码;
虚拟机访问修改后的该虚拟地址并触发中断后,暂停虚拟机运行,对虚拟机进行语义解析以获得API函数的调用信息;
在语义解析完成后,将API函数的虚拟地址中存储的原机器码写回该虚拟地址中,设置虚拟机为单步执行后恢复虚拟机执行。
2.根据权利要求1所述的方法,其特征在于,所述插件库将WindowsAPI函数按文件、进程、网络、注册表、shell、驱动进行主机行为分类,每个行为类为一个插件,每个行为类中涵盖该类中常用的API函数名称和用来计算虚拟地址的库函数相对偏移地址。
3.根据权利要求1所述的方法,其特征在于,所述根据监控指令从插件库中选择所要监控的插件,通过读取插件库中的API函数名称以及API函数的相对偏移地址,计算出API函数的虚拟地址,包括:
接收到目标虚拟机配置和监控配置消息,解析后下发给插件库进行匹配;
通过插件库匹配插件,依次读取目标插件库中的API函数名称和此函数的相对偏移地址;
将dll库的基址与API函数的相对偏移地址相加,计算生成此函数的虚拟地址;
将此虚拟地址和函数名称的对应关系存储在映射表A。
4.根据权利要求1所述的方法,其特征在于,所述读取插件库中API函数的虚拟地址,保存该虚拟地址存储的机器码,然后将该虚拟地址存储的机器码修改为中断指令的机器码,包括:
读取指定目录文件中的函数,与当前程序中已监控的函数进行匹配,判断该函数是需要动态添加还是需要动态减少的;
如果是需要动态减少的函数,则修改该函数的虚拟地址内容为原先保存的机器码;
如果是需要动态添加的函数,则依次读取插件库存储的虚拟地址,读取该虚拟地址的存储内容,建立虚拟地址与存储内容的映射关系;然后将该虚拟地址原本存储的机器码改写为中断指令的机器码,等待虚拟机访问该虚拟地址触发中断陷入。
5.根据权利要求1所述的方法,其特征在于,所述对虚拟机进行语义解析以获得API函数的调用信息,包括:
根据CPU寄存器RCX、RDX的值调用libvmi库函数读取内存值;
使用内存值,配合符号偏移表,还原出调用API函数的进程名称、进程id、函数参数。
6.根据权利要求1所述的方法,其特征在于,虚拟机单步执行指令后陷入到虚拟机管理器层,此时取消虚拟机的单步执行,将虚拟地址内容恢复为中断指令,等待下次触发。
7.根据权利要求1所述的方法,其特征在于,通过所述插件库实现虚拟机异常弹窗截获,通过拦截弹窗API并分析弹窗内容,知晓虚拟机是否出现过杀毒软件告警提示。
8.一种采用权利要求1~7中任一权利要求所述方法的基于自省技术的虚拟机安全监控系统,其特征在于,包括:
插件库模块,用于建立虚拟机行为的插件库,该插件库中功能相似的API函数聚合在一起作为插件;根据监控指令从插件库中选择所要监控的插件,通过读取插件库中的API函数名称以及API函数的相对偏移地址,计算出API函数的虚拟地址;
中断设置模块,用于读取插件库中API函数的虚拟地址,保存该虚拟地址存储的机器码,然后将该虚拟地址存储的机器码修改为中断指令的机器码;
语义解析模块,用于在虚拟机访问修改后的该虚拟地址并触发中断后,对虚拟机进行语义解析以获得API函数的调用信息;
中断恢复模块,用于在语义解析完成后,将API函数的虚拟地址中存储的原机器码写回该虚拟地址中,设置虚拟机为单步执行后恢复虚拟机执行。
9.一种电子装置,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~7中任一权利要求所述方法的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~7中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110265368.0A CN113127149A (zh) | 2021-03-11 | 2021-03-11 | 一种基于自省技术的虚拟机安全监控方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110265368.0A CN113127149A (zh) | 2021-03-11 | 2021-03-11 | 一种基于自省技术的虚拟机安全监控方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113127149A true CN113127149A (zh) | 2021-07-16 |
Family
ID=76772926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110265368.0A Pending CN113127149A (zh) | 2021-03-11 | 2021-03-11 | 一种基于自省技术的虚拟机安全监控方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127149A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019865A (zh) * | 2012-12-28 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 虚拟机监控方法和系统 |
US20140189882A1 (en) * | 2012-12-28 | 2014-07-03 | Robert Jung | System and method for the programmatic runtime de-obfuscation of obfuscated software utilizing virtual machine introspection and manipulation of virtual machine guest memory permissions |
CN105740046A (zh) * | 2016-01-26 | 2016-07-06 | 华中科技大学 | 一种基于动态库的虚拟机进程行为监控方法与系统 |
CN108469984A (zh) * | 2018-04-17 | 2018-08-31 | 哈尔滨工业大学 | 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法 |
-
2021
- 2021-03-11 CN CN202110265368.0A patent/CN113127149A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019865A (zh) * | 2012-12-28 | 2013-04-03 | 北京神州绿盟信息安全科技股份有限公司 | 虚拟机监控方法和系统 |
US20140189882A1 (en) * | 2012-12-28 | 2014-07-03 | Robert Jung | System and method for the programmatic runtime de-obfuscation of obfuscated software utilizing virtual machine introspection and manipulation of virtual machine guest memory permissions |
CN105740046A (zh) * | 2016-01-26 | 2016-07-06 | 华中科技大学 | 一种基于动态库的虚拟机进程行为监控方法与系统 |
CN108469984A (zh) * | 2018-04-17 | 2018-08-31 | 哈尔滨工业大学 | 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法 |
Non-Patent Citations (2)
Title |
---|
YACINE HEBBAL ET AL.: "Virtual Machine Introspection: Techniques and Applications", 《2015 10TH INTERNATIONAL CONFERENCE ON AVAILABILITY, RELIABILITY AND SECURITY》, 19 October 2015 (2015-10-19), pages 676 - 685 * |
邹冰玉 等: "基于硬件架构和虚拟化扩展机制的虚拟机自省机制研究", 《四川大学学报(工程科学版)》, vol. 47, no. 1, 31 January 2015 (2015-01-31), pages 54 - 59 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3430556B1 (en) | System and method for process hollowing detection | |
RU2589862C1 (ru) | Способ обнаружения вредоносного кода в оперативной памяти | |
EP3430557B1 (en) | System and method for reverse command shell detection | |
US10169585B1 (en) | System and methods for advanced malware detection through placement of transition events | |
US9355246B1 (en) | Tuning sandbox behavior based on static characteristics of malware | |
US10552610B1 (en) | Adaptive virtual machine snapshot update framework for malware behavioral analysis | |
EP3123311B1 (en) | Malicious code protection for computer systems based on process modification | |
US9117080B2 (en) | Process evaluation for malware detection in virtual machines | |
EP3230919B1 (en) | Automated classification of exploits based on runtime environmental features | |
US8195980B2 (en) | Virtual machine snapshotting and damage containment | |
US10534909B2 (en) | Multi-tiered sandbox based network threat detection | |
US10382468B2 (en) | Malware identification via secondary file analysis | |
US9104861B1 (en) | Virtual security appliance | |
RU2723665C1 (ru) | Динамический индикатор репутации для оптимизации операций по обеспечению компьютерной безопасности | |
US20200401698A1 (en) | Analysis system, analysis method, analysis device, and storage medium | |
US11544375B2 (en) | Corrective action on malware intrusion detection using file introspection | |
US20150128206A1 (en) | Early Filtering of Events Using a Kernel-Based Filter | |
Botacin et al. | The other guys: automated analysis of marginalized malware | |
JP2020109649A (ja) | 仮想マシンにおいて脆弱性を有するファイルを実行するときにログを作成するためのシステムおよび方法 | |
WO2014206268A1 (zh) | 在Windows平台上进行行为处理的方法及装置 | |
CN113176926B (zh) | 一种基于虚拟机自省技术的api动态监控方法及系统 | |
US10846405B1 (en) | Systems and methods for detecting and protecting against malicious software | |
EP4160455A1 (en) | Behavior analysis based on finite-state machine for malware detection | |
CN113127149A (zh) | 一种基于自省技术的虚拟机安全监控方法及系统 | |
US11763004B1 (en) | System and method for bootkit detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |