一种基于虚拟化技术的软件隐私泄露行为检测方法及系统技术方案

技术编号:10356766 阅读:205 留言:0更新日期:2014-08-27 13:00
本发明专利技术涉及一种基于虚拟化技术的软件隐私泄露行为检测方法及系统。该方法将待分析的软件加载到修改后的虚拟机中运行;然后在软件执行过程中,监控每一条指令的执行,当应用程序访问敏感资源时,标记相关污点数据并制定相关污点传播规则,在此基础上,动态生成指令级污点依赖图,并根据系统重构翻译,动态生成系统进程级污点依赖图;通过细粒度污点依赖分析图,分析软件的隐私泄露行为。本发明专利技术采用指令级和进程级相结合的多级动态污点分析方法,获得细粒度的污点依赖分析图,从而可以获得系统污染的路径信息,以及信息泄露等高层次语义信息,实现软件隐私泄露行为的有效分析和检测。

【技术实现步骤摘要】
一种基于虚拟化技术的软件隐私泄露行为检测方法及系统
本专利技术属于网络安全
,具体涉及一种基于虚拟化技术的软件隐私泄露行为检测方法及系统。
技术介绍
随着计算机和互联网技术的进步不断更新,恶意软件自身技术不断发展,成为目前信息系统安全的主要威胁之一,恶意软件导致的隐私泄露等行为的危害也日益严峻,恶意软件的行为分析检测成为保障计算机及互联网安全的一个重要方面。恶意软件检测是国内外的研究的热点问题之一。随着虚拟化技术的发展,产生了新的恶意软件分析检测的研究方法。这些方法涉及多方面的理论方法和技术,主要包括基于虚拟化技术的静态软件分析检测方法和动态软件分析检测方法。静态分析检测方法可以通过利用虚拟化技术将安全工具隔离保护在独立的受保护空间中,对系统状态进行安全监控,然而静态检测分析方法不能对操作系统的行为,即事件操作进行监控。已有的动态分析检测方法中,可通过在操作系统中植入钩子进行事件行为监控,当触发钩子时,钩子中断系统执行,进行相关操作。但这些分析检测方法可以被一些攻击技术击败。一些方法采用了细粒度动态污点分析来检测软件行为。动态污点传播分析是近年来流行的一种分析方法,在动态污点分析方法中为了准确的定位虚拟机器之中的污点信息,例如定位内存中和硬盘上的值、文件信息,系统需要记录系统的运行活动来进行分析。现存的研究有的通过加入系统模块来监视所有的系统调用,有的通过虚拟机监控层来监视系统调用,然后进行整个系统的进程级依赖分析。尽管他们可以得到进程级的依赖分析结果,但是不能获得内核中数据的分析结果,也不能获得进程中污染数据的精确地位置。
技术实现思路
针对当前恶意代码动态污点分析中存在的局限于指令级数据、缺乏上层信息的问题,以及不能获得内核中数据的分析结果和进程中污染数据的精确地位置的问题,本专利技术的目的在于提供一种基于虚拟化技术的软件隐私泄露行为检测方法及系统,在虚拟机中加入指令级动态污点分析、系统信息重构、依赖图生成等模块,通过指令级和进程级相结合的多级动态污点分析方法,系统可以获得细粒度的污点依赖分析图,从而可以获得系统污染的路径信息,以及信息泄露等高层次语义信息。本专利技术的主要内容是:将待分析的软件加载到修改后的虚拟机中运行;然后在软件执行过程中,监控每一条指令的执行,当应用程序访问敏感资源时,标记相关污点数据并制定相关污点传播规则,在此基础上,动态生成指令级污点依赖图,并根据系统重构翻译,动态生成系统进程级污点依赖图。通过细粒度污点依赖分析图,分析软件的隐私泄露行为。具体来说,本专利技术采用的技术方案如下:一种基于虚拟化技术的软件隐私泄露行为检测方法,其步骤包括:1)在虚拟机中加载待检测的应用程序,并执行该应用程序;2)当应用程序访问敏感资源时,在相应内存的存储位置添加污点标签,在虚拟机中对应用程序执行指令级污点追踪并动态生成指令级污点依赖图;3)通过系统信息重构,从虚拟机监控层得到关于虚拟机客户操作系统语义级的信息;4)通过将指令级动态污点分析和系统信息重构结合,获得系统进程级的污点依赖图;5)利用指令级污点依赖图和进程级的污点依赖图,得到细粒度的污点分析图,进而分析软件的隐私泄露行为并获得最终检测结果。进一步地,步骤1)所述的虚拟机中执行应用程序的过程为:修改虚拟机,使得后续的指令级动态污点分析过程(指令级动态污点分析模块)可以在虚拟机指令执行时进行指令捕获和分析。进一步地,步骤2)在指令级动态污点分析中分析数据污点传播流和控制污点传播流两种污点传播流,通过分析每一条指令的执行活动,生成一个指令级的污点依赖分析图。所述数据污点传播流的主要处理方法为:如果一条指令包含一个源操作数和一个目的操作数,源操作数中存储的数据是脏的,那么就要将目的操作数的存储的位置标记为脏;如果一条指令中用来寻找源操作数地址或者目的操作数地址的数值是脏的,那么就要将其目的操作数存储的位置标记为脏;如果一条指令本身存储的内存空间是脏的,那么也要将其目的操作数存储的位置标记为脏;如果前述的条件均不满足,而且此指令会更新系统的状态信息,那么要将相应的目标标记为干净。所述控制污点传播流的主要处理方法为:如果一条控制指令的条件标记是脏,那么此时需要使用静态分析方法遍历由于控制指令引起的两条不同的执行路径,找到两条执行路径的结合点,从而找到所有受此控制指令影响的指令,并将这些指令存储位置全部标记为脏;如果一条控制指令的目的地址的标记是脏,同样将相关指令存储位置全部标记为脏;如果一条控制指令本身存储的内存空间是脏的,同上处理。进一步地,步骤3)中系统信息的重构实现模块将整个信息重构都放到虚拟机监控层实现,而不需要客户操作系统的参与,此模块解析内存和硬盘中的二进制信息,恢复系统语义信息。进一步地,步骤4)在获得进程级污点依赖图的过程中,当一个指令执行时,可以通过进程级污点依赖图获得所有的恶意进程。进程级污点依赖图记录了内部进程交互的不同路径。进一步地,步骤5)利用指令级污点依赖图和进程级的污点依赖图上污点元素的依赖关系进行前向和后向处理,得到所述细粒度的污点分析图。一种基于虚拟化技术的软件隐私泄露行为检测系统,其包括:虚拟机,用于数据段指令翻译;应用程序加载模块,用于将应用程序加载到虚拟机中执行;指令级动态污点分析模块,当应用程序访问敏感资源时,在相应内存的存储位置添加污点标签,在虚拟机中对应用程序执行指令级污点追踪并动态生成指令级污点依赖图;系统重构翻译模块,通过系统信息重构从虚拟机的监控层得到关于虚拟机中客户操作系统的语义级的信息;进程级污点依赖图生成模块,通过将指令级动态污点分析和系统信息重构结合,获得进程级的污点依赖图;行为检测分析模块,根据指令级污点依赖图和进程级的污点依赖图得到细粒度的污点分析图,进而分析软件的隐私泄露行为,并输出最终检测结果。本专利技术的优点和积极效果如下:本专利技术在虚拟机中执行待分析的应用程序,然后在虚拟机中展开分析;在指令级和进程级展开多级动态污点分析,在保证指令级细粒度分析的同时,通过在虚拟机监控层实现了系统重构翻译模块,获得客户操作系统语义信息;并通过将指令级动态污点分析和系统信息重构结合,获得进程级的依赖图。通过对此依赖图上对污点元素的依赖关系的前向和后向处理,得到细粒度的污点分析图,通过污点分析图可以获得系统污染的路径信息,以及信息泄露等高层次语义信息,实现软件隐私泄露行为的有效分析和检测。附图说明图1是本专利技术的软件隐私泄露行为检测方法的步骤流程图。图2是本专利技术的软件隐私泄露行为检测系统的模块组成图。具体实施方式下面通过具体实例和附图,对本专利技术做进一步说明。本实施例采用linux软件,linux软件隐私泄露行为检测方法的步骤如图1所示,对应的系统模块组成如图2所示,具体说明如下:1、向虚拟机导入待分析的应用程序并运行。通过在虚拟机(比如QEMU虚拟机)中运行待检测应用程序,监控每一条执行的指令信息,在指令翻译之前各个模块按照所需进行相应的处理。具体地,在虚拟机中通过对其硬件模拟程序的修改,可以为用户主机隐私敏感信息添加污点标签,定位污点数据所存放的内存单元,从而通过指令级动态污点分析得到感染过程的结果。2、指令级动态污点分析。为了准确的定位虚拟机器之中的污点信息,例如定位内存中和硬盘上的值、文件信息,系本文档来自技高网...
一种基于虚拟化技术的软件隐私泄露行为检测方法及系统

【技术保护点】
一种基于虚拟化技术的软件隐私泄露行为检测方法,其步骤包括:1)在虚拟机中加载待检测的应用程序,并执行该应用程序;2)当应用程序访问敏感资源时,在相应内存的存储位置添加污点标签,在虚拟机中对应用程序执行指令级污点追踪并动态生成指令级污点依赖图;3)通过系统信息重构,从虚拟机监控层得到关于虚拟机客户操作系统语义级的信息;4)通过将指令级动态污点分析和系统信息重构结合,获得系统进程级的污点依赖图;5)利用指令级污点依赖图和进程级的污点依赖图,得到细粒度的污点分析图,进而分析软件的隐私泄露行为并获得最终检测结果。

【技术特征摘要】
1.一种基于虚拟化技术的软件隐私泄露行为检测方法,其步骤包括:1)在虚拟机中加载待检测的应用程序,并执行该应用程序;2)当应用程序访问敏感资源时,在被访问的敏感资源相应内存的存储位置添加污点标签,在虚拟机中对应用程序执行指令级污点分析并动态生成指令级污点依赖图;所述指令级污点分析处理两种污点传播流:数据污点传播流和控制污点传播流;所述数据污点传播流的处理方法为:2-1-1)如果一条指令包含一个源操作数和一个目的操作数,源操作数中存储的数据是脏的,那么将目的操作数的存储的位置标记为脏;2-1-2)如果一条指令中用来寻找源操作数地址或者目的操作数地址的数值是脏的,那么将其目的操作数存储的位置标记为脏;2-1-3)如果一条指令本身存储的内存空间是脏的,那么将其目的操作数存储的位置标记为脏;2-1-4)如果前述的条件均不满足,而且此指令会更新系统的状态信息,那么将相应的目标标记为干净;所述控制污点传播流的处理方法为:2-2-1)如果一条控制指令的条件标记是脏,那么此时使用静态分析方法遍历由于控制指令引起的两条不同的执行路径,找到两条执行路径的结合点,从而找到所有受此控制指令影响的指令,并将这些指令存储位置全部标记为脏;2-2-2)如果一条控制指令的目的地址的标记是脏,同样将相关指令存储位置全部标记为脏;2-2-3)如果一条控制指令本身存储的内存空间是脏的,同上处理;通过分析每一条指令的执行活动,逐渐的生成一个指令级的污点依赖分析图;3)通过系统信息重构,从虚拟机监控层得到关于虚拟机客户操作系统语义级的信息;4)通过将指令级动态污点分析和系统信息重构结合,获得系统进程级的污...

【专利技术属性】
技术研发人员:贾晓启王蕊张道娟
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1