概述
目前网页浏览是互联网上使用率最高的网络服务之一,恶意网页也层出不穷。有诱骗用户访问以获取用户个人秘密信息的钓鱼网页,通过构造与某一目标网站高度相似的页面,以垃圾邮件、虚假广告等方式存在;黑客还会通过恶意破坏或更改网页内容或在网页中植入黑链,使网站无法正常工作或出现非法插入的非正常网页内容。
传统的恶意网页检测方法多为网页异常检测和基于黑白名单的检测。网页异常检测和黑白名单检测基于规则匹配,时效性较差,且黑白名单范围也存在不足,且由于HTML语言的灵活性,黑客可以轻易做出看起来一样但HTML结构完全不同的网页;基于图像特征的异常检测基于网页内容相似性,准确性和鲁棒性不是很理想。
基于上述问题,本文将机器学习算法引入恶意网页检测,介绍一种基于特征词的恶意网页检测方法。
特征词抽取
本文的网页样本数据分为三类:正常网页源码、钓鱼网页源码和被黑页面源码,数据组成如下所示:
表1 数据组成
其中,正常样本标记为n(代表normal),钓鱼样本标记为p(代表phishing),被黑页面标记为d(代表dark)。针对网页源码文件,本文采用抽取文本的方式生成新样本集,利用各类数据的特征词区分正常网页和恶意网页。
首先,利用正则匹配出网页中的文本,通过对高频文本和标题的人工统计,可以看出钓鱼页面的文本和被黑页面(多为被挂暗链的网页)的高频特征词如下所示:
表2 高频词统计
利用hanlp分词后,钓鱼页面中特征词多为QQ、支付宝和银行卡等相关信息,被黑页面多为被挂暗链,存在涉及赌博、游戏相关高频词。
通过在语料库中的词频,挑选出最重要的3000个词进行分类判断,计算其TF-IDF值形成向量矩阵,作为新特征集进行分类。
检测方法
由表1可知,目前样本仍存在样本分布不平衡的问题。在分类任务中,在数据分布均匀的前提下,模型才能发挥出更好的效果。但是在我们实际的应用场景中,我们的数据往往达不到这样理想的情况。针对数据不平衡问题,采样能够使数据集趋向平衡,总体上采样分为欠采样和过采样,过采样使小类别样本数据量增加,欠采样减少大类别样本的数据量。简单的欠采样会损失数据,过采样会导致模型的过拟合。因此为了使分类器发挥出最好效果,本文采用EasyEnsemble算法解决上述问题。
EasyEnsemble算法是一种有效的不均衡数据分类方法。它将多数类样本随机分成多个子集,每个子集分别与少数类合并,得到多个新的训练子集,并利用每个训练子集训练一个AdaBoost基分类器,最后集成所有基分类器,得到最终的分类器。EasyEnsemble算法有效解决了数据不均衡问题,且减少欠采样造成的多数类样本信息损失。
本文将数据样本划分为比例为7比3的训练集和测试集,采用EasyEnsemble算法做分类且引入了决策树,选取了SAMME算法,采用500个弱分类器训练基于决策树的Adaboost,最终测试准确率达到98%,泛化能力相比单个决策树较出色。
好了,这篇文章的内容营销圈就和大家分享到这里,如果大家网络推广引流创业感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战干货的推广引流技术课程免费分享!
好了,这篇文章的内容营销圈就和大家分享到这里,如果大家对网络推广引流和网络创业项目感兴趣,可以添加微信:Sum8338 备注:营销圈引流学习,我拉你进直播课程学习群,每周135晚上都是有实战的推广引流技术和网络创业项目课程分享,当然是免费学!