基于统计特征的网页恶意脚本检测方法

文档序号:7972415阅读:162来源:国知局
专利名称:基于统计特征的网页恶意脚本检测方法
技术领域
本发明专利属于计算机安全领域,主要利用恶意脚本中的统计特征快速、准确地检测网页中是否含有恶意脚本,从而实现对网络中的有害网页进行快速检测,并预先阻拦恶意脚本的运行,为上网用户提供安全的网络环境。
背景技术
计算机病毒、木马、间谍软件和恶意代码是近几年来计算机网络最主要的安全威胁。在计算机病毒、木马、间谍软件和恶意代码的传播途径中除垃圾邮件外,还有一条重要的途径就是利用构造特殊的网页将病毒、木马传播到访问该网页的用户计算机中。这种网页主要利用操作系统、浏览器、插件等的各种漏洞将可执行代码传播到用户计算机上进行执行,或利用系统中的解析器、控件的执行权限将网页中的恶意代码运行。由于这些特殊网页的配置和编码较为复杂,并且为了能够躲避杀毒软件查杀,大多由人工配置并且采用第三方软件进行加密变形处理,因而成为黑客用来传播木马程序最为有效的方法。
网页木马即利用网页代码来传播的木马,本质在于网页,而非木马本身。这些特殊网页通常是将木马程序的执行代码编码成为网页的组成部分,并配合特殊网页代码来激活木马程序执行,因此在黑客群体和杀毒软件公司、网络安全防御单位将其称为网页木马。
2004年6月末,杀毒软件公司从病毒的发作数量、危害程度综合考虑,总结并发布了2004年十大病毒及病毒发展趋势报告。报告结果显示间谍软件、QQ木马和网络游戏木马等网页木马成为热点。虽然木马类病毒在传播数量上还不及网络蠕虫,但其越来越明显的盗窃特性,会给受害用户造成更大更直接的损失。
2005年8月3日中国专业反病毒厂商之一日月光华软件公司官方网站(中国杀毒网http://www.viruschina.com/)遭到黑客袭击,网站被篡改,并携带病毒,经过反病毒厂商测试该网站共有三个病毒Exploit.HTML.mht.bb、Backdoor.PcShare.5.r和trojan.PSW.LMIR.U,网民浏览后电脑可能被植入木马,而被黑客控制。这些病毒和木马程序的传播靠的就是网页木马。
在对网页木马的检测中杀毒软件公司积累了大量的经验和特征码,然而系统漏洞、浏览器漏洞和第三方插件的漏洞层出不穷,而且入侵者也在不断地对网页木马进行更新升级,并且采用加密和插入干扰字符的方法来躲避检测。用户要躲避网页木马的攻击,必须不断的安装补丁程序或者升级系统。但是每年每月甚至每一天都会有新的漏洞出现,就在2005年7月,国际报道美国微软称黑客正在疯狂地试图利用Windows中的两处严重安全缺陷。其中的一个缺陷影响″色彩管理模块″—处理颜色的一个Windows组件;另一个缺陷与微软″Java虚拟机″的JView Profiler部分有关。微软称,该缺陷可以被用于控制用户的个人电脑。在对漏洞信息的获取上用户和黑客是不对等的,黑客会最先知道和利用漏洞,而用户不可能得到及时升级,这些用户的计算机将长期受到黑客的控制。因此切断网络木马的传播途径是防范木马最有效的方法,网页木马检测最主要的是要能检测出隐藏在网页代码中的漏洞利用代码。随着新的漏洞的出现就会有新的网页木马产生,所以检测、查杀网页木马将是个长期、艰巨的任务。
传统的杀毒技术对病毒、木马和恶意网页的检测主要靠特征码匹配检测的方法,这种方法对特征固定不变传播的病毒程序十分有效但对经过加密、插入干扰处理的网页脚本则没有效果,对于新出的漏洞利用网页脚本和新出的病毒、木马程序的检测就更是无能为力。本发明针对网页木马的构造原理和本质特征来进行检测,能有效地检测网页木马。

发明内容
本发明的目的是查找出隐藏的恶意网页代码、净化网络环境、保护网络用户而提出的一种统计特征的网页恶意脚本的检测方法,从而可快速判断恶意脚本的存在,对其进行预先阻拦。
本发明的基本原理是利用恶意网页代码必定经过加密处理,而加密处理后的网页中的正常字符和非正常字符的比例有着明显的差异,所以利用网页的字符统计特征来检测恶意脚本。本发明提出的基于统计特征的网页恶意脚本检测方法,包括以下几个步骤(1).清除网页中的干扰语句。第一步是清除网页中的00码。所谓00码是指ASCII值为00的字符,在网页中加入00码并不影响网页的运行,但会影响对恶意脚本的检测,所以在统计工作进行之前,需要将网页中的00码清除掉。第二步是清除网页中的注释语句。网页中的注释语句是以′*/′开头以′*/′结尾,或以′//′开头的语句,它是对网页中某段代码的说明,在网页运行时不起任何作用,但会影响对非正常字符的统计,所以需要将网页中的注释语句清除掉。第三步是清除网页中多余的空格和横向跳格(Tab)以及多余的回车和换行。
(2).统计网页中的非正常字符。未经过加密处理的正常网页中的字符除了正常的断句的标点符号以及空格外,多数字符都是英文字母,而经过加密处理的恶意脚本中的字符多为一些难以识别的乱码,因此,可以通过统计网页中的非正常字符来判断网页中是否有恶意脚本。第一步需要获取网页中的javascript脚本文件。第二步是对网页中的非正常字符进行统计。根据对大量网页的分析,总结出的异常字符大致有%(%所占比例会占到脚本文件的20%左右,该比例适用于Unescape加密。)、#、$、%、&、*、+、,、(、)、^、~(适用于encode加密,所占比例为10%左右。)。对统计结果进行分析,当异常字符所占比例大于特定比例(例如%所占比例大于20%,即可判断该脚本经过Unescape加密),就可以判定该脚本经过加密处理,可能为恶意脚本。
(3).统计字符间跨度。所谓字符间跨度是指相邻字符的ASCII值之差的绝对值与字符权重的乘积。未经过加密处理的正常网页内容是可以理解的有正常语法、词法的语言,而经过加密处理后的恶意网页却是无法正常理解的语言,因此可以对字符间的跨度进行统计,该方法正是利用了正常语法、词法的特点对网页内容进行分析。第一步需要设定符合语法词法习惯的正常字符跨度。第二步需要判断网页中是否包含脚本文件。如果网页中包含脚本文件的话,就需要对脚本进行提取,并对脚本进行统计;如果不包含脚本文件的话,则需要对整个网页内容进行统计。第三步为不同的字符设置不同的权重。将英文字母的权重设为1,非英文字母的权重设为2。第四步开始对字符间跨度进行统计。在得到每两个字符间的跨度之后,就可以统计出字符间的平均跨度。第五步将求出的字符间平均跨度与所设定的正常字符间跨度26相比较,若超出了正常跨度,就可以判断该网页经过加密处理,可能为恶意脚本。
(4).创建脚本字典并匹配网页,通过收集大量正常script脚本创建字典,再与新的网页进行匹配统计。
(5).设置单个方法权重,将统计网页中的非正常字符的权重设为3,统计字符间跨度的权重设为5,匹配脚本字典的权重设为2。
(6).得出是否为恶意网页的总置信度。首先设定置信度5为判断网页为正常网页或恶意网页的临界值。若统计非正常字符的结果判断网页可能为恶意网页,则置信度为3,统计字符间跨度判断网页可能为恶意网页的置信度为5,匹配脚本字典判断网页可能为恶意网页的置信度为2,只有当这个置信度之和等于或超出5时,即总置信度超出或等于5时,就可以确定该网页为恶意网页。
本发明提出的利用网页的字符统计特征来检测恶意脚本的方法,具有以下优点(1)本发明提出的基于统计特征的网页恶意脚本检测方法,可以检测出杀毒软件不能检测出的经过加密处理的恶意脚本。
(2)本发明提出的基于统计特征的网页恶意脚本检测方法,具有简单、易行的特点,非常适合用于网络安全机构对网络服务器上的网页木马进行检测。


图1是基于统计特征的网页恶意脚本检测方法的总体流程图。
图2是清除网页中的干扰语句流程图。
图3是获取脚本流程图。
图4是统计非正常字符流程图。
图5是字符跨度统计流程图。
图6是创建脚本字典及匹配流程图。
具体实施例方式
本发明提出的基于统计特征的网页恶意脚本检测方法,其总体流程如图1所示。首先需要清除网页中的干扰语句。第一步是清除网页中的00码。所谓00码是指ASCII值为00的字符,在网页中加入00码并不影响网页的运行,但会影响对恶意脚本的检测,所以在统计工作进行之前,需要将网页中的00码清除掉。第二步是清除网页中的注释语句。网页中的注释语句是以’*/’开头以’*/’结尾,或以’//’开头的语句,它是对网页中某段代码的说明,在网页运行时不起任何作用,但会影响对非正常字符的统计,所以需要将网页中的注释语句清除掉。第三步是清除网页中多余的空格和横向跳格(Tab)以及多余的回车和换行。清除网页中的干扰语句的流程如图2所示。
在清除掉网页中的干扰语句后就可以对网页中的非正常字符进行统计了。未经过加密处理的正常网页中的字符除了正常的断句的标点符号以及空格外,多数字符都是英文字母,而经过加密处理的恶意脚本中的字符多为一些难以识别的乱码,因此,可以通过统计网页中的非正常字符来判断网页中是否有恶意脚本。第一步需要获取网页中的javascript脚本文件。为什么要取得网页中的脚本文件呢?这是因为网页加密方法绝大多数是作用于网页中的脚本文件的,所以要将网页中的脚本截取出来进行处理。先在网页中找到script开始标志″<SCRIPT″,以及script结束标志″</SCRIPT>″,然后取得script开始标志和结束标志之间的内容,即javascript脚本内容。取得网页中的javascript脚本文件的流程如图3所示。第二步是对网页中的非正常字符进行统计。根据对大量网页的分析,总结出的异常字符大致有%(%所占比例会占到脚本文件的20%左右,该比例适用于Unescape加密。)、#、$、%、&、*、+、,、(、)、^、~(适用于encode加密,所占比例为10%左右。)。对统计结果进行分析,当异常字符所占比例大于特定比例(例如%所占比例大于20%,即可判断该脚本经过Unescape加密),就可以判定该脚本经过加密处理,可能为恶意脚本。对网页中的非正常字符进行统计的流程如图4所示。
对网页中的字符间跨度进行统计。。所谓字符间跨度是指相邻字符的ASCII值之差的绝对值与字符权重的乘积。未经过加密处理的正常网页内容是可以理解的有正常语法、词法的语言,而经过加密处理后的恶意网页却是无法正常理解的语言,因此可以对字符间的跨度进行统计,该方法正是利用了正常语法、词法的特点对网页内容进行分析。第一步需要设定符合语法词法习惯的正常字符跨度。根据对正常未加密网页的分析,首先正常字符的ASCII值是在65-90以及97-122之间,因此正常字符间的跨度应该设为26。在确定了正常字符间跨度之后,第二步需要判断网页中是否包含脚本文件。如果网页中包含脚本文件的话,就需要对脚本进行提取,并对脚本进行统计;如果不包含脚本文件的话,则需要对整个网页内容进行统计。第三步为不同的字符设置不同的权重。将英文字母的权重设为1,非英文字母的权重设为2。第四步开始对字符间跨度进行统计。首先得到所统计网页或脚本的字符总数。然后判断每个字符是否为英文字母,并求出字符间的ASCII差值,如果相邻两字符中至少有一个为非英文字母,则这两个字符间的跨度为字符间ASCII差值乘以非英文字母的权重2;如果相邻两字符均为英文字母,则这两个字符间的跨度为字符间ASCII差值乘以英文字母的权重1。在得到每两个字符间的跨度之后,就可以统计出字符间的平均跨度,即相邻两字符间跨度之和与总字符数相除。第五步将求出的字符间平均跨度与所设定的正常字符间跨度26相比较,若超出了正常跨度,就可以判断该网页经过加密处理,可能为恶意脚本。对字符间跨度进行统计的流程如图5所示。
创建脚本字典并匹配网页。通过收集大量正常script脚本创建字典,再与新的网页进行匹配统计。脚本字典匹配方法是通过收集大量正常javascript脚本,然后对这些正常脚本进行分析,将正常脚本中所使用到的单词放入脚本字典中。脚本字典创建完成后,如需要检测某一未知网页时,只需要将该网页脚本的单词与脚本字典对照匹配即可,如果与脚本字典中所收集的单词不相符的词语的出现比例达到或超过10%,则可以判断所检测的网页可能为恶意脚本加密网页。创建脚本字典及匹配流程如图6所示。
接下来需要对以上三种方法设置单个方法的权重。因为在统计网页中的非正常字符、统计字符间跨度以及匹配脚本字典这三中方法中,每种方法对恶意脚本的检测成功率有所不同,因此需要为这三种方法设置权重。将统计网页中的非正常字符的权重设为3,统计字符间跨度的权重设为5,匹配脚本字典的权重设为2。
最后就可以得出被检测网页是否为恶意网页的总置信度。首先设定置信度5为判断网页为正常网页或恶意网页的临界值。若统计非正常字符的结果判断网页可能为恶意网页,则置信度为3,统计字符间跨度判断网页可能为恶意网页的置信度为5,匹配脚本字典判断网页可能为恶意网页的置信度为2,只有当这个置信度之和等于或超出5时,即总置信度超出或等于5时,就可以确定该网页为恶意网页。
权利要求
1.一种基于统计特征的网页恶意脚本检测方法,其特征在于利用恶意脚本中的统计特征快速、准确地检测网页中是否含有恶意脚本,从而实现对网络中的有害网页进行快速检测,并预先阻拦恶意脚本的运行,为上网用户提供安全的网络环境。其处理的具体方法是a.清除网页中的干扰语句以便于统计;b.统计网页中的非正常字符的出现概率;c.对相邻字符间的跨度进行统计;d.创建脚本字典并统计网页与脚本字典的匹配结果;e.为以上三种统计方法设置单个方法的权重;f.得出待检测网页是否含有恶意脚本的总置信度;g.置信度之和等于或超出5时,就可以确定该网页为含有恶意脚本的网页。
2.如权利要求1所述的一种统计特征的网页恶意脚本检测方法,其特征在于包括清除网页中的00码,清除网页中的注释语句,清除网页中多余的空格和横向跳格(Tab)以及多余的回车和换行。
3.如权利要求1所述的一种基于统计特征的网页恶意脚本检测方法,其特征在于统计网页中的非正常字符的出现概率中,第一步需要获取网页中的javascript脚本文件;第二步是对网页中的非正常字符进行统计;根据对大量网页的分析,总结出的异常字符大致有%(%所占比例会占到脚本文件的20%左右,该比例适用于Unescape加密)、#、$、%、&、*、+、,、(、)、^、~(适用于encode加密,所占比例为10%左右);对统计结果进行分析,当异常字符所占比例大于特定比例(例如%所占比例大于20%,即可判断该脚本经过Unescape加密),就可以判定该脚本经过加密处理,可能为恶意脚本。
4.如权利要求1所述的一种基于统计特征的网页恶意脚本检测方法,其特征在于对相邻字符间的跨度进行统计,所谓字符间跨度是指相邻字符的ASCII值之差的绝对值与字符权重的乘积,第一步需要设定符合语法词法习惯的正常字符跨度为26;第二步需要判断网页中是否包含脚本文件;如果网页中包含脚本文件的话,就需要对脚本进行提取,并对脚本进行统计;如果不包含脚本文件的话,则需要对整个网页内容进行统计;第三步为不同的字符设置不同的权重,将英文字母的权重设为1,非英文字母的权重设为2;第四步开始对字符间跨度进行统计,在得到每两个字符间的跨度之后,就可以统计出字符间的平均跨度;第五步将求出的字符间平均跨度与所设定的正常字符间跨度26相比较,若超出了正常跨度,就可以判断该网页经过加密处理,可能为恶意脚本。
5.如权利要求1所述的一种基于统计特征的网页恶意脚本检测方法,其特征在于创建脚本字典并统计网页与脚本字典的匹配结果通过收集大量正常script脚本创建字典,再与新的网页进行匹配统计;脚本字典匹配方法是通过收集大量正常javasript脚本,然后对这些正常脚本进行分析,将正常脚本中所使用到的单词放入脚本字典中;脚本字典创建完成后,如需要检测某一未知网页时,只需要将该网页脚本的单词与脚本字典对照匹配即可,如果与脚本字典中所收集的单词不相符的词语的出现比例达到或超过10%,则可以判断所检测的网页可能为恶意脚本加密网页。
6.如权利要求1所述的一种基于统计特征的网页恶意脚本检测方法,其特征在于为权利要求1中的b,c,d三种方法设置权重并得出待检测网页是否含有恶意脚本的总置信度,将统计网页中的非正常字符的权重设为3,统计字符间跨度的权重设为5,匹配脚本字典的权重设为2;首先设定置信度5为判断网页为正常网页或恶意网页的临界值;若统计非正常字符的结果判断网页可能为恶意网页,则置信度为3,统计字符间跨度判断网页可能为恶意网页的置信度为5,匹配脚本字典判断网页可能为恶意网页的置信度为2,只有当这个置信度之和等于或超出5时,即总置信度超出或等于5时,就可以确定该网页为恶意网页。
全文摘要
本发明属于计算机安全领域,主要利用恶意脚本中的统计特征快速、准确地检测网页中是否含有恶意脚本。本发明的基本原理是利用恶意网页代码必定经过处理,而处理后的网页中的正常字符和非正常字符的比例有着明显的差异,所以利用网页的字符统计特征(包括字符频率统计、相邻字符跨度值统计、与字典匹配度统计)来检测恶意脚本。本发明用于检测网页中的恶意脚本,从而实现对网络中的有害网页进行快速检测,并预先阻拦恶意脚本的运行,为上网用户提供安全的网络环境。
文档编号H04L29/06GK1924866SQ20061015253
公开日2007年3月7日 申请日期2006年9月28日 优先权日2006年9月28日
发明者陶然, 李志勇, 张昊, 王越, 杜华 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1