CN111177716A - 一种内存中可执行文件获取方法、装置、设备及存储介质 - Google Patents

一种内存中可执行文件获取方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111177716A
CN111177716A CN201910517034.0A CN201910517034A CN111177716A CN 111177716 A CN111177716 A CN 111177716A CN 201910517034 A CN201910517034 A CN 201910517034A CN 111177716 A CN111177716 A CN 111177716A
Authority
CN
China
Prior art keywords
file
executable file
memory
executable
virtual
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
Application number
CN201910517034.0A
Other languages
English (en)
Other versions
CN111177716B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910517034.0A priority Critical patent/CN111177716B/zh
Publication of CN111177716A publication Critical patent/CN111177716A/zh
Application granted granted Critical
Publication of CN111177716B publication Critical patent/CN111177716B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • 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/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种内存中可执行文件获取方法,该方法包括以下步骤:在预先构建的虚拟环境中,启动目标任务文件,虚拟环境的虚拟内存具有不可执行权限;在目标任务文件运行过程中,如果监测到虚拟内存中有可执行文件被执行,则获取可执行文件,并对该可执行文件进行进一步分析。应用本申请实施例所提供的技术方案,通过将虚拟环境的虚拟内存设置为不可执行权限,使得在虚拟内存中有可执行文件被执行时可以及时监测得到,进而可以及时获取到可执行文件,以便对该可执行文件进行进一步的分析,为病毒知识库的扩充提供依据,增强安全防御能力。本申请还公开了一种内存中可执行文件获取装置、设备及存储介质,具有相应技术效果。

Description

一种内存中可执行文件获取方法、装置、设备及存储介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种内存中可执行文件获取方法、装置、设备及存储介质。
背景技术
在日常工作和生活中,手机、计算机等设备的使用越来越普遍。随着计算机技术和互联网技术的快速发展,这些设备感染病毒的可能性越来越大,病毒会影响设备的正常使用,也会影响设备中文件和数据的安全性。这就需要杀毒软件对病毒进行查杀,以保障设备中文件和数据的安全。
杀毒软件在对病毒进行查杀时,多是将可疑文件的指纹特征与预先获得的病毒特征库进行特征匹配,确定可疑文件是否为恶意文件,根据确定结果对其进行进一步的处理。
但是,一些高级病毒为了躲避查杀,会在一般文件中嵌入一个或多个经过加密的恶意的可执行文件,这些病毒运行后会动态地从内存中解密一部分恶意的可执行文件,这些恶意的可执行文件在内存中被执行,给设备带来危害。但是,因为这些经过加密的恶意的可执行文件不会落地到设备上,所以杀毒软件无法检测到,也就无法获得相应的指纹特征,即使这些恶意的可执行文件落地到设备,因为病毒特征库中没有相应的指纹特征,杀毒软件还是无法确认其为恶意文件,也就无法对其进行查杀处理。
目前还没有有效获取内存中被执行的可执行文件的方法,所以,如何有效获取到内存中被执行的可执行文件,以对其进行进一步分析,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种内存中可执行文件获取方法、装置、设备及存储介质,以有效获取到内存中被执行的可执行文件,方便对其进行进一步分析。
为解决上述技术问题,本申请提供如下技术方案:
一种内存中可执行文件获取方法,包括:
在任务文件库中选择一个待测任务文件,将选择的待测任务文件确定为目标任务文件;
在虚拟环境中,启动所述目标任务文件,所述虚拟环境的虚拟内存具有不可执行权限;
在所述目标任务文件运行过程中,如果监测到所述虚拟内存中有可执行文件被执行,则获取所述可执行文件;
对所述可执行文件进行分析。
在本申请的一种具体实施方式中,通过以下步骤确定所述虚拟内存中是否有可执行文件被执行:
在监测到所述虚拟环境的扩展页表发生故障时,确定所述虚拟内存中有可执行文件被执行。
在本申请的一种具体实施方式中,所述在监测到所述虚拟环境的扩展页表发生故障时,确定所述虚拟内存中有可执行文件被执行,包括:
在监测到所述虚拟环境的扩展页表发生故障时,获取发生所述故障的内存地址及所述内存地址所属内存块;
确定所述内存块中是否包含可执行文件头标记;
如果包含,则确定所述虚拟内存中有可执行文件被执行。
在本申请的一种具体实施方式中,所述获取发生所述故障的内存地址,包括:
在所述故障发生时,获取所述虚拟环境的客户机操作系统的全局段寄存器;
将所述全局段寄存器切换至所述客户机操作系统后,进一步切换到正在执行可执行文件的进程的地址空间;
读取所述进程所在的内存地址。
在本申请的一种具体实施方式中,所述获取所述可执行文件,包括:
保存所述可执行文件;
对所述可执行文件进行重建处理。
在本申请的一种具体实施方式中,所述对所述可执行文件进行重建处理,包括:
保存所述可执行文件的文件头;
对所述可执行文件进行节数据处理;
对所述可执行文件进行重建优化处理。
在本申请的一种具体实施方式中,在所述获取所述可执行文件之后,还包括:
将所述虚拟环境进行镜像还原处理。
在本申请的一种具体实施方式中,所述对所述可执行文件进行分析,包括:
确定所述可执行文件是否为恶意文件;
如果是,则将所述可执行文件的指纹特征加入到病毒特征库中。
在本申请的一种具体实施方式中,还包括:
获取所述可执行文件的消息摘要;
基于所述消息摘要,确定所述可执行文件的关联恶意文件;
生成与所述可执行文件对应的威胁情报。
一种内存中可执行文件获取装置,包括:
文件确定单元,用于在任务文件库中选择一个待测任务文件,将选择的待测任务文件确定为目标任务文件;
文件启动单元,用于在虚拟环境中,启动所述目标任务文件,所述虚拟环境的虚拟内存具有不可执行权限;
文件获取单元,用于在所述目标任务文件运行过程中,如果监测到所述虚拟内存中有可执行文件被执行,则获取所述可执行文件;
文件分析单元,用于对所述可执行文件进行分析。
在本申请的一种具体实施方式中,还包括内存监测单元,用于通过以下步骤确定所述虚拟内存中是否有可执行文件被执行:
在监测到所述虚拟环境的扩展页表发生故障时,确定所述虚拟内存中有可执行文件被执行。
在本申请的一种具体实施方式中,所述内存监测单元,具体用于:
在监测到所述虚拟环境的扩展页表发生故障时,获取发生所述故障的内存地址及所述内存地址所属内存块;
确定所述内存块中是否包含可执行文件头标记;
如果包含,则确定所述虚拟内存中有可执行文件被执行。
在本申请的一种具体实施方式中,所述内存监测单元,具体用于:
在所述故障发生时,获取所述虚拟环境的客户机操作系统的全局段寄存器;
将所述全局段寄存器切换至所述客户机操作系统后,进一步切换到正在执行可执行文件的进程的地址空间;
读取所述进程所在的内存地址。
在本申请的一种具体实施方式中,所述文件获取单元,具体用于:
保存所述可执行文件;
对所述可执行文件进行重建处理。
在本申请的一种具体实施方式中,所述文件获取单元,具体用于:
保存所述可执行文件的文件头;
对所述可执行文件进行节数据处理;
对所述可执行文件进行重建优化处理。
在本申请的一种具体实施方式中,还包括镜像还原单元,用于:
在所述获取所述可执行文件之后,将所述虚拟环境进行镜像还原处理。
在本申请的一种具体实施方式中,所述文件分析单元,具体用于:
确定所述可执行文件是否为恶意文件;
如果是,则将所述可执行文件的指纹特征加入到病毒特征库中。
在本申请的一种具体实施方式中,所述文件分析单元,还用于:
获取所述可执行文件的消息摘要;
基于所述消息摘要,确定所述可执行文件的关联恶意文件;
生成与所述可执行文件对应的威胁情报。
一种内存中可执行文件获取设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述内存中可执行文件获取方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述内存中可执行文件获取方法的步骤。
应用本申请实施例所提供的技术方案,虚拟环境的虚拟内存具有不可执行权限,在该虚拟环境中,启动目标任务文件,在该目标任务文件运行过程中,如果监测到虚拟内存中有可执行文件被执行,则可以获取该可执行文件,并对该可执行文件进行进一步分析。通过将虚拟环境的虚拟内存设置为不可执行权限,使得在虚拟内存中有可执行文件被执行时可以及时监测得到,进而可以及时获取到可执行文件,以便对该可执行文件进行进一步的分析,为病毒知识库的扩充提供依据,增强安全防御能力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中可执行文件处理系统的整体框架示意图;
图2为本申请实施例中可执行文件处理系统的整体流程示意图;
图3为本申请实施例中一种内存中可执行文件获取方法的实施流程图;
图4为本申请实施例中生成的威胁情报的一种示例;
图5为本申请实施例中采集到的关键行为信息的一种示例;
图6为本申请实施例中一种具体应用场景实施示意图;
图7为本申请实施例中一种内存中可执行文件获取装置的结构示意图;
图8为本申请实施例中一种内存中可执行文件获取设备的结构示意图。
具体实施方式
本申请的核心是提供一种内存中可执行文件获取方法。将预先构建的虚拟环境的虚拟内存设置为不可执行权限。在任务文件库中选择一个待测任务文件,将选择的待测任务文件确定为目标任务文件。在虚拟环境中,启动目标任务文件。目标任务文件被启动后,将在虚拟内存中运行。在目标任务文件运行过程中,可能会执行其中嵌入的可执行文件,而当前所在的虚拟环境的虚拟内存具有不可执行权限,所以,一旦目标任务文件中嵌入的可执行文件被执行,就可以监测得到,从而确定当前虚拟内存中有可执行文件被执行,进而可以获取该可执行文件。并可对该可执行文件进行进一步的分析,如提取指纹特征、确定关联恶意文件等。这样,如果该可执行文件为恶意文件,在该可执行文件落地到手机、计算机等设备上时,杀毒软件就可以及时检测到,并对其进行查杀处理。
可执行文件具体可以是PE(Portable Executable,可移植的可执行的)文件。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,为本申请实施例所提供的内存中可执行文件获取方法所适用的可执行文件处理系统的整体框架示意图,该可执行文件处理系统包括总控模块110、文件获取模块120和智能分析中心130。
其中,总控模块110用于管理虚拟环境的镜像,在每次从虚拟环境中通过下载获取到内存中可执行文件之后,对虚拟环境进行镜像还原处理,保证虚拟环境干净、运行流畅,不受病毒影响。
总控模块110可以与虚拟环境通信,进行目标任务文件的上传和文件获取模块120获取到的可执行文件的下载。如可以在当前任务中将目标任务文件上传到虚拟环境的设定第一目录中,如c:\task目录;在对虚拟环境进行镜像还原之前,在虚拟环境的设定第二目录中,如c:\dumpe_pe目录下载当前任务中文件获取模块120已获取并保存的可执行文件;在对虚拟环境进行镜像还原之后,在下一次任务中,将新的目标任务文件上传到第一目录中。当然,文件获取模块120获取到可执行文件后,也可以直接发送给总控模块110。
在虚拟环境启动后,总控模块110可以模拟鼠标双击,启动第一目录中的目标任务文件。
总控模块110可以将最终获取到的可执行文件推送给智能分析中心130,由智能分析中心130对该可执行文件进行分析,采集可执行文件的关键信息,进行指纹特征提取、威胁情报生成以及预警等。智能分析中心130可以建立在云平台之上,提高文件分析速度。
在虚拟环境启动后,文件获取模块120用于进行虚拟机初始化操作,主要是填充虚拟机控制块、初始化扩展页表,将虚拟环境的虚拟内存设置为不可执行权限等。在预先构建的虚拟环境中,通过总控模块110启动目标任务文件后,在目标任务文件运行过程中,监测虚拟内存中是否有可执行文件,如果有则获取该可执行文件。
通过可执行文件处理系统可以获取到目标任务文件中嵌入的可执行文件,对可执行文件进行分析,如果该可执行文件为恶意文件,则可以将该可执行文件的指纹特征加入到病毒特征库中,更新病毒特征库,在该可执行文件落地到手机、计算机等设备上时,杀毒软件基于更新后的病毒特征库就可以对其进行查杀处理。
图2所示为该可执行文件处理系统的整体流程示意图,整体流程如下:
总控模块110对虚拟环境进行镜像管理,基于镜像还原虚拟环境。文件获取模块120进行虚拟机(Virtual Machine,VM)初始化、扩展页表(Extended Page Table,EPT)初始化、设置虚拟内存具有不可执行权限。总控模块110通过键鼠模拟启动目标任务文件,使目标任务文件运行起来,目标任务文件解密内嵌的可执行文件,即PE文件,PE代码被执行,触发扩展页表故障。文件获取模块120通过VM Exit回调入口确定扩展页表是否异常,如果异常,则获取PE文件代码所在内存块基地址,如果需要处理,则将PE文件保存到虚拟环境的第二目录,并进行PE重建,如果不需要处理,则VM Exit完成。总控模块110从虚拟环境中下载PE文件,得到最终的PE文件。总控模块110将PE文件分发给智能分析中心130,由智能分析中心130对该PE文件进行进一步分析。
其中的VM Entry和VM Exit为虚拟化技术(Virtualization Technology,VT)的两种转换。VM Entry就是从VMXroot模式切换到VMXnon-root模式,简单的说,就是虚拟机监视器(Virtual Machine Monitor,VMM)切换到虚拟机这个转换过程。VM Exit就是从VMXnon-root模式切换到VMXroot模式,同理可理解为从虚拟机返回到虚拟机监视器这个过程。
下面对本申请实施例所提供的一种内存中可执行文件获取方法进行详细说明。如图3所示,为该方法的实施流程图,该方法可以包括以下步骤:
S210:在任务文件库中选择一个待测任务文件,将选择的待测任务文件确定为目标任务文件。
在本申请实施例中,可以预先获得一个或多个待测任务文件,将获得的待测任务文件存入任务文件库中。即任务文件库中包含一个或多个待测任务文件。待检任务文件可以是用户终端上报的,还可以是技术人员收集得到的。一般来说,如果一个可执行文件为正常文件,是没必要将其嵌入到其他文件中的,如果一个文件中嵌入有一个或多个可执行文件,那么这个文件的可疑程度较大,可以将这样的文件作为待测任务文件。
本申请实施例就是要在虚拟环境中对任务文件库中每个待测任务文件进行检测,获取其中嵌入的可执行文件,以对获取到的可执行文件进行进一步分析处理。
在当前任务中,可以在任务文件库中选择一个待测任务文件,将选择的该待测任务文件确定为目标任务文件。可以预先设定选择规则,按照该选择规则从任务文件库中选择当前要用的待测任务文件。如可以按照入库时间的新旧顺序选择,优先选择最新入库的待测任务文件,可以认为最新入库的待测任务文件检测紧急程度较高。或者,可以按照入库时对待测任务文件的重要程度的标记信息,选择重要程度最高的待测任务文件。
将选择的待测任务文件确定为目标任务文件后,可以继续执行步骤S220的操作。
S220:在虚拟环境中,启动目标任务文件。
虚拟环境的虚拟内存具有不可执行权限。
在本申请实施例中,可以预先构建一个虚拟环境,并预先设置虚拟环境的虚拟内存具有不可执行权限,即在虚拟内存中不允许可执行文件被执行。
虚拟环境的构建主要有以下几个步骤:
第一个步骤:为虚拟机控制块(Virtual Machine Control Structures,VMCS)分配物理内存;
第二个步骤:扩展页表初始化。扩展页表(Extended Page Table,EPT)技术,是x86架构下内存虚拟化的机制,与windows内存分页机制相似。对扩展页表初始化,将虚拟机页表映射到物理机上;分配EPT结构的内存,遍历虚拟机的物理地址页表,可用内核函数MmGetPhysicalMemoryRanges获得,将虚拟机的物理内存映射到扩展页表EPT上。
第三个步骤:填充虚拟机控制块,主要是填充其中的回调函数字段,以告知CPU捕获到异常后所执行的代码,VMCS结构域信息在ia32_type.h头文件中有定义,名为VmcsField,这里关键点填充VmcsField::kHostRip域,这个域告诉了虚拟机监视器VMM在发生VM Exit时要执行的函数地址,如这里可以设置函数名为VmExitHandler;
第四个步骤:填充VMXON结构;
第五个步骤:执行VMXON指令,开启虚拟机;
第六个步骤:执行VMXLAUNCH指令,启动虚拟机,进入虚拟环境;
第七个步骤:将虚拟环境的虚拟内存设置为不可执行权限,具体的,可以将虚拟环境的扩展页表即EPT表的execute_access字段设置为false。
虚拟环境构建完成后,可以先保存虚拟环境的镜像,以便后续进行镜像还原操作。
确定目标任务文件后,可以将目标任务文件上传至虚拟环境的设定第一目录。在虚拟环境中,可以模拟鼠标双击,启动第一目录中的目标任务文件。
启动目标任务文件后,目标任务文件即可在虚拟内存中运行。
S230:在目标任务文件运行过程中,如果监测到虚拟内存中有可执行文件被执行,则获取可执行文件。
如前所描述的,一些高级病毒为了躲避查杀,会在一般文件中嵌入一个或多个加密的恶意的可执行文件,这些病毒运行后会动态地从内存中解密一部分恶意的可执行文件,这些恶意的可执行文件在内存中被执行。
在本申请实施例中,预先将虚拟环境的虚拟内存设置为不可执行权限,在启动目标任务文件之后,目标任务文件在虚拟内存中运行,如果目标任务文件中嵌入有可执行文件,则在其运行过程中,将会触发其内嵌入的可执行文件被执行。但是因为当前所在的虚拟环境的虚拟内存具有不可执行权限,所以当目标任务文件中嵌入的可执行文件被执行时,将会被监测到。
在本申请的一种具体实施方式中,可以通过以下步骤确定虚拟内存中是否有可执行文件被执行:
在监测到虚拟环境的扩展页表发生故障时,确定虚拟内存中有可执行文件被执行。
可以理解的是,通过设置扩展页表即EPT表的execute_access字段为false,将虚拟内存设置为不可执行权限,如果目标任务文件中嵌入有可执行文件,那么在目标任务文件启动后的运行过程中,很可能会执行其中嵌入的可执行文件,被执行的可执行文件将会触发扩展页表故障,如触发EPT violation故障。在监测到虚拟环境的扩展页表发生故障时,即可确定虚拟内存中有可执行文件被执行。
在虚拟环境的扩展页表发生故障时,将会触发虚拟机监视器(Virtual MachineMonitor,VMM)调用处理器VmExitHandler->HandleEptViolation。为避免在扩展页表发生故障时虚拟系统无法正常运行,可以先去掉虚拟内存的不可执行权限,当一次完整的VMExit之后,重新设置扩展页表的访问控制权限,以使虚拟内存具有不可执行权限,以便下次捕获扩展页表故障。
在本申请的一种具体实施方式中,在监测到虚拟环境的扩展页表发生故障时,可以获取发生故障的内存地址及该内存地址所属内存块,确定内存块中是否包含可执行文件头标记,如果包含,则可以确定虚拟内存中有可执行文件被执行。
在本申请实施例中,一旦监测到虚拟环境的扩展页表发生故障,即可通过虚拟机监视器获取发生故障的内存地址。具体的,可以在故障发生时,获取虚拟环境的客户机操作系统的全局段寄存器,如通过ReadGS()指令获取客户机操作系统Guest OS的全局段(Global Segment Register,GS)寄存器,将全局段寄存器切换至客户机操作操作系统后,进一步切换到正在执行可执行文件的进程的地址空间,如可以通过writecr3切换到正在执行可执行文件的进程的地址空间,读取该进程所在的内存地址。
获取发生故障的内存地址后,可以进一步记录并查询该内存地址所属内存块,并进一步确定该内存块的前N个字节中是否包含可执行文件头标记,如果包含,则可以确定虚拟内存中有可执行文件被执行。N具体可以是0x1000。
在监测到虚拟内存中有可执行文件被执行时,可以获取可执行文件。当然,在实际应用中,如果直接将该可执行文件保存下来,很有可能会因为该可执行文件在被执行时更改了导入表、函数名、函数地址等信息,使得保存下来的可执行文件无法被再次执行。所以,在本申请实施例中,在获取可执行文件时,首先保存该可执行文件,然后对该可执行文件进行重建处理,以使得最终获得的可执行文件能够脱离目标任务文件再次被执行。
具体的,可以通过以下步骤对可执行文件进行重建处理:
步骤一:保存可执行文件的文件头,具体的,可以通过查询可执行文件头标记获得可执行文件的文件头;
步骤二:对可执行文件进行节数据处理,具体的,可以读取节表信息,得到节所在内存地址和大小,读取相应的地址;
步骤三:对可执行文件进行重建优化处理,具体的,可以修正文件大小、修正CRC校验值、优化重定位表、优化PE头,以使得可执行文件运行速度更快、兼容性更好。
本申请实施例对于上述三个步骤的执行顺序不做限制。
在实际应用中,在对可执行文件进行重建处理过程中,除上述三个步骤外,可根据实际情况对可执行文件的导入地址表(Import Address Table,IAT)进行修复处理,以更好地对可执行文件进行重建。
获取到可执行文件之后,可以将虚拟环境进行镜像还原操作。可以理解的是,目标任务文件启动后,在虚拟内存中运行过程中,可执行文件被执行,可能会修改虚拟环境的一些配置信息,给虚拟环境造成一定影响。在获取到可执行文件之后,对虚拟环境进行镜像还原操作,还原为启动目标任务文件之前时的虚拟环境,这样新的目标任务文件可以在干净的虚拟环境中启动,避免影响该新的目标任务文件的运行。
S240:对可执行文件进行分析。
在本申请实施例中,在获取到可执行文件之后,可以对该可执行文件进行进一步分析。如采集可执行文件的关键信息,确定该可执行文件是否为恶意文件等。如果该可执行文件为恶意文件,则进一步还可以进行指纹特征提取、威胁情报生成以及预警等操作,及更新病毒特征库、扩充病毒知识库等。如果该可执行文件非恶意文件,则可以不对其进行任何处理,或者直接做丢弃处理。
应用本申请实施例所提供的方法,虚拟环境的虚拟内存具有不可执行权限,在该虚拟环境中,启动目标任务文件,在该目标任务文件运行过程中,如果监测到虚拟内存中有可执行文件被执行,则可以获取该可执行文件,并对该可执行文件进行进一步分析。通过将虚拟环境的虚拟内存设置为不可执行权限,使得在虚拟内存中有可执行文件被执行时可以及时监测得到,进而可以及时获取到可执行文件,以便对该可执行文件进行进一步的分析,为病毒知识库的扩充提供依据,增强安全防御能力。
本申请实施例预先设置虚拟环境的虚拟内存具有不可执行权限,一旦目标任务启动后,在虚拟内存中运行过程中,执行了其中嵌入的可执行文件,即可被及时监测到,及时进行可执行文件的获取。一些病毒在虚拟内存中执行可执行文件一段时间后,可能会对可执行文件进行销毁或者改变流程等操作,如果在可执行文件刚被执行时即及时获取该可执行文件,将使得获取到的该可执行文件被修改的可能性较小,获取到的可执行文件的分析价值更大。相反,如果在可执行文件被执行一段时间后才能获取到该可执行文件,那么很可能获取到的可执行文件已经被修改,即使耗费较大精力对其进行重建处理,也很难得到初始的可执行文件,其分析价值较小。本申请实施例就是通过对虚拟内存进行不可执行权限的设置,使得在目标任务文件中嵌入的可执行文件第一段代码被执行时,充分利用这个时机,及时获取可执行文件。
另外,本申请实施例利用了处理器虚拟化技术进行内存中可执行文件的获取,在获取可执行文件过程中,病毒感知不到获取操作,可以避免在获取过程中被病毒检测到,导致病毒销毁关键流程或者执行假的流程进行欺骗,加大病毒分析难度。在目标任务文件中嵌入的可执行文件刚被执行时,即获取到可执行文件,将可执行文件落地,方便对其进行分析。
需要说明的时,本申请实施例的实施可以建立在Intel VT技术之上,还可以基于AMD-V技术实现。
在本申请的一个实施例中,步骤S240可以包括以下步骤:
确定可执行文件是否为恶意文件;如果是,则将可执行文件的指纹特征加入到病毒特征库中。
在本申请实施例中,在获取可执行文件之后,可以对该可执行文件进行分析,确定该可执行文件是否为恶意文件。如通过执行该可执行文件,提取其关键信息,确定是否会对操作系统、数据或文件等造成危害确定其是否为恶意文件。或者,可以通过预先设定的其他判定条件确定该可执行文件是否为恶意文件。
如果确定该可执行文件为恶意文件,则可以提取该可执行文件的指纹特征,将该可执行文件的指纹特征加入到病毒特征库中,更新病毒特征库。这样,当该可执行文件落地到手机、计算机等设备上,杀毒软件基于更新后的病毒特征库可以及时检测到,对其进行查杀。
当然,如果确定该可执行文件非恶意文件,则可以对其不做任何处理,或者直接做丢弃处理。
在本申请的一个实施例中,该方法还可以包括以下步骤:
获取可执行文件的消息摘要;
基于消息摘要,确定可执行文件的关联恶意文件;
生成与可执行文件对应的威胁情报。
在本申请实施例中,获取到可执行文件后,对该可执行文件进行分析时,可以进一步获取该可执行文件的消息摘要,如MD5值。基于该消息摘要,可以确定该可执行文件的关联恶意文件,即该可执行文件与现有的哪些病毒团伙是关联的。进一步可以生成与该可执行文件对应的威胁情报,威胁情报中可以包括家族/团伙介绍、使用的传播手段、危害方式、家族/团伙图谱、关联路径、可信程度等。生成威胁情报后,可以将威胁情报发布给用户或者技术人员,进行预警。
当然,在实际应用中,在确定该可执行文件为恶意文件时,可以通过再次运行该可执行文件,采集该可执行的关键信息。对获取到的可执行文件进行关键信息的提取后,可以将关键信息填充到病毒知识库中,以填补病毒知识库中没有内存中可执行文件相关信息的缺失。另外,获取到可执行文件后,使得可执行文件的关键信息落地,固化了证据。
为便于理解,下面以一木马为例,对本申请实施例所提供的技术方案进行说明。
将该木马作为目标任务文件,在预先构建的虚拟环境中,启动该木马,虚拟环境的虚拟内存具有不可执行权限。木马启动后会申请一段虚拟内存后向该内存地址写入恶意文件,在监测日志中有PE头标记,VA为0x10000000,入口点地址为0x100013D0,当执行入口点代码时,陷入虚拟机监视器VMM,由VMM进行可执行文件扫描,从日志中可以得到扫描到该木马解密的内存恶意可执行文件,对可执行文件进行重建处理后,将其保存到目录c:\dump_pe中。如获取到的可执行文件为:1847_0x10000000.bin。
最终将该可执行文件推送给智能分析中心,对其进行分析,文件MD5:603E2AA76367815FB300CF3FE1C568C5,该MD5被关联到X团伙的N家族。生成的威胁情报如图4所示。
对该可执行文件的关键行为信息进行采集,得到如图5所示的结果。
在一个具体应用场景中,如图6所示,本申请实施例的具体实施流程为:
S21:任务执行设备在预先构建的虚拟环境中,启动目标任务文件,虚拟环境的虚拟内存具有不可执行权限;这里的任务执行设备可理解为包含可执行文件处理系统中的总控模块和文件获取模块;
S21:任务执行设备监测虚拟内存中是否有PE文件被执行,具体可以在EPT表发生故障时确定虚拟内存中有PE文件被执行;
S22:任务执行设备如果确定虚拟内存中有PE文件被执行,则获取PE文件,在正常得到PE文件后可以对PE文件进行重建处理;
S23:任务执行设备将最终得到的重建后的PE文件发送给智能分析中心;这里的智能分析中心即为可执行文件处理系统中的智能分析中心;
S24:智能分析中心对PE文件进行分析,如果确定PE文件为恶意文件,则提取PE文件的指纹特征,将其加入到病毒特征库中;
S25:智能分析中心将更新后的病毒特征库发送给手机、计算机等设备中的杀毒软件;
S26:手机、计算机等设备中的杀毒软件更新病毒特征库,以便在对日常进行安全维护中,应用更新后的病毒特征库进行病毒查杀等。
相应于上面的方法实施例,本申请实施例还提供了一种内存中可执行文件获取装置,下文描述的一种内存中可执行文件获取装置与上文描述的一种内存中可执行文件获取方法可相互对应参照。
参见图7所示,该装置包括:
文件确定单元310,用于在任务文件库中选择一个待测任务文件,将选择的待测任务文件确定为目标任务文件;
文件启动单元320,用于在虚拟环境中,启动目标任务文件,虚拟环境的虚拟内存具有不可执行权限;
文件获取单元330,用于在目标任务文件运行过程中,如果监测到虚拟内存中有可执行文件被执行,则获取可执行文件;
文件分析单元340,用于对可执行文件进行分析。
应用本申请实施例所提供的装置,虚拟环境的虚拟内存具有不可执行权限,在该虚拟环境中,启动目标任务文件,在该目标任务文件运行过程中,如果监测到虚拟内存中有可执行文件被执行,则可以获取该可执行文件,并对该可执行文件进行进一步分析。通过将虚拟环境的虚拟内存设置为不可执行权限,使得在虚拟内存中有可执行文件被执行时可以及时监测得到,进而可以及时获取到可执行文件,以便对该可执行文件进行进一步的分析,为病毒知识库的扩充提供依据,增强安全防御能力。
在本申请的一种具体实施方式中,还包括内存监测单元,用于通过以下步骤确定虚拟内存中是否有可执行文件被执行:
在监测到虚拟环境的扩展页表发生故障时,确定虚拟内存中有可执行文件被执行。
在本申请的一种具体实施方式中,内存监测单元,具体用于:
在监测到虚拟环境的扩展页表发生故障时,获取发生故障的内存地址及内存地址所属内存块;
确定内存块中是否包含可执行文件头标记;
如果包含,则确定虚拟内存中有可执行文件被执行。
在本申请的一种具体实施方式中,内存监测单元,具体用于:
在故障发生时,获取虚拟环境的客户机操作系统的全局段寄存器;
将全局段寄存器切换至客户机操作系统后,进一步切换到正在执行可执行文件的进程的地址空间;
读取进程所在的内存地址。
在本申请的一种具体实施方式中,文件获取单元330,具体用于:
保存可执行文件;
对可执行文件进行重建处理。
在本申请的一种具体实施方式中,文件获取单元330,具体用于:
保存可执行文件的文件头;
对可执行文件进行节数据处理;
对可执行文件进行重建优化处理。
在本申请的一种具体实施方式中,还包括镜像还原单元,用于:
在获取可执行文件之后,将虚拟环境进行镜像还原处理。
在本申请的一种具体实施方式中,文件分析单元,具体用于:
确定可执行文件是否为恶意文件;
如果是,则将可执行文件的指纹特征加入到病毒特征库中。
在本申请的一种具体实施方式中,文件分析单元,还用于:
获取可执行文件的消息摘要;
基于消息摘要,确定可执行文件的关联恶意文件;
生成与可执行文件对应的威胁情报。
相应于上面的方法实施例,本申请实施例还提供了一种内存中可执行文件获取设备,如图8所示,该设备包括:
存储器410,用于存储计算机程序;
处理器420,用于执行计算机程序时实现上述任一项内存中可执行文件获取方法的步骤。
相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述内存中可执行文件获取方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (15)

1.一种内存中可执行文件获取方法,其特征在于,包括:
在任务文件库中选择一个待测任务文件,将选择的待测任务文件确定为目标任务文件;
在虚拟环境中,启动所述目标任务文件,所述虚拟环境的虚拟内存具有不可执行权限;
在所述目标任务文件运行过程中,如果监测到所述虚拟内存中有可执行文件被执行,则获取所述可执行文件;
对所述可执行文件进行分析。
2.根据权利要求1所述的方法,其特征在于,通过以下步骤确定所述虚拟内存中是否有可执行文件被执行:
在监测到所述虚拟环境的扩展页表发生故障时,确定所述虚拟内存中有可执行文件被执行。
3.根据权利要求2所述的方法,其特征在于,所述在监测到所述虚拟环境的扩展页表发生故障时,确定所述虚拟内存中有可执行文件被执行,包括:
在监测到所述虚拟环境的扩展页表发生故障时,获取发生所述故障的内存地址及所述内存地址所属内存块;
确定所述内存块中是否包含可执行文件头标记;
如果包含,则确定所述虚拟内存中有可执行文件被执行。
4.根据权利要求3所述的方法,其特征在于,所述获取发生所述故障的内存地址,包括:
在所述故障发生时,获取所述虚拟环境的客户机操作系统的全局段寄存器;
将所述全局段寄存器切换至所述客户机操作系统后,进一步切换到正在执行可执行文件的进程的地址空间;
读取所述进程所在的内存地址。
5.根据权利要求1所述的方法,其特征在于,所述获取所述可执行文件,包括:
保存所述可执行文件;
对所述可执行文件进行重建处理。
6.根据权利要求5所述的方法,其特征在于,所述对所述可执行文件进行重建处理,包括:
保存所述可执行文件的文件头;
对所述可执行文件进行节数据处理;
对所述可执行文件进行重建优化处理。
7.根据权利要求1所述的方法,其特征在于,在所述获取所述可执行文件之后,还包括:
将所述虚拟环境进行镜像还原处理。
8.根据权利要求1至7之中任一项所述的方法,其特征在于,所述对所述可执行文件进行分析,包括:
确定所述可执行文件是否为恶意文件;
如果是,则将所述可执行文件的指纹特征加入到病毒特征库中。
9.根据权利要求8所述的方法,其特征在于,还包括:
获取所述可执行文件的消息摘要;
基于所述消息摘要,确定所述可执行文件的关联恶意文件;
生成与所述可执行文件对应的威胁情报。
10.一种内存中可执行文件获取装置,其特征在于,包括:
文件确定单元,用于在任务文件库中选择一个待测任务文件,将选择的待测任务文件确定为目标任务文件;
文件启动单元,用于在虚拟环境中,启动所述目标任务文件,所述虚拟环境的虚拟内存具有不可执行权限;
文件获取单元,用于在所述目标任务文件运行过程中,如果监测到所述虚拟内存中有可执行文件被执行,则获取所述可执行文件;
文件分析单元,用于对所述可执行文件进行分析。
11.根据权利要求10所述的装置,其特征在于,还包括内存监测单元,用于通过以下步骤确定所述虚拟内存中是否有可执行文件被执行:
在监测到所述虚拟环境的扩展页表发生故障时,确定所述虚拟内存中有可执行文件被执行;
或者,在监测到所述虚拟环境的扩展页表发生故障时,获取发生所述故障的内存地址及所述内存地址所属内存块;
确定所述内存块中是否包含可执行文件头标记;
如果包含,则确定所述虚拟内存中有可执行文件被执行。
12.根据权利要求10所述的装置,其特征在于,所述文件获取单元,具体用于:
保存所述可执行文件;
对所述可执行文件进行重建处理。
13.根据权利要求10至12之中任一项所述的装置,其特征在于,还包括镜像环境单元,用于:
在所述获取所述可执行文件之后,将所述虚拟环境进行镜像还原处理。
14.一种内存中可执行文件获取设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至9任一项所述内存中可执行文件获取方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述内存中可执行文件获取方法的步骤。
CN201910517034.0A 2019-06-14 2019-06-14 一种内存中可执行文件获取方法、装置、设备及存储介质 Active CN111177716B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910517034.0A CN111177716B (zh) 2019-06-14 2019-06-14 一种内存中可执行文件获取方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910517034.0A CN111177716B (zh) 2019-06-14 2019-06-14 一种内存中可执行文件获取方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111177716A true CN111177716A (zh) 2020-05-19
CN111177716B CN111177716B (zh) 2024-04-02

Family

ID=70655347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910517034.0A Active CN111177716B (zh) 2019-06-14 2019-06-14 一种内存中可执行文件获取方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111177716B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672353A (zh) * 2021-08-24 2021-11-19 支付宝(杭州)信息技术有限公司 一种基于容器的任务执行方法及装置
CN114707149A (zh) * 2022-03-18 2022-07-05 安芯网盾(北京)科技有限公司 一种傀儡进程检测方法、装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959247A (zh) * 2011-10-03 2014-07-30 思科技术公司 虚拟化计算机程序中的安全
CN104809401A (zh) * 2015-05-08 2015-07-29 南京大学 一种操作系统内核完整性保护方法
CN107479946A (zh) * 2017-08-16 2017-12-15 南京大学 一种内核模块的交互行为监控方案
CN109583190A (zh) * 2017-09-28 2019-04-05 华为技术有限公司 监控进程的方法和装置
CN109784062A (zh) * 2018-12-29 2019-05-21 360企业安全技术(珠海)有限公司 漏洞检测方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959247A (zh) * 2011-10-03 2014-07-30 思科技术公司 虚拟化计算机程序中的安全
CN104809401A (zh) * 2015-05-08 2015-07-29 南京大学 一种操作系统内核完整性保护方法
CN107479946A (zh) * 2017-08-16 2017-12-15 南京大学 一种内核模块的交互行为监控方案
CN109583190A (zh) * 2017-09-28 2019-04-05 华为技术有限公司 监控进程的方法和装置
CN109784062A (zh) * 2018-12-29 2019-05-21 360企业安全技术(珠海)有限公司 漏洞检测方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672353A (zh) * 2021-08-24 2021-11-19 支付宝(杭州)信息技术有限公司 一种基于容器的任务执行方法及装置
CN113672353B (zh) * 2021-08-24 2024-02-13 支付宝(杭州)信息技术有限公司 一种基于容器的任务执行方法及装置
CN114707149A (zh) * 2022-03-18 2022-07-05 安芯网盾(北京)科技有限公司 一种傀儡进程检测方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN111177716B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
US9747447B2 (en) Suspicious program detection
EP2610774B1 (en) System and method for detecting malware targeting the boot process of a computer
KR101946982B1 (ko) 가상 머신에서 멀웨어 탐지를 위한 프로세스 평가
Wang et al. Countering kernel rootkits with lightweight hook protection
Snow et al. {SHELLOS}: Enabling Fast Detection and Forensic Analysis of Code Injection Attacks
JP6837064B2 (ja) ランタイム生成コードにおける悪意のあるコードの検出のためのシステムおよび方法
US10372909B2 (en) Determining whether process is infected with malware
US11363058B2 (en) Detecting execution of modified executable code
CN103907098A (zh) 用于管理程序环境中的关键地址空间保护的系统和方法
Chan et al. Forenscope: A framework for live forensics
CN107330328B (zh) 防御病毒攻击的方法、装置及服务器
CN109255235B (zh) 基于用户态沙箱的移动应用第三方库隔离方法
US9405708B1 (en) Preventing attacks that rely on same-page merging by virtualization environment guests
Saltaformaggio et al. Screen after Previous Screens:{Spatial-Temporal} Recreation of Android App Displays from Memory Images
CN111177716B (zh) 一种内存中可执行文件获取方法、装置、设备及存储介质
KR101974989B1 (ko) 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치
KR101256468B1 (ko) 악성 파일 진단 장치 및 방법
Xuan et al. Toward revealing kernel malware behavior in virtual execution environments
Willems et al. Using memory management to detect and extract illegitimate code for malware analysis
Sezer et al. Memsherlock: an automated debugger for unknown memory corruption vulnerabilities
Hizver et al. An introspection-based memory scraper attack against virtualized point of sale systems
CN111949362A (zh) 一种基于虚拟化技术的主机信息采集方法
US9607152B1 (en) Detect encrypted program based on CPU statistics
Phillips et al. Sterilized Persistence Vectors (SPVs): Defense Through Deception on Windows Systems
CN116842530A (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