一种基于Stacking的恶意网页集成识别方法及系统与流程

文档序号:18902098发布日期:2019-10-18 22:05阅读:309来源:国知局
一种基于Stacking的恶意网页集成识别方法及系统与流程

本发明涉及恶意网页检测技术领域,尤其涉及一种基于stacking的恶意网页集成识别方法及系统。



背景技术:

目前恶意网页检测的主流方式有静态和动态两大类检测技术。前者基于网页特征进行判断分类,其中不乏应用机器学习算法的方法,但是传统机器学习算法的分类精度往往依赖于具体问题与特征工程,但是目前大多数研究还是基于单一机器学习算法或多种机器学习算法的简单组合,对准确率的提升效果一般。动态检测则模仿浏览器运行网页并对运行后的系统行为进行检测,对恶意网页的动态检测主要是通过蜜罐、虚拟机的环境下来进行的,就是通过获取到的html或javascript源代码在虚拟的环境中运行并使用浏览器对网页进行访问,同时实时检测系统情况和该网页的动态行为,如超链接、下载且执行恶意文件、修改注册表等等,根据这些依据判断正在运行的网页是否属于恶意网页类别,对未知数据的检测正确率相对来说较高。但虚拟机引擎技术与蜜罐检测技术的系统资源消耗是十分巨大的,其对时间和资源的消耗也很高。即使是轻量级交互系统也是很耗资源的,且部署比较麻烦。只有在一些大型检测中心会使用此类检测识别方式。



技术实现要素:

本发明旨在提供一种克服上述问题或者至少部分地解决上述问题的基于stacking的恶意网页集成识别方法及系统。

为达到上述目的,本发明的技术方案具体是这样实现的:

本发明的一个方面提供了一种基于stacking的恶意网页集成识别方法,包括:获取训练样本数据;使用k近邻算法、逻辑回归算法和决策树算法建立初级分类器,使用svm算法建立次级元分类器;对训练样本数据利用十折交叉验证法对训练模型进行训练和验证,得到stacking集成分类器模型;采集待测样本数据,其中,待测样本数据包括:待识别网页的网页url和网页源代码;利用网页源代码判断网页是否改变,在网页没改变的情况下,对网页url进行特征提取,得到特征向量文件;将特征向量文件输入stacking集成分类器模型,得到待识别网页的识别结果。

其中,采集待测样本数据包括:对单一网页进行爬取;获取url列表,对文件名后缀进行判断,如果格式正确,调用url列表中的所有url,对每个url对应的网页内容进行爬取;和/或获取url,判断url是否合法,如果合法,对url对应网页所处的网站网页进行爬取。

其中,利用网页源代码判断网页是否改变包括:对网页源代码进行md5加密,获得校验值,通过校验值判断网页是否改变。

其中,对网页url进行特征提取包括:对网页url中部分特征通过beautifulsoup4库的htmlparser解析器脚本对源代码按html标签进行解析,定位到标签属性值进行特征提取;对网页url中另一部分特征使用正则表达式对网页文本进行提取。

其中,方法还包括:通过前端的网页分析识别报告页面输出待识别网页的识别结果;和/或通过浏览器插件告警输出待识别网页的识别结果。

本发明另一方面提供了一种基于stacking的恶意网页集成识别系统,包括:获取装置,用于获取训练样本数据;建立装置,用于使用k近邻算法、逻辑回归算法和决策树算法建立初级分类器,使用svm算法建立次级元分类器;训练装置,用于对训练样本数据利用十折交叉验证法对训练模型进行训练和验证,得到stacking集成分类器模型;采集装置,用于采集待测样本数据,其中,待测样本数据包括:待识别网页的网页url和网页源代码;提取装置,用于利用网页源代码判断网页是否改变,在网页没改变的情况下,对网页url进行特征提取,得到特征向量文件;识别装置,用于将特征向量文件输入stacking集成分类器模型,得到待识别网页的识别结果。

其中,采集装置通过如下方式采集待测样本数据:采集装置,具体用于对单一网页进行爬取;获取url列表,对文件名后缀进行判断,如果格式正确,调用url列表中的所有url,对每个url对应的网页内容进行爬取;和/或获取url,判断url是否合法,如果合法,对url对应网页所处的网站网页进行爬取。

其中,提取装置通过如下方式利用网页源代码判断网页是否改变:提取装置,具体用于对网页源代码进行md5加密,获得校验值,通过校验值判断网页是否改变。

其中,提取装置通过如下方式对网页url进行特征提取:提取装置,具体用于对网页url中部分特征通过beautifulsoup4库的htmlparser解析器脚本对源代码按html标签进行解析,定位到标签属性值进行特征提取;对网页url中另一部分特征使用正则表达式对网页文本进行提取。

其中,系统还包括:输出装置,用于通过前端的网页分析识别报告页面输出待识别网页的识别结果;和/或通过浏览器插件告警输出待识别网页的识别结果。

由此可见,通过本发明提供的基于stacking的恶意网页集成识别方法及系统,

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的基于stacking的恶意网页集成识别系统的架构示意图;

图2为本发明实施例提供的基于stacking的恶意网页集成识别方法的流程图;

图3为本发明实施例提供stacking集成示意图;

图4为本发明实施例提供的本发明实施例提供的基于stacking的恶意网页集成识别系统中恶意网页分析识别系统的结构示意图;

图5为本发明实施例提供的基于stacking的恶意网页集成识别方法的一种具体流程图;

图6为本发明实施例提供的基于stacking的恶意网页集成识别系统的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明实施例提供的基于stacking的恶意网页集成识别方法可以建立于基于stacking的恶意网页集成识别系统的基础上实现,该本发明实施例提供的基于stacking的恶意网页集成识别系统的架构可以参见图1,本发明实施例基于stacking的恶意网页集成识别系统在具体实现时,可以采用b/s架构,浏览器前端包括用于实时检测的浏览器插件和用于上传检测的web系统页面;服务端包括web服务器、本地文档存储和mysql数据库。其中web服务器中有系统后台,检测引擎和web日志;数据库中存储传入网页的url、特征标签、校验值和分类结果;本地文档存储就是将恶意网页源代码持久化存储于本地,用于以后对识别模型的优化。

图2示出了本发明实施例提供的基于stacking的恶意网页集成识别方法的流程图,参见图2,本发明实施例提供的基于stacking的恶意网页集成识别方法,包括:

s1,获取训练样本数据;

s2,使用k近邻算法、逻辑回归算法和决策树算法建立初级分类器,使用svm算法建立次级元分类器;

s3,对训练样本数据利用十折交叉验证法对训练模型进行训练和验证,得到stacking集成分类器模型。

具体地,本发明通过对网页特征进行提取和分析相关因素,并进行分类集成学习从而得到检测模型。分别使用k近邻算法、逻辑回归算法和决策树算法建立初级分类器,次级的元分类器使用svm(supportvectormachine,支持向量机)算法。采用的stacking学习法使用十折交叉验证法(10-foldcross-validation)。stacking集成示意图如图3所示。

具体地,机器学习里相当重要的一环就是采用的分类算法。分类算法就是根据已经知道结果的训练集找到一个最有效的分类模型用来区别不同的类,或者说是生成出某类判定规则。再利用这个模型对分类对象进行分类的时候,可以达到最高的识别率或者是误判率最小。

支持向量机算法(svm,supportvectormachine)是一种有监督学习的算法,即将向量映射到更高维度的空间里,从而建立一个最优分类面即最大间隔超平面。svm致力于得到一个可以满足分类需求的最优分类面,同时使数据集中的各类点与分类面的距离尽可能的长,也就是使它两侧的区域(margin)最大。

k最邻近算法(knn,k-nearestneighbor)即为经由测定不相同特征间距离对不同样本进行分类。若是某样本位于特征空间里面的k个极为相似,就是最邻近样本里的大部分均归属某同种类别,则此样本也属这一类别,k一般取小于或等于二十的整数。此方法仅依靠最靠近的一个或多个样本的分类结果来对待检测样本的种类进行分类。

决策树(dt,decisiontree)为树形的结构,通过寻找最佳划分特征进而实现样本分类,本文采用c4.5算法。决策树的内部节点表示为某个特征的阈值,而叶节点则表示一个类和其分布,决策树的分类规则不仅易于理解而且准确率较优。c4.5使用贪心算法作为归纳算法,通过自顶向下的递归的方法对树进行构造,若所有训练样本都处于同一类别中,那么此节点就成为叶子节点,不然的话选择一个最优分类特征当做内部节点且创建分支,分支过程通过计算信息增益来进行衡量,并运用剪枝技术消除噪声和孤立点。对于所给样本,从根节点处向下进行判断就可以得到分类识别结果。

逻辑回归(lr,logisticregression)通过拟合曲线或者学习超平面实现分类,回归就是根据已知的自变量从而得到因变量,即通过获取的特征数据得到预测分类。逻辑回归算法通过逐渐缩减分类范围,将预估值缩小在[0,1]区间。逻辑回归模型的优点是可发现特征之间联系和将模型进行正则化。逻辑回归和svm二者的差异是使用不同损失函数(loss),且逻辑回归的分类速率较svm对比有所升高。

集成学习通过对多个初级分类器进行适当的组合或者二次训练来得到预测性能较强的元学习器(也称次级分类器),最常见的元学习法即通过对多个初级分类的结果进行简单投票从而得出最终结果。每个初级分类器由已选好的分类算法从训练集中得到,接着再通过一些组合策略得到最终的分类模型。集成学习的最终分类准确率主要由两个因素决定:其一就是初级分类器的准确率,如果初级分类器的准确率很高,那么集成学习的最终结果也会很好;其二就是初级分类器中的算法多样性,所谓多样性的意思就是初级学习器使用算法之间能可以有一定差异。若每个初级分类器产生分类结果都大同小异,那么反而集成模型的分类效果不但没有改善,还增加建的模复成程度。

集成学习法主要有两类,即同质集成与异质集成。当初级分类器由同一个机器学习算法从产生时,如bp神经网络,此时集成中只包含同种类型的初级分类器,如“神经网络集成”中全是神经网络,此类的集成就称为“同质”。集成亦可以由多种不同类型的初级分类器组成,例如同时含有朴素贝叶斯和svm,这类集成即称为“异质”。异质集成里面的初级分类器均通过各不相同的算法产生。

异质集成的主要代表stacking则是将多种机器学习算法组合起来,从而提升分类器的泛化性能。它首先对训练集分别训练从而得到初级学习器,然后以初级学习器的第一层分类结果作为新的特征进行元学习训练出元分类器。stacking通过使用不同的机器学习算法来保证初级分类器拥有多样性,并通过元分类器以最优方法对初级分类结果进行整合,相比同质集成方法,分类的精度和准确率都会提高,同时导致过拟合的风险度则会降低。

因此,本发明将异质集成的stacking学习法应用在恶意检测领域,在stacking集成模型中,作为初级分类器的有逻辑回归、决策树、k近邻三种算法,作为元分类器的则是支持向量机算法,根据网页代码筛选出三十三维特征用于对分类器的训练,其中针对篡改被黑类网页有二十维,针对虚假钓鱼类网页有十三维。

具体实施中,取总训练样本数据的75%作为训练集train,25%作为测试集test。将train划分成十份,选择九份当作训练集x,一份当作测试集y,循环十次轮流对每个初级分类器进行训练并得到模型和预测结果;对于k近邻算法、逻辑回归算法和决策树算法三种初级分类器,最终每个初级分类器都得到与train数量相同的预测结果记为tn,拼接得到(t1,t2,t3)。而十折中每一轮训练得到的模型都去对test进行预测,最终每个初级分类器都得到一个10列的的预测值矩阵,按行取平均值得到1列的pn,将p1、p2、p3进行拼接得到(p1,p2,p3)。将来自10-fold的预测值矩阵(t1,t2,t3)作为新训练集训练第二层的元分类器,将来自test的预测值矩阵(p1,p2,p3)作为测试集,进行最终的元分类器训练并得到整个分析识别模型的准确率。

以下为本发明实施例提供的基于stacking的恶意网页集成识别系统中恶意网页分析识别系统的结构示意图,该恶意网页分析识别系统执行在建立stacking集成分类器模型后,对待测样本数据进行分析的功能,具体实施时,该系统可以按功能分为三大模块:网页采集模块、特征提取模块与检测识别模块,具体参见图4。

s4,采集待测样本数据,其中,待测样本数据包括:待识别网页的网页url和网页源代码。

作为本发明实施例的一个可选实施方式,采集待测样本数据包括:对单一网页进行爬取;获取url列表,对文件名后缀进行判断,如果格式正确,调用url列表中的所有url,对每个url对应的网页内容进行爬取;和/或获取url,判断url是否合法,如果合法,对url对应网页所处的网站网页进行爬取。

具体实施时,采集待测样本数据时,图4所示的网页采集模块包括单独采集、批量采集和深入采集三个功能,分别对应着根据用户选择而采取的三种不同网页爬取模式。

单独采集即上传或者访问单个url(统一地址定位符),采集模块仅对单一网页进行爬取,然后将结果传至下一功能模块,浏览器插件默认采取此种爬取方式。首先用户在前端输入网页url,javascript脚本会判断此url格式是否合法,不合法弹窗提示,若合法则传至后台,调用相应python脚本,通过urllib库的request模块根据url进行网页爬取。

批量采集是用户从前端上传一个url列表,文件类型为.txt或.csv,javascript脚本会对文件名后缀进行判断,如若格式正确就将此文件传到后台,调用python脚本提取列表中的所有url,然后采用与单独采集相同的方法对每个url对应的网页内容进行网页爬取,最后将结果传至下一功能模块。

深入采集即用户上传url后,判断url是否合法,然后传至后台,调用python脚本对url对应网页所处的网站网页进行主动爬取。就是首先爬去到此上传url对应的网页源代码,然后通过匹配源代码中的‘<aherf=’来筛选一些域名相同或ip相同的网址链接,保存其url后再循环获得其对应的网页源代码并进行递归爬取url,最大递归层数设为5,最后将结果传至下一功能模块。此种采集模式用于对中小型网站的安全性进行分析评估。

s5,利用网页源代码判断网页是否改变,在网页没改变的情况下,对网页url进行特征提取,得到特征向量文件。

作为本发明实施例的一个可选实施方式,利用网页源代码判断网页是否改变包括:对网页源代码进行md5加密,获得校验值,通过校验值判断网页是否改变。

作为本发明实施例的一个可选实施方式,对网页url进行特征提取包括:对网页url中部分特征通过beautifulsoup4库的htmlparser解析器脚本对源代码按html标签进行解析,定位到标签属性值进行特征提取;对网页url中另一部分特征使用正则表达式对网页文本进行提取。

具体实施时,图4所示的特征提取模块在获得网页url以及网页源代码之后,首先对网页源代码进行md5加密,获得一个可对应唯一网页内容的校验值,用于判定已检测过的网页是否改变。

接下来利用正则表达式对url特征进行提取,一部分特征通过beautifulsoup4库的htmlparser解析器脚本对源代码按html标签进行解析,定位到标签属性值进行特征提取;还有一部分特征使用正则表达式对网页文本进行提取。最后生成特征向量文件并规范格式,将此组特征一式两份,分别保存至数据库和作为分类模型的输入。

s6,将特征向量文件输入stacking集成分类器模型,得到待识别网页的识别结果。

具体地,图4所示的分析识别模块的网页判别功能就是将提取出的特征传入stacking集成分类器模型,然后进行网页类型分析识别并得到结果。

作为本发明实施例的一个可选实施方式,基于stacking的恶意网页集成识别方法还包括:通过前端的网页分析识别报告页面输出待识别网页的识别结果;和/或通过浏览器插件告警输出待识别网页的识别结果。具体地,最终模型的识别结果的输出包括通过前端的网页分析识别报告页面和浏览器插件告警两种方式进行结果呈现。

图5示出了本发明实施例提供的基于stacking的恶意网页集成识别方法的一种具体流程图,参见图5,具体实施时,本发明实施例提供的基于stacking的恶意网页集成识别方法,包括:

首先通过用户提交或实时获取待检测网页的url,接着判断其是否已被检测过,即此url是否存在于储存识别结果的数据库中。若存在的话则检测网页校验值(网页源代码的md5加密值)是否发生改变,若未改变则直接依据原先检测结果进行报警操作或者直接结束流程。

若与数据库中匹配后发现校验值改变,即表示其网页的内容已发生改变,所以数据库中此网页相关的特征值与检测结果均已经失效,需要通过重新检测对此网页执行识别判断。此时其检测流程与未检测过的网页的流程相同。

对于未被检测过的网页,首先根据其url对网页源代码进行爬取,然后提取网页源代码中的相关特征。形成特征文件后,将其传入stacking集成模型进行识别,判断是否为恶意网页。如果分类器判定此网页是恶意网页,则进行浏览器告警并存储判别结果到数据库中;若判定是正常网页则不进行任何告警操作,直接将判别结果存到数据库,流程结束。

由此可见,通过本发明实施例提供的基于stacking的恶意网页集成识别方法,利用stacking集成,解决了静态检测中单个分类器的训练数据量小、假设空间小、局部最优的三个问题,且对准确率有较高提升。另外,不需要对网页进行实际访问和行为检测,因此资源消耗少、速度快,部署方便。

图6示出了本发明实施例提供的基于stacking的恶意网页集成识别系统的结构示意图,该基于stacking的恶意网页集成识别系统利用上述基于stacking的恶意网页集成识别方法,其详细描述可以参照基于stacking的恶意网页集成识别方法的相关描述,在此不再详述,仅对本发明实施例提供的基于stacking的恶意网页集成识别系统的结构进行简单说明,参见图6,本发明实施例提供的基于stacking的恶意网页集成识别系统,包括:

获取装置,用于获取训练样本数据;

建立装置,用于使用k近邻算法、逻辑回归算法和决策树算法建立初级分类器,使用svm算法建立次级元分类器;

训练装置,用于对训练样本数据利用十折交叉验证法对训练模型进行训练和验证,得到stacking集成分类器模型;

采集装置,用于采集待测样本数据,其中,待测样本数据包括:待识别网页的网页url和网页源代码;

提取装置,用于利用网页源代码判断网页是否改变,在网页没改变的情况下,对网页url进行特征提取,得到特征向量文件;

识别装置,用于将特征向量文件输入stacking集成分类器模型,得到待识别网页的识别结果。

作为本发明实施例的一个可选实施方式,采集装置通过如下方式采集待测样本数据:采集装置,具体用于对单一网页进行爬取;获取url列表,对文件名后缀进行判断,如果格式正确,调用url列表中的所有url,对每个url对应的网页内容进行爬取;和/或获取url,判断url是否合法,如果合法,对url对应网页所处的网站网页进行爬取。

作为本发明实施例的一个可选实施方式,提取装置通过如下方式利用网页源代码判断网页是否改变:提取装置,具体用于对网页源代码进行md5加密,获得校验值,通过校验值判断网页是否改变。

作为本发明实施例的一个可选实施方式,提取装置通过如下方式对网页url进行特征提取:提取装置,具体用于对网页url中部分特征通过beautifulsoup4库的htmlparser解析器脚本对源代码按html标签进行解析,定位到标签属性值进行特征提取;对网页url中另一部分特征使用正则表达式对网页文本进行提取。

作为本发明实施例的一个可选实施方式,本发明实施例提供的基于stacking的恶意网页集成识别系统还包括:输出装置,用于通过前端的网页分析识别报告页面输出待识别网页的识别结果;和/或通过浏览器插件告警输出待识别网页的识别结果。

由此可见,通过本发明实施例提供的基于stacking的恶意网页集成识别系统,利用stacking集成,解决了静态检测中单个分类器的训练数据量小、假设空间小、局部最优的三个问题,且对准确率有较高提升。另外,不需要对网页进行实际访问和行为检测,因此资源消耗少、速度快,部署方便。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1