一种恶意代码加密配置定位方法及系统与流程

文档序号:12803306阅读:210来源:国知局
一种恶意代码加密配置定位方法及系统与流程

本发明涉及计算机安全技术领域,更具体地涉及一种恶意代码加密配置定位方法及系统。



背景技术:

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

当下的木马程序为了隐蔽自身不被发现,在程序运行后,会删除隐蔽自身,而为了对抗杀软和安全人员的检测,一些木马甚至会加密自身相关的配置信息,使得木马程序的发现与检测变得困难。木马文件配置信息位置有了各种加密和隐藏处理,传统的方法不好定位配置信息的位置,通过尝试各种算法定位查找配置信息位置,工作量大,难度大,耗时长。



技术实现要素:

为了解决上述技术问题,提供了根据本发明的一种恶意代码加密配置定位方法及系统。

根据本发明的第一方面,提供了一种恶意代码加密配置定位方法,包括:记录通过调用处理得到的包括接口函数信息、参数地址信息;标记所述接口函数中文件操作的参数地址为初始地址位置,设置位置信息为p1、...、pn;基于文件内容读取操作,标记文件内存位置为内存起始地址x1、...、xn;基于网络连接、设置服务和自启动、数据拷贝操作,标记内存地址传递位置的目标地址为y1、...、yn,并记录所述目标地址对应的字符串信息,所述字符串信息包括配置信息;基于目标地址y1、...、yn进行对应地址反查,判断y1、...、yn是否为反查操作中ip参数对应的地址,如果是则定位所述yn的初始地址位置为pn。

在一些实施例中,包括:提取包含恶意数据的所述pn对应的配置信息,所述恶意数据包括终端配置信息。

在一些实施例中,所述提取包含恶意数据的pn对应的配置信息,包括:基于所述配置信息进行判断,如果所述配置信息中的配置信息包括终端配置信息,则通过程序脚本对配置信息进行提取。

在一些实施例中,所述配置信息包括终端cpu运算速度、终端名称、内存大小、ip及端口地址信息。

在一些实施例中,所述初始地址位置为文件读取位置的字符串路径。

根据本发明的第二方面,提供一种恶意代码加密配置定位系统,包括:记录模块,用于记录通过调用处理得到的包括接口函数信息、参数地址信息;第一标记模块,用于标记所述接口函数中文件操作的参数地址为初始地址位置,设置位置信息为p1、...、pn;第二标记模块,用于基于文件内容读取操作,标记文件内存位置为内存起始地址x1、...、xn;第三标记模块,用于基于网络连接、设置服务和自启动、数据拷贝操作,标记内存地址传递位置的目标地址为y1、...、yn,并记录所述目标地址对应的字符串信息,所述字符串信息包括配置信息;判断模块,用于基于目标地址y1、...、yn进行对应地址反查,判断y1、...、yn是否为反查操作中ip参数对应的地址,如果是则定位所述yn的初始地址位置为pn。

在一些实施例中,包括:提取模块,用于提取包含恶意数据的所述pn对应的配置信息,所述恶意数据包括终端配置信息。

在一些实施例中,所述提取模块包括:用于基于所述字符串信息进行判断,如果所述字符串信息中的配置信息包括终端配置信息,则通过程序脚本对配置信息进行提取。

在一些实施例中,所述配置信息包括终端cpu运算速度、终端名称、内存大小、ip及端口地址信息。

在一些实施例中,所述初始地址位置为文件读取位置的字符串路径。

通过使用本发明的方法和系统,记录调用处理得到的包括接口函数信息、参数地址信息,在文件操作、内容读取、网络连接、设置服务和自启动、数据拷贝操作过程中,进行关联api参数内存地址传递跟踪标记,回溯定位。快速准确定位恶意代码文件配置信息位置,不需要进行各种解密方法的尝试也能达到获取文件内容中配置信息的目的,免去了人工定位解密工作量大,难度大,耗时长的困难。

附图说明

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

图1为根据本发明实施例的一种恶意代码加密配置定位方法的流程图;

图2为根据本发明实施例的一种恶意代码加密配置定位系统的框图。

具体实施方式

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

本发明中将使用hook记录木马调用的api(应用程序编程接口)以及参数地址信息,而hook是一个消息的拦截机制,是消息处理中的一个环节,用于监控消息在系统中的传递,并在这些消息到达最终的消息处理过程前,处理某些特定的消息,实际上这个技术在操作系统里面被广泛使用。

图1示出了根据本发明实施例的一种恶意代码加密配置定位方法的流程图。如图1所示,方法包括如下步骤:

s110,记录通过调用处理得到的包括接口函数信息、参数地址信息。

通过hookwindowsapi的调用,处理得到api信息以及参数地址信息,其中,地址信息可以是将api的参数处理为16进制的地址形式(比如:0x1effc220)保存下来的信息。

s120,标记接口函数中文件操作的参数地址为初始地址位置,设置位置信息为p1、...、pn。

首先监控文件操作一类的api,监控到打开配置文件动作。接口函数中的文件操作相关函数(比如:createfile、writefile、readfile、setfiltpoint)对文件进行对应操作时,文件操作相关函数的参数为初始地址位置,将参数初始地址位置放入一个以文件操作函数命名的列表中,单独保存并进行标记,设置为p1、...、pn,其中,n为任意正整数,一般为路径相关的内容。其中,初始地址位置为文件读取位置的字符串路径。

s130,基于文件内容读取操作,标记文件内存位置为内存起始地址x1、...、xn。

通过文件内容读取函数读取到文件在内存中的位置,作为起始内存地址,被处理为16进制数据形式(比如:0x1effc220),并标记x1、...、xn,其中,n为任意正整数。

s140,基于网络连接、设置服务和自启动、数据拷贝操作,标记内存地址传递位置的目标地址为y1、...、yn,并记录目标地址对应的字符串信息。

木马配置信息中有被感染的机器需要连接的ip和端口信息,但是是加密的,文件位置也不清楚。木马程序要传递信息需要调用相关的拷贝函数将配置内容拷贝出来到一个变量中,把ip和端口信息传递给网络连接相关的函数,同时在这个过程中也会收集被感染的终端配置信息。

通过木马网络连接需要调用的网络信息查询、连接、发送等函数(gethostbyname、connect、send等),设置服务和自启动需要调用的注册表项值、打开注册表项等函数(regsetvalue、regopenkey等),拷贝数据调用的标准库复制、内存拷贝等函数(strcpy、memcpy、strncpy等),进行内存地址传递位置的标记,一直跟踪拷贝操作的目标地址,并标记为y1、...、yn,其中,n为任意正整数,记录目标地址对应的字符串信息,其中包括配置信息。

s150,基于目标地址y1、...、yn进行对应地址反查,判断y1、...、yn是否为反查操作中ip参数对应的地址,如果是则定位yn的初始地址位置为pn。

在木马程序数据的传递过程中,地址都是可以被记录下来的,并且关联着。具体的,地址传递关联方法如下描述:

strcpy数据:{"retaddr":"004059ba","process":"wine","module":"ntdll.dll","details":{"dest":"0091e918",

"src":"0091dea8\"win2003sp2\""},"apiname":"strcpy","retval":"0091e918"}

其中,包含终端操作系统版本的信息被拷贝到了0091e918的地址中,接下来:

{"retaddr":"00405a8f","process":"wine","module":"ntdll.dll","details":{"dest":"0091e978",

"src":"0091df9c\"1*3491mhz\""},"apiname":"strcpy","retval":"0091e978"}

其中,包含cpu处理速度的信息被拷贝了到了0091e978的地址中。

{"retaddr":"00403685","process":"wine","module":"msvcrt.dll","details":{"dest":"0091e418","src":"0091e914","count":"000000b0"},"apiname":"memcpy","retval":"0091e418"}

使用memcpy将地址0091e914地址,长度为000000b0的信息拷贝到了0091e418的内存地址中。0091e914----0091e914+000000b0(0091e9c4)之间的信息都被拷贝到了0091e418中。而0091e914----0091e9c4中间包含了0091e918、0091e9178中的内容。所以相应的终端配置信息也是被拷贝到了内存地址中。最后我们找到send的地址:

{"retaddr":"004036a6","process":"wine","module":"ws2_32.dll","details":{"flags":"00000000","buf":"0091e410","socket":"00000068","len":"000000b8"},"apiname":"send","retval":"000000b8"}

可以清楚的看到sendbuf的地址为0091e410send的len为000000b8,也就是包含了终端配置信息地址0091e418在0091e410--0091e410+000000b8中,全被发出去了。至此就可以判断样本发送了终端配置信息。而这种行为是ddos回传终端配置信息的典型操作。通过对应的socket地址,反查connect的对应地址。

最终地址指的是在send函数中buf参数对应的地址。如果拷贝操作的参数地址,在buf对应的地址范围内。就可以通过send函数中的socket找到connect中对应相同的sokcet,connet函数中除了sokcet这个参数外,还有ip和端口信息。

判断yn是否为connect中的ip相关参数对应的地址,如果是就可以定位到yn的初始地址位置为pn,如否,则没有提取到相关信息。在跟踪过程中根据地址对应得到字符串相关的信息,包括终端配置信息(如cpu运算速度,计算机名,计算机内存大小)都可以记录下来。通过这个过程把ip和端口信息与配置信息关联起来。比如connect链接的是192.168.50.45:8080,那配置信息中就应该有这个信息。

在一些方面,进一步还包括:

s160,提取包含恶意数据的pn对应的配置信息。

在提取过程中,首先需要确定哪些数据是恶意数据,即判断看是否可以为污点数据(包含有终端配置的信息),基于字符串信息中的配置信息进行判断,如果字符串信息包括终端配置信息,则该字符串信息中包含恶意数据,然后,利用程序脚本对配置信息进行提取,其内容中含有ip及端口地址等相关信息。

其中,配置信息包括终端cpu运算速度、终端名称、内存大小、ip及端口地址信息。

图2为根据本发明实施例的一种恶意代码加密配置定位系统的框图。如图2所述,系统可以包括:记录模块210、第一标记模块220、第二标记模块230、第三标记模块240、判断模块250、提取模块260。

记录模块210,用于记录通过调用处理得到的包括接口函数信息、参数地址信息。

第一标记模块220,用于标记接口函数中文件操作的参数地址为初始地址位置,设置位置信息为p1、...、pn。

其中,以上涉及到的n为任意正整数,初始地址位置为文件读取位置的字符串路径。

第二标记模块230,用于基于文件内容读取操作,标记文件内存位置为内存起始地址x1、...、xn(n为任意正整数)。

第三标记模块240,用于基于网络连接、设置服务和自启动、数据拷贝操作,标记内存地址传递位置的目标地址为y1、...、yn,记录目标地址对应的字符串信息,字符串信息包括配置信息。

其中,n为任意正整数,配置信息包括终端cpu运算速度、终端名称、内存大小、ip及端口地址信息。

判断模块250,用于基于目标地址y1、...、yn进行对应地址反查,判断y1、...、yn是否为反查操作中ip参数对应的地址,如果是则定位yn的初始地址位置为pn。

在一些实施例中,系统还包括:

提取模块260,用于提取包含恶意数据的pn对应的配置信息,恶意数据包括终端配置信息。

进一步,提取模块260还包括:用于基于字符串信息进行判断,如果字符串信息中的配置信息包括终端配置信息,则通过程序脚本对配置信息进行提取。

通过使用本发明的方法和系统,记录调用处理得到的包括接口函数信息、参数地址信息,在文件操作、内容读取、网络连接、设置服务和自启动、数据拷贝操作过程中,进行关联api参数内存地址传递跟踪标记,回溯定位。快速准确定位恶意代码文件配置信息位置,不需要进行各种解密方法的尝试也能达到获取文件内容的目的,免去了人工定位解密工作量大,难度大,耗时长的困难。

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

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