一种识别vbs网页木马的方法和装置的制作方法

文档序号:6577426阅读:200来源:国知局
专利名称:一种识别vbs网页木马的方法和装置的制作方法
技术领域
本发明涉及计算机领域,特别涉及一种识别vbs网页木马的方法和装置。
背景技术
网页木马就是加载在网页中的木马病毒。网页木马可能会破坏文件,盗取 资料,给用户造成巨大损失,严重危害了网络安全。
当前网络中,大部分网页是基于javascript (可简写为js )或vbscript (可筒 写为vbs)脚本语言开发的。其中,针对js网页木马的检测技术已经非常成熟, 而针对vbs网页木马,当前主要有两种检测方法
第一种方法是预先获取木马病毒的vbs代码样本,把它当作一段普通字符串 来处理,提取其中的字符串特征,来识别vbs网页木马;
第二种方法是开发一套vbs引擎,通过vbs引擎来解释执行vbs代码,通过 分析代码的行为,来识别vbs网页木马。综合上述,现有技术至少存在以下问题
需要为vbs网页木马配置一套特征库,而js网页木马也配置有一套特征库, 二者不能统一起来处理,开发和维护起来不仅繁瑣,而且成本比较高。

发明内容
为了将vbs网页木马和js网页木马的识别统一起来,本发明实施例提供了 一种识别vbs网页木马的方法和装置。所述技术方案如下 一种识别vbs网页木马的方法,所述方法包括 根据预设的映射关系,将vbs代码转换为js语句; 解析所述js语句;
识别所述解析后的js语句的网页木马行为。
其中,所述根据预i殳的映射关系,将vbs代码转换为js语句包括
获取所述vbs代码的自定义函数和自定义对象;
5获取所述vbs代码的词法标记;
才艮据所述vbs代码的自定义函数、自定义对象和词法标记,获取所述vbs 代码的语句;
根据所述预设的映射关系,将所述vbs代码的语句转换为js语句。
其中,所述获取所述vbs代码的词法标记包括
采用词法分析工具lex或flex,获取所述vbs代码的词法标记。
其中,所述根据所述vbs代码的自定义函数、自定义对象和词法标记,获取
所述vbs代码的语句包括
根据所述vbs代码的自定义函数、自定义对象和词法标记,采用语法分析工
具yacc或bison,获取所述vbs代码的语句。
其中,所述根据所述预设的映射关系,将所述vbs代码的语句转换为js语
句包括
根据所述预设的映射关系,若所述vbs代码的语句为Execute语句,将所述 Execute语句转换为js语句eval语句,所述eval语句的第 一个参数是所述Execute 语句的参数;
在所述eval语句中添加第二个参数,并将所述第二个参数设置为预先M^定 的转换标识。
其中,所述解析所述js语句包括
若所述js语句是eval语句,且所述eval语句的第二个参数是预先规定的转 换标识,读取所述eval语句的第 一个参数;
根据所述预设的映射关系,将所迷第一个参数转换为另一 js语句; 解析所述另一js语句。
一种识别vbs网页木马的装置,所述装置包括
转换模块,用于根据预设的映射关系,将vbs代码转换为js语句;
解析模块,用于解析所述转换模块转换的js语句;
识别模块,用于识别所述解析模块解析后的js语句的网页木马行为。
其中,所述转换模块包括
自定义信息获取单元,用于获取所述vbs代码的自定义函数和自定义对象; 词法分析单元,用于获取所述vbs代码的词法标记;
语法分析单元,用于根据所述自定义信息获取单元获取的自定义函数和自
6定义对象,以及所述词法分析单元获取的所述vbs代码的词法标记,获取所述 vbs代码的语句;
转换单元,用于根据所述预设的映射关系,将所述语法分析单元获取的所 述vbs代码的语句转换为js语句。
其中,所述词法分析单元,具体用于
采用词法分析工具lex或flex,获取所述vbs代码的词法标记。 其中,所述语法分析单元,具体用于
根据所述自定义信息获取单元获取的自定义函数和自定义对象,以及所述 词法分析单元获取的所述vbs代码的词法标记,采用语法分析工具yacc或bison, 获取所述vbs代码的语句。
其中,所述转换单元,具体用于
根据所述预设的映射关系,若所述语法分析单元获取的所述vbs代码的语句 为Execute语句,将所迷Execute语句转换为js i吾句eval ^吾句,所述eval i吾句 的第 一个参数是所述Execute语句的
在所述eval语句中添加第二个参数,并将所述第二个参数设置为预先规定 的转换标识。
其中,所述识别模块,具体用于
若所述解析才莫块解析的js语句是eval语句,且所述eval语句的第二个参数 是预先规定的转换标识,读取所述eval语句的第一个参数;
根据所述预设的映射关系,将所述第一个参数转换为另一 js语句; 解析所述另一js语句。
本发明实施例提供的技术方案带来的有益效果是通过预设的映射关系, 将vbs代码转换为js语句,解析并识别该js语句的网页木马行为,将vbs网页 木马和js网页木马的识别统一起来,不需要为vbs网页木马另配置一套特征库, 简化了开发和维护过程,P条低了成本。


图1是本发明实施例1中提供的识别vbs网页木马的方法流程图; 图2是本发明实施例1中提供的另一识别vbs网页木马的方法流程图; 图3是本发明实施例2中提供的识别vbs网页木马的装置结构示意图;图4是本发明实施例2中提供的转换模块结构示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 实施方式作进一步地详细描述。 实施例1
参见图1,本实施例提供了一种识别vbs网页木马的方法,该方法包括 101:根据预设的映射关系,将vbs代码转换为js语句; 102:解析该js语句;
103:识别该解析后的js语句的网页木马行为。
本实施例提供的识别vbs网页木马的方法,能够将vbs网页木马和js网页 木马的识别统一起来,不需要为vbs网页木马另配置一套特征库,筒化了开发和 维护过程,降低了成本。
若要实现vbs网页木马的识别,
首先,预先建立vbs代码与js代码的内置函数和对象的映射关系;
例如vbs中的函凄丈asc ( str ),在js中对应的函数是str.charCodeAt(O),
二者之间需要建立映射关系。
其次,参见图2,识别vbs网页木马的数据处理流程如下
201:接收vbs代码,对vbs代码进行预处理,获取其中的自定义函数和自
定义对象;
202:对vbs代码进4于词法分析,获取词法标记(token); 其中,在做词法分析时,内置的词法标记需要与自定义对象和自定义函数 区分开来;
具体的,采用开源的词法分析工具(如lex、 flex),将输入的vbs代码流识 别为符合vbs语法要求的关键字、数字、运算符、标识符等token,其中,标识 符进一步区分为变量名、函数名或对象名。
203:根据获取的token以及自定义函数和自定义对象,对vbs代码进行语 法分析,获取vbs代码的语句;
其中,若千token构成一条vbs语句;特殊的,自定义函数和自定义对象与 内置的token —起构成若干vbs语句;具体的,在词法分析的基础上,采用开源的语法分析工具(如yacc、 bison) 对vbs代码进行语法解析,识别出vbs语句。其中,vbs语句在本实施例中包括 表达式、函数、对象,还有声名、赋值、循环、条件分支等语句。
204:如果vbs代码的语句是Execute语句,204a)则转换为js语句eval语 句,且在eval语句中添加第二个参数,并执行203,否则执行205;
其中,该eval语句的第 一个参数是Execute语句的参数,eval语句的第二 个参数,用于识别js语句是否是从vbs代码转换来的,并将其值设为预先规定 的转换标识,本实施例中,该转换标识设为"vbs"。
将Execute转换为eval并添加一个参数vbs转换为js有时不是一次可以完 成的,Execute函数的参数也是一段vbs代码,这时可以先执行部分转换的js代 码,执行到Execute时,再将Execute的参数部分进行二次转换,如果有Execute 嵌套的情况,这种反复转换需要进行多次。
205:根据预设的映射关系,将vbs代码的语句转换为js语句。
具体的,按照优先级顺序,将vbs表达式转化为相应的js表达式将vbs 中的声名、赋值、循环、条件分支等语句转换为相应的js语句;将vbs中的函 数定义、对象定义转换为对应的js格式的函数定义、对象定义;对于内置的函 数调用根据预先建立的映射关系,转换为相应的调用形式。
例如通过预先设定的映射关系,将vbs函数call CLng "hello",转换成js 函数parselnt("hello" ,16)。
206:如果还有没处理完的token,执行203,否则执行207;
207:输出js语句;
208:对js语句进4亍解析;
解析过程具体可由js引擎进行处理,如spidermonkey等。 209:如果js语句是eval语句,且第二个参数为"vbs", 209a)则读取eval 语句的第一个参数的值,并执行201,否则执行209;
解析该eval语句的过程具体可由js引擎进行处理,如spidermonkey等。 210:执行js语句,并分析网页木马行为;
具体的,分析js语句的网页木马行为,可以采用现有技术的js网页木马的 识别方法。
211:如果已经处理完所有的js语句,则退出,否则执行208。本实施例提供的识别vbs网页木马的方法,通过预设的映射关系,将vbs 代码转换为js语句,解析并识别该js语句的网页木马行为,将vbs网页木马和 js网页木马的识别统一起来,不需要为vbs网页木马另配置一套特征库,简化 了开发和维护过程,降低了成本。另外,相对与第一种现有技术,不需要提前 获取vbs代码样本,具有较高的时效性和通用性;相对于第二种现有技术,不需 要额外开发vbs引擎,可以利用现有的js引擎,只需要进行词法分析和语法分 析,不需要模拟执行,节省了时间和人力成本。
实施例2
参见图3,本实施例提供了一种识别vbs网页木马的装置,该装置包括 转换模块301,用于根据预设的映射关系,将vbs代码转换为js语句; 解析模块302,用于解析该转换模块301转换的js语句; 识别模块303,用于识别该解析模块302解析后的js语句的网页木马行为。 进一步的,参见图4,该转换模块301包括
自定义信息获取单元301a,用于获取该vbs代码的自定义函数和自定义对
象;
词法分析单元301b,用于获取该vbs代码的词法标记;
语法分析单元301c,用于根据该自定义信息获取单元301a获取的自定义函 数和自定义对象,以及该词法分析单元301b获取的该vbs代码的词法标记,获 取该vbs代码的语句;
转换单元301d,用于根据该预设的映射关系,将该语法分析单元301c获取 的该vbs代码的语句转换为js语句。
其中,该词法分析单元301b,具体用于
采用词法分析工具lex或flex,获取该vbs代码的词法标记。
其中,该语法分析单元301c,具体用于
根据该自定义信息获取单元301a获取的自定义函数和自定义对象,以及该 词法分析单元301b获取的该vbs代码的词法标记,采用语法分析工具yacc或 bison ,获取该vbs代Z马的语句。
其中,该转换单元301d,具体用于
根据该预设的映射关系,若该语法分析单元301c获取的该vbs代码的语句为Execute语句,将该Execute语句转4灸为js语句eval语句,该eval语句的第 一个参凄史是该Execute语句的参H;
在该eval语句中添加第二个参数,并将该第二个参数设置为预先规定的转 换标识。
其中,该识别模块303,具体用于
若该解析才莫块302解析的js语句是eval语句,且该eval语句的第二个参数 是预先规定的转换标识,读取该eval语句的第一个参数;
根据该预设的映射关系,将该第 一个参数转换为另一 js语句; 解析该另一js语句。
本实施例提供的识别vbs网页木马的装置,通过预设的映射关系,将vbs 代码转换为js语句,解析并识别该js语句的网页木马行为,将vbs网页木马和 js网页木马的识别统一起来,不需要为vbs网页木马另配置一套特征库,简化 了开发和维护过程,降低了成本。另外,相对与第一种现有技术,不需要提前 获取vbs代码样本,具有较高的时效性和通用性;相对于第二种现有技术,不需 要额外开发vbs引擎,可以利用现有的js引擎,只需要进行词法分析和语法分 析,不需要模拟执行,节省了时间和人力成本。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现, 其软件程序存储在可读取的存储介质中,存储介质例如计算机中的硬盘、光。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的 精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。
权利要求
1、一种识别vbs网页木马的方法,其特征在于,所述方法包括根据预设的映射关系,将vbs代码转换为js语句;解析所述js语句;识别所述解析后的js语句的网页木马行为。
2、 如权利要求1所述的识别vbs网页木马的方法,其特征在于,所述根据 预设的映射关系,将vbs代码转换为js语句包括获取所述vbs代码的自定义函数和自定义对象; 获取所述vbs ^码的词法标记;根据所述vbs代码的自定义函数、自定义对象和词法标记,获取所述vbs 代码的语句;根据所述预设的映射关系,将所述vbs代码的语句转换为js语句。
3、 如权利要求2所述的识别vbs网页木马的方法,其特征在于,所述获取 所述vbs代码的词法标记包括采用词法分析工具lex或flex,获取所述vbs代码的词法标记。
4、 如权利要求2所述的识别vbs网页木马的方法,其特征在于,所述根据 所述vbs代码的自定义函数、自定义对象和词法标记,获取所述vbs代码的语句 包括根据所述vbs代码的自定义函数、自定义对象和词法标记,采用语法分析工 具yacc或bison,获取所述vbs代码的语句。
5、 如权利要求2所述的识别vbs网页木马的方法,其特征在于,所述根据 所述预设的映射关系,将所述vbs代码的语句转换为js语句包括根据所述预设的映射关系,若所述vbs代码的语句为Execute语句,将所述 Execute语句转换为js语句eval语句,所述eval语句的第 一个参数是所述Execute 语句的参数;在所述eval语句中添加第二个参数,并将所述第二个参数设置为预先规定 的转换标识。
6、 如权利要求1所述的识别vbs网页木马的方法,其特征在于,所述解析 所述js语句包括若所述js语句是eval语句,且所述eval语句的第二个参数是预先规定的转 换标识,读取所述eval语句的第 一个参数;根据所述预设的映射关系,将所述第 一个参数转换为另一 js语句; 解析所述另一js语句。
7、 一种识别vbs网页木马的装置,其特征在于,所述装置包括 转换模块,用于根据预设的映射关系,将vbs代码转换为js语句; 解析模块,用于解析所述转换模块转换的js语句;识别模块,用于识别所述解析模块解析后的js语句的网页木马行为。
8、 如权利要求7所述的识别vbs网页木马的装置,其特征在于,所述转换 模块包括自定义信息获取单元,用于获取所述vbs代码的自定义函数和自定义对象; 词法分析单元,用于获取所述vbs代码的词法标记;语法分析单元,用于根据所述自定义信息获取单元获取的自定义函数和自 定义对象,以及所迷词法分析单元获取的所述vbs代码的词法标记,获取所述 vbs代码的语句;转换单元,用于^f艮据所述预设的映射关系,将所述语法分析单元获取的所 述vbs代码的语句转换为js语句。
9、 如权利要求8所述的识别vbs网页木马的装置,其特征在于,所述词法 分析单元,具体用于采用词法分析工具lex或flex,获取所述vbs代码的词法标记。
10、 如权利要求8所述的识别vbs网页木马的装置,其特征在于,所述语法分析单元,具体用于根据所述自定义信息获取单元获取的自定义函数和自定义对象,以及所述词法分析单元获取的所述vbs代码的词法标记,采用语法分析工具yacc或bison, 获取所述vbs代码的语句。
11、 如权利要求8所述的识别vbs网页木马的装置,其特征在于,所述转换 单元,具体用于根据所述预设的映射关系,若所述语法分析单元获取的所述vbs代码的语句 为Execute语句,将所述Execute语句转换为js语句eval语句,所述eval i吾句 的第 一个参数是所述Execute语句的参数;在所述eval语句中添加第二个参数,并将所述第二个参数设置为预先规定 的转4灸标识。
12、 如权利要求7所述的识别vbs网页木马的装置,其特征在于,所述识别 模块,具体用于若所述解析模块解析的js语句是eval语句,且所述eval语句的第二个参数 是预先规定的转换标识,读取所述eval语句的第一个参数;根据所述预设的映射关系,将所述第一个参数转换为另一 js语句; 解析所述另一js语句。
全文摘要
本发明公开了一种识别vbs网页木马的方法和装置,属于计算机领域。所述方法包括根据预设的映射关系,将vbs代码转换为js语句;解析所述js语句;识别所述解析后的js语句的网页木马行为。所述装置包括转换模块、解析模块和识别模块。本发明通过预设的映射关系,将vbs代码转换为js语句,解析并识别该js语句的网页木马行为,将vbs网页木马和js网页木马的识别统一起来,不需要为vbs网页木马另配置一套特征库,简化了开发和维护过程,降低了成本。
文档编号G06F9/44GK101515318SQ20091013002
公开日2009年8月26日 申请日期2009年4月3日 优先权日2009年4月3日
发明者张海清, 勇 杨, 林世飞, 欢 陈 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1