[发明专利]一种基于程序关键字调用序列的脚本病毒检测方法及系统在审
申请号: | 201410738723.1 | 申请日: | 2014-12-08 |
公开(公告)号: | CN105488399A | 公开(公告)日: | 2016-04-13 |
发明(设计)人: | 苏培旺;童志明;张栗伟;何公道 | 申请(专利权)人: | 哈尔滨安天科技股份有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F17/27;G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 150090 黑龙江省哈尔滨*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 程序 关键字 调用 序列 脚本 病毒 检测 方法 系统 | ||
技术领域
本发明涉及网络安全领域,特别涉及一种基于程序关键字调用序列的脚本病毒检测方法及系统。
背景技术
脚本语言是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言,它由相应的解释器逐句解释执行,具有简单,易学易用等特点,目前在互联网的网页开发中大量使用,较为流行的脚本语言有javascript和vbscript等。恶意脚本程序是以损坏系统功能和恶意传播为目的的脚本程序,这部分程序嵌入在正常的网页程序中,不易被人发觉,在用户浏览被恶意脚本感染的网页时,自动下载其他恶意代码到用户电脑中或感染用户系统上的其他脚本代码。
目前对恶意脚本的检测方式有很多种,有基于静态代码内容进行模式匹配检测的,也有基于虚拟执行后结果进行模式再匹配的。而目前恶意脚本为了对抗杀毒软件的查杀大都采用了复杂的多态变形技术,如部分的脚本变形采用增加空格换行等无用字符,或者将脚本程序中使用的变量名称采用随机字符串定义,语句等价变换等,这给静态代码检测的方法带来了非常大的困难,导致检测模块的特征量急剧上升,和检出率的不断降低,这就催生了采用虚拟执行后的检测方法,这个方法的好处是通过虚拟执行,解密了恶意代码的变形代码,得到真正的恶意功能部分,再采用静态的模式匹配方法进行匹配,这个方法的确提高了恶意脚本的检出能力,但是由于该方法执行效率非常低,很难找到一致的方法对所有恶意脚本进行解密,通常是每种恶意变形技术都要实现一套脚本虚拟执行解密模块,开发难度大,日常维护成本高导致该方法在目前的反病毒软件中并没有广泛应用。
发明内容
基于上述问题,本发明提出了一种基于程序关键字调用序列的脚本病毒检测方法及系统,针对恶意脚本程序较多采用字符串替换,增加无意义空行等形式变形加密技术,但是变形的代码拥有相同的调用方式和指令执行流的跳转结构,而且主要功能代码调用的API名称是基本一致的特点,通过对关键词调用及语义中上下文调用及跳转关系,可以基本判断两个脚本语言是否具有一致的代码结构,具有同样代码结构的脚本则可以认为相同,以此来判断脚本程序是否为恶意。
一种基于程序关键字调用序列的脚本病毒检测方法,包括:
对待检测程序的字符序列进行词法分析,生成一系列单词,并将单词分类,得到单词序列;
根据得到的单词序列,进行语法分析,记录调用的脚本程序关键字信息;
语义分析,根据每行程序语义,确定语义类型,并标记助记符;
创建待检测数据流;
逐行遍历待检测程序,判断当前行是否调用了脚本程序关键字信息,如果是,则将所述脚本程序关键字信息添加到待检测数据流中;否则判断当前行是否标记了助记符,如果是,则将所述助记符添加到待检测数据流中,否则跳过当前行;
将所述待检测数据流与特征库中的关键字调用序列特征串匹配,如果匹配成功,则判定所述待检测程序为恶意,否则所述待检测程序非恶意。
所述的方法中,所述记录调用的脚本程序关键字信息具体为:记录程序调用的API名称作为脚本程序关键字信息。
所述的方法中,所述的语义分析,根据每行程序语义,确定语义类型,并标记助记符中,所述语义类型包括:赋值语句、跳转语句、循环语句和返回语句。
所述的方法中,在将所述待检测数据流与特征库中的特征串匹配成功后,还包括:将所述判定为恶意的待检测程序与白名单匹配,如果不存在于白名单中,则确定所述待检测程序为恶意,否则所述待检测程序非恶意。
所述的方法中,所述特征库中的关键字调用序列特征串为从已知恶意脚本代码中提取。
一种基于程序关键字调用序列的脚本病毒检测系统,包括:
词法分析模块,用于对待检测程序的字符序列进行词法分析,生成一系列单词,并将单词分类,得到单词序列;
语法分析模块,用于根据得到的单词序列,进行语法分析,记录调用的脚本程序关键字信息;
语义分析模块,用于根据每行程序语义,确定语义类型,并标记助记符;
待检测数据流创建模块,用于创建待检测数据流;
遍历检测模块,用于逐行遍历待检测程序,判断当前行是否调用了脚本程序关键字信息,如果是,则将所述脚本程序关键字信息添加到待检测数据流中;否则判断当前行是否标记了助记符,如果是,则将所述助记符添加到待检测数据流中,否则跳过当前行;
匹配模块,用于将所述待检测数据流与特征库中的关键字调用序列特征串匹配,如果匹配成功,则判定所述待检测程序为恶意,否则所述待检测程序非恶意。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨安天科技股份有限公司,未经哈尔滨安天科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410738723.1/2.html,转载请声明来源钻瓜专利网。