[发明专利]一种网页中恶意代码的检测方法及系统有效
申请号: | 201110442308.8 | 申请日: | 2011-12-26 |
公开(公告)号: | CN102542201A | 公开(公告)日: | 2012-07-04 |
发明(设计)人: | 宋申雷;肖鹏;刘起 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F21/00 | 分类号: | G06F21/00;G06F17/30 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 100016 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 网页 恶意代码 检测 方法 系统 | ||
技术领域
本申请涉及计算机安全技术,特别是涉及一种网页中恶意代码的检测方法及系统。
背景技术
黑客通常是在网页中使用恶意的动态脚本来构造的恶意网页代码,如通过在javascript脚本中书写恶意代码,脚本运行时其中的恶意代码会触发漏洞,然后在操作系统中运行下载病毒木马的程序,进而对操作系统造成危害。
因此需要查找出恶意代码并阻止其运行,才能阻止恶意代码后续对操作系统的危害。目前大部分杀毒软件都是通过检测特征码,即一个或多个特定的字符串特征,针对单个网页源代码的文本内容进行静态检测,所述静态检测是对恶意代码的文本进行静态分析的方法。
静态检测的具体做法是,首先打开一个网页时会先将网页下载到本地缓存中,然后再读取网页的源代码来显示网页,杀毒软件在读取源代码的过程中就会进行匹配检测,若匹配到上述的特征码,就认为该网页中含有恶意代码,会将该网页拦截不予显示。
但是黑客可以将恶意代码嵌入网页中由第三方来支持运行的脚本中,例如将恶意代码嵌入Flash支持运行的脚本中,Flash支持运行的脚本是通过虚拟机进行解析后,通过浏览器接口来动态运行的。Flash支持运行的脚本本身并不存在于网页的源代码中,因此杀毒软件没有办法检测Flash支持运行的脚本,也就不会执行拦截操作,使得嵌入Flash支持运行的脚本中的恶意代码能够触发漏洞,下载木马来危害操作系统,因此杀毒软件无法有效检测出网页中的恶意代码。
发明内容
本申请提供了一种网页中恶意代码的检测方法及系统,以解决杀毒软件无法有效检测出网页中恶意代码的问题。
为了解决上述问题,本申请公开了一种网页中恶意代码的检测方法,包括:
捕获浏览器接口的接口函数;
在浏览器接口调用所述接口函数传递要运行的脚本给脚本解释引擎之前,拦截所述要运行的脚本;
对脚本中的内容进行分析并检测恶意代码。
优选的,所述对脚本中的内容进行分析并检测恶意代码,包括:
根据预置的词组规则将脚本中的内容进行分解为特定的词组;
根据特征码对所述特定的词组进行恶意代码检测。
优选的,所述根据预置的词组规则将脚本中的内容分解为特定的词组,包括:
以预置的词组规则中的词法分割符为分割标识,将脚本中的内容分割为多个代码块;
将每个代码块分别与所述词组规则中的词组定义进行匹配,以查找特定的词组,所述特定的词组包括函数名、关键字和变量内容。
优选的,所述特征码中包括恶意代码惯用的函数名、关键字、变量内容或其中若干项的组合,所述根据特征码对所述特定的词组进行恶意代码检测,包括:
将所述特征码分别与所述特定的词组进行匹配,检测所述特定的词组是否存在恶意代码惯用的函数名、关键字、变量内容或其中若干项的组合。
优选的,将检测到的恶意代码中惯用的函数名、关键字、变量内容或其中若干项的组合以预置的公式进行计算;若计算结果超过恶意代码阈值,则该脚本中含有恶意代码。
优选的,若检测到脚本中含有恶意代码,则阻断恶意代码的执行并报告检测到的恶意代码。
优选的,在IE内核浏览器中,所述捕获浏览器接口的接口函数,包括:
使用钩子函数捕获IE内核浏览器中IActiveScriptParse接口的ParseScriptText函数。
优选的,在IE内核浏览器中,所述在浏览器接口调用所述接口函数传递要运行的脚本给脚本解释引擎之前,拦截所述要运行的脚本,包括:
在IActiveScriptParse接口调用ParseScriptText函数传递要运行的脚本给脚本解释引擎之前,通过所述钩子函数拦截要运行的脚本。
相应的,本申请还公开了一种网页中恶意代码的检测系统,包括:
捕获模块,用于捕获浏览器接口的接口函数;
拦截模块,用于在浏览器接口调用所述接口函数传递要运行的脚本给脚本解释引擎之前,拦截所述要运行的脚本;
分析并检测模块,用于对脚本中的内容进行分析并检测恶意代码。
优选的,所述分析并检测模块,包括:
词组分解子模块,用于根据预置的词组规则将脚本中的内容分解为特定的词组;
恶意代码检测子模块,用于根据特征码对所述特定的词组进行恶意代码检测。
优选的,所述词组分解子模块,包括:
分割单元,用于以预置的词组规则中的词法分割符为分割标识,将脚本中的内容分割为多个代码块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110442308.8/2.html,转载请声明来源钻瓜专利网。