专利名称:一种基于url请求时序的恶意代码检测方法和系统的制作方法
技术领域:
本发明涉及计算机网络安全技术领域,尤其涉及基于URL请求时序的恶意代码检测方法和系统。
背景技术:
随着互联网的快速普及,恶意代码的传播方式目前主要以通过网络传播为主,恶意代码的主要功能也由破坏、感染用户系统逐步发展到以获得用户系统数据信息,利用用 户系统资源进行新的扩散、攻击为主。目前恶意代码的检测方式基于特征码匹配、启发式检测主要基于文件的检测,根据文件的基本属性和环境对文件进行检测判定。恶意代码的传播、非法获得用户数据以及利用用户系统资源主要在网络中进行,而其中URL在其每个环节都起到关键的作用。在基于传统的恶意代码检测方式的基础上,URL分类和URL过滤技术等基于对URL的检测来阻断恶意代码的传播、回传也开始成为在网络中对恶意代码的主 流检测方法。目前针对恶意代码的特征码匹配方式,需要不断升级病毒特征库来对抗恶意代码的不断更新,对于恶意代码使用加密保护壳,在特征码匹配需对恶意代码进行脱壳处理。这些因素导致目前特征库不断膨胀。而目前URL分类和过滤技术,还是单一 URL规则对应单一威胁事件的模式,而且恶意代码利用的URL中存在可信网站则很难判定。我们通过研究分析恶意代码在对抗反病毒软件,对自身做了升级更新而使得反病毒软件原有特征码失效,而在传播、信息回传以及利用用户资源等利用了可信网站的URL,这时反病毒软件和URL过滤的技术对这类恶意代码难以检测。
发明内容
为了解决上述问题,本发明提供了一种基于URL请求时序的恶意代码的检测方法,该方法有效地提高了对同族恶意代码的检出率和准确率。本发明提供了一种基于URL请求时序的恶意代码的检测方法,该方法包括步骤
A、依照网络数据包的捕获时序对其做解析,提取客户端请求的URL和对应数据包时
间。另外根据本发明应用场景的不同还可以记录客户端IP等。B、URL与特征数据库匹配,记录匹配成功的URL、时间和对应模型入缓存。C、后续包中的URL与缓存中的模型匹配。D、当模型中的所有特征都匹配成功则成功检出,输出相应结果。所述步骤A中进一步需要对提取的URL做预处理,在数据包中提取域名和请求数据组成完整 URL (参看RFC1738 标准 http://www. ietf. org/rfc/rfcl738. txt),在本发明中只需要“http://〈h0St>:〈p0rt>/〈path>”这种格式,也就是只提取URL中“?”字符之前的域名和路径部分,对查询域的内容剔除。进一步提取的URL会同时进入B和C步骤,在进行C步骤之前会先判断缓存是否为空,如果为空则A步骤提取的URL不进行C步骤的后续处理。
所述步骤B中进一步包括特征数据库的建立,特征数据库的建立依赖模型数据库的建立。特征数据库的内容为模型数据库中每个模型的第一条特征和对应的模型编号。模型数据库中的模型具体包括基于URL请求时间顺序的序号、URL特征、间隔时间。进一步的模型数据库中的URL序号如果有相同的情况则表示满足其中一个特征即可。间隔时间为在一条URL的请求时间,与下一条URL请求时间的平均时间差的基础上再扩大一定时间范围,如在其基础上在增加1000MS,这种时间上限。设置间隔时间的目的是为了更加准确的判断URL请求时序。
在本发明的实际应用中也可以直接只采用模型数据库来做之后的匹配,在这里为了更好的理解本发明,单独在模型数据库的基础上建立特征数据库。进一步当匹配成功后则记录相应URL、时间和模型入缓存,其中模型中对已匹配成功的特征需做已匹配成功的标记。若匹配失败则到步骤A进行后续一个数据包的解析。所述步骤C中当缓存中存在URL、对应时间和模型等数据,不为空的时候,步骤A输出的URL与缓存中的模型进行匹配。进一步地判断模型中未匹配的特征,即未做已匹配成功标记的特征,取其中第一个特征做匹配。若匹配成功则记录相应URL、时间和模型并更新缓存,其中模型中对已匹配成功的特征需做已匹配成功的标记。若匹配失败则取该模型中已标记匹配成功的最后一个特征对应匹配成功的URL的时间(如Sm[t]),和其间隔时间(如T1),继而用本次匹配失败的URL对应的时间(如Sn[t])与其匹配成功的URL的时间做时间差计算,即:“Sn[t]_ Sm[t],,。若“Sn[t]_ Sm[t]〈Tl”,则在时间范围内,不对缓存中的数据做处理,该步骤结束,转到步骤A进行下一个数据包的解析。若“Sn[t]_ Sm[t]>Tl”,贝U已超出时间范围,需要对缓存中相应的模型记录清除,该步骤结束,转到步骤A。本发明还提供了一种基于URL请求时序的恶意代码检测系统,包括
解析单元,用于按照捕获时序对网络数据包进行解析,提取请求的URL和对应数据包时间;
检测单元,用于判断所述URL与模型数据库中模型的第一条特征是否匹配,如果匹配成功则将所述URL、对应数据包时间和所述模型记录到缓存中,标记所述模型中匹配成功的特征;所述模型数据库是通过捕获恶意代码产生的网络数据包进行解析,提取数据包中URL的请求时间顺序的序号、URL特征、间隔时间,所述时间间隔是指相邻两个URL请求时间的平均时间差扩大预设范围得到的时间值;否则按照捕获时序继续解析下一个网络数据包提取请求的URL ;
如果所述缓存不为空,则按照时序将解析所述下一个网络数据包提取请求的URL与所述模型中时间顺序序号在先的未标记匹配成功的特征进行匹配,如果匹配成功则标记模型中的所述特征并将所述URL、对应数据包时间和所述模型更新记录到缓存中;否则按照捕获时序继续解析下一个网络数据包提取请求的URL ;
输出单元,用于判断如果所述模型中的URL特征全部标记成功,则判断存在恶意代码威胁。所述解析单元具体还用于记录提出请求的客户端IP。所述系统提取请求的URL中“?”字符之前的域名和路径部分。所述检测单元具体还用于判断所述URL与特征数据库中的特征是否匹配,所述特征数据库的内容为模型数据库中每个模型的第一条特征和对应的模型编号;如果匹配成功则将所述URL、对应数据包时间和所述模型编号对应的模型数据库中的模型记录到缓存中;所述模型数据库是通过捕获恶意代码产生的网络数据包进行解析,提取数据包中URL的请求时间顺序的序号、URL特征、间隔时间,所述时间间隔是指相邻两个URL请求时间的平均时间差扩大预设范围得到的时间值。所述检测单元具体还用于判断如果所述缓存不为空,则按照时序将解析所述下一个网络数据包提取请求的URL与所述模型中时间顺序序号在先的未标记匹配成功的特征进行匹配,如果匹配不成功,则判断所述匹配不成功的URL对应的数据包时间与所述模型中标记匹配成功的最后一个序号的URL特征的请求时间的差值是否小于所述模型中标记匹配成功的最后一个序号的URL特征的时间间隔,如果是则按照捕获时序继续解析下一个网络数据包提取请求的URL ;否则,清除所述缓存中的所述模 型,按照捕获时序继续解析下一个网络数据包提取请求的URL。本发明的有益效果是
同族恶意代码在传播、信息回传和利用用户资源等攻击过程中的URL请求具有时间顺序,进一步地恶意代码的传播是指恶意代码请求URL,在未经用户允许的情况下下载其他恶意代码或风险程序、未知程序等。恶意代码信息回传,是指恶意代码在用户系统中非法获取用户系统相关信息、隐私数据、文件资料等通过URL回传至恶意代码服务器。恶意代码利用用户资源,是指恶意代码利用用户主机进行如广告、软件推广;虚假信息发布;新的攻击等。恶意代码这些攻击手段都会通过多个URL来实现,在恶意代码本体进行更新升级的时候URL时序确少有变化。所以同族恶意代码的URL请求具有时间顺序是其一个重要共性。本发明针对同族恶意代码在传播、信息回传和利用用户资源等攻击过程中的URL请求具有时间顺序这一特征,通过预先建立恶意代码URL时序模型数据库,进一步通过对网络数据包进行捕获提取URL进行模型匹配,对满足URL请求时序的则确定存在恶意代码攻击行为。本发明弥补了传统基于文件检测的局限性,利用URL请求之间具有时间顺序这一特性提高了恶意代码检测的准确率,对于URL本身是可信网站,其场景如恶意代码检测网络环境、推广软件或广告等,对于这种情况本发明也能很好的检测,由于本发明无论URL本身是否具有威胁,只要满足URL请求时序即存在威胁。
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明基于URL请求时序的恶意代码检测方法流程 图2为本发明URL与特征数据库匹配的流程 图3为本发明URL与缓存中模型匹配的流程 图4为本发明基于URL请求时序的恶意代码检测系统示意图。
具体实施例方式为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施例对本发明的技术方案进行更详细的说明。本发明提出了一种基于URL请求时序的恶意代码检测方法,如图I所示,包括步骤
步骤S101、依照网络数据包的捕获时序对其做解析,提取客户端请求的URL和对应数据包时间。另外根据本发明应用场景的不同还可以记录客户端IP等。进一步需要对提取的URL做预处理,在数据包中提取域名和请求数据组成完整URL (参看RFC1738标准http://www. ietf. org/rfc/rfcl738. txt),在本发明中只需要“http://〈host>:〈port>/〈path>”这种格式,也就是只提取URL中“?”字符之前的域名和路径部分,对查询域的内容剔除。表I为步骤SlOl提取的所有待检测URL和数据包时间,每次执行步骤SlOl只解析一个数据包。如表I所示,另外在本发明中使用了 “example, com”域名来做示例(参看RFC2606标准 http://tools. ietf. org/rfc/rfc2606. txt)。 可. : RmE—"
I-0.S64075.a.exaiiipIe.com^S,fIjOsl1Asp^
2*1.605088^x.esample.com.
3-.1.709422-b.example.coiiv
4<.1.904381..a.eKample.com^.-PosiAsp-
5.2 J94J63.c. esa mple, coiivcliamiel/'oiiSale. lit ra-
6-J.730I7T.v.exainple.com*
7.3. S S 4 S16'.2. ex,ample. com. ■
8..4.109969-d. ex a m pie. cmwgo -Th
9- JOSSOi^a. ex ample, com*f3 /i mages .fIogo.gi f-
10.S.OSIlSi^a .exam pie, com-lioiiie/f s ^asej s-表I步骤SlOl提取的待检测URL与数据包时间
步骤S102、URL与特征数据库匹配,记录匹配成功的URL、时间和对应模型入缓存。进一步包括特征数据库的建立,特征数据库的建立依赖模型数据库的建立。特征数据库的内容为模型数据库中每个模型的第一条特征和对应的模型序号,如表2中第一条URL特征为“a. example, com/3/Post. Asp”。模型数据库中的模型具体包括基于URL请求时间顺序的序号、URL特征、间隔时间。
权利要求
1.一种基于URL请求时序的恶意代码检测方法,其特征在于,包括 步骤a、按照捕获时序对网络数据包进行解析,提取请求的URL和对应数据包时间; 步骤b、判断所述URL与模型数据库中模型的第一条特征是否匹配,如果匹配成功则将所述URL、对应数据包时间和所述模型记录到缓存中,标记所述模型中匹配成功的特征;所述模型数据库是通过捕获恶意代码产生的网络数据包进行解析,提取数据包中URL的请求时间顺序的序号、URL特征、间隔时间,所述时间间隔是指相邻两个URL请求时间的平均时间差扩大预设范围得到的时间值;否则回到步骤a按照捕获时序继续解析下一个网络数据包提取请求的URL ; 步骤C、如果所述缓存不为空,则按照时序将解析所述下一个网络数据包提取请求的URL与所述模型中时间顺序序号在先的未标记匹配成功的特征进行匹配,如果匹配成功则标记模型中的所述特征并将所述URL、对应数据包时间和所述模型更新记录到缓存中;否则回到步骤a按照捕获时序继续解析下一个网络数据包提取请求的URL ; 步骤d、如果所述模型中的URL特征全部标记成功,则判断存在恶意代码威胁。
2.如权利要求I所述的基于URL请求时序的恶意代码检测方法,其特征在于,步骤a还包括记录提出请求的客户端IP。
3.如权利要求I所述的基于URL请求时序的恶意代码检测方法,其特征在于,提取请求的URL中“?”字符之前的域名和路径部分。
4.如权利要求I所述的基于URL请求时序的恶意代码检测方法,其特征在于,步骤b中判断所述URL与模型数据库中模型的第一条特征是否匹配之强还包括 判断所述URL与特征数据库中的特征是否匹配,所述特征数据库的内容为模型数据库中每个模型的第一条特征和对应的模型编号; 如果匹配成功则将所述URL、对应数据包时间和所述模型编号对应的模型数据库中的模型记录到缓存中;所述模型数据库是通过捕获恶意代码产生的网络数据包进行解析,提取数据包中URL的请求时间顺序的序号、URL特征、间隔时间,所述时间间隔是指相邻两个URL请求时间的平均时间差扩大预设范围得到的时间值。
5.如权利要求I所述的基于URL请求时序的恶意代码检测方法,其特征在于,步骤c还包括 如果所述缓存不为空,则按照时序将解析所述下一个网络数据包提取请求的URL与所述模型中时间顺序序号在先的未标记匹配成功的特征进行匹配,如果匹配不成功,则判断所述匹配不成功的URL对应的数据包时间与所述模型中标记匹配成功的最后一个序号的URL特征的请求时间的差值是否小于所述模型中标记匹配成功的最后一个序号的URL特征的时间间隔,如果是则回到步骤a按照捕获时序继续解析下一个网络数据包提取请求的URL ;否则,清除所述缓存中的所述模型,回到步骤a按照捕获时序继续解析下一个网络数据包提取请求的URL。
6.一种基于URL请求时序的恶意代码检测系统,其特征在于,包括 解析单元,用于按照捕获时序对网络数据包进行解析,提取请求的URL和对应数据包时间; 检测单元,用于判断所述URL与模型数据库中模型的第一条特征是否匹配,如果匹配成功则将所述URL、对应数据包时间和所述模型记录到缓存中,标记所述模型中匹配成功的特征;所述模型数据库是通过捕获恶意代码产生的网络数据包进行解析,提取数据包中URL的请求时间顺序的序号、URL特征、间隔时间,所述时间间隔是指相邻两个URL请求时间的平均时间差扩大预设范围得到的时间值;否则按照捕获时序继续解析下一个网络数据包提取请求的URL ; 如果所述缓存不为空,则按照时序将解析所述下一个网络数据包提取请求的URL与所述模型中时间顺序序号在先的未标记匹配成功的特征进行匹配,如果匹配成功则标记模型中的所述特征并将所述URL、对应数据包时间和所述模型更新记录到缓存中;否则按照捕获时序继续解析下一个网络数据包提取请求的URL ; 输出单元,用于判断如果所述模型中的URL特征全部标记成功,则判断存在恶意代码威胁。
7.如权利要求6所述的基于URL请求时序的恶意代码检测系统,其特征在于,解析单元具体还用于记录提出请求的客户端IP。
8.如权利要求6所述的基于URL请求时序的恶意代码检测系统,其特征在于,提取请求的URL中“?”字符之前的域名和路径部分。
9.如权利要求6所述的基于URL请求时序的恶意代码检测系统,其特征在于,所述检测单元具体还用于判断所述URL与特征数据库中的特征是否匹配,所述特征数据库的内容为模型数据库中每个模型的第一条特征和对应的模型编号; 如果匹配成功则将所述URL、对应数据包时间和所述模型编号对应的模型数据库中的模型记录到缓存中;所述模型数据库是通过捕获恶意代码产生的网络数据包进行解析,提取数据包中URL的请求时间顺序的序号、URL特征、间隔时间,所述时间间隔是指相邻两个URL请求时间的平均时间差扩大预设范围得到的时间值。
10.如权利要求6所述的基于URL请求时序的恶意代码检测系统,其特征在于,所述检测单元具体还用于判断如果所述缓存不为空,则按照时序将解析所述下一个网络数据包提取请求的URL与所述模型中时间顺序序号在先的未标记匹配成功的特征进行匹配,如果匹配不成功,则判断所述匹配不成功的URL对应的数据包时间与所述模型中标记匹配成功的最后一个序号的URL特征的请求时间的差值是否小于所述模型中标记匹配成功的最后一个序号的URL特征的时间间隔,如果是则按照捕获时序继续解析下一个网络数据包提取请求的URL ;否则,清除所述缓存中的所述模型,按照捕获时序继续解析下一个网络数据包提取请求的URL。
全文摘要
本发明公开了一种基于URL请求时序的恶意代码检测方法和系统。所述方法包括依照网络数据包的捕获时序对其做解析,提取客户端请求的URL和对应数据包时间。另外根据本发明应用场景的不同还可以记录客户端IP等;URL与特征数据库匹配,记录匹配成功的URL、时间和对应模型入缓存;后续包中的URL与缓存中的模型匹配;当模型中的所有特征都匹配成功则成功检出,输出相应结果。本发明还提供了一种基于URL请求时序的恶意代码检测系统。本发明的方法和系统有效地提高了对同族恶意代码的检出率和准确率。
文档编号H04L12/26GK102801698SQ20111043104
公开日2012年11月28日 申请日期2011年12月20日 优先权日2011年12月20日
发明者胡星儒, 李柏松 申请人:北京安天电子设备有限公司