一种基于随机跟踪的恶意代码随机化识别方法及系统与流程

文档序号:11620866阅读:194来源:国知局
一种基于随机跟踪的恶意代码随机化识别方法及系统与流程

本发明涉及计算机安全技术领域,更具体地涉及一种基于随机跟踪的恶意代码随机化识别方法及系统。



背景技术:

互联网技术的发展进步给人们的生活生产带来了诸多的益处,社交、金融、媒体、购物等各个方面都依托互联网技术进行运作,产生效益。在互联网创造巨大的经济效益的大环境下,有价值的数据、各种竞争关系诱发了通过互联网的窃密、控制、破坏的恶意行为。木马程序便是当下比较流行的窃密、控制、破坏手段。网络黑客通过一段特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是控制端,另一个是被控制端。植入电脑的是被控制端部分,黑客正是利用控制端进入运行了被控制端的电脑。

当下的木马程序为了隐蔽自身特征不被发现,在程序运行后,会对自身的一些名称进行随机化的操作,比如进程名、互斥量名、配置文件名等。这种随机化的手段干扰了安全人员对于恶意代码特征的提取,恶意代码的查找与定位。传统的方法识别木马随机化的行为一般为运行样本后记录样本的相关文件以及进程名称,重启后再次记录,看二者是否有差异。如果有则样本存在随机化的行为。这种方法的缺陷是需要重启或者多次运行才能判断是否有随机化的行为,不利于快速发现木马的随机化行为。

现有的病毒特征提取方法一般为提取特征、验证该特征可检出、将该特征添加入病毒库,但对所提的特征检出能力并未评级,即所有提取的特征都被赋予相同的检出能力,这其中不排除存在一些误报的特征,此类容易误报及检出能力低的特征被加入病毒库,做检出时会影响杀毒引擎的检出率与误报率。



技术实现要素:

为了解决上述技术问题,提供了根据本发明的一种基于随机跟踪的恶意代码随机化识别方法及系统。

根据本发明的第一方面,提供了一种基于随机跟踪的恶意代码随机化识别方法。该方法包括:记录运行代码随机化行为中的随机数生成函数产生的随机化参数值、随机化参数地址;基于时间参数地址查找随机化参数值、随机化参数地址;基于样本代码函数调用中产生的样本参数值、样本参数地址,判断所述随机化参数地址是否出现在所述样本参数地址中,并提取特定参数地址;基于样本代码函数调用中产生的样本参数值、样本参数地址,判断所述随机化参数值是否出现在所述样本参数值中,如果出现,则运行代码随机化行为为恶意代码随机化行为;如果不出现则基于提取的所述特定参数地址,跟踪比对是否出现在所述样本参数地址中,出现则所述运行代码随机化行为为恶意代码随机化行为,不出现则无恶意代码随机化行为。

在一些实施例中,所述参数值包括进程名、文件名、文件内容、互斥量、字符串拷贝。

在一些实施例中,所述基于时间参数地址查找随机化参数值、随机化参数地址,包括:检查所述时间参数地址中任意参数地址是否出现在所述随机化参数地址中,如果在,提取所述随机化参数值、随机化参数地址。

在一些实施例中,所述时间参数地址包括运行时长参数地址、当前时间参数地址。

在一些实施例中,所述特定参数地址包括字符串拷贝相关参数地址。

根据本发明的第二方面,提供一种基于随机跟踪的恶意代码随机化识别系统,包括:记录模块,用于记录运行代码随机化行为中的随机数生成函数产生的随机化参数值、随机化参数地址;查找模块,用于基于时间参数地址查找随机化参数值、随机化参数地址;判断模块,用于基于样本代码函数调用中产生的样本参数值、样本参数地址,判断所述随机化参数地址是否出现在所述样本参数地址中,并提取特定参数地址;识别模块,用于基于样本代码函数调用中产生的样本参数值、样本参数地址,判断所述随机化参数值是否出现在所述样本参数值中,如果出现,则运行代码随机化行为为恶意代码随机化行为;跟踪模块,用于基于提取的所述特定参数地址,跟踪比对是否出现在所述样本参数地址中,出现则所述运行代码随机化行为为恶意代码随机化行为,不出现则无恶意代码随机化行为。

在一些实施例中,所述参数值包括进程名、文件名、文件内容、互斥量、字符串拷贝。

在一些实施例中,所述查找模块包括:

用于检查所述时间参数地址中任意参数地址是否出现在所述随机化参数地址中,如果在,提取所述随机化参数值、随机化参数地址。

在一些实施例中,所述时间参数地址包括运行时长参数地址、当前时间参数地址。

在一些实施例中,所述特定参数地址包括字符串拷贝相关参数地址

本发明所提供的技术方案利用hook机制,获取系统开机到当前的时长函数、当前系统时间函数、随机化相关的函数,记录产生的返回值、返回值地址、随机发生数据、数据的内存地址。并且确认这些数据是否输出到了恶意代码操作的文件名、服务名称、互斥量、进程名等系统文件中,进行恶意代码随机化行为的识别。该方法既可识别恶意代码随机化行为,并且省去了通过重启对比恶意代码相关进程名、服务名、互斥量、文件名变化的繁琐步骤,直接在恶意代码运行后便可一次准确有效识别出恶意代码随机化行为。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明实施例的一种基于随机跟踪的恶意代码随机化识别方法的流程图;

图2为根据本发明实施例的一种基于随机跟踪的恶意代码随机化识别系统的框图。

具体实施方式

下面参照附图对本发明的优选实施例进行详细说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。虽然附图中显示了示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本发明的范围完整的传达给本领域的技术人员。

本发明提供的方法是为一种利用hook机制,获取系统开机到当前的时长函数、当前系统时间函数、随机化相关的函数,记录产生的返回值、返回值地址、随机发生数据、数据的内存地址。并且确认这些数据是否输出到了恶意代码操作的文件名、服务名称、互斥量、进程名等系统文件中,进行恶意代码随机化行为的识别。

图1示出了根据本发明实施例的一种基于随机跟踪的恶意代码随机化识别方法的流程图。如图1所示,方法包括如下步骤:

s110,记录样本代码函数调用中产生的样本参数值、样本参数地址。

样本代码函数调用包括:字符串拷贝相关函数(strncpy、strcpy);文件创建、进程、互斥量创建相关函数(createfile、createprocess、createmutex等)。

s120,记录运行代码随机化行为中的随机数生成函数产生的随机化参数值、随机化参数地址。

随机数生成函数调用包括:

随机化相关api(cryptgenrandom、cryptacquirecontext等);

字符串拷贝相关函数(strncpy、strcpy等);

文件创建、进程、互斥量创建相关函数(createfile、createprocess、createmutex等)。

具体的:

获取系统开机到当前的时长api(gettickcount等)返回值及返回地址标记为ax0、ax1、...、axn。

获取当前系统时间函数api(getlocaltime、getsystemtime等)返回地址标记为ay0、ay1、...、ayn。

随机化相关api(cryptgenrandom、cryptacquirecontext等)中cryptgenrandom参数值记录为vz0、vz1、...、vzn,参数值的地址标记为az0、az1、...、azn。

字符串拷贝相关函数(strncpy、strcpy等)两个参数的地址标记为aw0、aw1、...、awn,bw0、bw1、...、bwn。

文件创建、进程、互斥量创建相关函数(createfile、createprocess、createmutex等)参数值标记为va0、va1、...、van,vb0、vb1、...、vbn,vc0、vc1、...、vcn,参数地址标记为sa0、sa1、...、san,sb0、sb1、...、sbn,sc0、sc1、...、scn。

以上所提参数值包括进程名、文件名、文件内容、互斥量、字符串拷贝等值。

s130,基于时间参数地址查找随机化参数值、随机化参数地址。

时间参数地址包括运行时长参数地址、当前时间参数地址。就是系统开机到当前的时长api(gettickcount等)、当前系统时间函数api(getlocaltime、getsystemtime等)的地址返回值。

检查时间参数地址中任意参数地址是否出现在随机化参数地址中,如果在,提取随机化参数值、随机化参数地址。

具体的,检查ax0至axn的地址、ay0至ayn的地址是否出现在az0、az1、azn中,如出现则单独提出来记录,比如:如果ax3=az3,提取随机化参数值、随机化参数地址记录vz3、az3。

s140,判断随机化参数地址是否出现在样本参数地址中,若是,提取特定参数地址。

本次判断基于样本代码函数调用中产生的样本参数值、样本参数地址。其中,特定参数地址包括字符串拷贝相关参数地址。

具体的,检查az3是否在bw0、bw1、...、bwn中出现,如出现,提出awn中与bwn对应的地址,比如:如果az3=bw3,提取字符串拷贝相关参数地址aw3。

s150,判断随机化参数值是否出现在样本参数值中,如果出现,则运行代码随机化行为为恶意代码随机化行为。

本次判断基于样本代码函数调用中产生的样本参数值、样本参数地址。

检查vz3是否在va0、va1、...、van,vb0、vb1、...、vbn,vc0、vc1、...、vcn。比如:如果在va3中的字符串找到vz3,提取随机化字符串vz3,发现木马随机化行为。

s160,不出现则基于提取的特定参数地址,跟踪比对是否出现在样本参数地址中。

检查提取字符串拷贝相关参数地址aw3是否在sa0、sa1、...、san,sb0、sb1、...、sbn,sc0、sc1、...、scn中。

s170,出现则运行代码随机化行为为恶意代码随机化行为,不出现则无恶意代码随机化行为。

如果出现,则回溯提取vz3,提取随机化字符串,发现木马随机化行为。

图2为根据本发明实施例的一种基于随机跟踪的恶意代码随机化识别系统的框图。如图2所示,系统可以包括:记录模块210、查找模块220、判断模块230、识别模块240、跟踪模块250。

记录模块210,用于记录运行代码随机化行为中的随机数生成函数产生的随机化参数值、随机化参数地址;

参数值包括进程名、文件名、文件内容、互斥量、字符串拷贝。

查找模块220,用于基于时间参数地址查找随机化参数值、随机化参数地址;

判断模块230,用于基于样本代码函数调用中产生的样本参数值、样本参数地址,判断随机化参数地址是否出现在样本参数地址中,并提取特定参数地址;

识别模块240,用于基于样本代码函数调用中产生的样本参数值、样本参数地址,判断随机化参数值是否出现在样本参数值中,如果出现,则运行代码随机化行为为恶意代码随机化行为;

跟踪模块250,用于基于提取的特定参数地址,跟踪比对是否出现在样本参数地址中,出现则运行代码随机化行为为恶意代码随机化行为,不出现则无恶意代码随机化行为。

进一步的,查找模块220,用于检查时间参数地址中任意参数地址是否出现在随机化参数地址中,如果在,提取随机化参数值、随机化参数地址。

时间参数地址包括运行时长参数地址、当前时间参数地址,特定参数地址包括字符串拷贝相关参数地址。

至此已经结合优选实施例对本发明进行了描述。应该理解,本领域技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而应由所附权利要求所限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1