恶意url的形式化检测方法和系统的制作方法

文档序号:7971049阅读:130来源:国知局
专利名称:恶意url的形式化检测方法和系统的制作方法
技术领域
本发明涉及计算机网络安全技术领域,尤其涉及一种恶意URL的形式化检测方法和系统。
背景技术
根据RFC 规范,URL (Uniform Resource Locator)的语法格式如下“scheme://username:password@domain:port/path query_string#fragment_id,,(参看RFC1738 标准http://www. ietf. org/rfc/rfcl738. txt),所有的URL都必须遵循这条规则,其中协议(scheme)部分如果省略默认就是HTTP协议,用户名密码(username:password)部分是可以 省略的,在HTTP协议中端口号(port)默认是80,这项也是可以省略的,其中fragment_id部分在检测是否为恶意URL中是没有实际价值。根据URL格式的如上特征,可以认为URL的格式存在多变性,多条不完全相同的URL可能指向相同的链接地址,例如www. xxxx. com和http://www. xxxx. com:80是同一个链接地址,在ftp协议的URL链接中,可以有多对相同访问权限的用户名和密码,这样即使用户名密码不同的ftp连接中,指向的访问文件也是一致的,例如ftp://username:password@ftp. xxx. xxx/file,替换其他有访问权限的用户名和密码不会影响该URL指向的文件。目前恶意URL的检测方式都是基于字符串匹配的方法,安全厂商收集大量恶意URL,将其保存在特征库中,在URL检测时,仅仅进行字符串的比较,目前的这种方式可以解决大部分的恶意URL检测问题,但是由于前面提到的URL格式的多变性,一条恶意URL —个简单的变化,在没有改变其恶意链接本质的情况下,其内容已经和待匹配的病毒库中的特征已经不完全一致了,这样就造成了杀毒软件的漏报,许多黑客利用了这样的漏洞,经常变换其挂马网站的URL地址的格式,用来逃避杀软的拦截,有些恶意代码在通过网络传播自身时,往往会修改其挂马URL地址中的query部分内的值,而且其值有可能是随机产生的,通过这样的办法确保其恶意URL链接有更长的时效性。

发明内容
本发明针对URL格式多变性的特点,自定义一套形式化规则将一条URL字符串转换成统一的待检测形式数据,用来和特征库进行匹配,判定该URL是否为恶意链接。形式化的规则的出发点就是消除掉URL字符串格式的多变性,抛弃对检测无实际意义的冗余信息,并补充URL字符串中不存在的默认信息,形成格式为“scheme://domain:port/path”的待检测URL字符串。为了解决上述问题,本发明提出了一种恶意URL的形式化检测方法,包括
步骤a、根据RFC规范,按照URL语法结构将待检测URL拆分为语法元素字符串;
步骤b、从拆分得到的字符串中提取指定的字符串,包括协议、域名、端口号、和路径; 步骤c、判断协议字符串和端口号字符串是否存在,对不存在的字符串部分进行补全处
理;步骤d、将补全处理后得到的字符串重新排序得到新URL,计算新URL的哈希值,作为与待检测URL对应的哈希值;
步骤e、遍历恶意URL特征库,用恶意URL特征库中的特征数据与待检测URL对应的哈希值进行对比检测。进一步的,对不存在的协议字符串或者不存在的端口号字符串进行补全处理包括步骤
判断协议字符串是否存在,如果不存在则补充HTTP作为默认协议;
判断端口号字符串是否存在,如果不存在则根据所述协议字符串中的协议类型补充默认端口号。进一步的,根据所述协议字符串中的协议类型补充默认端口包括如果所述协议类型为HTTP协议则补充80作为默认端口号;如果所述协议类型为FTP协议则补充21作为默认端口号;其他协议统一处理,不用补充端口号,添加空字符串作为端口号。所述恶意URL特征库是预先将反病毒厂商捕获的每个恶意URL作为待检测URL,经过所述的步骤a至步骤d得到与每个恶意URL对应的哈希值组成的哈希值列表。本发明针对恶意URL链接地址字符串格式存在多变性的特点,进行字符串格式的规则化处理,抛弃了多变的并且对检测无意义的部分,补充了被默认省略的部分,组成了含有足够信息量的待检测数据。规则化的URL地址的字符串格式为“ scheme: //domain: port/path”,保留了协议,域名,端口,和路径,这些数据完全可以确定一条URL所指向的地址信息,所以对上述格式的数据进行检测和对源URL数据进行检测应该是等效的。对于形成格式为“scheme://domain:port/path”的待检测URL字符串,其中协议“scheme”部分如果被省略,就加上默认的http协议,端口 “port”部分如果被省略,如果是HTTP协议就加上默认的80,如果是FTP协议就加上21,删除URL的RFC规范中username, password,query_string, fragment_id部分,到此待检测的URL字符串就完成了,例如URL链接地址为“www. test, com/main/index, html”,经过上述规则的形式化后转变为 “http://www. test,com:80/main/index, html”。为了方便检测和控制特征库的规模,还要将待检测的URL字符串计算哈希后作为检测数据。相应的,本发明还提供了一种恶意URL的形式化检测系统,包括
拆分单元,用于根据RFC规范,按照URL语法结构将待检测URL拆分为语法元素字符
串;
提取单元,用于从拆分得到的字符串中提取指定的字符串,包括协议、域名、端口号、和路径;
整理单元,用于判断协议字符串和端口号字符串是否存在,对不存在的字符串部分进行补全处理;
计算单元,用于将补全处理后得到的字符串重新排序得到新URL,计算新URL的哈希值,作为与待检测URL对应的哈希值
匹配单元,用于遍历恶意URL特征库,用恶意URL特征库中的特征数据与待检测URL对应的哈希值进行对比检测。进一步的,整理单元具体还用于
判断协议字符串是否存在,如果不存在则补充HTTP作为默认协议;判断端口号字符串是否存在,如果不存在则根据所述协议字符串中的协议类型补充默认端口号。进一步的,根据所述协议字符串中的协议类型补充默认端口具体包括如果所述协议类型为HTTP协议则补充80作为默认端口号;如果所述协议类型为FTP协议则补充21作为默认端口号;其他协议统一处理,不用补充端口号,添加空字符串作为端口号。所述恶意URL特征库是预先将反病毒厂商捕获的每个恶意URL作为待检测URL,经过所述的拆分单元、提取单元、整理单元、计算单元之后得到与每个恶意URL对应的哈希值组成的哈希值列表。
本发明的有益效果是
本发明提出的恶意URL的检测办法可以有效对抗URL格式的多变性,相对传统的URL检测方法可以对经常变化格式的恶意URL有更高的检出率,由于下载者类木马经常自动变换下载恶意代码的URL地址格式,或者在下载恶意代码URL的Query域中添加没有实际意义的随机值来逃避杀毒软件的拦截,本检测方法对这类病毒木马有非常好的检出率。本检测方法可以采用单条特征对应多条恶意URL的格式变体,所以该检测方法所需要的病毒特征库体积更小,更加节省内存和磁盘空间。


为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明恶意URL的形式化检测方法流程 图2为本发明恶意URL的形式化检测方法具体实施例流程 图3为本发明恶意URL的形式化检测系统框图。
具体实施例方式为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。本发明针对恶意URL链接地址字符串格式存在多变性的特点,进行字符串格式的规则化处理,抛弃了多变的并且对检测无意义的部分,补充了被默认省略的部分,组成了含有足够信息量的待检测数据。规则化的URL地址的字符串格式为“ scheme: //domain: port/path”,保留了协议,域名,端口,和路径,这些数据完全可以确定一条URL所指向的地址信息,所以对上述格式的数据进行检测和对源URL数据进行检测应该是等效的。如图I所示,是本发明恶意URL的形式化检测方法流程图,包括步骤
5101、根据RFC规范,按照URL语法结构将待检测URL拆分为语法元素字符串;
5102、从拆分得到的字符串中提取指定的字符串,包括协议、域名、端口号、和路径;
5103、判断协议字符串和端口号字符串是否存在,对不存在的字符串部分进行补全处
理;其中,对不存在的协议字符串或者不存在的端口号字符串进行补全处理包括步骤 判断协议字符串是否存在,如果不存在则补充HTTP作为默认协议;
判断端口号字符串是否存在,如果不存在则根据所述协议字符串中的协议类型补充默认端口号。根据所述协议字符串中的协议类型补充默认端口包括如果所述协议类型为HTTP协议则补充80作为默认端口号;如果所述协议类型为FTP协议则补充21作为默认端口号;其他协议统一处理,不用补充端口号,添加空字符串作为端口号。S104、将补全处理后得到的字符串重新排序得到新URL,计算新URL的哈希值,作为与待检测URL对应的哈希值; S105、遍历恶意URL特征库,用恶意URL特征库中的特征数据与待检测URL对应的哈希值进行对比检测。所述恶意URL特征库是预先将反病毒厂商捕获的每个恶意URL作为待检测URL,经过所述的步骤SlOl至步骤S104得到与每个恶意URL对应的哈希值组成的哈希值列表。下面给出本发明恶意URL的形式化检测方法的具体实施例,如图2所示,包括步骤
S201、拆分URL字符串为数个语法元素域块的字符串。自行编写程序代码,根据RFC规范将待检测的URL字符串拆解为数个字符串,分别得到(scheme)协议部分,(username:password)用户名密码部分,(domain)域名或IP地址部分,(port)端口部分,(path)路径部分,(query_string)查询字符串部分,和(fragment_id)片段部分。S202、提取其中的协议,域名,端口,和路径部分。S203、判断是否存在协议部分,如果不存在进行步骤S204,否则进行步骤S205 ; S204、补充HTTP作为默认协议。S205、判断是否存在端口部分,如果不存在进行步骤S206,否则进行步骤S211 ;
5206、判断协议类型是否为HTTP协议,如果是进行步骤S207,否则进行步骤S208;
5207、补充80作为默认端口号;
5208、判断协议类型是否为FTP协议,如果是进行步骤S209,否则进行步骤S210;
5209、补充21作为默认端口号;
5210、其他协议统一处理,添加空字符串作为端口号,然后进行步骤S211;
5211、重新组合各个URL字符串作为待检测的URL字符串;
按照“ scheme: //domain: port/path ”格式重新组合URL字符串。S212、计算上步得到的待检测URL字符串的哈希值,例如可以是MD5值。S213、遍历恶意URL特征库,匹配上步得到的哈希值,如MD5值。恶意URL特征库是反病毒厂商捕获的恶意URL链接地址,经过上面同样的算法得到的哈希值列表。下面介绍本发明提供的恶意URL的形式化检测系统,如图3所示,包括
拆分单元301,用于根据RFC规范,按照URL语法结构将待检测URL拆分为语法元素字符串;
提取单元302,用于从拆分得到的字符串中提取指定的字符串,包括协议、域名、端口号、和路径;
整理单元303,用于判断协议字符串和端口号字符串是否存在,对不存在的字符串部分进行补全处理;
计算单元304,用于将补全处理后得到的字符串重新排序得到新URL,计算新URL的哈希值,作为与待检测URL对应的哈希值
匹配单元305,用于遍历恶意URL特征库,用恶意URL特征库中的特征数据与待检测URL对应的哈希值进行对比检测。整理单元303具体还用于
判断协议字符串是否存在,如果不存在则补充HTTP作为默认协议; 判断端口号字符串是否存在,如果不存在则根据所述协议字符串中的协议类型补充默认端口号。其中,根据所述协议字符串中的协议类型补充默认端口具体包括如果所述协议类型为HTTP协议则补充80作为默认端口号;如果所述协议类型为FTP协议则补充21作为默认端口号;其他协议统一处理,添加空字符串作为端口号。所述系统还包括恶意URL特征库300,是预先将反病毒厂商捕获的每个恶意URL作为待检测URL,经过所述的拆分单元301、提取单元302、整理单元303、计算单元304之后得到与每个恶意URL对应的哈希值组成的哈希值列表。本说明书中方法的实施例采用递进的方式描述,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
权利要求
1.恶意URL的形式化检测方法,其特征在于,包括 步骤a、根据RFC规范,按照URL语法结构将待检测URL拆分为语法元素字符串; 步骤b、从拆分得到的字符串中提取指定的字符串,包括协议、域名、端口号、和路径; 步骤c、判断协议字符串和端口号字符串是否存在,对不存在的字符串部分进行补全处理; 步骤d、将补全处理后得到的字符串重新排序得到新URL,计算新URL的哈希值,作为与待检测URL对应的哈希值; 步骤e、遍历恶意URL特征库,用恶意URL特征库中的特征数据与待检测URL对应的哈希值进行对比检测。
2.如权利要求I所述的恶意URL的形式化检测方法,其特征在于,对不存在的协议字符串或者不存在的端口号字符串进行补全处理包括步骤 判断协议字符串是否存在,如果不存在则补充HTTP作为默认协议; 判断端口号字符串是否存在,如果不存在则根据所述协议字符串中的协议类型补充默认端口号。
3.如权利要求2所述的恶意URL的形式化检测方法,其特征在于,根据所述协议字符串中的协议类型补充默认端口包括如果所述协议类型为HTTP协议则补充80作为默认端口号;如果所述协议类型为FTP协议则补充21作为默认端口号;其他协议统一处理,添加空字符串作为端口号。
4.如权利要求I所述的恶意URL的形式化检测方法,其特征在于,所述恶意URL特征库是预先将反病毒厂商捕获的每个恶意URL作为待检测URL,经过所述的步骤a至步骤d得到与每个恶意URL对应的哈希值组成的哈希值列表。
5.恶意URL的形式化检测系统,其特征在于,包括 拆分单元,用于根据RFC规范,按照URL语法结构将待检测URL拆分为语法元素字符串; 提取单元,用于从拆分得到的字符串中提取指定的字符串,包括协议、域名、端口号、和路径; 整理单元,用于判断协议字符串和端口号字符串是否存在,对不存在的字符串部分进行补全处理; 计算单元,用于将补全处理后得到的字符串重新排序得到新URL,计算新URL的哈希值,作为与待检测URL对应的哈希值 匹配单元,用于遍历恶意URL特征库,用恶意URL特征库中的特征数据与待检测URL对应的哈希值进行对比检测。
6.如权利要求5所述的恶意URL的形式化检测系统,其特征在于,整理单元具体还用于 判断协议字符串是否存在,如果不存在则补充HTTP作为默认协议; 判断端口号字符串是否存在,如果不存在则根据所述协议字符串中的协议类型补充默认端口号。
7.如权利要求6所述的恶意URL的形式化检测系统,其特征在于,其特征在于,根据所述协议字符串中的协议类型补充默认端口具体包括如果所述协议类型为HTTP协议则补充80作为默认端口号;如果所述协议类型为FTP协议则补充21作为默认端口号;其他协议统一处理,添加空字符串作为端口号。
8.如权利要求5所述的恶意URL的形式化检测系统,其特征在于,所述恶意URL特征库是预先将反病毒厂商捕获的每个恶意URL作为待检测URL,经过所述的拆分单元、提取单元、整理单元、计算单元之后得到与每个恶意URL对应的哈希值组成的哈希值列表。
全文摘要
本发明公开了一种恶意URL的形式化检测方法,包括根据RFC规范,按照URL语法结构将待检测URL拆分为语法元素字符串;从拆分得到的字符串中提取指定的字符串;补全处理不存在的字符串;将补全处理后得到的字符串重新排序得到新URL,计算新URL的哈希值;遍历恶意URL特征库,用恶意URL特征库中的特征数据与待检测URL的哈希值进行对比检测。本发明还公开了一种恶意URL的形式化检测系统。本发明提出的技术方案可以有效对抗URL格式的多变性,相对传统的URL检测方法可以对经常变化格式的恶意URL有更高的检出率,也可以采用单条特征对应多条恶意URL的格式变体,所以该检测方法所需要的病毒特征库体积更小,更加节省内存和磁盘空间。
文档编号H04L12/26GK102843271SQ20111035801
公开日2012年12月26日 申请日期2011年11月14日 优先权日2011年11月14日
发明者苏培旺, 李石磊, 张栗伟 申请人:哈尔滨安天科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1