CN108469984A - 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法 - Google Patents
一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法 Download PDFInfo
- Publication number
- CN108469984A CN108469984A CN201810346504.7A CN201810346504A CN108469984A CN 108469984 A CN108469984 A CN 108469984A CN 201810346504 A CN201810346504 A CN 201810346504A CN 108469984 A CN108469984 A CN 108469984A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- function
- instruction
- address
- monitoring
- 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
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
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法属于云安全领域;装置包括硬件为安全虚拟机、目标虚拟机和虚拟机管理层提供硬件基础,安全虚拟机包括监控框架,安全虚拟机与目标虚拟机通过虚拟机管理层交互,虚拟机管理层连接提取模块,提取模块通过页面执行信息分别连接学习模块和监控模块;方法包括监控开启;提取模块对目标虚拟机注入监控点从而让虚拟机管理层能够监听调用中的子函数,利用静态内存分析的方法和动态跟踪,再次进行静态分析得到其后的子函数地址进行监听,循环执行,直到系统调用返回;通过三种学习方法对执行信息进行建模;从而检测内核控制流的完整性,防止被攻击者检测到甚至于攻破。
Description
技术领域
本发明一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法属于云安全领域。
背景技术
在云计算蓬勃发展的现今,其安全问题必须得到重视。在云计算基础设施和服务中,提供于用户的服务核心作为虚拟机形式而存在,无论个人用户还是企业级服务器用户,其最终呈现形式都是位于云计算提供商主机集群内的一个或多个虚拟机。而内核控制流的完整性对于虚拟机的安全十分重要,如果虚拟机的内核遭到破坏,那么整个云平台的安全都可能受到威胁。因此,检测虚拟机的内核控制流完整性对于云计算十分重要。
目前控制流检测技术主要分为静态内存分析和动态跟踪方法。静态内存分析是分析内存中的代码和指针,检查是否有问题。但是,静态分析方法丧失了动态执行的信息,导致分析不够全面,可能存在漏报。而动态跟踪方法则是跟踪内核或者程序的执行过程收集执行信息,从而分析控制流的完整性。但是,目前基于动态跟踪的方法往往基于指令级跟踪或者跳转级跟踪使性能下降严重,无法应用于云计算当中。
而且,传统的控制流检测方法往往作为一个模块运行于操作系统中,或者作为一个进程运行于用户空间,但是这种方案可能被攻击者检测到甚至于攻破。随着虚拟化的发展,虚拟机自省技术(VMI)为虚拟机监控提供一种安全隐蔽的方案。在VMI架构中,监控程序不是运行于目标中,而是运行于VMM层或者安全虚拟机中。由于云计算中VMM层具有最高特权,且VMM与虚拟机以及各虚拟机之间都具有很强的隔离性。因此VMI的监控手段更加适合于云计算。
发明内容
针对上述问题,本发明的目的在于提供一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法。
本发明的目的是这样实现的:
一种基于虚拟机自省函数级虚拟机内核动态检测系统,包括安全虚拟机、目标虚拟机、虚拟机管理层和硬件;所述硬件为安全虚拟机、目标虚拟机和虚拟机管理层提供硬件基础,所述安全虚拟机包括监控框架,所述监控框架包括提取模块、学习模块和监控模块;所述安全虚拟机与目标虚拟机通过虚拟机管理层交互,利用VMI技术,所述安全虚拟机通过虚拟机管理层对目标虚拟机中想要处理的部分进行操控,目标虚拟机也能够通过虚拟机管理层接收在安全虚拟机中所关注的目标对象的状态数值和变化事件,所述虚拟机管理层连接提取模块,所述提取模块通过页面执行信息分别连接学习模块和监控模块,所述学习模块通过控制流模型连接监控模块,所述监控模块通过控制流模型反向连接学习模块;
提取模块、用于将目标虚拟机内核中的控制流进行显式的处理并采集过程中生成的相关数据,承担与虚拟机管理层进行交互的全部工作;
学习模块、用于将假设前提下的正常内核产生的控制流数据作为合法控制流数据,按照提供的学习方法进行处理,将学习结果添加至合法数据库中,将所述数据库作为安全标准提供安全技术;
监控模块、用于将假设前提下无法判断是否正常的内核中的控制流数据作为待检测对象,按照指定的检测方法处理所述控制流数据,判断是否合法。
基于所述基于虚拟机自省函数级虚拟机内核动态检测系统实现的检测方法,包括以下步骤:
步骤a、监控开启;
步骤b、提取模块对目标虚拟机注入监控点从而让虚拟机管理层能够监听调用中的子函数,通过监听获得目标虚拟机内存中的控制流信息,对执行过程中的函数进行采集,进行指令分析找出控制流信息中所有函数位置,利用静态内存分析的方法找到需要跟踪的系统调用中所有子函数地址;
步骤c、因为存在间接寻址问题,无法确定这条指令下一步会跳转到哪里,经过一次的静态内存分析无法找全所用调用的子函数,还需要对这类指令进行动态跟踪,从而得知下一步会执行到哪里,再次进行静态分析得到其后的子函数地址进行监听,循环执行,直到系统调用返回;
步骤d、所述函数被执行则记录其执行信息,通过三种学习方法对执行信息进行建模;所述三种学习方法分别是地址存在性、短序列和基于图嵌入的神经网络模型,在监控阶段同样根据上诉方法进行分别检测分析,从而检测内核控制流的完整性。
进一步地,所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,步骤b中对执行过程中的函数进行采集,在采集函数前,进行指令分析以找出控制流中所有函数的位置,对目标虚拟机的内核指令进行语义分析,从而定位到各个函数的入口,在计算机指令中,分为非跳转指令与跳转指令,非跳转指令按程序计数器递增的顺序执行,而跳转指令对程序计数器进行改变,使其跳到一个新地址继续执行,所述跳转指令中,CALL指令跳转到下一个函数,RET返回上一个函数,而其他指令进行的是函数内跳转,目标通过其它指令最终找到CALL指令,当找到CALL指令时,进行分析找出它指向的函数地址,获得目标对象,在目标虚拟机外部对指令进行分析,根据一个函数代码块中指令的执行流程,找到CALL指令,通过VMI技术得到指令的地址和内容,根据指令的语义得到其跳转的目标地址,依次遍历即对函数的全部内容进行解析,由调用的入口处的指令开始,分析调用函数的代码块,找出其中所有CALL指令,每一条CALL指令都会提供一个后续函数的入口地址,再对这些新得到的函数做同样的分析,取得所有可静态到达的函数,同样要进行动态分析,即在这类指令运行时进行分析,确保不遗漏任何函数。
进一步地,所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,步骤c中所述动态跟踪包括CPU首先执行VMXON操作,进入虚拟化环境工作状态,在完成虚拟化环境中的工作后,CPU则执行VMXOFF操作,退出虚拟化环境工作状态,回到正常的操作系统执行状态,当虚拟机中出现高权限指令时,CPU会执行VM Exit操作,从非根操作模式切换到根操作模式下;在执行完高权限指令后,CPU随之执行VM Entry操作,使系统从根操作模式切换回非根操作模式下,令虚拟机以其正常权限继续执行之后的指令;利用中断条件对函数进行改造,以触发切换机制。
进一步地,所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,在所述中断指令中,选择INT 3指令,当用户需要对程序进行调试,会使用这条指令中断CPU,之后用户便通过调试器查看程序运行情况。
进一步地,所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,虚拟机在执行函数时产生INT 3断点中断,借助VMI技术将INT 3断点中断注入到函数的首条指令中,切换到虚拟机管理层层,当虚拟机管理层监听虚拟机内核时接收到中断事件的切换请求,由INT 3断点调试引发的切换请求时,确定是内核正在对某个函数的首条指令进行执行,将其采集下来作为控制流数据,当将指令注入后,若触发了切换事件,虚拟机会被暂停,而将该调试状态撤销后,目标虚拟机将继续正常执行。
进一步地,所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,步骤d中所述地址存在性学习方法包括通过提取模块得到一串地址序列,即表示控制流;数据库中存储合法控制流出现过的所有单个地址,即如果一个控制流是合法的,所有地址都是合法的,能够用作学习训练集;在这种情况下,两条控制流若包含的地址在内容上相同,而在顺序上不同,它们提供给数据库的学习对象是相同的。
进一步地,所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,步骤d中所述短序列学习方法包括将一个固定长度的窗口置于待处理序列的起始位置,连续向前移动,每次窗口首部对齐至下一个地址,窗口尾部同样对一个新地址进行覆盖,此时窗口中的内容为与窗口等长的地址序列,作为特征短序列输入模式库,当窗口尾部移动至序列尾部时便完成了处理。
进一步地,所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,步骤d中所述基于图嵌入的神经网络模型学习方法,包括以下步骤:
步骤d1、对每一个控制流进行数据处理,使其转化为d维的向量xv;
步骤d2、利用神经网络进行学习建模,使其转化为结构化的图嵌入模型φ(gi)(i=1,2,…,n),神经网络转化模型Γ公式如下:
其中xv是个d维的向量,代表了每一个控制流,N(v)是向量v邻居的集合,是一个初始化的图嵌入,W1是一个d×p的矩阵,p是图嵌入的大小,非线性变换σ是一个n层的全连接神经网络:
σ(l)=P1×ReLU(P2×...ReLU(Pnl))
Pi(i=1,...,n)是一个p×p的矩阵,n是图嵌入的深度,ReLU是修正线性单元,ReLU(x)=max{0,x},经过T次的迭代,可以训练出每一个控制流的图嵌入模型,在图嵌入输出时需要W2进行输出转化,W2也是一个p×p的矩阵;
步骤d3、利用如下公式对图嵌入进行两两相似性匹配;
步骤d3、Sim(g,g′)∈{+1,-1},+1表示两个嵌入相似,而-1表示两个嵌入不相似,通过如下目标函数,对W1,Pi,W2参数调优,yi∈{+1,-1}是相似度的真实值,
基于此模型,能够探测复杂行为和零日攻击。
有益效果:
本发明提供了一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法,具有下列优势:
1、本发明将静态内存分析和动态跟踪方法相结合,静态内存分析是分析内存中的代码和指针,检查是否有问题,在静态分析方法丧失了动态执行的信息,导致分析不够全面,可能存在漏报时,动态跟踪方法则是跟踪内核或者程序的执行过程收集执行信息,从而分析控制流的完整性;
2本发明采用三种学习方法来进行虚拟机函数级内核完整性建模,分别从子函数地址和子函数的执行顺序这两个方面进行学习,在监控阶段我们同样根据这几种方法进行分别检测分析,从而检测内核控制流的完整性;
3、本发明采用虚拟机自省技术VMI技术,是本发明的监控程序不是运行于目标中,而是运行于VMM层或者安全虚拟机中,由于云计算中虚拟机管理层具有最高特权,且虚拟机管理层与虚拟机以及各虚拟机之间都具有很强的隔离性,更好的防止被攻击者检测到甚至于攻破。
附图说明
图1是基于虚拟机自省函数级虚拟机内核动态检测系统结构框图。
图2是CPU模式切换图。
图3是地址存在性学习图。
图4是序列树图。
图5是滑动窗口图。
图中:1安全虚拟机、11监控框架、111提取模块、112学习模块、113监控模块、2目标虚拟机、3虚拟机管理层、4硬件。
具体实施方式
下面结合附图对本发明具体实施方式作进一步详细描述。
具体实施方式一
一种基于虚拟机自省函数级虚拟机内核动态检测系统,如图1所示,包括安全虚拟机1、目标虚拟机2、虚拟机管理层3和硬件4;所述硬件4为安全虚拟机1、目标虚拟机2和虚拟机管理层3提供硬件4基础,所述安全虚拟机1包括监控框架11,所述监控框架11包括提取模块111、学习模块112和监控模块113;所述安全虚拟机1与目标虚拟机2通过虚拟机管理层3交互,利用VMI技术,所述安全虚拟机1通过虚拟机管理层3对目标虚拟机2中想要处理的部分进行操控,目标虚拟机2也能够通过虚拟机管理层3接收在安全虚拟机1中所关注的目标对象的状态数值和变化事件,所述虚拟机管理层3连接提取模块111,所述提取模块111通过页面执行信息分别连接学习模块112和监控模块113,所述学习模块112通过控制流模型连接监控模块113,所述监控模块113通过控制流模型反向连接学习模块112;
提取模块111、用于将目标虚拟机2内核中的控制流进行显式的处理并采集过程中生成的相关数据,承担与虚拟机管理层3进行交互的全部工作;
学习模块112、用于将假设前提下的正常内核产生的控制流数据作为合法控制流数据,按照提供的学习方法进行处理,将学习结果添加至合法数据库中,将所述数据库作为安全标准提供安全技术;
监控模块113、用于将假设前提下无法判断是否正常的内核中的控制流数据作为待检测对象,按照指定的检测方法处理所述控制流数据,判断是否合法。
在虚拟化平台的架构中,其虚拟机管理层3处于操作系统与底层硬件4之间,为其上层的操作系统提供虚拟化的硬件4环境。在虚拟机的分配与管理上,虚拟化平台可支持上层的多个虚拟机,而在所有虚拟机中,通常会存在一个高权限虚拟机,该虚拟机被用来辅助管理其他虚拟机。基于此架构,我们将检测系统放在高权限虚拟机中实现,利用虚拟机管理层3与目标虚拟机2交互。利用VMI技术,我们的系统可通过虚拟机管理层3这一途径对目标虚拟机2中想要处理的部分进行操控,反过来也可以接受所关注的目标对象的状态数值和变化等事件,这是一个双向的过程。我们的系统要完成的工作是采集、学习和检测,因此系统分为三个模块,分别为提取模块111、学习模块112与监控模块113,这三个模块都互相有所联系。提取模块111负责将目标虚拟机2的内核中的控制流进行显式的处理并采集其过程中生成的相关数据,该模块承担了检测系统与VMM进行交互的全部工作。学习模块112负责将我们假设前提下的正常内核产生的控制流数据作为合法控制流数据,按照我们提供的学习方法进行处理,之后将学习结果添加至合法数据库中,我们将该数据库作为安全标准为系统提供安全基础。监控模块113负责将我们假设前提下无法判断是否正常的内核中的控制流数据作为待检测对象,按照指定的检测方法处理该控制流,判断其是否合法。
具体实施方式二
所述基于虚拟机自省函数级虚拟机内核动态检测方法包括一种利用静态分析辅助的动态跟踪方法。该方法在监控开始后,首先利用静态内存分析的方法找到需要跟踪的系统调用中所有子函数地址,之后对这些子函数进行动态监控。如果这些函数被执行则记录其执行信息,之后根据这些捕捉到的信息进行分析建模。因为存在间接寻址的问题如call eax,我们无法确定这条指令下一步会跳转到哪里,所以经过一次的静态内存分析我们无法找全所用系统调用的子函数。为此我们还需要对这类指令进行跟踪,从而得知下一步会执行到哪里,之后再次进行静态分析得到其后的子函数地址进行监听。这个过程循环执行,直到系统调用返回。经过我们的动态监听能够得到系统调用中所有执行过的子函数的地址,从而进行分析建模。我们提出3种学习方法对得到的函数级执行信息进行学习建模。它们分别是地址存在性、短序列和基于图嵌入的神经网络模型,分别从子函数地址和子函数的执行顺序这两个方面进行学习。在监控阶段我们同样根据这几种方法进行分别检测分析,从而检测内核控制流的完整性。
我们的方法共分为两个阶段,分别是学习阶段和检测阶段,在学习阶段由提取模块111与学习模块112协同工作,在检测阶段由提取模块111、学习模块112与监控模块113共同工作。当系统开启后,便可对目标虚拟机2进行动态的持续监控,根据不同阶段采取不同的工作模式,在内核运行的同时完成学习或检测任务。
1、提取模块111
采集模块是检测方法的实现基础,该模块负责利用虚拟机管理层3的优势,主要利用VMI技术做了两件事情:第一是对目标虚拟机2注入监控点从而让VMM能够监听系统调用中的子函数,第二是通过监听获得目标虚拟机2内存中的控制流信息。在采集对象选取问题上,我们选择目标虚拟机2的系统调用产生的控制流作为对象,对其执行过程中的函数进行采集。在监听问题上,我们首先要考虑如何对多个控制流进行划分,之后要考虑如何能使函数改变为能够被虚拟机管理层3所监听到的对象。为了采集函数,我们首先进行指令分析以找出控制流中所有函数的位置,之后讨论对控制流划分的方法,最后对函数进行我们称为指令注入的处理。
1.1、指令分析
我们选择研究函数级别,是因为控制流即由函数执行路径形成的抽象流结构,其本质为函数地址组成的序列,因此以函数的形式将控制流表现出来是对控制流较准确、恰当的表现方法。
我们的目标对象是函数,因此我们需要找到控制流执行过程中涉及到的所有函数的地址,我们首先要通过指令分析完成这一任务,这是一个静态分析的过程。在此过程中,我们对目标虚拟机2的内核指令进行语义分析,从而定位到各个函数的入口。众所周知,在计算机指令中,按照指令在执行顺序上的区别,我们可将指令分为两大类:非跳转指令与跳转指令。非跳转指令按程序计数器递增的顺序执行,而跳转指令可以对程序计数器进行改变,使其跳到一个新地址继续执行。因此我们需要重点分析跳转指令。在这些跳转指令中,CALL指令可跳转到下一个函数,RET可返回上一个函数,而其他指令进行的是函数内跳转,由于我们关注的是函数的入口,因此我们的目标是通过其它指令最终找到CALL指令。当我们找到CALL指令时,对其进行分析便可找出它指向的函数地址,便成功获得了目标对象。
因此我们需要模拟CPU的工作原理,在目标虚拟机2外部对指令进行分析,根据一个函数代码块中指令的执行流程,找到CALL指令。我们能通过VMI技术得到指令的地址和内容,接下来就可以根据指令的语义得到其跳转的目标地址,依次遍历即可对该函数的全部内容进行解析。
我们由系统调用的入口处的指令开始,分析系统调用函数的代码块,找出其中所有CALL指令,每一条CALL指令都会提供一个后续函数的入口地址,我们再对这些新得到的函数做同样的分析,如此迭代最终便可取得所有可静态到达的函数。这种分析方法可以分析出大部分函数的位置,但对于间接寻址的跳转指令,如跳转至寄存器这类目标地址不明确的指令,无法在静态分析时模拟CPU对其进行深入的遍历,因此其后续的指令我们无从得知,这就需要我们同样要进行动态分析,即在这类指令运行时进行分析,这样才能确保不遗漏任何函数。
1.2、动态跟踪
想要监听函数的执行情况,我们必须先让函数满足监听条件,能够让函数在执行的同时通过某种方式触发监听机制。由于函数在执行时不涉及特权问题,只需虚拟机的最低权限即可执行,而不会触发有关于VMM的任何操作,因此在正常情况下是无法获知虚拟机内核是否进行了函数的执行。为了解决这一问题,考虑在VMM的全虚拟化机制的硬件4支持下,从Intel VT技术入手实现一种将函数执行的权限提升至VMM特权的方法。
在Intel VT技术中,根操作模式和非根操作模式的切换是通过VM Entry操作以及VM Exit操作等完成的,这些操作专用于虚拟化技术。如图2所示,CPU首先执行VMXON操作,进入虚拟化环境工作状态,在系统完成虚拟化环境中的工作后,CPU则执行VMXOFF操作,退出虚拟化环境工作状态,回到正常的操作系统执行状态。当虚拟机中出现高权限指令时,CPU会执行VM Exit操作,使系统从非根操作模式切换到根操作模式下;在执行完高权限指令后,CPU随之执行VM Entry操作,使系统从根操作模式切换回非根操作模式下,令虚拟机以其正常权限继续执行之后的指令。由于虚拟化平台会频繁在虚拟机和VMM之间切换,因此为了在VMM层知晓虚拟机内部是否执行了函数,就需要对函数进行改造,使其一旦执行就会触发Intel VT的切换机制。在虚拟机中,中断指令会引起模式的切换,且改造过程较易实施,因此,最终选择利用中断条件对函数进行改造,以触发切换机制。
在诸多中断指令中,INT 3指令是较为合理的选择。INT 3从Intel 8086开始就被CPU所使用,当用户需要对程序进行调试,便会使用这条指令中断CPU,之后用户便可通过调试器查看程序运行情况。INT 3是软件调试中经常用到的断点功能,因此INT 3指令又被称为断点指令。在操作系统内核级别的指令运行时,断点中断理论上是不会出现的,而一旦出现必然是一次经过事先有目的性的改动而触发的事件,这就保证了引起根与非根模式切换事件的唯一性。
为了让虚拟机在执行函数时产生INT 3断点中断,本模块借助VMI技术将INT 3断点中断注入到函数的首条指令中,从而保证虚拟机在执行函数时会产生断点中断,从而切换到VMM层。当VMM监听虚拟机内核时接收到中断事件的切换请求,而其内容恰好为由INT 3断点调试引发的切换请求时,便可确定是内核正在对某个函数的首条指令进行执行,便可将其采集下来作为控制流数据。经过研究,当将指令注入后,若触发了切换事件,虚拟机会被暂停,而当我们将该调试状态撤销后,目标虚拟机2将继续正常执行,也就是说我们所做的注入与撤销操作对于目标虚拟机2来说是完全透明的,不会影响其自身的工作功能。
我们可以通过这种方法进行指令注入,结合之前的指令分析得到的若干函数地址,我们便可将中断注入到间接跳转指令中,再等待它们运行时触发监听事件,这样就得到了我们想要的结果。
2、学习模块112
在学习模块112,我们将进行系统的学习阶段,该阶段需要完成的工作是将来自于采集模块的合法控制流做出处理。我们提出3种学习方法,分别是:地址存在性学习、短序列学习和基于图嵌入的神经网络学习方法。根据学习方法提取其模式,之后将该模式作为正常模式输入到合法数据库中,完成合法控制流模型的构造。
2.1、址存在性学习
在本模块中,我们的研究对象是函数的地址,通过采集模块得到一串地址序列,这个序列即表示了控制流。在地址存在性学习中,我们的数据库中存储合法控制流出现过的所有单个地址,也就是说,如果一个控制流是合法的,那么它其中包含的所有地址都被认为是合法的,都可用作学习训练集。在这种情况下,两条控制流若包含的地址在内容上相同,而在顺序上不同,它们提供给数据库的学习对象是相同的,如图3所示,控制流1与控制流2都包含A1A2A3三个地址,但控制流1的顺序为A1A2A3,而控制流2的顺序为A2A3A1,他们最终提供给数据库的都是A1A2A3三个地址,我们则将这三个地址学习为合法控制流应该出现的地址。我们通过这种方法对控制流进行第一次学习。
2.2、短序列学习
在地址存在性学习的方法中,我们只对控制流进行了较浅显的学习,只注重了单个地址的作用而没有考虑多个地址之间的互相作用。控制流将作为一个地址序列,其最小数据元素为函数地址,单个函数的地址不能反映整个控制流的执行过程,而要把多个函数地址联系在一起分析能够粗略地刻画一段区域的控制流。地址在控制流中按照顺序排列,因此其顺序属性是控制流中最为重要的特征。
然而这种顺序无法用通常对序列进行处理的自动机方法进行表示。经分析,对于任意一个系统调用,其控制流中都存在许多分支,由于这些分支的不确定性,每一次采集到的控制流数据都可能与之前的任意一次不同,若要建立自动机,则控制流的这种较强的不确定性会使自动机的状态数目增长到极高,而且即使自动机建立完成了,也无法保证该自动机包含的就是合法控制流的全部可能,因此将控制流的整体顺序都作为特征显然不妥。因此,我们考虑用控制流的局部顺序作为控制流的特征并进行学习。
为了将控制流数据的完整序列分离成数个短序列,本模块对完整序列使用了滑动窗口机制以产生短序列。如图4和图5所示,滑动窗口是指将一个固定长度的窗口置于待处理序列的起始位置,连续向前移动,每次窗口首部对齐至下一个地址,窗口尾部同样对一个新地址进行覆盖,此时窗口中的内容为与窗口等长的地址序列,作为特征短序列输入模式库。当窗口尾部移动至序列尾部时便完成了处理。对于长度为N的序列,以长度为M的滑动窗口处理后共可产生N-M+1个短序列,可以较为全面的呈现控制流的局部特征。
2.3、基于图嵌入的神经网络学习
在建立准确模型之外,建立基于神经网络和图嵌入的模糊模型。在面临复杂的攻击行为时尤其是零日攻击,准确的建模受限于学习样本对于新的执行模式没有很好的判断力。为此,首先对每一个控制流进行数据处理,使其转化为d维的向量xv。利用神经网络进行学习建模,使其转化为结构化的图嵌入模型φ(gi)(i=1,2,…,n)。神经网络转化模型Γ公式如下:
其中xv是个d维的向量,代表了每一个控制流。N(v)是向量v邻居的集合,是一个初始化的图嵌入。W1是一个d×p的矩阵,p是图嵌入的大小。非线性变换σ是一个n层的全连接神经网络:
σ(l)=P1×ReLU(P2×...ReLU(Pnl))
Pi(i=1,...,n)是一个p×p的矩阵,n是图嵌入的深度,ReLU是修正线性单元,ReLU(x)=max{0,x}。经过T次的迭代,可以训练出每一个控制流的图嵌入模型,在图嵌入输出时需要W2进行输出转化,W2也是一个p×p的矩阵。
最后,利用如下公式对图嵌入进行两两相似性匹配。
可见Sim(g,g′)∈{+1,-1},+1表示两个嵌入相似,而-1表示两个嵌入不相似。通过如下目标函数,对W1,Pi,W2参数调优。yi∈{+1,-1}是相似度的真实值。
基于此模型,能够很好地探测复杂行为和零日攻击。
具体实施方式三
基于设计,我们在x86架构支持Intel VT服务器上实现了原型系统。我们的系统在Xen平台上实现,Xen虚拟化平台由英国剑桥大学开发,支持多种虚拟化模式,支持Intel VT技术,其性能可达到接近于实体机操作系统的水平。实现的主要部分包括目标系统调用的开始和结束的监听,指令的分析、注入与监听。在分析过程中我们引入了白名单机制,在监听过程中引入上下文切换处理机制。
1、目标系统调用的开始和结束的监听
在快速系统调用机制中,从用户模式进入与退出内核系统调用需要经过sysenter与sysexit指令的协助。sysenter指令执行后,系统将转到内核入口指令,而此时eax寄存器的值就是目标系统调用的序号。Sysexit指令执行后,系统将从内核态返回到用户模式。在优化部分,我们将监听内核入口地址改为监听目标系统调用具体入口地址,因此此处只需监听内核出口地址。通过从内核入口地址进行反汇编,可在离入口地址不远处找到出口地址,对其进行监听即可判断系统调用的结束。监听方法与指令注入相同,通过int 3注入。在系统调用未开始时,此出口地址不会被监听,只有系统调用开始后才会对此处监听。由于内核中可存在多个系统调用的同时执行,因此监听到出口地址执行不一定是所监听的目标系统调用结束,因此在系统调用开始时记录该系统调用所属进程的cr3值,在监听到出口地址时判断cr3值是否与其相同,以确定是否结束。
为判断具体系统调用的开始,要对具体系统调用的入口地址进行监听,该地址可从系统调用表中得到,当该位置触发监听便可掌握系统调用的开始行为。在Linux系统设计中,每个系统调用都对应唯一的系统调用序号,而所有系统调用的入口地址都根据该序号的顺序存储在系统调用表中,因此通过该序号便可在系统调用表中取出目标系统调用的入口地址。我们仍然采取int 3注入的方式,对其进行监听。由于系统调用的入口地址可能被改变,因此我们还监听系统调用表中存储着目标系统调用入口地址处的写事件,以便及时更新监听位置。
2、指令分析
在监听到系统调用开始后,便可对即将进行的系统调用进行指令分析,从而找到所有可能执行到的函数地址,之后进行监控。从入口点地址处开始,通过Xen提供的读取内存快照接口便可将系统调用例程的全部指令从虚拟机内存中读取出来。由于指令以二进制形式存在,因此需借助Distorm工具将其转为汇编指令供程序理解。Distorm是一个linux下的反汇编库,提供将原始内存按照指定指令模式反汇编成汇编语句的功能。通过使用Distorm库接口可将原始内存以32位指令格式进行反汇编。
对指令分析,我们需要模拟CPU执行过程,对每个函数进行解析,从而找出该函数调用的所有其它函数的地址。解析过程我们将用到两个队列,一个用于函数内部指令的解析,称为指令队列,其作用为根据指令语义按照逻辑顺序遍历函数,最终寻找出其它函数地址,另一个用于存储等待被解析的函数的地址,称为函数队列,其作用为提供下一次将要分析的函数的地址。在指令分析最开始时,我们将目标系统调用入口地址放入函数队列。之后,我们每一次从函数队列中取出一个函数入口地址进行反汇编,保证反汇编的内存长度足以覆盖整个函数所占的区间,之后开始解析函数。将反汇编后得到的函数的入口指令的地址与内容组成的二元组放入指令队列,开始广度遍历
3、白名单
在系统调用过程中存在一些会被大量执行的函数,这些函数大多数为系统中有关进程切换、调度、时间片计算等功能及其子功能,由于操作系统在运行过程中会不断进行任务切换,因此导致了这些函数被不断调用,如果对这些函数都监听,无论在目标系统调用内部或外部,监听到的函数中这些函数都占据了很大部分,这使得目标虚拟机2的工作效率明显下降,完成一项正常工作的开销达到了原本的几十倍以上。这类函数并非研究的侧重点,因此可在指令分析阶段将其去除。
为解决这一问题,本系统建立了白名单机制,该名单中储存的函数在注入时不会被选定,在监听时也不会产生中断。该名单的建立过程关注了某一函数的功能,经人工检查,这些函数都是与进程调度、时间片计算有关的函数,与系统调用核心功能无关,因此将其放入白名单中不会影响对控制流的监听。
4、指令注入与监听
之后,程序对指令进行注入,注入的方法为使用Xen的写内存接口将原指令内容改为INT3指令,其值为0xCC。在注入中断前,对于每一条指令的地址、内容、长度等信息都需要进行备份,以供监听时对指令进行还原。由于我们监听的是函数的执行路径,因此要注入的地方是函数的入口地址,即函数的首条指令指向的对应内存。
监听过程共分为两个阶段,一是监听系统调用入口地址,二是监听间接跳转指令,在模块工作时会在这两个阶段之间切换。
在指令监听时,在VMM层捕获到调试中断事件后,首先取得事件发生地址,对该地址进行记录便得到了控制流中的一个函数地址。为了让虚拟机继续运行,需要凭借该地址从指令备份库中提取该处指令的原内容并写回该处内存中,保证其执行路径不受干扰。鉴于某一地址在之后的执行路径中可能被再次访问,如系统调用中存在循环等情况,因此需在该指令完成执行后再次对其注入中断。
如果在监听时遇到间接寻址的指令,如call eax等,我们便在对其进行动态分析,因为此时可以得到它跳转到的具体地址,便可从该地址处进行分析。
5、上下文切换处理
由于操作系统的上下文切换机制,会导致某一次触发监听是由其他进程所造成的,与当前正在监听的系统调用无关。因此我们需要对上下文切换做出处理,为确保采集的控制流属于同一个系统调用,必须排除由其它系统调用执行的函数的干扰。操作系统有关进程的信息储存在CR3寄存器中,其值与各个进程唯一对应,因此CR3值可准确地映射到特定进程上。当将要开始一次控制流采集时,程序立即对当前CR3值进行锁定,在之后的每次事件中,首先对该次事件发生时的CR3值进行读取并检查,若与锁定CR3值相同则记入采集,若不同则不记录。
Claims (9)
1.一种基于虚拟机自省函数级虚拟机内核动态检测系统,其特征在于,包括安全虚拟机(1)、目标虚拟机(2)、虚拟机管理层(3)和硬件(4);所述硬件(4)为安全虚拟机(1)、目标虚拟机(2)和虚拟机管理层(3)提供硬件(4)基础,所述安全虚拟机(1)包括监控框架(11),所述监控框架(11)包括提取模块(111)、学习模块(112)和监控模块(113);所述安全虚拟机(1)与目标虚拟机(2)通过虚拟机管理层(3)交互,利用VMI技术,所述安全虚拟机(1)通过虚拟机管理层(3)对目标虚拟机(2)中想要处理的部分进行操控,目标虚拟机(2)也能够通过虚拟机管理层(3)接收在安全虚拟机(1)中所关注的目标对象的状态数值和变化事件,所述虚拟机管理层(3)连接提取模块(111),所述提取模块(111)通过页面执行信息分别连接学习模块(112)和监控模块(113),所述学习模块(112)通过控制流模型连接监控模块(113),所述监控模块(113)通过控制流模型反向连接学习模块(112);
提取模块(111)、用于将目标虚拟机(2)内核中的控制流进行显式的处理并采集过程中生成的相关数据,承担与虚拟机管理层(3)进行交互的全部工作;
学习模块(112)、用于将假设前提下的正常内核产生的控制流数据作为合法控制流数据,按照提供的学习方法进行处理,将学习结果添加至合法数据库中,将所述数据库作为安全标准提供安全技术;
监控模块(113)、用于将假设前提下无法判断是否正常的内核中的控制流数据作为待检测对象,按照指定的检测方法处理所述控制流数据,判断是否合法。
2.基于权利要求1所述基于虚拟机自省函数级虚拟机内核动态检测系统实现的检测方法,其特征在于,包括以下步骤:
步骤a、监控开启;
步骤b、提取模块(111)对目标虚拟机(2)注入监控点从而让虚拟机管理层(3)能够监听调用中的子函数,通过监听获得目标虚拟机(2)内存中的控制流信息,对执行过程中的函数进行采集,进行指令分析找出控制流信息中所有函数位置,利用静态内存分析的方法找到需要跟踪的系统调用中所有子函数地址;
步骤c、因为存在间接寻址问题,无法确定这条指令下一步会跳转到哪里,经过一次的静态内存分析无法找全所用调用的子函数,还需要对这类指令进行动态跟踪,从而得知下一步会执行到哪里,再次进行静态分析得到其后的子函数地址进行监听,循环执行,直到系统调用返回;
步骤d、所述函数被执行则记录其执行信息,通过三种学习方法对执行信息进行建模;所述三种学习方法分别是地址存在性、短序列和基于图嵌入的神经网络模型,在监控阶段同样根据上诉方法进行分别检测分析,从而检测内核控制流的完整性。
3.根据权利要求2所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,其特征在于,步骤b中对执行过程中的函数进行采集,在采集函数前,进行指令分析以找出控制流中所有函数的位置,对目标虚拟机(2)的内核指令进行语义分析,从而定位到各个函数的入口,在计算机指令中,分为非跳转指令与跳转指令,非跳转指令按程序计数器递增的顺序执行,而跳转指令对程序计数器进行改变,使其跳到一个新地址继续执行,所述跳转指令中,CALL指令跳转到下一个函数,RET返回上一个函数,而其他指令进行的是函数内跳转,目标通过其它指令最终找到CALL指令,当找到CALL指令时,进行分析找出它指向的函数地址,获得目标对象,在目标虚拟机(2)外部对指令进行分析,根据一个函数代码块中指令的执行流程,找到CALL指令,通过VMI技术得到指令的地址和内容,根据指令的语义得到其跳转的目标地址,依次遍历即对函数的全部内容进行解析,由调用的入口处的指令开始,分析调用函数的代码块,找出其中所有CALL指令,每一条CALL指令都会提供一个后续函数的入口地址,再对这些新得到的函数做同样的分析,取得所有可静态到达的函数,同样要进行动态分析,即在这类指令运行时进行分析,确保不遗漏任何函数。
4.根据权利要求2所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,其特征在于,步骤c中所述动态跟踪包括CPU首先执行VMXON操作,进入虚拟化环境工作状态,在完成虚拟化环境中的工作后,CPU则执行VMXOFF操作,退出虚拟化环境工作状态,回到正常的操作系统执行状态,当虚拟机中出现高权限指令时,CPU会执行VM Exit操作,从非根操作模式切换到根操作模式下;在执行完高权限指令后,CPU随之执行VM Entry操作,使系统从根操作模式切换回非根操作模式下,令虚拟机以其正常权限继续执行之后的指令;利用中断条件对函数进行改造,以触发切换机制。
5.根据权利要求4所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,其特征在于,在所述中断指令中,选择INT 3指令,当用户需要对程序进行调试,会使用这条指令中断CPU,之后用户便通过调试器查看程序运行情况。
6.根据权利要求5所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,其特征在于,虚拟机在执行函数时产生INT 3断点中断,借助VMI技术将INT 3断点中断注入到函数的首条指令中,切换到虚拟机管理层(3)层,当虚拟机管理层(3)监听虚拟机内核时接收到中断事件的切换请求,由INT 3断点调试引发的切换请求时,确定是内核正在对某个函数的首条指令进行执行,将其采集下来作为控制流数据,当将指令注入后,若触发了切换事件,虚拟机会被暂停,而将该调试状态撤销后,目标虚拟机(2)将继续正常执行。
7.根据权利要求2所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,其特征在于,步骤d中所述地址存在性学习方法包括通过提取模块(111)得到一串地址序列,即表示控制流;数据库中存储合法控制流出现过的所有单个地址,即如果一个控制流是合法的,所有地址都是合法的,能够用作学习训练集;在这种情况下,两条控制流若包含的地址在内容上相同,而在顺序上不同,它们提供给数据库的学习对象是相同的。
8.根据权利要求2所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,其特征在于,步骤d中所述短序列学习方法包括将一个固定长度的窗口置于待处理序列的起始位置,连续向前移动,每次窗口首部对齐至下一个地址,窗口尾部同样对一个新地址进行覆盖,此时窗口中的内容为与窗口等长的地址序列,作为特征短序列输入模式库,当窗口尾部移动至序列尾部时便完成了处理。
9.根据权利要求2所述基于虚拟机自省函数级虚拟机内核动态检测系统的检测方法,其特征在于,步骤d中所述基于图嵌入的神经网络模型学习方法,包括以下步骤:
步骤d1、对每一个控制流进行数据处理,使其转化为d维的向量xv;
步骤d2、利用神经网络进行学习建模,使其转化为结构化的图嵌入模型φ(gi)(i=1,2,…,n),神经网络转化模型Γ公式如下:
其中xv是个d维的向量,代表了每一个控制流,N(v)是向量v邻居的集合,是一个初始化的图嵌入,W1是一个d×p的矩阵,p是图嵌入的大小,非线性变换σ是一个n层的全连接神经网络:
σ(l)=P1×ReLU(P2×…ReLU(Pnl))
Pi(i=1,…,n)是一个p×p的矩阵,n是图嵌入的深度,ReLU是修正线性单元,ReLU(x)=max{0,x},经过T次的迭代,可以训练出每一个控制流的图嵌入模型,在图嵌入输出时需要W2进行输出转化,W2也是一个p×p的矩阵;
步骤d3、利用如下公式对图嵌入进行两两相似性匹配;
步骤d3、Sim(g,g')∈{+1,-1},+1表示两个嵌入相似,而-1表示两个嵌入不相似,通过如下目标函数,对W1,Pi,W2参数调优,yi∈{+1,-1}是相似度的真实值,
基于此模型,能够探测复杂行为和零日攻击。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810346504.7A CN108469984B (zh) | 2018-04-17 | 2018-04-17 | 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810346504.7A CN108469984B (zh) | 2018-04-17 | 2018-04-17 | 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108469984A true CN108469984A (zh) | 2018-08-31 |
CN108469984B CN108469984B (zh) | 2021-07-30 |
Family
ID=63263398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810346504.7A Active CN108469984B (zh) | 2018-04-17 | 2018-04-17 | 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108469984B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110197062A (zh) * | 2019-05-29 | 2019-09-03 | 轲飞(北京)环保科技有限公司 | 一种虚拟机动态访问控制方法及控制系统 |
CN110825496A (zh) * | 2019-11-13 | 2020-02-21 | 电子科技大学广东电子信息工程研究院 | 一种基于vmi的内核数据监控方法及监控系统 |
CN110865866A (zh) * | 2019-09-29 | 2020-03-06 | 中通服咨询设计研究院有限公司 | 一种基于自省技术的虚拟机安全检测方法 |
CN113127149A (zh) * | 2021-03-11 | 2021-07-16 | 中国科学院信息工程研究所 | 一种基于自省技术的虚拟机安全监控方法及系统 |
CN113138835A (zh) * | 2021-04-08 | 2021-07-20 | 中国科学院信息工程研究所 | 基于ipt与虚拟机自省的api调用监控方法及系统 |
CN113448690A (zh) * | 2021-08-27 | 2021-09-28 | 阿里云计算有限公司 | 监测方法及装置 |
CN113918955A (zh) * | 2021-09-29 | 2022-01-11 | 杭州默安科技有限公司 | 一种linux内核漏洞权限提升检测阻断方法和系统 |
CN114490033A (zh) * | 2021-12-27 | 2022-05-13 | 华东师范大学 | 一种多样化算力的统一性能建模和适应性变更方法及装置 |
CN116827627A (zh) * | 2023-06-27 | 2023-09-29 | 江苏元信网安科技有限公司 | 一种基于IPsecVPN的源MAC透传系统及方法 |
US20240045788A1 (en) * | 2021-04-29 | 2024-02-08 | Soochow University | Remote software debugging method for embedded terminals |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113110A1 (en) * | 2007-10-30 | 2009-04-30 | Vmware, Inc. | Providing VMM Access to Guest Virtual Memory |
CN102194080A (zh) * | 2011-06-13 | 2011-09-21 | 西安交通大学 | 一种基于内核虚拟机的rootkit检测机制及检测方法 |
CN102750475A (zh) * | 2012-06-07 | 2012-10-24 | 中国电子科技集团公司第三十研究所 | 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统 |
CN104809401A (zh) * | 2015-05-08 | 2015-07-29 | 南京大学 | 一种操作系统内核完整性保护方法 |
CN106599685A (zh) * | 2016-09-26 | 2017-04-26 | 哈尔滨安天科技股份有限公司 | 一种内核级Rootkit检测方法及系统 |
-
2018
- 2018-04-17 CN CN201810346504.7A patent/CN108469984B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113110A1 (en) * | 2007-10-30 | 2009-04-30 | Vmware, Inc. | Providing VMM Access to Guest Virtual Memory |
CN102194080A (zh) * | 2011-06-13 | 2011-09-21 | 西安交通大学 | 一种基于内核虚拟机的rootkit检测机制及检测方法 |
CN102750475A (zh) * | 2012-06-07 | 2012-10-24 | 中国电子科技集团公司第三十研究所 | 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统 |
CN104809401A (zh) * | 2015-05-08 | 2015-07-29 | 南京大学 | 一种操作系统内核完整性保护方法 |
CN106599685A (zh) * | 2016-09-26 | 2017-04-26 | 哈尔滨安天科技股份有限公司 | 一种内核级Rootkit检测方法及系统 |
Non-Patent Citations (1)
Title |
---|
詹东阳 等: "Checking virtual machine kernel control-flow integrity using a page-level dynamic tracing approach", 《SOFT COMPUTING》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110197062A (zh) * | 2019-05-29 | 2019-09-03 | 轲飞(北京)环保科技有限公司 | 一种虚拟机动态访问控制方法及控制系统 |
CN110865866A (zh) * | 2019-09-29 | 2020-03-06 | 中通服咨询设计研究院有限公司 | 一种基于自省技术的虚拟机安全检测方法 |
CN110865866B (zh) * | 2019-09-29 | 2022-04-05 | 中通服咨询设计研究院有限公司 | 一种基于自省技术的虚拟机安全检测方法 |
CN110825496A (zh) * | 2019-11-13 | 2020-02-21 | 电子科技大学广东电子信息工程研究院 | 一种基于vmi的内核数据监控方法及监控系统 |
CN113127149A (zh) * | 2021-03-11 | 2021-07-16 | 中国科学院信息工程研究所 | 一种基于自省技术的虚拟机安全监控方法及系统 |
CN113138835B (zh) * | 2021-04-08 | 2024-01-16 | 中国科学院信息工程研究所 | 基于ipt与虚拟机自省的api调用监控方法及系统 |
CN113138835A (zh) * | 2021-04-08 | 2021-07-20 | 中国科学院信息工程研究所 | 基于ipt与虚拟机自省的api调用监控方法及系统 |
US12124355B2 (en) * | 2021-04-29 | 2024-10-22 | Soochow University | Remote software debugging method for embedded terminals |
US20240045788A1 (en) * | 2021-04-29 | 2024-02-08 | Soochow University | Remote software debugging method for embedded terminals |
CN113448690A (zh) * | 2021-08-27 | 2021-09-28 | 阿里云计算有限公司 | 监测方法及装置 |
CN113918955A (zh) * | 2021-09-29 | 2022-01-11 | 杭州默安科技有限公司 | 一种linux内核漏洞权限提升检测阻断方法和系统 |
CN114490033B (zh) * | 2021-12-27 | 2024-05-03 | 华东师范大学 | 一种多样化算力的统一性能建模和适应性变更方法及装置 |
CN114490033A (zh) * | 2021-12-27 | 2022-05-13 | 华东师范大学 | 一种多样化算力的统一性能建模和适应性变更方法及装置 |
CN116827627B (zh) * | 2023-06-27 | 2023-12-26 | 江苏元信网安科技有限公司 | 一种基于IPsecVPN的源MAC透传系统及方法 |
CN116827627A (zh) * | 2023-06-27 | 2023-09-29 | 江苏元信网安科技有限公司 | 一种基于IPsecVPN的源MAC透传系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108469984B (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108469984A (zh) | 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法 | |
CN107590388B (zh) | 恶意代码检测方法和装置 | |
US10248541B2 (en) | Extraction of problem diagnostic knowledge from test cases | |
CN100492316C (zh) | 测试自动化的系统和方法 | |
CN104364770B (zh) | 来自较小特权状态的运行时检测仪器的控制操作 | |
CN101645119B (zh) | 一种基于虚拟硬件环境的恶意代码自动分析方法及系统 | |
Nguyen et al. | An industrial case study of automatically identifying performance regression-causes | |
CN104364768A (zh) | 确定运行时间仪表控制的状态 | |
CN110462588A (zh) | 虚拟机运行跟踪 | |
CN102651062A (zh) | 基于虚拟机架构的恶意行为跟踪系统和方法 | |
CN103430158A (zh) | 使用执行单一步骤来诊断编码 | |
CN113778616A (zh) | 一种电力物联网终端虚拟化模拟仿真平台及仿真方法 | |
US9723489B1 (en) | Automated vulnerability discovery in mobile device applications | |
Pettersson | Measuring precision for static and dynamic design pattern recognition as a function of coverage | |
CN110457208B (zh) | 符号执行的引导方法、装置、设备及计算机可读存储介质 | |
Mizuno et al. | Fault-prone module prediction approaches using identifiers in source code | |
Zhang et al. | Tetris: Automatic UAF Exploit Generation by Manipulating Layout based on Reactivated Paths | |
Chen et al. | Baton: symphony of random testing and concolic testing through machine learning and taint analysis | |
Gu et al. | Specification-driven conformance checking for virtual/silicon devices using mutation testing | |
Clerissi et al. | Supporting early-safety analysis of IoT systems by exploiting testing techniques | |
Zhu et al. | Implementation of an effective dynamic concolic execution framework for analyzing binary programs | |
Wang et al. | Value Peripheral Register Values for Fuzzing MCU Firmware | |
Qian et al. | Towards testing web applications: a PFSM-based approach | |
CN117215901B (zh) | 基于动态追踪的编程练习评价方法、系统、设备及介质 | |
Zhang et al. | Localization of linearizability faults on the coarse-grained level |
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 |