一种基于ragel状态机的恶意脚本检测方法及系统技术方案

技术编号:15640165 阅读:56 留言:0更新日期:2017-06-16 04:11
本发明专利技术提出一种基于ragel状态机的恶意脚本检测方法及系统,通过解析已知恶意脚本文件,提取恶意字符串ragel正则表达式组成检测特征库源文件;并将所述检测特征库源文件编译为待检测脚本文件的语言;利用ragel正则状态机检测待检测脚本文件;判断待检测脚本文件与检测特征库源文件中的ragel正则表达式是否匹配,如果是,则所述待检测脚本文件为恶意,否则所述待检测脚本文件为普通文件。通过本发明专利技术的技术方案,无需每条特征都对待检测文件进行全文搜索,能够加快检测恶意脚本的速度,且本技术方案利用了ragel有限状态机编译器,可以生成不同目标语言下的检测源文件,适用面更广泛。

【技术实现步骤摘要】
一种基于ragel状态机的恶意脚本检测方法及系统
本专利技术涉及计算机网络安全领域,特别涉及一种基于ragel状态机的恶意脚本检测方法及系统。
技术介绍
现有已知恶意脚本一般为javascript、VisualBasicScript、HTML、python、java等,这些恶意代码往往对代码进行加密混淆处理,还原真实脚本后,一般多为下载木马等操作。恶意脚本不同于传统的病毒,它具有变形简单的特点,通过多样化的混淆机制隐藏自己,它还能动态创建内嵌链接,并编码链接内容。ragel是个有限状态机编译器,可将基于正则表达式(ragel正则表达式类似于一般的正则表达式,但是语法有少量区别)的状态机编译成传统语言(如C,C++,D,Java,Ruby等)的解析器。ragel不仅仅可以用来解析字节流,它实际上可以解析任何可以用正则表达式表达出来的内容,而且可以很方便的将解析代码嵌入到传统语言中。现有对于恶意脚本的检测方法主要是采用特征匹配检测或采用机器学习的方法进行检测。采用特征码进行恶意脚本检测主要是根据已知恶意脚本样本库程序代码本身的特点来检测未知脚本程序是否为恶意脚本程序,主要是对脚本进行解析,提取脚本中恶意代码特征,并将这些特征和筛选出的特征集进行比较,若代码特征相匹配则将脚本程序定义为恶意脚本,反之则为普通脚本程序。其缺陷是提取的特征码往往是脚本中某一段字符串的HASH或提取一段正则特征,由于脚本是文本形式,其特征匹配往往需要对全文进行搜索匹配,随着特征量的增加,检测需要耗费较长时间。采用机器学习的方法进行恶意脚本检测的缺点是需要对大量恶意脚本进行学习,不断迭代,误报率相对较高。
技术实现思路
本专利技术提出一种基于ragel状态机的恶意脚本检测方法及系统,解决了现有脚本检测方法效率低,误报率高的问题,实现了对脚本文件的快速检测。本专利技术首先提出了一种基于ragel状态机的恶意脚本检测方法,包括:解析已知恶意脚本文件,提取恶意字符串ragel正则表达式;将提取到的恶意字符串ragel正则表达式组成检测特征库源文件;将所述检测特征库源文件编译为待检测脚本文件的语言;将编译后的检测特征库源文件集成到待检测脚本文件的检测模块中;获取并加载待检测脚本文件;利用ragel正则状态机检测待检测脚本文件;判断待检测脚本文件与检测特征库源文件中的恶意字符串ragel正则表达式是否匹配,如果是,则所述待检测脚本文件为恶意,否则所述待检测脚本文件为普通文件。所述的方法中,解析已知恶意脚本文件,提取恶意字符串ragel正则表达式具体为:按照恶意代码家族或变种分类解析恶意脚本文件,去除非恶意代码部分,保留恶意代码部分;并根据恶意代码家族或变种具有共性的恶意代码部分,提取一条或多条ragel正则表达式。所述的方法中,所述将提取到的恶意字符串ragel正则表达式组成检测特征库源文件具体为:采用ragel状态机语法格式构造检测特征库源文件。所述的方法中,所述检测特征库源文件的检测接口的输入为待检测脚本文件的buf及大小,输出为检测结果及病毒名。所述的方法中,所述判断待检测脚本文件与检测特征库源文件中的ragel正则表达式是否匹配,具体为,判断待检测脚本文件与检测特征库源文件中是否有一条或多条ragel正则表达式相同,如果是则匹配。本专利技术还同时提出一种基于ragel状态机的恶意脚本检测系统,包括:解析模块,用于解析已知恶意脚本文件,提取恶意字符串ragel正则表达式;生成库模块,用于将提取到的恶意字符串ragel正则表达式组成检测特征库源文件;编译模块,用于将所述检测特征库源文件编译为待检测脚本文件的语言;集成模块,用于将编译后的检测特征库源文件集成到待检测脚本文件的检测模块中;获取模块,用于获取并加载待检测脚本文件;检测模块,用于利用ragel正则状态机检测待检测脚本文件;判断模块,用于判断待检测脚本文件与检测特征库源文件中的恶意字符串ragel正则表达式是否匹配,如果是,则所述待检测脚本文件为恶意,否则所述待检测脚本文件为普通文件。所述的系统中,解析已知恶意脚本文件,提取恶意字符串ragel正则表达式具体为:按照恶意代码家族或变种分类解析恶意脚本文件,去除非恶意代码部分,保留恶意代码部分;并根据恶意代码家族或变种具有共性的恶意代码部分,提取一条或多条ragel正则表达式。所述的系统中,所述将提取到的恶意字符串ragel正则表达式组成检测特征库源文件具体为:采用ragel状态机语法格式构造检测特征库源文件。所述的系统中,所述检测特征库源文件的检测接口的输入为待检测脚本文件的buf及大小,输出为检测结果及病毒名。所述的系统中,所述判断待检测脚本文件与检测特征库源文件中的ragel正则表达式是否匹配,具体为,判断待检测脚本文件与检测特征库源文件中是否有一条或多条ragel正则表达式相同,如果是则匹配。本专利技术的关键在于,通过提取恶意脚本不同家族的ragel正则表达式,组建立由ragel正则表达式组成的检测特征库,通过ragel有限状态机编译器将恶意脚本的检测特征库编译为目标文件语言,通过集成该检测特征库,即可利用有限状态机进行脚本文件的检测。本专利技术优势在于,由于基于正则状态机进行检测,无需每条特征都对待检测脚本文件进行全文搜索,也无需对大量恶意脚本进行聚类训练,其检测速度比普通特征匹配检测和机器学习检测方法都快很多。另外与其他脚本检测方法相比,利用ragel状态机编译器,可生成不同目标语言下的恶意脚本检测源文件,可集成在任何不同语言编写的脚本检测模块中,适用面也因此更加广泛。本专利技术提出了一种提取恶意脚本ragel正则特征码,通过ragel状态机编译器编译为所需编程语言的恶意脚本检测源文件,利用该原文件可对恶意脚本进行快速检测,其检测速度远高于仅仅依靠特征码进行字符串匹配或正则匹配的恶意脚本检测方法,同时本方法可快速下发ragel正则特征码,并且对恶意脚本检测的误报率比较低。另外本方法在提取恶意脚本ragel特征时,并不局限于提取某一条正则特征,而是可以对同一个家族提取多个ragel正则表达式。附图说明为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术一种基于ragel状态机的恶意脚本检测方法实施例流程图;图2为本专利技术一种基于ragel状态机的恶意脚本检测系统实施例结构示意图。具体实施方式为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术中技术方案作进一步详细的说明。本专利技术提出一种基于ragel状态机的恶意脚本检测方法及系统,解决了现有脚本检测方法效率低,误报率高的问题,实现了对脚本文件的快速检测。本专利技术首先提出了一种基于ragel状态机的恶意脚本检测方法,如图1所示,包括:S101:解析已知恶意脚本文件,提取恶意字符串ragel正则表达式;S102:将提取到的恶意字符串ragel正则表达式组成检测特征库源文件;S103:将所述检测特征库源文件编译为待检本文档来自技高网
...
一种基于ragel状态机的恶意脚本检测方法及系统

【技术保护点】
一种基于ragel状态机的恶意脚本检测方法,其特征在于,包括:解析已知恶意脚本文件,提取恶意字符串ragel正则表达式;将提取到的恶意字符串ragel正则表达式组成检测特征库源文件;将所述检测特征库源文件编译为待检测脚本文件的语言;将编译后的检测特征库源文件集成到待检测脚本文件的检测模块中;获取并加载待检测脚本文件;利用ragel正则状态机检测待检测脚本文件;判断待检测脚本文件与检测特征库源文件中的恶意字符串ragel正则表达式是否匹配,如果是,则所述待检测脚本文件为恶意,否则所述待检测脚本文件为普通文件。

【技术特征摘要】
1.一种基于ragel状态机的恶意脚本检测方法,其特征在于,包括:解析已知恶意脚本文件,提取恶意字符串ragel正则表达式;将提取到的恶意字符串ragel正则表达式组成检测特征库源文件;将所述检测特征库源文件编译为待检测脚本文件的语言;将编译后的检测特征库源文件集成到待检测脚本文件的检测模块中;获取并加载待检测脚本文件;利用ragel正则状态机检测待检测脚本文件;判断待检测脚本文件与检测特征库源文件中的恶意字符串ragel正则表达式是否匹配,如果是,则所述待检测脚本文件为恶意,否则所述待检测脚本文件为普通文件。2.如权利要求1所述的方法,其特征在于,解析已知恶意脚本文件,提取恶意字符串ragel正则表达式具体为:按照恶意代码家族或变种分类解析恶意脚本文件,去除非恶意代码部分,保留恶意代码部分;并根据恶意代码家族或变种具有共性的恶意代码部分,提取一条或多条ragel正则表达式。3.如权利要求1所述的方法,其特征在于,所述将提取到的恶意字符串ragel正则表达式组成检测特征库源文件具体为:采用ragel状态机语法格式构造检测特征库源文件。4.如权利要求3所述的方法,其特征在于,所述检测特征库源文件的检测接口的输入为待检测脚本文件的buf及大小,输出为检测结果及病毒名。5.如权利要求1所述的方法,其特征在于,所述判断待检测脚本文件与检测特征库源文件中的ragel正则表达式是否匹配,具体为,判断待检测脚本文件与检测特征库源文件中是否有一条或多条ragel正则表达式相同,如果是则匹配。6.一种基于ragel状态机的恶意脚本检测系统,其...

【专利技术属性】
技术研发人员:黄磊童志明肖新光
申请(专利权)人:哈尔滨安天科技股份有限公司
类型:发明
国别省市:黑龙江,23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1