一种基于动态内容分析的网页木马实时检测方法技术

技术编号:13889113 阅读:117 留言:0更新日期:2016-10-24 03:37
本发明专利技术公开了一种基于动态内容分析的网页木马实时检测方法,首先组成样本库,并将样本库分成训练集和测试集;然后用JavaScript动态分析软件对样本库的网页中的JavaScript代码进行插桩,运行插桩后网页,动态追踪字符串处理提取一系列行为特征,与此同时,记录“堆操作危险指数”,以上特征组成特征向量,将所有特征向量生成样本库的特征集;选择不同的分类算法,进行分类模型训练,选择分类结果最优的模型作为检测模型;最后运行动态分析软件,对经过代理服务器的网页进行插桩,访问已插桩的待测网页,动态提取相关特征,使用检测模型判断是良性网页还是包含网页木马的恶意网页。相比静态分析方式,本发明专利技术具有更高的检测精准率,可以有效对抗代码混淆技术。

【技术实现步骤摘要】

本专利技术属于计算机恶意软件检测或处理领域,具体涉及一种基于动态内容分析的网页木马检测方法。
技术介绍
Web应用和服务已成为现代人日常生活中不可或缺的一部分。JavaScript是一门常被用于Web应用开发的客户端脚本编程语言,因为它所提供的动态特性而在互联网上被广泛使用。与此同时,JavaScript也为传播恶意软件提供了巨大的方便。恶意行为的实施者常常利用恶意JavaScript脚本对受害者进行Drive-by Download攻击,即网页木马(直译为路过式下载)。这种攻击方式使用户在浏览特定网页时,系统会在用户不知情的情况下下载和执行恶意代码,最终被盗取有价值的敏感信息,甚至成为僵尸网络(Botnet)的一部分。近年来,对网页木马的检测和防御已经成为信息安全领域研究的主要课题之一。现有的代表性方案有两种,一种选择在服务端进行保护和在网站开发过程中进行漏洞检测与修补,避免网站遭受恶意修改或被第三方广告和插件嵌入恶意代码;另一种是对恶意代码的检测方案。在检测技术上主要分为三类:一是基于网站URL的分析;二是检测网页内容;三是分析浏览器在浏览页面时的运行状态。针对URL的检测技术基于对网站域名、链接结构、DNS信息等URL相关的信息的分析。与此相对的,网页内容分析和浏览器运行状态分析试图检测目标网页是否执行Drive-by Download攻击。网页内容分析被分类为静态分析、动态分析和混合分析。由于JavaScript语言的一些高危行为(如执行本地文件)被浏览器和操作系统的安全性机制限制,恶意网页制作者会选择利用针对浏览器及其插件的漏洞来绕过这一机制。静态分析方法具有速度快,资源占用低的特点。但混淆技术常常被用于隐藏恶意代码的真实意图,使静态分析容易产生漏报。与此同时,混淆技术并不仅仅被用于恶意代码,也被用于良性代码以达到保护知识产权的目的。检测代码是否被混淆并不能决定该代码是否有恶意意图。动态分析可以收集代码运行时信息有效的对抗混淆技术,检测代码潜在的恶意行为。动静态混合分析的方法试图对前两者进行权衡。
技术实现思路
本专利技术要解决的技术问题是提供一种能有效克服代码混淆技术影响的网页木马检
测技术。为解决上述问题,本专利技术提出一种基于动态内容分析的网页木马实时检测方法,包含以下步骤:步骤1)收集一定量的恶意网页集M和和良性网页集B,分别组成样本库,并将样本库分成训练集和测试集;步骤2)用JavaScript动态分析软件对样本库的网页中的JavaScript代码进行插桩,运行插桩后网页,利用动态分析软件的回调分析函数,给所有创建的字符串加上污点记录,并记录JavaScript代码中对字符串的操作,以及每次操作的字符串的源类型,当一个字符串流向指定的终点时,将该字符串经历过的每次字符串操作记录和对应的源类型作为一个特征,与此同时,记录“堆操作危险指数”,以上特征组成特征向量,将从样本库中网页提取的所有特征向量生成样本库的特征集;步骤3)选择不同的分类算法,使用步骤2生成的特征集进行分类模型训练,选择分类结果最优的模型作为检测模型;步骤4)建立代理服务器,运行动态分析软件,对经过代理服务器的网页进行插桩,访问已插桩的待测网页,动态提取步骤2所述的相关特征,使用步骤3获得的检测模型判断是良性网页还是包含网页木马的恶意网页。进一步,步骤2中的所述相关特征包括:A,是否发生iframe元素动态插入或src属性修改;B,是否动态插入Script标签;C,是否有动态生成类函数执行;D,是否有实时执行类函数执行;E,是否有方括号形式对象成员引用;F,堆操作危险指数。又进一步,上述堆操作危险指数的计算方法为:动态检测长度超过1024的字符串,一旦它或由拼接、截取或修改它而得到的字符串被写入某一个对象的属性中,则计算N/1024并累加到堆操作危险指数,N为写入的字符串长度。进一步,步骤1中的所述良性网页集B是从专门发布网站世界排名的网站中选取排名靠前的一定数量的网站首页取得。进一步,步骤2中的所述动态分析软件为Jalangi2。相比现有技术,本专利技术的有益效果在于:(1)将JavaScript字符串操作记录作为特征,有效抵抗混淆技术。(2)使用Jalangi2插桩工具,动态分析的实现不依赖于浏览器与操作系统。本专利技术对通过基于动态的网页内容分析的方法检测网页木马,能够有效克服JavaScript代码混淆技术对静态分析类方法检测率的负面影响。附图说明图1为利用Jalangi2进行插桩的流程图。图2是分类模型训练流程图。图3为本专利技术网页木马检测的流程图。具体实施方式现结合附图对本专利技术的具体实施作进一步详细的说明。本专利技术提供一种基于动态内容分析的进行网页木马实时检测的实施例。本实施例是针对使用JavaScript脚本实施的Drive-by Download攻击,即网页木马攻击,进行检测的方法。使用JavaScript动态分析软件,优选为Jalangi2,对网页中的JavaScript代码插桩,在代码运行过程中追踪字符串操作并提取一系列相关行为特征,利用预先训练好的分类模型进行分类,判断该网页是否执行网页木马攻击。步骤1)收集一定量的恶意网页集M和和良性网页集B,分别组成样本库。步骤1.1)从Alexa上获取排名靠前的一定数量的网站首页,组成良性网页集B。步骤1.2)从VirusTotal上获取一定数量的网页木马样本。步骤1.3)将样本库分成训练集和测试集。步骤2)对样本库中的网页包含的JavaScript代码进行特征提取。步骤2.1)Jalangi2是一个JavaScript分析框架,通过编写分析脚本并插桩被分析代码实现动态分析。如图1所示,用Jalangi2对样本库的网页中的JavaScript代码进行插桩,包括训练样本集和测试样本集的网页。步骤2.2)运行插桩后网页,利用Jalangi2的回调分析函数,给所有字符串加上污点记录,并记录JavaScript代码中对字符串的操作,以及每次操作的字符串的源(Source)类型。当一个字符串流向指定的终点(Sink)时,将该字符串经历过的每次字符串操作记录和对应的源类型作为一个特征。本方法将源分为四类:1.JavaScript字符串字面量,即直接写入JavaScript源代码的字符串固定值;2.DOM对象的内容和属性;3.从其它类型转换得到的字符串;4.来自于网页代码之外的字符串,包括AJAX请求返回的数据和URL获取得到的字符串。列出指定的终点:1.实时执行类函数,包括eval(),setTimeout(),setInterval();2.动态生成类函数,包括document.write(),document.writeln();3.Script元素和Iframe元素对象;4.方括号形式对象成员引用,形如a[b];5.JavaScript页面跳转途径,包括window.location.href,window.navigate,window.loction.replace,self.location,top.location。记录的字符串操作包含原生字符串操作函数以及+运算符,字符串操作函数的定义:传入参数为字符串类型,返回也为字符串类型的函数或字符串所有的返回字符本文档来自技高网
...

【技术保护点】
一种基于动态内容分析的网页木马实时检测方法,其特征在于包含以下步骤:步骤1)收集一定量的恶意网页集M和和良性网页集B,分别组成样本库,并将样本库分成训练集和测试集;步骤2)用JavaScript动态分析软件对样本库的网页中的JavaScript代码进行插桩,运行插桩后网页,利用动态分析软件的回调分析函数,给所有创建的字符串加上污点记录,并记录JavaScript代码中对字符串的操作,以及每次操作的字符串的源类型,当一个字符串流向指定的终点时,将该字符串经历过的每次字符串操作记录和对应的源类型作为一个特征,与此同时,记录“堆操作危险指数”,以上特征组成特征向量,将从样本库中网页提取的所有特征向量生成样本库的特征集;步骤3)选择不同的分类算法,使用步骤2生成的特征集进行分类模型训练,选择分类结果最优的模型作为检测模型;步骤4)建立代理服务器,运行动态分析软件,对经过代理服务器的网页进行插桩,访问已插桩的待测网页,动态提取步骤2所述的相关特征,使用步骤3获得的检测模型判断是良性网页还是包含网页木马的恶意网页。

【技术特征摘要】
1.一种基于动态内容分析的网页木马实时检测方法,其特征在于包含以下步骤:步骤1)收集一定量的恶意网页集M和和良性网页集B,分别组成样本库,并将样本库分成训练集和测试集;步骤2)用JavaScript动态分析软件对样本库的网页中的JavaScript代码进行插桩,运行插桩后网页,利用动态分析软件的回调分析函数,给所有创建的字符串加上污点记录,并记录JavaScript代码中对字符串的操作,以及每次操作的字符串的源类型,当一个字符串流向指定的终点时,将该字符串经历过的每次字符串操作记录和对应的源类型作为一个特征,与此同时,记录“堆操作危险指数”,以上特征组成特征向量,将从样本库中网页提取的所有特征向量生成样本库的特征集;步骤3)选择不同的分类算法,使用步骤2生成的特征集进行分类模型训练,选择分类结果最优的模型作为检测模型;步骤4)建立代理服务器,运行动态分析软件,对经过代理服务器的网页进行插桩,访问已插桩的待测网页,动态提取步骤2所述的相关特征,使用步骤3获得的检测模型判断是良性网页还是包含网...

【专利技术属性】
技术研发人员:张卫丰刘蕊成张迎周周国强王子元
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏;32

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

1