CN110865866B - 一种基于自省技术的虚拟机安全检测方法 - Google Patents

一种基于自省技术的虚拟机安全检测方法 Download PDF

Info

Publication number
CN110865866B
CN110865866B CN201910930547.4A CN201910930547A CN110865866B CN 110865866 B CN110865866 B CN 110865866B CN 201910930547 A CN201910930547 A CN 201910930547A CN 110865866 B CN110865866 B CN 110865866B
Authority
CN
China
Prior art keywords
virtual machine
information
state
detection
data
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
Application number
CN201910930547.4A
Other languages
English (en)
Other versions
CN110865866A (zh
Inventor
罗军舟
凌振
党一菲
师晓敏
李永杰
吉祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
China Information Consulting and Designing Institute Co Ltd
Original Assignee
Southeast University
China Information Consulting and Designing Institute Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Southeast University, China Information Consulting and Designing Institute Co Ltd filed Critical Southeast University
Priority to CN201910930547.4A priority Critical patent/CN110865866B/zh
Publication of CN110865866A publication Critical patent/CN110865866A/zh
Application granted granted Critical
Publication of CN110865866B publication Critical patent/CN110865866B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于自省技术的虚拟机安全检测方法,包括:从虚拟机外部虚拟机管理器层采集虚拟机状态数据,通过对内存的自省采集虚拟机进程状态、文件和端口数据,通过寄存器采集虚拟机的***调用数据;通过对***数据结构和***符号表的解析,结合外部采集的数据,恢复和关联虚拟机进程状态、文件、端口和***调用信息;利用增量和时间片的方法对虚拟机的状态和进程信息进行特征处理;利用局部异常因子,实现对异常状态的检测,利用随机森林,实现对虚拟机中恶意进程的检测,针对虚拟机的流量信息,结合网络入侵检测工具,实现进程级别的网络入侵检测;针对检测结果,根据用户设置实现不同级别的响应,提高虚拟机的安全性。

Description

一种基于自省技术的虚拟机安全检测方法
技术领域
本发明属于虚拟机安全检测技术领域,尤其涉及一种基于自省技术的虚拟机安全检测方法。
背景技术
近年来,云计算、虚拟化技术的广泛应用,在一台主机上搭载多台虚拟机,提供针对不同用户的多种服务成为了一种趋势。随之而来的各种安全问题逐步暴露,相对于传统的物理主机,对虚拟机安全威胁的影响范围相对增加,虚拟机的安全问题更应得到重视。
虚拟机安全检测是一种对虚拟机性能安全和功能安全的监控。具体来说,查看各虚拟机的资源利用情况是否在合理的范围内,同时检查虚拟机是否被恶意软件入侵,威胁虚拟机本身、甚至其他同宿主虚拟机的安全。目前的虚拟机检测多利用基于主机和基于网络的传统安全检测方法,前者检测工具与虚拟机之间缺少隔离性,易被篡改、可信度低,后者缺少虚拟机内部详细信息,检测关联性较差,维度单一。根据虚拟机位于物理主机上这一特性,有人提出虚拟机自省技术,从被监视虚拟机外部获得虚拟机内部操作***的相关信息。利用自省技术采集虚拟机信息加强了虚拟机与主机层面的隔离性,提高了检测的可信度,充分关联各类细粒度的信息,利用机器学习的方法增强了检测的全面性,提高了检测的效率。
发明内容
技术问题:本发明的目的,在于提供一种基于自省技术的虚拟机安全检测方技术,其利用虚拟机自省的方法,从虚拟机外部采集、恢复和关联虚拟机各类信息,建立虚拟机外部信息视图,再通过机器学习的方法,同时结合网络入侵检测工具,实现对虚拟机全面的安全检测。
技术方案:为了达成上述目的,本发明提供了一种基于自省技术的虚拟机安全检测方法,包括如下步骤:
包括如下步骤:
步骤1:基于虚拟机自省技术,采集虚拟机状态信息和进程信息,并形成虚拟机外部信息视图;
步骤2:利用时间滑动窗口,分别对虚拟机状态信息和虚拟机外部信息视图中的进程信息数据进行特征向量提取,得到虚拟机状态信息特征向量和进程信息特征向量;
步骤3:实现对粗粒度的虚拟机异常状态检测和细粒度的虚拟机恶意进程检测,并结合网络流量入侵检测工具,实现对进程的恶意流量检测,增强对虚拟机恶意进程的检测效果。
步骤1中,所述采集虚拟机状态信息包括从虚拟机内部和外部同时获得虚拟机的状态信息,其中,从虚拟机内部获得虚拟机的状态信息,包括:通过虚拟机内部的守护进程获得虚拟机的状态信息,守护进程利用Dstat工具,对虚拟机内部的实时状态进行采集,所述实时状态包括CPU使用量、内存使用量、磁盘读写量和网络流量;同时守护进程利用***命令ps和lsmod分别获得虚拟机内部进程和模块信息,和Dstat工具收集的信息一起通过socket方式传送到虚拟机外部;
所述从虚拟机外部获得虚拟机的状态信息,包括:利用VMM层开源工具Xentop和Libvirt,得到两个时间点T1和T2虚拟机的CPU时间、磁盘I/O总量和网卡I/O总量,通过计算T1到T2时间段内各类数据变化量和时间段的比例,得到虚拟机外部的状态信息。
步骤1中,所述采集虚拟机进程信息,是从虚拟机外部恢复进程信息,包括恢复内存中的信息和寄存器中的信息;
其中,恢复内存中的信息,是通过轮询的采集和恢复虚拟机16种内核结构,以获得静态的进程状态、文件信息和端口信息;
恢复寄存器中的信息,是使用LibVMI设置INT 3软件中断,强制发生***调用的虚拟机陷入虚拟机管理器层,通过寄存器读取当前***调用的二进制数据,根据对***调用内核源码的分析,将二进制数据恢复成能够理解的操作***级语义,得到当前发生的***调用信息。
所述恢复内存中的信息,是通过轮询的采集和恢复虚拟机16种内核结构,以获得静态的进程状态、文件信息和端口信息,具体包括:通过自省库LibVMI和虚拟机***符号表,从内存中提取模块列表、进程状态、文件和端口的二进制数据,接着分析虚拟机操作***中各内核结构及其偏移量,将之前从内存中提取的二进制数据恢复成能够理解的操作***语义。
所述形成虚拟机外部信息视图,包括:利用软件中断从虚拟机外部截获实时***调用,利用滑动时间窗口的方法,对每1秒钟内动态的***调用信息与这段时间结束时静态的进程状态、文件信息和端口信息相结合,形成虚拟机进程的外部信息视图。
步骤2包括:对于虚拟机状态信息,提取的虚拟机状态信息特征向量包括CPU、网络、磁盘、内存、进程和模块信息,对于虚拟机状态信息特征向量中有波动且有上下界的数据以原形式保存;对于无上界的递增数据,以时间段内增量的方法表示,形成各种用数值表示的虚拟机状态信息特征向量。
步骤2包括:对于虚拟机外部信息视图中的进程信息数据,提取的进程信息特征向量包括进程的状态、关联文件、关联端口和***调用,即在滑动时间窗口中提取进程静态和动态信息,并进行统计形成进程信息特征向量中的各个数值。
步骤3包括:利用局部异常因子算法和虚拟机状态信息特征向量,训练虚拟机异常状态检测模型,用于检测虚拟机异常状态,实现对粗粒度的虚拟机异常状态检测;
利用随机森林算法和进程信息特征向量训练虚拟机流量检测模型,用于进行流量检测,实现细粒度的虚拟机恶意进程检测。
虚拟机流量检测模型进行流量检测时,将网络流量入侵检测工具的报警信息通过IP地址对应到虚拟机;如果报警信息中含有端口信息,则结合虚拟机进程信息采集中的端口信息,将报警信息对应到一个进程。
本发明还包括步骤4:根据管理员自定义设置和虚拟机安全检测的结果,根据虚拟机状态、进程和流量的异常报警,实现不同级别的响应,对虚拟机实施迁移、暂停和关机操作。
上述步骤3中,对恶意进程特征的自动化采集,首先新建虚拟机增量镜像文件,启动增量镜像的虚拟机,然后启动主机的进程信息采集程序,接着通过主机与虚拟机内部建立的网络连接来执行恶意进程,采集时间结束后,自动关闭虚拟机,销毁增量镜像。
其中,利用机器学习的方法,从主机层面对虚拟机状态和进程进行检测;在流量检测中,将网络入侵检测的报警信息通过IP地址对应到虚拟机;如果报警信息中含有端口信息,则结合虚拟机进程信息采集中的端口信息,将报警信息对应到某个进程。
上述步骤4中,对于虚拟机安全检测的结果,可以根据管理员的自定义设置,实现不同级别的响应,对虚拟机实施迁移、暂停和关机操作。
有益效果:根据调查发现,进程的文件、端口和***调用信息能从不同方面表征进程所执行的任务,利用这些特征能识别出恶意的进程,同时利用虚拟机自省的方法,能防止恶意软件对这些行为的隐藏。基于此,本发明提供的检测方法与现有技术相比,具有以下优点:
(1)本发明采用基于自省技术的方法,采集、恢复和关联进程的各类信息,数据较为全面,可信度较高;
(2)本发明在主机层面利用机器学习的方法实现对虚拟机异常状态和恶意进程的检测,能有效的发现未知的异常状态和恶意软件的变体,同时具有较高的隔离性。
(3)本发明从状态、进程和网络三个层面对虚拟机的安全情况进行检测,覆盖性好,较为全面。同时能根据管理员的设置,针对检测结果做出不同级别的响应。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1是本发明的框架图。
图2是本发明的结构图。
图3是虚拟机信息采集框架
图4是虚拟机外部信息视图。
图5是虚拟机状态检测流程图。
图6是进程样本信息自动化采集流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
如图1和图2所示,本发明提供一种基于自省技术的虚拟机安全检测方法,包括以下部分:
(1)虚拟机信息采集:
通过虚拟机层管理工具,从虚拟机管理器层面采集虚拟机的硬件状态信息。利用带有自省功能的开源库和软件中断,从虚拟机管理层的内存和寄存器中采集虚拟机进程状态、文件、端口和***调用的二进制数据,结合对内核源码和内核结构的分析,将二进制数据恢复到可以理解的操作***级语义(即利用字符串表示的语义),将后三者与进程关联形成虚拟机外部信息视图。利用虚拟机内外信息的对比,可以发现隐藏进程和隐藏模块。
(2)虚拟机特征处理:
对虚拟机状态和进程信息进行处理,将虚拟机各类信息中波动且有上下界的数据以原形式保存;无上界的递增数据,以时间段内增量的方法表示。将进程的***调用、文件和端口信息进行分类统计,以进程状态和各类别数目形成虚拟机的进程特征向量。
(3)虚拟机安全检测
通过历史信息和背景数据的采集,形成状态检测和进程检测的数据库,根据以上数据训练机器学习模型,利用局部异常因子实现对虚拟机异常状态的检测,利用随机森林实现对虚拟机恶意进程的检测。结合网络入侵检测工具,将检测的报警信息通过IP地址映射到虚拟机,通过端口对应到进程。
(4)虚拟机监控响应
管理员可以自定义设置虚拟机各类检测结果的危险系数和响应方式,针对虚拟机安全检测的结果,自动实现对虚拟机的迁移、暂停和关闭的操作,提高虚拟化环境的安全性。
实施例:
本实施例中基于自省技术的虚拟机安全检测方法,包括以下步骤:
1、虚拟机信息采集:
基于虚拟机自省技术(Virtual Machine Introspection,VMI)的信息采集框架包含虚拟机状态信息和进程信息两部分。虚拟机和物理主机一样,从硬件层面进行划分,能进行存储或者操作的主要有四个组件:内存、CPU、网卡和磁盘。所以从外部恢复的整体状态主要是针对这四部分的状态信息,而恢复的进程信息主要是针对内存和CPU中的信息。由于所有磁盘数据增、删、改都需要经过内存的操作完成,在后期检测过程中需要的进程静态和动态信息在内存和CPU信息采集时都能获得,所以本发明不再针对磁盘的具体内容做相应的恢复。同时针对网卡的信息,在进行流量检测时结合的Snort入侵检测工具已经包含了对网卡流量数据包信息的嗅探器和记录器,所以这里也不再进行过多的研究。
因此,对虚拟机信息的采集如图3分成两个部分:
虚拟机状态信息:来源于两个部分,内部守护进程和外部通过VMM(VirtualMachine Monitor)层获得的信息,主要包含内存、CPU、网卡和磁盘状态信息;
虚拟机进程信息:通过对虚拟机内存和CPU寄存器数据采集,经过语义恢复得到进程状态、文件、端口和***调用信息,将后三者的信息关联到对应的进程,全方位的体现进程状态和行为。
通过整合以上两部分恢复的信息,最终从外部得到了虚拟机实时信息,构建了虚拟机外部信息视图。
虚拟机的状态信息采集:
虚拟机的状态信息采集分别从内部和外部同时获得虚拟机的状态信息。虚拟机内部状态采集主要靠虚拟机内部的守护进程完成,可直接通过采集获得,不需要过多的恢复工作。守护进程利用一个可以取代vmstat、iostat、netstat、ifstat等命令的多功能Dstat工具,对虚拟机内部的实时状态进行采集,包括了CPU使用量、内存使用量、磁盘读写量、网络流量等状态信息。同时守护进程利用***命令ps和lsmod分别获得虚拟机内部进程和模块信息,将此部分的统计信息也作为虚拟机状态的一部分特征,和Dstat收集的信息一起通过socket方式传送到虚拟机外部。从外部恢复虚拟机的状态信息需要利用VMM层开源工具获得硬件信息,然后经过处理后得到。在Xentop和Libvirt中,使用相关的接口可以得到T1和T2时间点虚拟机的CPU时间,磁盘I/O总量和网卡I/O总量等信息,通过计算ΔT(T1到T2)时间段内各类数据变化量和时间段的比例,得到较为常用的***状态表征量。
虚拟机的进程信息采集:
虚拟机的进程信息采集是从虚拟机外部恢复进程信息,主要是恢复内存和寄存器中的信息。内存信息恢复通过轮询的采集和恢复虚拟机16种内核结构,以获得静态的进程状态、文件信息和端口信息;寄存器信息恢复通过设置INT 3中断,来截获发生的***调用,实时访问对应位置的内存数据恢复所需要的***调用信息。
内存信息恢复是为了得到进程的状态信息、文件和端口信息,是通过恢复从虚拟机外部的内存中采集的数据获得。通过自省库LibVMI和虚拟机***符号表,从内存中提取模块列表、进程状态、文件和端口的二进制数据,接着分析虚拟机操作***中各内核结构及其偏移量,将之前从内存中提取的二进制数据恢复成可理解的操作***语义。表1列举了涉及到的16种内核结构。
表1
Figure BDA0002220169540000061
Figure BDA0002220169540000071
同时,使用LibVMI设置INT 3软件中断,强制发生***调用的虚拟机陷入虚拟机管理器层,通过寄存器读取当前***调用的二进制数据,根据对***调用内核源码的分析,将二进制数据恢复成可理解的操作***级语义,得到当前发生的***调用信息。为了记录虚拟机的行为,选取表2中9种重要的***调用,对其参数进行更为详细的恢复。
表1
Figure BDA0002220169540000072
本发明将各类进程信息进行了有效关联,根据进程模块中文件描述符的关联结构将文件、端口信息与进程关联;根据虚拟机发生***调用时,CR3寄存器保存的进程地址信息与内存中恢复的进程页面目录的指针PGD对比,将***调用信息和进程关联;最后,整合上述从虚拟机管理器层获得的虚拟机状态和进程的详细信息,形成了如图4所示的虚拟机外部信息视图。
利用从内存中任务列表结构里恢复的进程信息结合***调用的截获,形成了内存进程列表的外部视图,通过sys_kill和sys_exit_group调用维持了一份退出进程的列表信息。结合恢复的内存进程列表,形成了实时外部进程列表,与虚拟机内部的进程信息对比可以发现恶意的隐藏进程。
二、虚拟机特征处理
为了形成虚拟机状态和进程的特征,对之前采集的状态和进程信息进程处理,为了更好的表征和统一状态和进程的特征,采用基于增量和计数的数值表示方法,以及基于时间片的进程特征关联方法。
利用时间滑动窗口,分别对采集的虚拟机状态信息和虚拟机外部信息视图中的进程信息数据进行特征提取,其中对外部和内部采集虚拟机状态信息提取的特征向量包括CPU、网络、磁盘、内存、进程、模块等软硬件信息等(如表5所示),在每个滑动时间窗口中用状态信息的增量来表示虚拟机状态特征向量中的各个数值;对虚拟机外部视图中的进程信息提取的特征向量包括进程的状态、关联文件、关联端口和***调用(如表6所示),在滑动时间窗口中提取进程静态和动态信息,并进行统计形成进程信息特征向量中的各个数值;
由于对内存信息的采集是轮询的方式,本发明采用基于增量的表示方法统一特征的不同单位和变化形式。对于有上下界的波动数值,直接将其作为特征值,对于无上界持续增加的信息,将计算本次采集与上次采集时的差值作为特征值。而对于进程中文件、端口和***调用信息采用分类计数的方式,将进程关联的文件描述符分成如表3所示12类。
表3
Figure BDA0002220169540000081
Figure BDA0002220169540000091
将***调用根据功能分成如表4所示9类。
表4
Figure BDA0002220169540000092
虚拟机状态信息经过处理后形成如表5的特征,这些特征基本上从硬件和软件层面包含了虚拟机状态的各个方面。
表5
Figure BDA0002220169540000093
Figure BDA0002220169540000101
上述状态特征从不同方面表征了虚拟机的状态情况,但是具有不同的单位和变化形式,无法直接形成统一的特征向量供检测使用,将这些特征根据有效值的范围分为两类,一类是有上下界的数值,如CPU使用率等,在虚拟机运行过程中,所有数值在一定区域内会发生波动,另一类是无上界的数值,如页置换次数、中断次数等,这类状态数值会在监控中表现出持续增加的状态。针对第一类特征可直接使用其数值作为特征,但是第二类特征叠加了之前所有的状态,并不能准确表示当前虚拟机的情况,所以对第二类特征进行处理,采用基于增量的表示方法。某特征在上一次采集是数值为T1,在当前采集时为T2,基于增量的表示方法将当前特征的值T表示为T2与T1的差值,如公式(1)所示。
T=T2-T1 (1)
如为了得到CPU使用率,可采集CPU在T1的CPU时间CT1和T2的CPU时间CT2,然后通过公式2-1计算得到此段时间的CPU使用率CPU usage rate:
Figure BDA0002220169540000102
针对磁盘的状态,磁盘的I/O速率是一个动态的变化量,无法从Xen中直接获得,需要利用Xen提供当前磁盘的I/O总量计算获得。所以针对这个情况,设计短时间内的计算方法,通过ΔT时间间隔中I/O总量的差别来计算当前的磁盘使用率,定义时间段起始时刻T1读磁盘总量RD1和写磁盘总量WD1,结束时刻T2读磁盘总量RD2和写磁盘总量WD2,通过公式(3)和(4)计算得到磁盘I/O读取速率DISK read rate和写入速率DISK write rate:
Figure BDA0002220169540000103
Figure BDA0002220169540000104
网口的状态和磁盘状态一样,通过利用Xen接口获得的静态信息即上行和下行的流量总和计算获得。同样定义ΔT时间段起始时刻T1的上行总量UN1和下行总量DN1,结束时刻T2的上行总量UN2和下行总量DN2,通过公式(5)和(6)计算得到网口I/O上行速率NET uprate和下行速率NET downrate:
Figure BDA0002220169540000105
Figure BDA0002220169540000111
虚拟机进程信息经过进程静态和动态的信息整合,经过处理后最终形成以进程为单位的特征如表6。
表6
Figure BDA0002220169540000112
在进行静态和动态数据关联时,由于二者存在时间的差异,采用时间窗口的方式统计进程相关信息。假设T1为上次信息采集点,T2为当前信息采集点。在T2点的进程特征包含了T2点的进程状态、文件、关联端口信息和T1到T2时间内各进程的***调用信息,采用时间窗口将进程的静态和动态信息有效统一。
在对进程信息的恢复中,发现有些***调用在T2时间点无法找到对应的进程,这是由于在T1和T2时间段内有结束的进程,在T2时间点进行进程的静态信息采集时,已经无法获得对应的信息。对于在T1时间之前开始的进程已经采集过它的静态信息,但对于在这一时间段内开始并结束的短期进程,静态的信息采集无法捕捉,导致后期进程检测有所欠缺。针对这一问题,可利用sys_kill和sys_exit_group两个***调用的语义恢复,获得了每个时间段内结束的进程,并关联和这些进程有关的***调用信息,将这部分信息在后期的检测中作为对应进程的特征信息。
通过特征向量的形式将进程的各类信息形成统一的表达方式,因此对文件、端口和***调用信息进行处理,将所有关联文件描述符进行分类形成了如表3的各类别。
同时为了提高实时检测的速度,减少进程特征向量的维度,对于所有截获的***调用根据功能分成九大类别。形成了如表4的***调用分类,利用每个类别发生的***调用次数形成进程的***调用特征向量。
由于虚拟机状态和进程特征的数值范围存在差异,所以利用sklearn开源包中preprocessing.StandardScaler函数对进程特征进行标准化的处理。trainX作为输入的特征,形成了scaler标准化模型,针对每条输入特征trainX_1,都能利用模型转化为标准特征scaledX_1,具体实现代码如下:
Figure BDA0002220169540000121
三、虚拟机安全检测
结合机器学习的方法检测虚拟机状态和进程,利用局部异常因子方法实现虚拟机状态检测,利用随机森林的方法实现虚拟机的进程检测,同时为了弥补外部流量检测的不足,结合Snort开源网络入侵检测工具对虚拟机流量进行检测。
虚拟机状态包含的信息复杂,对异常的判断较为模糊。在检测中,需要建立异常检测模型,考虑到虚拟机在不同的时间、不同工作情况下表现出的状态相差较大,将所有的数据作为同一个聚集的方法不适于此。因此,选用局部异常因子方法建立虚拟机异常状态检测模型,将样本划分成聚集的多个部分来考虑,在检测中能起到更好的效果。对于样本数据的筛选即训练阶段,利用迭代的模式,整个状态训练-检测流程如图5。
虚拟机进程流量的检测,有较多的背景数据(恶意软件),通过自动化的采集过程,训练虚拟机流量检测模型。为了提高检测准确度,减少各类噪声的影响,采用随机森林这种集合类分类器,效果较好。
为了保障数据采集的可靠性,防止恶意软件交叉感染,本发明实现了自动化的进程信息采集,如图6。数据采集阶段利用增量镜像,每次启动虚拟机后,运行信息采集程序和一个样本,每个样本给予若干的运行时间,时间过后终止采集进程,关闭并恢复虚拟机到之前的状态。由于正常的样本或者恶意样本运行时,都可能产生子进程或者其他未知操作,在采集时同样会将这些进程信息进行记录,所以针对每个程序样本至少形成一条样本信息。
虚拟机状态和进程的采集与检测虽然在虚拟机外部完成,但是都是针对虚拟机的内部信息,缺少对外部流量检测。为了该方法的完整性,实现全面的虚拟机安全检测,本发明结合Snort开源网络入侵检测工具实现虚拟机流量检测。根据Snort流量报警的IP信息能将其定位到某台虚拟机,再根据报警的端口信息,匹配虚拟机进程采集中的端口信息,进而实现虚拟机进程流量的检测。
虚拟机监控响应:
管理员通过此部分可查看到虚拟机状态和进程的各类信息,同时可以设置虚拟机状态、进程和流量各类报警的基数,以及自定义针对不同虚拟机、不同检测结果的响应。
虚拟机的检测结果,会将状态、进程和流量的异常进行报警,包含了状态异常、隐藏进程、隐藏模块、***调用劫持、进程异常和网络异常六个类别,如表7所示每个类别含有不同的报警信息。这部分信息是由服务器实时查询数据库获得,而这些数据是主机上运行的检测程序根据实时的检测情况写入数据库的。
表7
Figure BDA0002220169540000131
管理员可以针对单个虚拟机设置各响应策略的阈值,***根据用户设置的阈值执行虚拟机的暂停、迁移和关闭操作,例如,虚拟机异常状态检测的阈值可采用局部异常因子的数值作为阈值,虚拟机异常进程检测的阈值可采用异常进程数量作为阈值,网络流量异常检测的阈值可根据Snort报警信息数量设置阈值。通过之前的虚拟机安全检测,并结合管理员的设置,每个虚拟机都会有不同的状态、进程和流量检测的危险系数。管理员可以针对三种虚拟机响应策略设置不同的阈值,当达到管理员设定情况时,***就会自动执行相关的响应操作,以提高同宿主虚拟机的安全性。
本发明提供了一种基于自省技术的虚拟机安全检测方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

Claims (2)

1.一种基于自省技术的虚拟机安全检测方法,其特征在于,包括如下步骤:
步骤1:基于虚拟机自省技术,采集虚拟机状态信息和进程信息,并形成虚拟机外部信息视图;
步骤2:利用时间滑动窗口,分别对虚拟机状态信息和虚拟机外部信息视图中的进程信息数据进行特征向量提取,得到虚拟机状态信息特征向量和进程信息特征向量;
步骤3:实现对粗粒度的虚拟机异常状态检测和细粒度的虚拟机恶意进程检测,并结合网络流量入侵检测工具,实现对进程的恶意流量检测,增强对虚拟机恶意进程的检测效果;
步骤1中,所述采集虚拟机状态信息包括从虚拟机内部和外部同时获得虚拟机的状态信息,其中,从虚拟机内部获得虚拟机的状态信息,包括:通过虚拟机内部的守护进程获得虚拟机的状态信息,守护进程利用Dstat工具,对虚拟机内部的实时状态进行采集,所述实时状态包括CPU使用量、内存使用量、磁盘读写量和网络流量;同时守护进程利用***命令ps和lsmod分别获得虚拟机内部进程和模块信息,和Dstat工具收集的信息一起通过socket方式传送到虚拟机外部;
所述从虚拟机外部获得虚拟机的状态信息,包括:利用VMM层开源工具Xentop和Libvirt,得到两个时间点T1和T2虚拟机的CPU时间、磁盘I/O总量和网卡I/O总量,通过计算T1到T2时间段内各类数据变化量和时间段的比例,得到虚拟机外部的状态信息;
步骤1中,所述采集虚拟机进程信息,是从虚拟机外部恢复进程信息,包括恢复内存中的信息和寄存器中的信息;
其中,恢复内存中的信息,是通过轮询的采集和恢复虚拟机16种内核结构,以获得静态的进程状态、文件信息和端口信息;
恢复寄存器中的信息,是使用LibVMI设置INT 3软件中断,强制发生***调用的虚拟机陷入虚拟机管理器层,通过寄存器读取当前***调用的二进制数据,根据对***调用内核源码的分析,将二进制数据恢复成能够理解的操作***级语义,得到当前发生的***调用信息;
所述恢复内存中的信息,是通过轮询的采集和恢复虚拟机16种内核结构,以获得静态的进程状态、文件信息和端口信息,具体包括:通过自省库LibVMI和虚拟机***符号表,从内存中提取模块列表、进程状态、文件和端口的二进制数据,接着分析虚拟机操作***中各内核结构及其偏移量,将之前从内存中提取的二进制数据恢复成能够理解的操作***语义;
所述形成虚拟机外部信息视图,包括:利用软件中断从虚拟机外部截获实时***调用,利用滑动时间窗口的方法,对每1秒钟内动态的***调用信息与这段时间结束时静态的进程状态、文件信息和端口信息相结合,形成虚拟机进程的外部信息视图;
步骤2包括:对于虚拟机状态信息,提取的虚拟机状态信息特征向量包括CPU、网络、磁盘、内存、进程和模块信息,对于虚拟机状态信息特征向量中有波动且有上下界的数据以原形式保存;对于无上界的递增数据,以时间段内增量的方法表示,形成各种用数值表示的虚拟机状态信息特征向量;
步骤2包括:对于虚拟机外部信息视图中的进程信息数据,提取的进程信息特征向量包括进程的状态、关联文件、关联端口和***调用,即在滑动时间窗口中提取进程静态和动态信息,并进行统计形成进程信息特征向量中的各个数值;
步骤3包括:利用局部异常因子算法和虚拟机状态信息特征向量,训练虚拟机异常状态检测模型,用于检测虚拟机异常状态,实现对粗粒度的虚拟机异常状态检测;
利用随机森林算法和进程信息特征向量训练虚拟机流量检测模型,用于进行流量检测,实现细粒度的虚拟机恶意进程检测;
虚拟机流量检测模型进行流量检测时,将网络流量入侵检测工具的报警信息通过IP地址对应到虚拟机;如果报警信息中含有端口信息,则结合虚拟机进程信息采集中的端口信息,将报警信息对应到一个进程。
2.如权利要求1所述的方法,其特征在于,还包括步骤4:根据管理员自定义设置和虚拟机安全检测的结果,根据虚拟机状态、进程和流量的异常报警,实现不同级别的响应,对虚拟机实施迁移、暂停和关机操作。
CN201910930547.4A 2019-09-29 2019-09-29 一种基于自省技术的虚拟机安全检测方法 Active CN110865866B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910930547.4A CN110865866B (zh) 2019-09-29 2019-09-29 一种基于自省技术的虚拟机安全检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910930547.4A CN110865866B (zh) 2019-09-29 2019-09-29 一种基于自省技术的虚拟机安全检测方法

Publications (2)

Publication Number Publication Date
CN110865866A CN110865866A (zh) 2020-03-06
CN110865866B true CN110865866B (zh) 2022-04-05

Family

ID=69652481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910930547.4A Active CN110865866B (zh) 2019-09-29 2019-09-29 一种基于自省技术的虚拟机安全检测方法

Country Status (1)

Country Link
CN (1) CN110865866B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256404B (zh) * 2020-11-17 2024-04-05 杭州安恒信息技术股份有限公司 一种虚拟机自省方法、装置、设备及介质
CN117032881A (zh) * 2023-07-31 2023-11-10 广东保伦电子股份有限公司 一种虚拟机异常检测和恢复的方法、装置及存储介质
CN116881917B (zh) * 2023-09-08 2023-11-10 北京安天网络安全技术有限公司 恶意进程关联处理方法、装置、电子设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103996003A (zh) * 2014-05-20 2014-08-20 金航数码科技有限责任公司 一种虚拟化环境中的数据擦除***及方法
CN106445639A (zh) * 2016-09-30 2017-02-22 北京奇虎科技有限公司 监测虚拟机的方法及装置
CN108469984A (zh) * 2018-04-17 2018-08-31 哈尔滨工业大学 一种基于虚拟机自省函数级虚拟机内核动态检测***与方法
CN109033839A (zh) * 2018-08-10 2018-12-18 天津理工大学 一种基于动态多特征的恶意软件检测方法
CN109597675A (zh) * 2018-10-25 2019-04-09 中国科学院信息工程研究所 虚拟机恶意软件行为检测方法及***
CN109714314A (zh) * 2018-11-21 2019-05-03 中国电子科技网络信息安全有限公司 一种重现漏洞全生命周期的全息漏洞库的构建方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120240224A1 (en) * 2010-09-14 2012-09-20 Georgia Tech Research Corporation Security systems and methods for distinguishing user-intended traffic from malicious traffic

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103996003A (zh) * 2014-05-20 2014-08-20 金航数码科技有限责任公司 一种虚拟化环境中的数据擦除***及方法
CN106445639A (zh) * 2016-09-30 2017-02-22 北京奇虎科技有限公司 监测虚拟机的方法及装置
CN108469984A (zh) * 2018-04-17 2018-08-31 哈尔滨工业大学 一种基于虚拟机自省函数级虚拟机内核动态检测***与方法
CN109033839A (zh) * 2018-08-10 2018-12-18 天津理工大学 一种基于动态多特征的恶意软件检测方法
CN109597675A (zh) * 2018-10-25 2019-04-09 中国科学院信息工程研究所 虚拟机恶意软件行为检测方法及***
CN109714314A (zh) * 2018-11-21 2019-05-03 中国电子科技网络信息安全有限公司 一种重现漏洞全生命周期的全息漏洞库的构建方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
匿名通信与暗网研究综述;罗军舟,杨明,凌振,吴文甲,顾晓丹;《计算机研究与发展》;20181221;全文 *
基于iForest的虚拟机异常检测机制;刘垚磊,杨瑞,杨艺;《第33次全国计算机安全学术交流会论文集》;20180910;全文 *
基于自适应的虚拟机进程实时监控方法;崔超远,李勇钢,乌云,孙丙宇;《计算机学报》;20190430;全文 *
虚拟化技术安全威胁与对策探讨;吉梁,程子栋;《信息通信》;20181231;全文 *

Also Published As

Publication number Publication date
CN110865866A (zh) 2020-03-06

Similar Documents

Publication Publication Date Title
CN109831465B (zh) 一种基于大数据日志分析的网站入侵检测方法
CN111092852B (zh) 基于大数据的网络安全监控方法、装置、设备及存储介质
US9747452B2 (en) Method of generating in-kernel hook point candidates to detect rootkits and the system thereof
Hu et al. A simple and efficient hidden Markov model scheme for host-based anomaly intrusion detection
CN101751535B (zh) 通过应用程序数据访问分类进行的数据损失保护
CN110865866B (zh) 一种基于自省技术的虚拟机安全检测方法
CN109933984B (zh) 一种最佳聚类结果筛选方法、装置和电子设备
CN103679030B (zh) 一种基于动态语义特征的恶意代码分析检测方法
WO2009097610A1 (en) A vmm-based intrusion detection system
CN109347808B (zh) 一种基于用户群行为活动的安全分析方法
CN111277606A (zh) 检测模型训练方法、检测方法及装置、存储介质
CN113595975B (zh) 一种Java内存Webshell的检测方法及装置
Ben Salem et al. Masquerade attack detection using a search-behavior modeling approach
CN109800569A (zh) 程序鉴别方法及装置
CN108959922B (zh) 一种基于贝叶斯网的恶意文档检测方法及装置
CN116881962B (zh) 一种安全监控***、方法、装置和存储介质
Vigna et al. Host-based intrusion detection
KR101988747B1 (ko) 하이브리드 분석을 통한 머신러닝 기반의 랜섬웨어 탐지 방법 및 장치
US20230315855A1 (en) Exact restoration of a computing system to the state prior to infection
CN111104670A (zh) 一种apt攻击的识别和防护方法
US12013942B2 (en) Rootkit detection based on system dump sequence analysis
CN108573148B (zh) 一种基于词法分析的混淆加密脚本识别方法
CN114707144A (zh) 虚拟机逃逸行为检测方法及装置
Sapegin et al. High-speed security analytics powered by in-memory machine learning engine
Wang et al. MrKIP: Rootkit Recognition with Kernel Function Invocation Pattern.

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