CN109922052A - 一种结合多重特征的恶意url检测方法 - Google Patents
一种结合多重特征的恶意url检测方法 Download PDFInfo
- Publication number
- CN109922052A CN109922052A CN201910134025.3A CN201910134025A CN109922052A CN 109922052 A CN109922052 A CN 109922052A CN 201910134025 A CN201910134025 A CN 201910134025A CN 109922052 A CN109922052 A CN 109922052A
- Authority
- CN
- China
- Prior art keywords
- url
- detected
- page
- specifically
- malice
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种结合多重特征的恶意URL检测方法,包括获取各样本和待检测URL所指向网页的访问交互数据;从访问交互数据中提取各样本和待检测URL的分类特征,分类特征包括页面内容特征、动态解析参数特征和Web会话流程特征;利用样本的分类特征和分类标签训练分类器模型;将待检测URL的分类特征输入训练好的分类器模型进行计算,由分类器模型输出待检测URL的判别值;当待检测URL的判别值大于设定的恶意URL检测阈值时,则判定待检测URL为恶意URL。本发明方法在不需要捕获操作系统底层行为信息的前提下,结合多重特征进行检测,提高了对恶意URL检测的精确性和检测效率。
Description
技术领域
本发明涉及网络与信息安全技术领域,特别涉及一种结合多重特征的恶意URL(统一资源定位符)检测方法。
背景技术
随着互联网技术的迅速发展和计算机应用的普及,用户主要通过浏览器进行网络活动,浏览器已经成为很多Web应用的入口。攻击者往往利用正常网站自身存在的各种漏洞来攻陷网站,并在网页中插入恶意代码,当正常用户访问这个被篡改的网页时,用户会在不知情的情况下被强制性自动跳转到恶意服务器。恶意服务器会根据用户的请求头信息判断客户端环境,并返回可利用漏洞的恶意页面。在客户端浏览器解析恶意页面时,恶意代码就会自动执行,利用浏览器和插件的漏洞进行攻击操作,进而下载恶意软件到用户客户端,整个攻击整个过程不需要用户参与交互,因此它被认为是互联网安全中最主要的威胁之一。
目前已有的技术方案中,针对恶意URL的检测方法主要包括基于黑名单过滤和签名匹配方法,特征匹配与机器学习相结合的检测方法。
基于黑名单过滤方法是工程中最常用的识别恶意URL的检测方法,使用第三方公开的恶意URL列表阻止用户访问恶意URL,但是这种方法局限性在于依赖于第三方安全机构提供的检测结果,有一定的滞后性,无法阻止尚未被加入黑名单的新出现的恶意URL的攻击。
基于签名匹配的方法使用签名来检测恶意URL,签名通常来自公开的检测系统和安全公司,这种方法只适用于检测已知的恶意URL,而且签名的生成需要安全人员参与编写,工作量较大,同时需要及时进行更新签名。
特征匹配与机器学习相结合的检测方法,需要基于安全专家的相关经验知识和真实样例来确定用于区分正常URL和恶意URL的特征,结合机器学习算法进行分类检测,选择不同类型的特征进行匹配检测的方法适用于不同的检测场景,特征选择对于最终的检测效果具有较大的影响。同时捕获系统底层信息和攻击行为特征消耗较多的系统资源,在检测的过程中需要考虑检测效率和实时性。
因此,针对上述问题,有必要提供一种新的恶意URL检测方法,使得在对恶意URL进行检测时,能够更精确的检测和实现较高的检测效率。
发明内容
本发明所解决的技术问题是,针对现有技术的不足,提供一种结合多重特征的恶意URL检测方法,能够提高恶意URL的识别效率以及准确率。
本发明所提供的技术方案为:
一种结合多重特征的恶意URL检测方法,包括以下步骤:
步骤1:以正常URL和已知恶意URL作为样本,获取各个样本所指向网页的访问交互数据;
步骤2:分别从每个样本所指向网页的访问交互数据中提取其分类特征,分类特征包括页面内容特征、动态解析参数特征和Web会话流程特征;
步骤3:以采用机器学习算法构建分类器模型,以样本的分类特征为分类器模型的输入,样本的分类标签为分类器模型的输出,对分类器模型进行训练;
步骤4:获取待检测URL所指向网页的访问交互数据,并从该访问交互数据提取待检测URL的分类特征;
步骤5:将待检测URL的分类特征输入训练好的分类器模型中进行计算,根据计算结果判定待检测URL是否为恶意URL。
特征选择的过程即根据正常URL和恶意URL各方面的差异性选择具有明显区别度的特征。恶意URL采用包括代码混淆、代码注入和客户端环境识别多种方式逃避常规检测方法。本发明通过对公开恶意URL的流量包和真实恶意URL的会话流程中攻击行为特点进行分析和设计确定特征库,特征库包括页面内容特征、动态解析参数特征和Web会话流程特征三个方面特征。
进一步地,所述页面内容特征是通过提取页面源代码得到的特征,正常页面和恶意页面在这些特征上具有差异性;页面内容特征包括:
1)页面中隐藏的标签元素的数目;攻击者利用隐藏标签元素引入外部恶意页面;具体的,统计所有设置为不可见状态的(隐藏的)标签元素的总数目,即求将展示样式设置为“display:none”的标签元素,将可见性设置为“visibility:hidden”的标签元素,以及将透明度设置为“opacity:0.0”的标签元素的数目的总和;
2)页面中小面积标签元素的数目;定义标签元素的宽度和高度都小于阈值(阈值设置为2像素)的标签元素和子标签元素面积小于父标签元素面积的指定比例(指定比例设置为1%)的标签元素为小面积标签元素,统计页面中小面积标签元素的总数目;
3)页面中关键控件标签元素的数目;恶意网页利用有漏洞的关键控件标签元素获取更高级的系统权限;关键控件标签元素包括Object标签元素和embed标签元素;具体的,记录页面中Object标签元素和embed标签元素的总使用数目;
4)特殊字符的数目;恶意代码为逃避签名检查,使用编码加密函数(如escape函数等),混淆恶意代码;具体的,选取“\x”、“%u”、“+”、“|”作为特殊字符,这些特殊字符是字符串经混淆后独有的特点;记录页面脚本中特殊字符的总数目;
5)字符串操作函数的数目;恶意代码使用字符串操作函数和操作符修改字符串,隐藏真实的恶意代码具体的,记录页面脚本中字符串操作函数fromCharCode()、charCodeAt()、charAt()、indexOf()、split()和concat(),以及操作符“+”和“=”的总使用数目;
6)触发事件函数的数目;触发事件函数用于当用户触发页面事件发生时执行绑定的函数和代码;具体的,记录页面脚本代码中触发事件函数onload(),onunload(),onerror()和onbeforeunload()的使用总数目;
7)字符串的平均长度,攻击者往往对页面中恶意代码进行混淆,经过混淆编码后的恶意代码长度会增大,具体的,记录页面脚本中出现的字符串的长度,并计算平均长度;
8)长字符串的数目;恶意代码利用长字符串进行漏洞攻击,这类漏洞的触发需要利用较长的代码片段进行填充;具体的,定义长度超过阈值(128)的字符串为长字符串,记录页面脚本中长字符串的数目;
9)包含VBScript代码关键字符的数目;具体的,此特征记录页面中使用VBScript脚本的情况下,页面脚本中包含关键字符串“Shell”、“WriteData”、“svchost.exe”、“cmd.exe”的总数目,若页面中没有使用VBScript脚本,则此特征值设置为0;
10)环境检测关键词的数目;恶意网页针对特定客户端环境的用户进行触发漏洞攻击,攻击者利用JavaScript脚本自带的navigator.userAgent对象和Javascript库PluginDetect检测客户端环境;具体的,此特征记录页面脚本中环境检测关键词navigator.userAgent和PluginDetect的总使用数目。
进一步地,根据对恶意URL的公开流量包和真实恶意URL实例进行分析,发现恶意代码通过动态执行触发漏洞进而取得高级权限,这些恶意代码在解析的过程中的参数与正常页面有明显的区别。提取的动态解析参数特征,包括:
1)动态执行函数参数的平均长度;动态执行函数是一类可以动态的执行字符串中的脚本代码的函数;具体的,此特征记录待检测URL在解析过程中动态执行函数eval()、setTimeout()和setInterval()函数每次传入的字符串参数长度,并计算其参数的平均长度;
2)动态执行函数参数包含关键词的数目;恶意代码通常利用动态执行函数的动态创建标签元素;具体的,特征记录待检测URL在解析过程中动态执行函数eval()、setTimeout()和setInterval()的参数中包含关键词“frame”、“iframe”、“script”和“link”的数目;
3)标签元素生成函数参数包含关键词的数目;标签元素生成函数是一类用于在页面中动态创建标签元素的函数;此特征记录待检测URL在解析过程中标签元素生成函数document.write()和document.writeln()的参数中包含关键词“frame”、“iframe”、“script”和“link”的数目;
4)编码函数参数的平均长度;此特征记录待检测URL在解析过程中escape()编码函数的参数的长度,并计算其参数的平均长度;
5)编码函数参数包含关键词的数目;此特征记录待检测URL在解析过程中unescape()解码函数经过执行后得到的字符串中关键词“frame”、“iframe”、“script”和“link”的数目;
6)跨域资源请求标签元素的数目;恶意页面利用资源请求类标签元素在页面加载过程中请求其它域名的资源;具体的,此特征记录待检测URL在解析过程中发起的资源请求中,URL的域名和初始域名不相同的请求数目;
7)客户端重定向跳转的数目;此特征记录待检测URL在解析过程中使用meta标签元素自动重定向,以及通过JavaScript的window.open()函数和location.href脚本实现重定向跳转的总数目。
进一步地,除以上提出的页面内容特征和动态解析参数特征,本发明还关注于用户客户端与服务器主机之间的交互动态,即网络流量包中请求的整体访问流程,针对会话访问流程提取相应的特征。提取的Web会话流程特征,包括:
1)会话平均访问时间;恶意URL的Web会话访问过程中通常存在多次重定向跳转,每个请求会话的持续时间较长;具体的,此特征记录待检测URL的整个会话过程中每个请求会话的平均访问时间;
2)会话服务器端重定向的数目;此特征记录待检测URL的整个会话过程中服务器端返回以3开头的重定向类型的响应码数目;
3)会话重定向链的长度;恶意URL的攻击流程中整体会话过程中重定向链的最大长度较长;具体的,此特征记录待检测URL的整个会话过程中重定向链的最大长度;
4)会话请求URL的平均长度;恶意URL在Web会话过程中请求的URL平均长度相比正常URL平均长度更长;具体的,此特征记录待检测URL的整个会话过程中所有请求URL的长度,并计算请求URL的平均长度;
5)会话请求使用加密协议的数目;正常URL通常会向认证组织申请证书,在访问过程中更多的使用安全的加密协议进行通信,而恶意URL很少能够取得认证组织的证书;具体的,此特征记录待检测URL的整个会话过程中请求使用加密协议的数目;
6)会话响应关键资源的数目;恶意URL利用客户端插件中存在的漏洞进行攻击,因此恶意URL针对不同的插件响应特殊类型的资源文件,表1为定义的关键资源类型与Content-Type字段的对应表;具体的,此特征记录待检测URL的整个会话过程中会话响应关键资源的总数目;
表1.关键资源与Content-Type字段对应表
7)会话响应关键资源的平均大小;具体的,此特征记录待检测URL的整个会话过程中所有会话响应关键资源文件的大小,并计算其平均值大小,此特征中所指的关键资源与(6)中关键资源相同;
8)会话响应错误的数目;恶意服务器针对不符合攻击条件的客户端通过响应请求出错来避免被发现;具体的,此特征记录待检测URL的整个会话过程中除首次请求外服务器端返回的以4开头的客户端错误和以5开头的服务器端错误类型的响应码的总数目。
进一步地,所述步骤3中,根据对恶意URL的检测需求,最终选择随机森林算法构建分类器模型,用于对待检测URL进行分类检测。将得到的待检测URL的页面内容特征、动态解析参数特征和Web会话流程特征组合输入分类器模型中进行计算,由分类器输出待检测URL相对于分类器模型匹配程度的待检测URL的判别值。
进一步地,对多个待检测URL进行批量检测时,在所述步骤4中,首先通过预处理操作,过滤掉无效的待检测URL,即不能正常响应的待检测URL和响应页面不是有效页面的待检测URL,再对剩下的每一个待检测URL,分别使用虚拟机模拟客户端对其进行请求,保存请求过程中访问交互数据,访问交互数据包括请求URL返回的响应码、虚拟机的日志记录和响应页面源代码;
进一步地,为尽可能多触发恶意URL的攻击,模拟经常被攻击利用的客户端环境来触发恶意页面中恶意代码进行攻击,包括Windows xp、Windows7操作系统搭配InternetExplorer 6.0、7.0、8.0版本和Chrome 45.0.2623.87版本浏览器,以及MacOSX 10_6_8操作系统搭配Safari 5.1.1版本浏览器和Linux系统搭配Chrome 45.0.2623.87版本浏览器,共模拟10种客户端环境请求访问待检测URL,保存请求待检测URL过程中访问交互数据。
进一步地,使用PyV8包装的Google V8Javascript引擎来解析和执行待检测URL响应的Javascript脚本代码,以自动获取相应的访问日志记录。
进一步地,所述预处理操作包括以下步骤:
4.1、提取请求URL的首次响应码(对URL进行首次请求时,其服务器端返回的响应码),根据首次响应码判断URL是否能正常响应,若首次响应码为以4开头的客户端错误和以5开头的服务器端错误类型的响应码,则过滤该URL;
4.2、提取请求URL的响应页面源代码,根据响应页面源代码判断响应页面是否为有效页面,过滤不满足HTML格式和响应页面内容为纯文字的URL;
进一步地,所述步骤5中,分类器模型的输出结果为待检测URL的判别值,取值范围为[0,1]。通过与预设的恶意URL分类阈值进行对比,得到检测结果。若待检测URL的判别值大于设定的恶意URL的分类阈值,则判定待检测URL为恶意URL,否则判定待检测URL为正常URL。分类阈值可根据经验进行调整。
进一步地,所述步骤5中,设定的恶意URL的分类阈值为0.5;若待检测URL的判别值位于(0.5,1]区间内,则将待检测URL分类为恶意URL,若待检测URL的判别值位于[0,0.5]区间内,将待检测URL分类为正常URL。
本发明还提供了一种结合多重特征的恶意URL检测系统,结构图如图2所示,包括数据获取模块、特征提取模块、分类器训练模块和恶意URL检测模块;
所述数据获取模块,用于获取各个样本和待检测URL所指向网页的访问交互数据;
特征提取模块,用于从各个样本和待检测URL所指向网页的访问交互数据中提取相应的分类特征;
分类器训练模块,用于采用机器学习算法构建分类器模型,以样本的分类特征为分类器模型的输入,样本的分类标签为分类器模型的输出,对分类器模型进行训练;
恶意URL检测模块,用于将待检测URL的分类特征输入训练好的分类器模型中进行计算,根据计算结果判定待检测URL是否为恶意URL。
所述检测系统采用上述方法实现恶意URL检测。
与现有方法和技术相比,本发明的有益效果为:
首先,本发明是针对恶意URL的攻击方式特点和利用场景,基于对公开恶意URL的流量包和真实恶意URL的会话流程进行分析,根据恶意URL的攻击特点,从页面内容、动态解析参数和Web会话流程三个方面提取了多方面(25个)具有区分度的特征,并将这些特征组合成URL的特征向量,来训练用于检测的分类器模型。本发明方法在不需要捕获操作系统底层行为信息的前提下,结合多重特征进行检测,能够较快速和准确检测大量的URL。将所述本发明检测方法与现有开源项目以及商业安全软件的检测结果进行对比,实验结果表明相比于现有公开的检测工具,本发明具有更高的精确性和检测效率。
附图说明
图1为本发明提供的检测方法流程示意图;
图2为本发明提供的检测系统结构示意图。
具体实施方式
为了能够更加清楚的了解本发明的技术方案,下面详细描述本发明的实施例,所述实施例的示例在附图中示出,下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本发明提供了一种结合多重特征的恶意URL检测方法,结构图如图1所示,包括以下步骤:
步骤1:以正常URL和已知恶意URL作为样本,获取各个样本所指向网页的访问交互数据;
步骤2:分别从每个样本所指向网页的访问交互数据中提取其分类特征,分类特征包括页面内容特征、动态解析参数特征和Web会话流程特征;
步骤3:以采用机器学习算法构建分类器模型,以样本的分类特征为分类器模型的输入,样本的分类标签为分类器模型的输出,对分类器模型进行训练;
步骤4:获取待检测URL所指向网页的访问交互数据,并从该访问交互数据提取待检测URL的分类特征;
步骤5:将待检测URL的分类特征输入训练好的分类器模型中进行计算,根据计算结果判定待检测URL是否为恶意URL。
所述页面内容特征,包括标签元素向量和脚本向量。其中:
标签元素向量为(属性设置为隐藏的标签元素数目,小面积标签元素数目,关键控件标签元素数目);
脚本向量是指脚本中包含的可疑字符或函数数目,具体为(特殊字符数目,字符串操作函数数目,触发事件函数数目,字符串的平均长度,字符串长度超过阈值的数目,包含VBScript代码关键字符的数目,环境检测关键词数目)。
所述动态解析参数特征,包括动态执行函数参数向量、标签元素生成函数参数向量和编码函数参数向量,以及跨域请求向量,其中:
动态执行函数参数向量为(动态执行函数参数的平均长度,动态执行函数参数包含关键词的数目);
标签元素生成函数参数向量是指标签元素生成函数参数中含关键词的数目;
编码函数参数向量为(编码函数参数的平均长度,编码函数参数包含关键词的数目);
跨域请求向量为(跨域资源请求标签元素的数目,客户端重定向跳转的数目)。
所述会话流程特征,包括会话流程向量、会话请求向量和会话响应向量,其中:
会话流程向量为(会话平均访问时间,会话服务器端重定向的数目,会话重定向链的长度);
会话请求向量为(会话请求URL的平均长度,会话请求使用加密协议的数目);
会话响应向量为(会话响应关键资源的数目,会话响应关键资源的平均大小,会话响应错误的数目);
本发明还提供了一种结合多重特征的恶意URL检测系统,结构图如图2所示,包括数据获取模块、特征提取模块、分类器训练模块和恶意URL检测模块;
所述数据获取模块,用于获取各个样本和待检测URL所指向网页的访问交互数据;
特征提取模块,用于从各个样本和待检测URL所指向网页的访问交互数据中提取相应的分类特征;
分类器训练模块,用于采用机器学习算法构建分类器模型,以样本的分类特征为分类器模型的输入,样本的分类标签为分类器模型的输出,对分类器模型进行训练;
恶意URL检测模块,用于将待检测URL的分类特征输入训练好的分类器模型中进行计算,根据计算结果判定待检测URL是否为恶意URL。
所述检测系统采用上述方法实现恶意URL检测。
具体的,本实施例中,通过搜集已知公开的恶意URL作为恶意样本集,同时搜集经常被访问的流行正常URL作为正常样本集,使用Alexa最受欢迎的网站作为初始URL,使用网络爬虫来请求网页以获取网页中的超链接。为确保正常URL样本集尽可能可信,每个网站的主页和从主页中获取的超链接随机选择组成正常网站的URL样本集。所使用的恶意URL样本库来源于UrlQuery、MalwareDomainList、Malc0de等著名恶意URL发布站点在最近5年公布的仍存活的恶意URL,涵盖了目前流行的绝大多数类型的恶意URL。
在使用多种特征进行分类的过程中,由于不同特征的性质不同,通常具有不同的数量级和量纲。为保证结果更加可靠,消除特征数值分布的影响,需要对原始特征数据进行标准化处理。数据标准化是通过对数据进行按比例缩放,落入一个小的特定区间中,消除数据单位的限制,转化为无量纲的纯数值,使得不同量级的特征可以进行加权。本实施例使用的数据标准化方法是min-max标准化,x表示原始值,max表示样本最大值,min表示样本最小值,x*表示经过标准化处理后得到的值。这种方法对原始数据进行线性变换,使特征值映射到[0-1]之间,计算公式如下:
本实施例中使用以下数据指标用来评估检测系统的优劣,分别是:精确率、召回率、F值。
精确率Precision:精确率是指被模型正确判为恶意URL的数目与全部被判为恶意URL的数目之比。
召回率Recall:召回率指的是测试集中恶意URL被正确判为恶意URL占全部恶意URL的比值。
F值F-measure:由于精确率和召回率有时候会出现矛盾的情况,因此需要综合考虑它们。F值是对精确率和召回率的加权调和平均,当F值比较高时说明方法更有效。
具体计算公式如下:
其中,TN表示正常URL被正确标记为正常URL,TP表示恶意URL被正确标记为恶意URL,FN表示恶意URL被错误标记为正常URL,FP则表示正常URL被错误标记为恶意URL。
将经过标准化处理后的特征值输入到分类器,使用机器学习算法训练分类器,分别采用机器学习分类器中的随机森林算法、朴素贝叶斯算法、决策树算法、支持向量机算法和逻辑回归算法进行训练,并进行十折交叉验证,实验结果如表2所示。
表2.不同算法十折交叉验证结果
构建测试集样本集是从Alexa上收集了2000个与训练集不同的良性URL实例作为测试集中的正常样例,同时又从著名的恶意URL发布网站HpHosts和ZeusTracker收集存活的恶意URL实例,对训练集和测试集中的恶意URL进行了匹配对比,剔除了测试集中与训练集中相同的恶意URL,将剩余的2000个恶意URL实例作为测试集中的恶意样例。对使用训练好随机森林分类器对测试集进行检测,实验结果如表3所示,可以看出本发明提出的方法对不同的数据集进行测试同样具有良好的检测效果。
表3.对测试集检测实验结果
为了评估不同特征对于检测效果的影响,以下分别使用全部特征组合、单独使用页面内容特征、动态解析参数特征、Web会话流程特征,以及页面静态特征与Web会话流程组合特征进行训练和测试,实验结果如表4所示,可以看出当所有特征组合在一起时,精确率和召回率都有明显提高。
表4.不同特征组合的实验结果
使用多种来源的样本集进行测试,结果显示本发明方法根据恶意URL的特点和攻击场景提取多方面的特征构成特征库组合,提高了恶意URL检测的准确率。
以下将实现本发明方法的检测系统命名为HADMW,为将本发明检测系统与类似的系统进行比较,选取了惠灵顿大学开发的Capture-HPC和著名开源项目PhoneyC进行对比。从收集的测试集实例中随机选取了200条恶意URL分别提交给HADMW、Capture-HPC和PhoneyC进行测试,比较测试结果可知,本发明的检测准确率更高,实验结果如表5所示:
表5.不同系统的对比实验结果
在性能表现方面,对不同系统检测恶意URL的耗时进行了统计,其中HADMW平均每条URL的检测时间需要42秒,而Capture-HPC和PhoneyC需要的时间分别为38秒和54秒,HADMW与Capture-HPC相比检测效率相差较小,而HADMW比PhoneyC检测效率更高,如表6所示:
表6.不同系统检测恶意URL耗时分布统计
综合比较分析,实验表明HADMW比现有开源工具在检测由漏洞利用工具包托管的恶意URL方面具有更高的准确性和检测效率。
同时使用安全软件Bitdefender和ESET对搜集的2000条恶意URL测试集实例进行测试,并将它们的检测结果与HADMW结果进行对比,如表7所示:
表7.不同安全软件实验结果对比
对比检测结果说明本发明的方法在测试集上的检测精确率高于这两款安全软件。本发明在特征的选取方面明确针对恶意URL的攻击流程,并且动态分析过程获得更多关于代码解析参数的信息,相比之下安全软件的扫描技术通常基于页面代码分析,具有一定的局限性。
同时对不同软件测试2000条恶意URL的耗时进行了统计,其中HADMW在检测的过程中平均每条URL需要44秒,而Bitdefender和ESET需要的时间分别为49秒和53秒,如表8所示:
表8.不同安全软件检测恶意URL耗时分布统计
HADMW比Bitdefender和ESET的检测每条URL的平均时间都短,实验表明HADMW的检测效率达到现有的安全软件水平。
根据测试结果可以得出,本发明方法所实现的系统提高了恶意URL识别的针对性,提高了恶意URL的识别效率以及准确率。
以上所述实施例仅表述了本发明的一种实施方式,其描述较为详细,但这并不能因此而理解为对本发明专利范围的限制。需要指出的是,对于本领域内的技术人员来说,在不脱离本发明构思和特征的前提下,所作出的对本发明的变形都属于本发明的保护范围。因此,本发明的保护范围以所述权利要求为准。
Claims (10)
1.一种结合多重特征的恶意URL检测方法,其特征在于,包括以下步骤:
步骤1:以正常URL和已知恶意URL作为样本,获取各个样本所指向网页的访问交互数据;
步骤2:分别从每个样本所指向网页的访问交互数据中提取其分类特征,分类特征包括页面内容特征、动态解析参数特征和Web会话流程特征;
步骤3:以采用机器学习算法构建分类器模型,以样本的分类特征为分类器模型的输入,样本的分类标签为分类器模型的输出,对分类器模型进行训练;
步骤4:获取待检测URL所指向网页的访问交互数据,并从该访问交互数据提取待检测URL的分类特征;
步骤5:将待检测URL的分类特征输入训练好的分类器模型中进行计算,根据计算结果判定待检测URL是否为恶意URL。
2.根据权利要求1所述的结合多重特征的恶意URL检测方法,其特征在于,所述页面内容特征包括:
1)页面中隐藏的标签元素的数目;具体的,此特征值为页面中所有隐藏的标签元素的总数目,即将展示样式设置为“display:none”的标签元素,将可见性设置为“visibility:hidden”的标签元素,以及将透明度设置为“opacity:0.0”的标签元素的数目的总和;
2)页面中小面积标签元素的数目;具体的,定义标签元素的宽度和高度都小于阈值的标签元素和子标签元素面积小于父标签元素面积的指定比例的标签元素为小面积标签元素,此特征值为页面中小面积标签元素的总数目;
3)页面中关键控件标签元素的数目;具体的,关键控件标签元素包括Object标签元素和embed标签元素,此特征值为页面中Object标签元素和embed标签元素的总使用数目;
4)特殊字符的数目;具体的,选取“\x”、“%u”、“+”、“|”作为特殊字符,此特征值为页面脚本中特殊字符的总数目;
5)字符串操作函数的数目;具体的,此特征值为页面脚本中字符串操作函数fromCharCode()、charCodeAt()、charAt()、indexOf()、split()和concat(),以及操作符“+”和“=”的总使用数目;
6)触发事件函数的数目;具体的,此特征值为页面脚本代码中触发事件函数onload(),onunload(),onerror()和onbeforeunload()的使用总数目;
7)字符串的平均长度;具体的,此特征值为页面脚本中出现的字符串的平均长度;
8)长字符串的数目;具体的,定义长度超过阈值的字符串为长字符串,此特征值为页面脚本中长字符串的数目;
9)包含VBScript代码关键字符的数目;具体的,在页面中使用VBScript脚本的情况下,此特征值为页面脚本中包含关键字符串“Shell”、“WriteData”、“svchost.exe”、“cmd.exe”的总数目,若页面中没有使用VBScript脚本,则此特征值设置为0;
10)环境检测关键词的数目;具体的,此特征值为页面脚本中环境检测关键词navigator.userAgent和PluginDetect的总使用数目。
3.根据权利要求1所述的结合多重特征的恶意URL检测方法,其特征在于,所述动态解析参数特征,包括:
1)动态执行函数参数的平均长度;具体的,此特征值为待检测URL在解析过程中动态执行函数eval()、setTimeout()和setInterval()函数每次传入的字符串参数长度,并计算其参数的平均长度;
2)动态执行函数参数包含关键词的数目;具体的,此特征值为待检测URL在解析过程中动态执行函数eval()、setTimeout()和setInterval()的参数中包含关键词“frame”、“iframe”、“script”和“link”的数目;
3)标签元素生成函数参数包含关键词的数目;具体的,此特征值为待检测URL在解析过程中标签元素生成函数document.write()和document.writeln()的参数中包含关键词“frame”、“iframe”、“script”和“link”的数目;
4)编码函数参数的平均长度;具体的,此特征值为待检测URL在解析过程中escape()编码函数的参数的平均长度;
5)编码函数参数包含关键词的数目;具体的,此特征值为待检测URL在解析过程中unescape()解码函数经过执行后得到的字符串中关键词“frame”、“iframe”、“script”和“link”的数目;
6)跨域资源请求标签元素的数目;具体的,此特征值为待检测URL在解析过程中发起的资源请求中,URL的域名和初始域名不相同的请求数目;
7)客户端重定向跳转的数目;具体的,此特征值为待检测URL在解析过程中使用meta标签元素自动重定向,以及通过JavaScript的window.open()函数和location.href脚本实现重定向跳转的总数目。
4.根据权利要求1所述的结合多重特征的恶意URL检测方法,其特征在于,所述Web会话流程特征,包括:
1)会话平均访问时间;具体的,此特征值为待检测URL的整个会话过程中每个请求会话的平均访问时间;
2)会话服务器端重定向的数目;具体的,此特征值为待检测URL的整个会话过程中服务器端返回以3开头的重定向类型的响应码数目;
3)会话重定向链的长度;具体的,此特征值为待检测URL的整个会话过程中重定向链的最大长度;
4)会话请求URL的平均长度;具体的,此特征值为待检测URL的整个会话过程中所有请求URL的长度,并计算请求URL的平均长度;
5)会话请求使用加密协议的数目;具体的,此特征值为待检测URL的整个会话过程中请求使用加密协议的数目;
6)会话响应关键资源的数目;具体的,此特征值为待检测URL的整个会话过程中会话响应关键资源的总数目;表1为定义的关键资源类型与Content-Type字段的对应表;
表1.关键资源类型与Content-Type字段的对应表
7)会话响应关键资源的平均大小;具体的,此特征值为待检测URL的整个会话过程中所有会话响应关键资源文件的平均值大小;
8)会话响应错误的数目;具体的,此特征值为待检测URL的整个会话过程中除首次请求外服务器端返回的以4开头的客户端错误和以5开头的服务器端错误类型的响应码的总数目。
5.根据权利要求1所述的结合多重特征的恶意URL检测方法,其特征在于,所述步骤3中,选择随机森林算法构建分类器模型。
6.根据权利要求1所述的结合多重特征的恶意URL检测方法,其特征在于,对多个待检测URL进行批量检测时,在所述步骤4中,首先通过预处理操作,过滤掉无效的待检测URL,即不能正常响应的待检测URL和响应页面不是有效页面的待检测URL,再对剩下的每一个待检测URL,分别使用虚拟机模拟客户端对其进行请求,保存请求过程中访问交互数据,访问交互数据包括请求URL返回的响应码、虚拟机的日志记录和响应页面源代码。
7.根据权利要求1所述的结合多重特征的恶意URL检测方法,其特征在于,对多个待检测URL进行批量检测时,在所述步骤4中,使用虚拟机模拟经常被攻击利用的客户端环境来对待检测URL进行请求,保存请求待检测URL过程中的访问交互数据;经常被攻击利用的客户端环境包括Windows xp、Windows7操作系统搭配Internet Explorer 6.0、7.0、8.0版本和Chrome 45.0.2623.87版本浏览器,以及MacOSX 10_6_8操作系统搭配Safari 5.1.1版本浏览器和Linux系统搭配Chrome 45.0.2623.87版本浏览器。
8.根据权利要求6所述的结合多重特征的恶意URL检测方法,其特征在于,所述预处理操作包括以下步骤:
4.1、提取请求URL的首次响应码(对URL进行首次请求时,其服务器端返回的响应码),根据首次响应码判断URL是否能正常响应,若首次响应码为以4开头的客户端错误和以5开头的服务器端错误类型的响应码,则过滤该URL;
4.2、提取请求URL的响应页面源代码,根据响应页面源代码判断响应页面是否为有效页面,过滤不满足HTML格式和响应页面内容为纯文字的URL。
9.根据权利要求1~8中任一项所述的结合多重特征的恶意URL检测方法,其特征在于,所述步骤5中,计算结果为待检测URL的判别值;若判别值大于设定的恶意URL的分类阈值,则判定待检测URL为恶意URL,否则判定待检测URL为正常URL。
10.根据权利要求9所述的结合多重特征的恶意URL检测方法,其特征在于,所述步骤5中,设定的恶意URL的分类阈值为0.5;若待检测URL的判别值位于(0.5,1]区间内,则将待检测URL分类为恶意URL,若待检测URL的判别值位于[0,0.5]区间内,将待检测URL分类为正常URL。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910134025.3A CN109922052B (zh) | 2019-02-22 | 2019-02-22 | 一种结合多重特征的恶意url检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910134025.3A CN109922052B (zh) | 2019-02-22 | 2019-02-22 | 一种结合多重特征的恶意url检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109922052A true CN109922052A (zh) | 2019-06-21 |
CN109922052B CN109922052B (zh) | 2020-12-29 |
Family
ID=66962080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910134025.3A Active CN109922052B (zh) | 2019-02-22 | 2019-02-22 | 一种结合多重特征的恶意url检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109922052B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110430226A (zh) * | 2019-09-16 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 网络攻击检测方法、装置、计算机设备及存储介质 |
CN110610090A (zh) * | 2019-08-28 | 2019-12-24 | 北京小米移动软件有限公司 | 信息处理方法及装置、存储介质 |
CN110851828A (zh) * | 2019-09-30 | 2020-02-28 | 光通天下网络科技股份有限公司 | 基于多维度特征的恶意url监测方法、装置和电子设备 |
CN110933104A (zh) * | 2019-12-11 | 2020-03-27 | 成都卫士通信息产业股份有限公司 | 恶意命令检测方法、装置、设备及介质 |
CN111030992A (zh) * | 2019-11-08 | 2020-04-17 | 厦门网宿有限公司 | 检测方法、服务器及计算机可读存储介质 |
CN111523119A (zh) * | 2020-04-26 | 2020-08-11 | 南开大学 | 漏洞检测的方法和装置、电子设备及计算机可读存储介质 |
CN111585955A (zh) * | 2020-03-31 | 2020-08-25 | 中南大学 | 一种http请求异常检测方法及系统 |
CN112437036A (zh) * | 2020-01-21 | 2021-03-02 | 上海哔哩哔哩科技有限公司 | 一种数据分析的方法及设备 |
CN112615861A (zh) * | 2020-12-17 | 2021-04-06 | 赛尔网络有限公司 | 恶意域名识别方法、装置、电子设备及存储介质 |
CN112685739A (zh) * | 2020-12-31 | 2021-04-20 | 卓尔智联(武汉)研究院有限公司 | 恶意代码检测方法、数据交互方法及相关设备 |
CN112711723A (zh) * | 2019-10-25 | 2021-04-27 | 北京搜狗科技发展有限公司 | 一种恶意网址检测方法、装置及电子设备 |
CN113051496A (zh) * | 2019-12-27 | 2021-06-29 | 中国电信股份有限公司 | 训练用于分类统一资源定位符的分类器的方法及系统 |
CN113312622A (zh) * | 2021-06-09 | 2021-08-27 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 一种检测url的方法及装置 |
CN113361597A (zh) * | 2021-06-04 | 2021-09-07 | 北京天融信网络安全技术有限公司 | 一种url检测模型的训练方法、装置、电子设备和存储介质 |
CN113965333A (zh) * | 2020-07-01 | 2022-01-21 | 深信服科技股份有限公司 | 一种目标流量检测方法、装置、设备及可读存储介质 |
CN114205164A (zh) * | 2021-12-16 | 2022-03-18 | 北京百度网讯科技有限公司 | 流量分类方法及装置、训练方法及装置、设备和介质 |
CN114826688A (zh) * | 2022-03-30 | 2022-07-29 | 中国建设银行股份有限公司 | 恶意访问地址的识别方法、装置、设备、介质及程序产品 |
CN115065534A (zh) * | 2022-06-14 | 2022-09-16 | 北京知道创宇信息技术股份有限公司 | 动态脚本攻击拦截方法、装置、电子设备及可读存储介质 |
CN116644250A (zh) * | 2023-07-27 | 2023-08-25 | 太平金融科技服务(上海)有限公司 | 页面检测方法、装置、计算机设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023905A (zh) * | 2012-12-20 | 2013-04-03 | 北京奇虎科技有限公司 | 一种用于检测恶意链接的设备、方法及系统 |
CN103810425A (zh) * | 2012-11-13 | 2014-05-21 | 腾讯科技(深圳)有限公司 | 恶意网址的检测方法及装置 |
CN104735074A (zh) * | 2015-03-31 | 2015-06-24 | 江苏通付盾信息科技有限公司 | 一种恶意url检测方法及其实现系统 |
CN104766014A (zh) * | 2015-04-30 | 2015-07-08 | 安一恒通(北京)科技有限公司 | 用于检测恶意网址的方法和系统 |
CN106022135A (zh) * | 2016-02-23 | 2016-10-12 | 北京工业大学 | 一种可动态判断xss漏洞的自动化检测系统 |
CN106202198A (zh) * | 2016-06-29 | 2016-12-07 | 合肥民众亿兴软件开发有限公司 | 一种基于bho技术动态检测系统 |
CN107239704A (zh) * | 2017-05-24 | 2017-10-10 | 国家计算机网络与信息安全管理中心 | 恶意网页发现方法及装置 |
-
2019
- 2019-02-22 CN CN201910134025.3A patent/CN109922052B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810425A (zh) * | 2012-11-13 | 2014-05-21 | 腾讯科技(深圳)有限公司 | 恶意网址的检测方法及装置 |
CN103023905A (zh) * | 2012-12-20 | 2013-04-03 | 北京奇虎科技有限公司 | 一种用于检测恶意链接的设备、方法及系统 |
CN104735074A (zh) * | 2015-03-31 | 2015-06-24 | 江苏通付盾信息科技有限公司 | 一种恶意url检测方法及其实现系统 |
CN104766014A (zh) * | 2015-04-30 | 2015-07-08 | 安一恒通(北京)科技有限公司 | 用于检测恶意网址的方法和系统 |
CN106022135A (zh) * | 2016-02-23 | 2016-10-12 | 北京工业大学 | 一种可动态判断xss漏洞的自动化检测系统 |
CN106202198A (zh) * | 2016-06-29 | 2016-12-07 | 合肥民众亿兴软件开发有限公司 | 一种基于bho技术动态检测系统 |
CN107239704A (zh) * | 2017-05-24 | 2017-10-10 | 国家计算机网络与信息安全管理中心 | 恶意网页发现方法及装置 |
Non-Patent Citations (3)
Title |
---|
林海伦等: "高效的基于段模式的恶意URL检测方法", 《通信学报》 * |
沙泓州: "面向大规模网络流量的URL实时分类关键技术研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
陈时敏,韩心慧: "基于机器学习的网页木马识别方法研究", 《第 26 次全国计算机安全学术交流会 论文集》 * |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110610090A (zh) * | 2019-08-28 | 2019-12-24 | 北京小米移动软件有限公司 | 信息处理方法及装置、存储介质 |
CN110610090B (zh) * | 2019-08-28 | 2022-05-03 | 北京小米移动软件有限公司 | 信息处理方法及装置、存储介质 |
CN110430226A (zh) * | 2019-09-16 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 网络攻击检测方法、装置、计算机设备及存储介质 |
CN110430226B (zh) * | 2019-09-16 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 网络攻击检测方法、装置、计算机设备及存储介质 |
CN110851828A (zh) * | 2019-09-30 | 2020-02-28 | 光通天下网络科技股份有限公司 | 基于多维度特征的恶意url监测方法、装置和电子设备 |
CN112711723A (zh) * | 2019-10-25 | 2021-04-27 | 北京搜狗科技发展有限公司 | 一种恶意网址检测方法、装置及电子设备 |
CN112711723B (zh) * | 2019-10-25 | 2024-04-30 | 北京搜狗科技发展有限公司 | 一种恶意网址检测方法、装置及电子设备 |
CN111030992A (zh) * | 2019-11-08 | 2020-04-17 | 厦门网宿有限公司 | 检测方法、服务器及计算机可读存储介质 |
CN111030992B (zh) * | 2019-11-08 | 2022-04-15 | 厦门网宿有限公司 | 检测方法、服务器及计算机可读存储介质 |
CN110933104A (zh) * | 2019-12-11 | 2020-03-27 | 成都卫士通信息产业股份有限公司 | 恶意命令检测方法、装置、设备及介质 |
CN113051496A (zh) * | 2019-12-27 | 2021-06-29 | 中国电信股份有限公司 | 训练用于分类统一资源定位符的分类器的方法及系统 |
CN113051496B (zh) * | 2019-12-27 | 2024-01-26 | 中国电信股份有限公司 | 训练用于分类统一资源定位符的分类器的方法及系统 |
CN112437036B (zh) * | 2020-01-21 | 2023-01-24 | 上海哔哩哔哩科技有限公司 | 一种数据分析的方法及设备 |
CN112437036A (zh) * | 2020-01-21 | 2021-03-02 | 上海哔哩哔哩科技有限公司 | 一种数据分析的方法及设备 |
CN111585955B (zh) * | 2020-03-31 | 2021-10-15 | 中南大学 | 一种http请求异常检测方法及系统 |
CN111585955A (zh) * | 2020-03-31 | 2020-08-25 | 中南大学 | 一种http请求异常检测方法及系统 |
CN111523119A (zh) * | 2020-04-26 | 2020-08-11 | 南开大学 | 漏洞检测的方法和装置、电子设备及计算机可读存储介质 |
CN113965333A (zh) * | 2020-07-01 | 2022-01-21 | 深信服科技股份有限公司 | 一种目标流量检测方法、装置、设备及可读存储介质 |
CN112615861A (zh) * | 2020-12-17 | 2021-04-06 | 赛尔网络有限公司 | 恶意域名识别方法、装置、电子设备及存储介质 |
CN112685739A (zh) * | 2020-12-31 | 2021-04-20 | 卓尔智联(武汉)研究院有限公司 | 恶意代码检测方法、数据交互方法及相关设备 |
CN113361597A (zh) * | 2021-06-04 | 2021-09-07 | 北京天融信网络安全技术有限公司 | 一种url检测模型的训练方法、装置、电子设备和存储介质 |
CN113361597B (zh) * | 2021-06-04 | 2023-07-21 | 北京天融信网络安全技术有限公司 | 一种url检测模型的训练方法、装置、电子设备和存储介质 |
CN113312622A (zh) * | 2021-06-09 | 2021-08-27 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 一种检测url的方法及装置 |
CN114205164B (zh) * | 2021-12-16 | 2023-07-18 | 北京百度网讯科技有限公司 | 流量分类方法及装置、训练方法及装置、设备和介质 |
CN114205164A (zh) * | 2021-12-16 | 2022-03-18 | 北京百度网讯科技有限公司 | 流量分类方法及装置、训练方法及装置、设备和介质 |
CN114826688A (zh) * | 2022-03-30 | 2022-07-29 | 中国建设银行股份有限公司 | 恶意访问地址的识别方法、装置、设备、介质及程序产品 |
CN115065534A (zh) * | 2022-06-14 | 2022-09-16 | 北京知道创宇信息技术股份有限公司 | 动态脚本攻击拦截方法、装置、电子设备及可读存储介质 |
CN115065534B (zh) * | 2022-06-14 | 2023-11-28 | 北京知道创宇信息技术股份有限公司 | 动态脚本攻击拦截方法、装置、电子设备及可读存储介质 |
CN116644250A (zh) * | 2023-07-27 | 2023-08-25 | 太平金融科技服务(上海)有限公司 | 页面检测方法、装置、计算机设备和存储介质 |
CN116644250B (zh) * | 2023-07-27 | 2023-10-20 | 太平金融科技服务(上海)有限公司 | 页面检测方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109922052B (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109922052A (zh) | 一种结合多重特征的恶意url检测方法 | |
CN108156131B (zh) | Webshell检测方法、电子设备和计算机存储介质 | |
CN110233849B (zh) | 网络安全态势分析的方法及系统 | |
Melicher et al. | Riding out domsday: Towards detecting and preventing dom cross-site scripting | |
US9509714B2 (en) | Web page and web browser protection against malicious injections | |
Buber et al. | NLP based phishing attack detection from URLs | |
Kasim | An ensemble classification-based approach to detect attack level of SQL injections | |
CN109271780A (zh) | 机器学习恶意软件检测模型的方法、系统和计算机可读介质 | |
CN114003903B (zh) | 一种网络攻击追踪溯源方法及装置 | |
CN108337269A (zh) | 一种WebShell检测方法 | |
Yang et al. | A webshell detection technology based on HTTP traffic analysis | |
Taofeek | Development of a Novel Approach to Phishing Detection Using Machine Learning | |
Lagopoulos et al. | Web robot detection: A semantic approach | |
Shyni et al. | Phishing detection in websites using parse tree validation | |
Wan et al. | PathMarker: protecting web contents against inside crawlers | |
Gong et al. | Model uncertainty based annotation error fixing for web attack detection | |
CN108573148B (zh) | 一种基于词法分析的混淆加密脚本识别方法 | |
Hao et al. | JavaScript malicious codes analysis based on naive bayes classification | |
WO2020240718A1 (ja) | 抽出装置、抽出方法及び抽出プログラム | |
Han | Detection of web application attacks with request length module and regex pattern analysis | |
Meng et al. | Hidden service website response fingerprinting attacks based on response time feature | |
Mohamed et al. | Digital forensic analysis of web-browser based attacks | |
Patil et al. | Impact of PCA Feature Extraction Method used in Malware Detection for Security Enhancement | |
Mourtaji et al. | New hybrid framework to detect phishing web pages, based on rules and variant selection of features | |
Suresh | Analyzing Android Adware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |