一种基于脚本特征的网页聚类方法

文档序号:6363855阅读:156来源:国知局
专利名称:一种基于脚本特征的网页聚类方法
技术领域
本发明涉及网页聚类,尤其涉及一种基于网页包含的脚本程序片段的特征进行相似页 面聚类的方法,属于计算机安全技术领域。技术背景目前互联网已经成了传播恶意程序的重要途径。近两年来,木马病毒已经成为恶意代 码发展的主要方向。通过在网页上挂马,利用浏览器及其插件的漏洞,获得执行权限,进 而劫持浏览器,植入木马病毒,是当前木马病毒传播的主要途径。目前检测网页挂马的检测方法很多,其中包括静态和动态的方法,但要准确的判断网 页中是否存在挂马行为,需要针对网页进行大量的运算。但目前互联上网页数量呈爆*'卜工 增长的趋势,根据中国互联网络信息中心(CNNIC)2008年1月发布的《中国互联网络发展 状况统计报告》,我国互联网资源正在迅猛增长,域名、网站、网页的年增长率都超过60%, 2008年统计的域名总数为1193万个,网站数量达150万个,网页数量达84.7亿个,其中 大部分论坛的网页数量过万,部分大规模网站如新浪网等,其页面数量已超过千万帧。互 联网上如此海量的页面,对网马检测工作来说,是个巨大的挑战。在实际挂马场景中,攻击者常会劫持同一个网站的一大批网页,如果要分析一个网站 的全部页面,分析量会很大,但如果随便选择某站点的部分URL分析,却又可能会造成 遗漏。考虑到挂马网页主要利用系统或浏览器的漏洞,或下载可执行文件等,除了直接用 object和xml漏洞攻击以外,大部分网页挂马,都需要利用到script脚本的功能来协助计算 或运行,所以,网页中脚本语言片段的存在是网页挂马的关键。如果能找出这些脚本片段 之间的相似性,则可以预先对大批网页进行相似性聚类,对聚类后的同一类网页部分抽样 做详细的检测,可以节省大量检测资源。发明内容本发明的目的在于提出一种基于脚本特征的网页聚类方法。本方法根据网页中的脚本片段进行标识,将相似的网页聚为一类。该方法可应用到挂 马网页检测分析的预处理过程,用于将同一网站页面分类,对于同一集合的网页,只需选择一部分抽样进行检测,从而可以节省大量检测资源。本发明的主要思想是将网页中script标签内的代码片断提取出来,将页面的控制部分与 内容部分分离,对于具有相同控制部分的页面,可认为网页具有相同的动态行为,从向,f 以聚为一类。对于根据本发明方法所聚类到同一类的网页,只需抽样检测便可确定这一类 网页的动态特性,如是否被挂马等。为了便于说明,本发明定义如下概念1. 脚本片段(scriptfrag):网页代码中包含在同一对script标签内的脚本代码段,每个 代码段定义为一个脚本片段;2. 脚本片段标识(script frag id):对脚本片段作规格化处理后,进行hash计算得到的 值,用这个值来标识一个脚本片段;3. 网页标识(uriid):对整个网页文件及其各级链接页面中所有的脚本片段标识进行排 序处理后得到的序列进行hash计算得到的值,用这个值来标识网页。具体来说,本发明方法以多个网页作为聚类对象,包括a) 获得网页中的脚本片段及其各级链接页面中的脚本片段;b) 对脚本片段作规格化处理后计算其特征值作为脚本片段标识;c) 将各个脚本片段标识排序后计算该序列的特征值作为网页标识;d) 将网页标识相同的网页聚为一类。在本发明方法中,所述多个网页可以是通过爬虫等技术获得的某个网站的所有页面。 在本发明方法中,^骤a具体可通过下述方法实现i. 创建一URL队列,将当前页面的URL加入所述队列中;ii. 从所述队列POP出一个URL,获取该URL的页面内容并进行处理iii. 当遇到〈frame〉或〈iframe〉标签时,如该标签存在src属性,则将属性值加入所述 队列;iv. 当遇到々cript〉标签时,获取该标签内部的脚本片段;如该标签存在src属性, 则获取src属性对象的script文件内容,并将该文件内容作为一个原始的脚本片段。在本发明方法中,歩骤b所述规格化处理的目的在于防止script中的参数被随机化从 而产生大量形式不同但实质相同的脚本片段。针对不同的聚类策略,可以采用或松或严的 规格化方案。常用的方式是将脚本片段中所有的参数列表和变量赋值替换为设定的字符。在本发明方法中,歩骤b和步骤c所述特征值可以是hash值,两步骤中的hash值可 通过相同或不同的hash算法(如MD5、 SHA512等)计算得到。在本发明方法中,当网页多次链接至某个url时,需要对该url指向的网页作多次分析, 而这样的多次分析并不必要。因此,在步骤a中,当所述各级链接页面中的多个页面的链 接地址相同时,仅获得其中一个链接页面中的脚本片段,以减少不必要的分析。网页不仅可能多次引用同一网页,也有可能多次引用同一脚本代码,对于同一脚本代 码,作一次分析就可以。因此,在步骤c中,优选按照各个脚本片段标识由小到大的顺序 排列,当出现标识相同的脚本片段时,仅保留其中一个,用于后续计算。和现有技术相比,本发明具有以下积极意义1. 在面向从未分析检测过的网页时,相对于网页挂马检测的运算时间,计算网页中 的脚本片断标识的运算量要少很多,在进行详细深入的检测之前,先使用脚本片断标识对 网页进行预处理,可从大量的网页中聚类相似页面,提高检测效率;特别是对于论坛网站、 新闻网站等含有大量类似网页的站点,该方法具有非常好的效果;2. 当需要为某个站点是否挂马提供实时监测时,通过本发明方法可以判断此站点的 网页是否存在脚本更新,若该站点未修改其中的脚本片段,可以认为该站点的页面未添如 新的动态内容,通过这种方法可有效的判断是否需要重新检测该站点的页面,从而极大的 提高监测服务的能力。
具体实施方式
下面通过具体实施例对本发明作进一步说明。 本实施例通过下述方法实现网页聚类1. 通过爬虫等技术获得一个站点需要检测的所有网页的URL并存储到数据库中;;2. 针对该站点中的每个网页,进行如下步骤的处理i. 创建一URL队列,将当前页面的URL加入所述队列中;ii. 从所述队列POP出一个URL,获取该URL的页面内容并进行处理iii. 当遇到《rame〉或〈iframe〉标签时,如该标签存在src属性,则将属性值加入所述队列;iv. 当遇到〈scrip^标签时,获取该标签内部的脚本片段;如该标签存在src属性,则 通过网络获取该script文件内容,并将该文件内容作为一个原始的脚本片段。举例來说,假设当前页面的html代码为Uli current-<html>5<script .. >contentl </script><script src="urir,…></script〉<frame src = "url2,'…><iframe src= ',url3" ... > </iframe></html>当前页面中的各个链接页面分别为urll:content2url2:<html><frame src="url3"...><script... >content3</script> ,<script... >content4</script></html>url3:<html><script ...>content4</script> <script ...>content5</script></html>则当前网页中的脚本片段及其各级链接页面中的脚本片段依次包括contentl; content2; content3; content4; content4; content5; content4; content5。若在上述分析过程中考虑当前页面的各级链接中出现了两个指向url3的链接的情况, 而对url3的第二次引用不作处理,则最终得到的脚本片段包括:contentl; content2;content3; content4; content4; content5,以下例证内容以此为基础。3.对上述脚本片段中的每个均作下列处理将所有的参数列表替换为"LvaU",同时将所有的赋值语句"=..."替换为"=—val」'。例如,假设contentl的内容包括 function MMJumpMenu(targ,selObj,restore){ 〃v3.0 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+'""); if (restore) selObj.selectedIndex=0;则经过上述规格化后,contentl变成function—MMJ umpMen(val」{〃v3.0;
if(_val_JselObj. selectedlndex=_val」
};
对每个脚本片段作上述规格化后,计算每个规格化后的脚本片段的md5值作为脚本片段标识,假设idl, id2, id3, id4, id5, id6依次表示上述脚本片段的标识。
4. 按照上述五个脚本片段标识的大小排序,排序过程中,由于id54d4,则仅保留id4,假设排序得到的序列是id6, idl, id3, id4, id2,计算这一序列的md5值作为当前页面的标识。
5. 得到所有网页的标识后将标识相同的网页聚为一类。
在上述聚类结果的基础上,从每一类中任选10个网页进行详细检测以确定该类网页是否被挂马,即可确定该网站是否被挂马。
本发明发明人将本发明方法用于北京大学信息安全工程中心挂马网页检测平台,取得了良好的效果,对于每个待检测站点,有效的将需要检测的网页规模縮小至1/30-1/50,实现了本发明的目的,并取得了很好的实用性和推广应用前景。
权利要求
1.一种基于脚本特征的网页聚类方法,以多个网页作为聚类对象,其步骤包括a)获得网页中的脚本片段及其各级内嵌链接页面中的脚本片段;b)对脚本片段作规格化处理后计算其特征值作为脚本片段标识;c)将各个脚本片段标识排序后计算该序列的特征值作为网页标识;d)将网页标识相同的网页聚为一类。
2. 如权利要求1所述的网页聚类方法,其特征在于,所述多个网页是一个网站的所有页 面。
3. 如权利要求1所述的网页聚类方法,其特征在于,步骤a通过下列方法实现i. 创建一URL队列,将当前页面的URL加入所述队列中;ii. 从所述队列POP出一个URL,获取该URL的页面内容并进行处理; 当遇到〈frame〉或〈iframe〉标签时,如该标签存在src属性,则将属性值加入所述队列;iv. 当遇到〈script〉标签时,获取该标签内部的脚本片段;如该标签存在src属性, 则获取src属性对象的script文件内容,并将该文件内容作为一个原始的脚本片段。
4. 如权利要求l所述的网页聚类方法,其特征在于,步骤b所述规格化处理是 将脚本片段中所有的参数列表和变量赋值替换为设定的字符。
5. 如权利要求1所述的网页聚类方法,其特征在于,步骤b和步骤c所述特征值均为hash 值,hash值可通过相同或不同的hash算法计算得到。
6. 如权利要求5所述的网页聚类方法,其特征在于,所述hash值通过MD5或SHA512算法计算得到。
7. 如权利要求1所述的网页聚类方法,其特征在于,在步骤a中,当所述各级链接页面 中的多个页面的链接地址相同时,仅获得其中一个链接页面中的脚本片段。
8. 如权利要求1所述的网页聚类方法,其特征在于,歩骤c按照各个脚本片段标识由小 到大的顺序排列,当出现标识相同的脚本片段时,仅保留其中一个。
全文摘要
本发明公开了一种基于脚本特征的网页聚类方法,属于计算机安全技术领域。本发明方法以多个网页作为聚类对象,包括a)获得网页中的脚本片段及其各级内嵌链接页面中的脚本片段;b)对脚本片段作规格化处理后计算其特征值作为脚本片段标识;c)将各个脚本片段标识排序后计算该序列的特征值作为网页标识;d)将网页标识相同的网页聚为一类。本发明方法可用于挂马网页检测分析的预处理过程,用于将同一网站页面分类,对于同一集合的网页,只需选择一部分抽样进行检测,从而可以节省大量检测资源。
文档编号G06F17/30GK101630325SQ20091009133
公开日2010年1月20日 申请日期2009年8月18日 优先权日2009年8月18日
发明者梁知音, 韬 韦, 龚晓锐 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1