掌桥专利:专业的专利平台
掌桥专利
首页

一种自适应粒度的加壳恶意软件恶意特征定位及抽取方法

文献发布时间:2024-04-18 19:59:31


一种自适应粒度的加壳恶意软件恶意特征定位及抽取方法

技术领域

本发明属于信息安全领域,尤其涉及一种自适应粒度的加壳恶意软件恶意特征定位及抽取方法。

背景技术

随着信息技术高速发展,各行各业的人们都在这一过程中体会到技术为生活带来的便利。但信息技术为生活带来改变的同时,也不可避免的带来了一些信息安全问题,近年来信息安全问题引起越来越多的人重视,其中由恶意软件引起的安全问题占比巨大。攻击者通过传播恶意软件非法控制受害者设备、获取受害者信息,甚至会对受害者数据产生不可逆的破坏。

事物都有其两面性,信息安全领域的技术发展同样如此,虽然技术本身并无善恶之分,但技术使用的途径、目的和造成的影响会有明显的善恶倾向。加壳技术是一种计算机安全和软件保护技术,其本意是提升软件的安全性并加大其逆向、反汇编难度,但是很多恶意软件作者常将加壳技术用于隐藏恶意代码以逃避安全检测软件的查杀。由于加壳后恶意软件程序控制流会被破坏,包含恶意行为的源代码会被加密、混淆或隐藏,导致恶意特征被隐藏且难以逆向分析。现有技术通常只能识别无壳恶意软件的恶意特征,对于加壳恶意软件的恶意特征无法做到准确识别及抽取。如何对加壳恶意软件进行恶意特征定位及抽取,是安全检测与计算机保护领域需要直面的一大难题。

发明内容

本申请实施例的目的在于针对现有技术的不足,提供一种自适应粒度的加壳恶意软件恶意特征定位及抽取方法。

根据本申请实施例的第一方面,提供一种自适应粒度的加壳恶意软件恶意特征定位及抽取方法,包括:

S10:获取加壳恶意样本;

S20:对所述加壳恶意样本进行壳类型检测及脱壳处理,得到脱壳恶意样本;

S30:对所述脱壳恶意样本的文件基本信息、导入表和重定位表进行修复;

S40:对修复后的脱壳恶意样本进行静态分析、动态分析,以进行恶意特征的提取及特征定位;

S50:根据静态分析结果和动态分析结果,对所述恶意特征进行期望精准度判断;

S60:若所述恶意特征不满足期望精准度的要求,则对修复后的脱壳恶意样本进行自适应切片并返回步骤S40,直至切片后的样本满足期望精准度的要求;

S70:根据满足期望精准度要求的恶意特征所对应的定位,对该恶意特征进行抽取。

进一步地,步骤S20中,对所述加壳恶意样本进行壳类型检测,包括:

对所述加壳恶意样本的节表和节分别计算熵值以及数据大小,得出目标软件的熵值;

通过熵值判断目标是否加壳,结合样本PE结构中区块信息、入口特征及加壳特征库对加壳恶意样本进行特征比对,获取样本壳类型。

进一步地,步骤S30中,文件基本信息修复包括文件头部信息修复、文件体信息修复,其中,针对文件头部信息修复,提取相似正常程序头部的16进制数据,并替换掉被破坏了的头部信息;针对文件体修复,根据区段对齐粒度、数据大小及偏移新建一个由0x00填充的附加数据段作为文件末尾的空白区域填充;

导入表修复包括识别导入表位置,罗列导入函数信息,进而完成包括IID数组、IAT表和INT表结构及内容修复;

重定位表进行修复包括对原始程序重定位表指针重定位,进而遍历修复或通过比较不同基址dump文件协助修复重定位表。

进一步地,步骤S40中,静态分析包括:

(1)加载恶意特征库和API库,其中恶意特征库包括恶意代码及其对应的16进制机器码组成的集合,API库中包括Windows API接口信息;

(2)对文件头、节表、节、调试信息分析,并记录节表、节及其偏移地址;

(3)对修复后的脱壳恶意样本进行逆向分析,反汇编并构建程序控制流图;

(4)通过所述程序控制流图,对修复后的脱壳恶意样本的执行路径逐个遍历分析并完成反编译,在此过程中基于恶意特征库和API库同步进行恶意特征比对、字符串分析;

(5)记录恶意特征的内容及其偏移地址。

进一步地,步骤S40中,动态分析包括:

(1)分配隔离的测试环境;

(2)加载恶意特征库及威胁情报库,其中所述恶意特征库中包括恶意代码及其对应的16进制机器码,所述威胁情报库中包括恶意链接地址信息、恶意IP地址信息;

(3)启用流量监控环境;

(4)启用API调用监控环境;

(5)启用系统操作行为监控环境;

(6)对修复后的脱壳恶意样本进行切片,并分别对切片进行内容编码、插入无效字符;

(7)执行修复后的脱壳恶意样本,记录包含恶意行为切片信息,根据(3)、(4)、(5)步骤的持续监控,如果捕捉到恶意行为,则记录当前切片信息具体为触发恶意行为的切片编号和切片内容。

进一步地,步骤S50中,对所述恶意特征进行期望精准度判断,具体为:

对于静态分析得到的恶意特征,计算恶意特征对应的机器码中恶意行为对应的机器码所占的比例;

对于动态分析得到的恶意特征即切片,计算切片对应的机器码中恶意行为对应的机器码所占的比例;

若所述比例高于预定阈值,则满足期望精准度要求。

进一步地,步骤S60中,若不满足期望精准度要求,则切片粒度设置为期望精准度乘以上一次捕获到存在恶意行为的切片大小或恶意特征大小并对结果进位,作为切片粒度。

根据本申请实施例的第二方面,提供一种自适应粒度的加壳恶意软件恶意特征定位及抽取装置,包括:

获取模块,用于获取加壳恶意样本;

脱壳模块,用于对所述加壳恶意样本进行壳类型检测及脱壳处理,得到脱壳恶意样本;

修复模块,用于对所述脱壳恶意样本的文件基本信息、导入表和重定位表进行修复;

恶意特征提取模块,用于对修复后的脱壳恶意样本进行静态分析、动态分析,以进行恶意特征的提取及特征定位;

期望精准度判断模块,用于根据静态分析结果和动态分析结果,对所述恶意特征进行期望精准度判断;

切片模块,用于若所述恶意特征不满足期望精准度的要求,则对修复后的脱壳恶意样本进行自适应切片并返回恶意特征提取模块,直至切片后的样本满足期望精准度的要求;

特征抽取模块,用于根据满足期望精准度要求的恶意特征所对应的定位,对该恶意特征进行抽取。

根据本申请实施例的第三方面,提供一种电子设备,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。

根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。

本申请的实施例提供的技术方案可以包括以下有益效果:

由上述实施例可知,本申请设计了壳处理模块,可以在恶意行为检测前对加壳恶意软件进行预处理。本发明针对脱壳预处理后的软件进行自适应粒度的恶意行为分析及定位,通过恶意特征检测与监听模块、自适应切片模块、特征定位抽取模块三大模块联动,高效的完成恶意特征定位识别;在注重效率的同时,通过引入特征定位抽取期望精准度来保证准确度,并有效降低恶意特征识别的误报率;有效的解决了加壳恶意软件检测难、分析难的问题,并实现对加壳恶意软件隐藏的恶意特征定位及抽取。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1是根据本发明一个实施例的自适应粒度的加壳恶意软件恶意特征定位及抽取方法的流程图。

图2是根据一实例性实施例示出的一种自适应粒度的加壳恶意软件恶意特征定位及抽取方法的架构示意图。

图3是根据一示例性实施例示出的一种自适应粒度的加壳恶意软件恶意特征定位及抽取装置的框图。

图4是根据一示例性实施例示出的一种电子设备的实体图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请提供一种自适应粒度的加壳恶意软件恶意特征定位及抽取方法,如图1和图2所示,包括以下步骤:

S10:获取加壳恶意样本;

具体地,从恶意样本网站(本实施例样本来源为:https://www.hybrid-analysis.com/)中获取加壳恶意样本。

S20:对所述加壳恶意样本进行壳类型检测及脱壳处理,得到脱壳恶意样本;

具体地,本方法中支持检测的壳类型和支持脱去的壳类型一一对应;由于壳种类众多,且不同壳需要选用不同方法执行脱壳操作,因此必须先对加壳恶意软件样本进行壳检测,而后再送入脱壳子模块进行真正的脱壳操作。

具体地首先对节表和节分别计算熵值以及数据大小,最终得出目标软件的熵值,通过熵值判断软件程序是否加壳,再加载内部加壳特征库,加壳特征库中记录了壳的16进制形式特征码,结合样本PE结构中区块信息、入口特征及加壳特征库对加壳恶意程序样本进行特征比对,获取样本壳类型。

需要说明的是,节表和节均为组成恶意样本文件的固定结构,为本领域公知,此处不作赘述。

具体地,所述熵计算的公式为:

具体的,所述熵计算公式中,H(X)为熵值,P(x

之后,根据识别出的加壳信息进行脱壳手段选择(包括ASPack脱壳、UPX脱壳、PECompact脱壳、RLPack脱壳、Nspack脱壳),完成脱壳过程。

S30:对所述脱壳恶意样本的文件基本信息、导入表和重定位表进行修复;

具体地经过壳处理模块的文件结构会不可避免的遭到不同程度的破坏,即使成功完成脱壳,被破坏的恶意软件样本也会在后续分析中受到极大的限制,因此需要对样本进行修复操作。可从三部分入手对样本进行修复,包括文件基本信息、导入表、重定位表修复。

具体地,文件基本信息修复包括文件头部信息修复、文件体信息修复。其中,针对文件头部信息修复,如部分PE文件脱壳后PE头会被破坏,可以提取相似正常程序PE头的16进制数据,并替换掉被破坏了的样本PE头;针对文件体修复,需要根据区段对齐粒度、数据大小及偏移新建一个由0x00填充的附加数据段作为文件末尾的空白区域填充。

具体地,导入表修复首先需要识别导入表位置,并罗列导入函数信息,进而完成包括IID(IMAGE_IMPORT_DESCRIPTOR)数组、IAT表和INT表结构及内容修复。

具体地,重定位表进行修复包括对原始程序重定位表指针重定位进而遍历修复或通过比较不同基址dump文件协助修复重定位表。

S40:对修复后的脱壳恶意样本进行静态分析、动态分析,以进行恶意特征的提取及特征定位;

具体地,经过修复的样本会首先对恶意样本进行静态分析。静态分析的具体流程包括:

(1)加载恶意特征库和API库,恶意特征库是由自主收集的大量恶意代码及其对应的16进制机器码组成的集合,API库中则收录了微软公开的Windows API接口信息同时根据经验对敏感操作和恶意软件常用API做标记;

(2)对文件头(包括DOS头、PE头、可选PE头)、节表、节、调试信息分析,并记录程序关键信息(包括文件中节表、节)及其偏移地址,此过程需要首先根据文件头找到节表的偏移地址,再通过节表提取其中节的大小、偏移地址;

(3)对修复后的脱壳恶意样本进行逆向分析,反汇编并构建程序控制流图,使用递归扫搜索方法从程序的入口地址按照程序中的控制指令的控制流的逻辑进行将字节转化为对应的指令和数据,在此过程中以函数为单位将调用关系和控制流逻辑结合组成图表关系以便后续分析;

(4)通过所述程序控制流图,对修复后的脱壳恶意样本的执行路径逐个遍历分析并完成反编译,在此过程中同步进行恶意特征比对、字符串分析,根据(3)中构建的程序控制流图,将反汇编后的指令和数据翻译成C语言代码,此过程中将翻译前程序片段对应的16进制机器码依次与恶意特征库中记录的16进制机器码比对,并在翻译后的C语言代码中检索是否存在API库中标记的可疑或恶意API调用;

(5)记录恶意特征及其偏移,记录恶意特征出现位置的偏移地址(表现形式为16进制机器码)、具体恶意特征内容。

具体地,动态分析具体包括:

(1)分配隔离的测试环境,以windows 7和windows 10镜像为基础创建测试环境,并断开网络连接;

(2)加载恶意特征库及威胁情报库(威胁情报库为自主收集的威胁情报信息,包括恶意链接地址信息、恶意IP地址信息),此过程是将恶意特征库和威胁情报库以文件的形式导入到测试环境中;

(3)启用流量监控环境,具体为使用抓包工具(本实施例中用wireshark软件)监听测试环境网卡流量;

(4)启用API调用监控环境,具体为使用内核驱动程序监视系统API调用;

(5)启用系统操作行为监控环境,具体为借助windows事件查看器实时关注操作日志;

(6)对修复后的脱壳恶意样本进行逻辑切片,分别对切片进行影响功能但不影响程序运行的混淆,具体可以是对切片内容编码、插入无效字符;

(7)运行修复后的脱壳恶意样本,启动恶意程序可以是在cmd中执行“./”加恶意程序名或双击程序;

(8)记录包含恶意行为切片信息,根据(3)、(4)、(5)步骤的持续监控,如果捕捉到恶意行为,则记录当前切片信息具体为触发恶意行为的切片编号和切片内容。

具体地,样本动态分析过程中需要频繁操作的步骤为步骤(6)-步骤(8),步骤(6)需要对部分切片分别进行影响功能但不影响程序运行的混淆,但需要控制每次将要运行的样本中只有1个切片是混淆后的。而步骤(8)在完成包含恶意行为切片的记录后,需要检查是否完成所有混淆切片的遍历,若未完成所有混淆切片的遍历则重新回到步骤(6),再一次执行步骤(6)到步骤(8)。直至完成所有混淆切片的遍历后,将包含恶意行为切片信息的动态调试结果进行后续特征定位操作。

具体地,本申请设置两种特征定位方法,分别是静态特征精准定位方法和动态特征模糊定位方法,同时设置可控参数(期望精准度)来对特征定位和抽取的精度进行调控。所述静态特征精准定位方法是针对静态分析的定位方法,所述方法通过重构控制流图结合路径遍历完成恶意特征定位;所述动态特征模糊定位方法是针对动态调试的定位方法,所述方法通过文件切片、切片混淆以及实时行为监听完成恶意特征定位。

本申请设置。静态精准定位和动态特征模糊定位两种方法使得可以覆盖的场景更广,单一的静态精准定位可能在部分场景中无法完成恶意特征定位。

S50:根据静态分析结果和动态分析结果,对所述恶意特征进行期望精准度判断;

具体地,将恶意特征送入期望精准度判断流程,期望精准度具体为一个百分数,代表着可疑恶意行为的机器码在总体恶意代码对应机器码中占据比例的阈值,若实际恶意行为的机器码在总体恶意代码中占据比例大于等于期望精准度即为满足期望精准度要求。若满足期望精准度的要求,则输出恶意特征及其定位,否则需对样本进行切片。

S60:若所述恶意特征不满足期望精准度的要求,则对修复后的脱壳恶意样本进行自适应切片并返回步骤S40,直至切片后的样本满足期望精准度的要求;

具体地,根据期望精准度反馈信息,由切片粒度调控模块综合分析,若当前期望精准度反馈不满足期望,则切片粒度设置为期望精准度乘以上一次捕获到存在恶意特征的切片大小并对结果进位,作为本次切片粒度。得出切片粒度后,根据样本信息从程序功能角度对切片粒度进行微调,具体的将切片控制在所在节的范围内,不得跨节切片,节数据于样本信息中记录。粒度的适应与样本切片次数和样本运行反馈有相关性,应当注意对样本进行首次切片时,为了保证样本动态调试过程正常,首次样本切片粒度较粗,可按每节一个切片作为初始切片。文件切片流程将根据自适应后的粒度对样本进行切片,并将样本和切片结果返回步骤S40进行动态调试。

S70:根据满足期望精准度要求的恶意特征所对应的定位,对该恶意特征进行抽取。

该步骤的具体实施为本领域常规技术手段,此处不作赘述。

与前述的自适应粒度的加壳恶意软件恶意特征定位及抽取方法的实施例相对应,本申请还提供了自适应粒度的加壳恶意软件恶意特征定位及抽取装置的实施例。

图3是根据一示例性实施例示出的一种自适应粒度的加壳恶意软件恶意特征定位及抽取装置框图。参照图3,该装置可以包括:

获取模块21,用于获取加壳恶意样本;

脱壳模块22,用于对所述加壳恶意样本进行壳类型检测及脱壳处理,得到脱壳恶意样本;

修复模块23,用于对所述脱壳恶意样本的文件基本信息、导入表和重定位表进行修复;

恶意特征提取模块24,用于对修复后的脱壳恶意样本进行静态分析、动态分析,以进行恶意特征的提取及特征定位;

期望精准度判断模块25,用于根据静态分析结果和动态分析结果,对所述恶意特征进行期望精准度判断;

切片模块26,用于若所述恶意特征不满足期望精准度的要求,则对修复后的脱壳恶意样本进行自适应切片并返回恶意特征提取模块,直至切片后的样本满足期望精准度的要求;

特征抽取模块27,用于根据满足期望精准度要求的恶意特征所对应的定位,对该恶意特征进行抽取。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的自适应粒度的加壳恶意软件恶意特征定位及抽取方法。如图4所示,为本发明实施例提供的一种自适应粒度的加壳恶意软件恶意特征定位及抽取方法所在任意具备数据处理能力的设备的一种硬件结构图,除了图4所示的处理器、内存以及网络接口之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。

相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述的自适应粒度的加壳恶意软件恶意特征定位及抽取方法。所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。

本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。

相关技术
  • 换挡液压控制系统、变速器和汽车
  • 液压单指双向作用换挡操作器
  • 用于确定变速器的至少一个换挡元件的能被双向操作的液压调节器的运行状态的装置
技术分类

06120116517878