APP下载

基于Hadoop 和Mahout 的钓鱼邮件检测技术研究

2016-06-17高一男蔡满春

电脑知识与技术 2016年11期

高一男++蔡满春

摘要:随着因特网的日益发展,网络空间的安全形势也愈发严峻。其中,以盗取用户敏感信息或者用户名口令为目的的网络钓鱼活动是网络犯罪行为中危害较大、影响较为严重的一种。针对网络钓鱼频发的现状,文中提出了一种基于Hadoop和mahout的钓鱼邮件检测方法,此方法采用hadoop平台的HDFS作为存储基础,MapReduce作为并行计算框架.该方法对邮件信息进行特征提取,利用mahout的贝叶斯算法对钓鱼邮件进行检测。使用真实邮件数据集对该方法进行测试,取得了良好的效果。

关键词: 网络钓鱼;hadoop;mahout;贝叶斯分类

中图分类号:TP393.08 文献标识码:A 文章编号:1009-3044(2016)11-0027-04

Abstract:With the development of the Internet, the network space safety situation is increasingly serious.Phishing with purpose of stealing users sensitive information and password is one of cyber crime acitivity which harm a lot.In view of the situation of frequent phishing, this paper puts forward a fishing mail detection method based on Hadoop and mahout.This method uses the HDFS of Hadoop platform as the foundation of storage, MapReduce as the parallel computing framework.It extracts feature for E-mail messages and uses the bayesian algorithm of mahout to test the phishing emails.Using real email data set to test the method which has obtained good effect.

Key words:phishing; hadoop; mahout; bayesian classification

1 引言

近年来,人们生活中互联网的使用日益频繁,电子购物、网络支付和电子商务在人们的消费行为中占的比例越来越高。同时,电子商务领域的网络犯罪活动也越来越频繁。其中,以诱骗用户敏感信息以及网络金融账号、密码为主要目的的网络钓鱼行为的危害最为广泛。钓鱼邮件由于其成本低、发布方便和难以追踪等原因成为网络钓鱼攻击者的首选方式。本文着眼于当前大数据的网络环境,提出了一种基于hadoop和mahout的钓鱼邮件检测方法。在分析大量钓鱼邮件的基础上提出了钓鱼邮件的特征,以此特征将电子邮件初始化;并使用mahout提供的贝叶斯分类算法库构建钓鱼邮件分类器,对电子邮件进行检测判断其是否为钓鱼邮件,为打击网络钓鱼犯罪提供了方法。

2 Hadoop平台

Apache Hadoop项目是一个提供可靠的、大规模并行计算的开源软件。Apache Hadoop软件库提供一个框架,此框架为基于大型计算机集群的分布式海量数据集处理提供了简单的计算模型。Hadoop可以部署于数以万计的计算机集群系统中,其中的每台计算机提供计算和存储功能。Hadoop自身可以在应用层控制差错,从而在计算机集群上层提供高可靠性服务。

Hadoop主要由三部分组成:

1)Hadoop Common:为Hadoop 的其它模块提供基础;

2)Hadoop Distributed File System (HDFS):为应用数据提供高生产力接入的分布式文件系统;

3)Hadoop MapReduce:针对大型数据集的并行编程模型。

HDFS是 Google File System的开源实现。HDFS的设计是基于低廉的PC机上,所以HDFS一旦生就意味着它必须面对节点失效和文件错误等问题,因此HDFS就必须达到一个可靠稳定的分布式文件系统才可以运用到实际应用中。HDFS能快捷地部署在廉价的PC机上,它具有高容错性,十分适合那些有大数据集的应用,并且HDFS具有高吞吐量,能满足数据的高速读写。HDFS还支持传统的层次文件组织结构,类似于现有的一些文件系统,如可以对文件或文件夹进行创建、删除、移动、连接(仅文件)和重命名等操作 。HDFS除了具备上述的两项能力外,它还具备对分布数据的可扩展访问,只要通过简单地往集群里添加计算节点就可以轻松解决大量客户端同时访问的瓶颈问题。总之,HDFS提供的是一个高吞吐量的分布式文件系统,它是分布式计算的存储基础。

MapReduce是海量数据的分布式处理模型。通过简单的逻辑实现就能在大型集群上执行分布式应用。Hadoop平台中的MapReduce是Google 的 MapReduce 的开源实现。 MapReduce是一种简化的并行计算编程模型,由Map段和Reduce段构成,分别进行任务的分解和对结果的汇总。基于MapReduce模型,编写分布式计算程序的将变得异常简单,用户甚至不需要任何并行开发的经验,只需理解MapReduce两端是如何衔接和数据如何传递就可以很便捷地开发出高效的分布式并行程序,完成海量数据的计算分析。

3 Mahout

Mahout是一个来自Apache的、开源的机器学习软件库。它所实现的算法归属于机器学习或集体智慧这个广阔的领域。它主要关注于推荐引擎、聚类和分类。

其次,mahout是可扩展的。它旨在当所处理的数据规模远大于单机处理能力时成为一种可选的机器学习工具。在当前的Mahout系统中,这些可扩展的机器学习实现都是用Java来写的,而且有些部分是建立在Apache的Hadoop分布式计算项目之上的。

最后,它是一个Java软件库,并不提供用户接口、预装服务器或安装程序。它打算为开发者提供一个可用可改的工具框架。

Mahout是2008年作为Apache Lucene的子项目出现的。Lucene项目推出了一个同名的著名开源搜索引擎,并给出了搜索、文本挖掘和信息检索技术的先进实现方法。在计算机科学领域,这些术语和机器学习中的概念很接近,比如聚类,并在某种程度上与分类接近。这样一来,某些Lucene贡献者的工作更多落入机器学习领域,从而逐渐脱离出来形成了对立的子项目。之后不久,Mahout吸纳了开源的协同过滤项目Taste。

Mahout所做的大量工作不仅体现在以高效和可扩展的方式实现这些经典算法,而且将部分算法进行转换使其可以在Hadoop上处理对摸的问题。

虽然Mahout项目在理论上可以实现所有类型的机器学习技术,但在实际上当前它仅关注机器学习的三个主要领域,即推荐引擎、聚类和分类。

1) 推荐引擎

目前采用的机器学习技术中,推荐引擎是最容易被一眼认出来的。服务商或网站会根据用户过去的行为向用户推荐书籍、电影或者文章。它们会推测你的品位与爱好,并找到某些你可能感兴趣的物品。如亚马逊、淘宝向用户推荐的商品;微博向用户推荐的话题、用户等,均是利用推荐引擎技术。

2) 聚类

聚类技术将大量的事务组合为拥有类似属性的簇,借以在一些规模较大或难于理解的数据集上发现层次结构和顺序,以揭示一些有用的模式或让数据更易于理解。利用聚类技术,企业可以发现用户中的潜在的群体,可以合理地组织大量的文档,还可以根据日志来发现使用网站的常见模式。

3) 分类

分类技术决定了一个事物多大程度上从属于某些类别或类型,或者多大程度上具有或不具有某些属性。与聚类一样,分类无处不在,但是跟多隐身于幕后。通常这些系统会考察类别中的大量实例,来学习推导出分类的规则。

分类有助于判断一个新的输入或新的事物是否与以前观察到的模式匹配,它通常还被用于遴选异常的行为模式,来检测可疑的网络活动或欺骗行为。它还可以用于”察觉“某个用户的消息是否存在失望或满意情绪。

4 贝叶斯分类算法

本文使用贝叶斯分类器对电子邮件分类。执行分类操作时,贝叶斯分类器输出邮件属于相应类别的概率。设定G={g1,g2,g3,……gj,g5}代表邮件类别的集合,d是类别的总数。事实上,对于反网络钓鱼问题来说,只需要两个类别:钓鱼邮件g1,和正常邮件g2。给出邮件的一组向量(v1,v2,……,vn),分类器的作用是确定邮件属于类别gj的概率P(其中,hi,T代表网页T中第i个特征,而R代表电子邮件特征总数, R用于扩大的值。分别计算邮件数据属于正常邮件或者钓鱼邮件的条件概率,并对两个条件概率进行比较,如果属于正常邮件的条件概率较大,则判断该邮件属于正常邮件,反之,判断其为钓鱼邮件。

5 钓鱼邮件检测

邮件的检测是分类算法的一种应用形式,本文使用mahout提供的贝叶斯分类器对钓鱼邮件进行检测分为三个步骤,其过程可以描述为:首先通过初始化将邮件信息转化为一组特征向量的值,然后利用训练数据集对贝叶斯算法进行训练生成分类模型,最后使用分类模型对测试数据集进行分类。

5.1 数据的预处理

数据的预处理是钓鱼邮件检测过程的第一步。数据的初始化的主要工作是将邮件的特征属性进行提取,并以特征向量的形式表示邮件。钓鱼邮件的特征选择直接决定了网络钓鱼的检测结果。国内网民互联网使用习惯和国外不尽相同,因此,确定钓鱼邮件的特征时不能直接照搬国外的样本。通过分析国内钓鱼邮件实例,结合有关网络钓鱼传播方式的研究,确定了如表1所示的10项特征。对于用于训练以及测试的电子邮件数据集,根据这10项特征进行初始化作为贝叶斯分类算法的输入。

5.2 训练朴素贝叶斯分类器

贝叶斯分类属于机器学习算法中的有监督学习算法,因此,需要利用训练样本集对其进行训练使分类器生成能够用于钓鱼邮件检测的模型。训练样本集是已经被人工分类的一系列邮件的集合,其中邮件转化为向量表示{v1,v2,……,v10},并附有相应的类别g1表示钓鱼邮件,g2表示正常邮件。

训练朴素贝叶斯分类器的命令如下:

./bin/mahout trainnb

-i ${WORK_DIR}$/${DATA_DIR}$

-o ${WORK_DIR}$/model

-li ${WORK_DIR}$/labelindex

其中-i 参数指定任务的输入文件目录,输入文件即经过预处理的电子邮件数据集;-o 参数指定任务的输出文件目录,输出文件即生成的分类模型;-li 参数指定标识索引存储路径。

5.3 测试朴素贝叶斯分类模型

使用真实的电子邮件数据集对贝叶斯分类模型进行测试,通过输出的混淆矩阵及分类结果的各项指标可以对构造的分类器进行评估,以达到掌握分类器性能并对其进行相应改进的目的。

测试朴素贝叶斯分类器的命令如下:

./bin/mahout testnb

-i ${WORK_DIR}$/${DATA_DIR}$

-m ${WORK_DIR}$/model

-l ${WORK_DIR}$/labelindex

-ow -o ${WORK_DIR}$/

其中-i 参数指定任务的输入文件目录,输入文件为待检测的电子邮件数据集;-m 参数指定训练阶段模型的路径;-l 参数指定标识索引存储路径,-ow 对输出路径进行重写,-o指定输出路径,此阶段的输出为分类结果。

6 实验及结果分析

本实验的环境为虚拟机环境,虚拟机设置为:1处理器,2G内存,40G硬盘。软件环境的设置为:操作系统使用Linux Centos7,Hadoop版本使用2.6.3,Hadoop配置模式为伪分布式配置,Mahout版本为0.11.1。

使用包含1500封电子邮件的训练数据集对贝叶斯算法进行训练,生成预测钓鱼邮件的贝叶斯分类模型。之后,使用包含341封钓鱼邮件和2686封正常邮件的测试邮件数据集对得到的贝叶斯分类模型的性能进行测试。

使用Mahout对钓鱼邮件进行分类实验的结果如图2所示。

通过分析以上结果可以发现,分类的准确率表示对于钓鱼邮件和正常邮件的正确分类可以达到94.2517%,召回率达到89.18%,使用Mahout的贝叶斯算法对于钓鱼邮件样本分类体现出了良好的分类效果。

7 结论

网络钓鱼犯罪严重危害了互联网用户的隐私和财产安全,在大数据的背景下,这种威胁显得更加突出。同时钓鱼邮件作为一种门槛低、发送方便等原因在网络钓鱼犯罪过程中使用的最为广泛。Hadoop平台的出现为处理大规模数据挖掘提供了良好的底层框架,而mahout提供了基于hadoop的机器学习类库。本文提出的基于hadoop和mahout的钓鱼邮件检测方法,在对电子邮件进行特征提取的基础上,利用mahout的贝叶斯分类功能实现了对钓鱼邮件的检测,在使用真实电子邮件数据集对其进行测试,验证了其性能良好。为打击网络钓鱼犯罪,保护网民的隐私信息和财产安全提供了方法。

参考文献:

[1] Lam C. Hadoop in action[M]. Manning Publications Co., 2010.

[2] White T. Hadoop: The definitive guide[M]. O'Reilly Media, Inc., 2012.

[3] Berry M J, Linoff G. Data mining techniques: for marketing, sales, and customer support[M]. John Wiley & Sons, Inc., 1997.

[4] Giacomelli P. Apache mahout cookbook[M]. Packt Publishing Ltd, 2013.

[5] Harrington P. Machine learning in action[M]. Manning, 2012.

[6] Anil R, Dunning T, Friedman E. Mahout in action[M]. Shelter Island: Manning, 2011.

[7] 余辉. 基于 Mahout 的聚类算法的研究[D]. 上海师范大学, 2014.

[8] 翟军昌,秦玉平,王春立.改进的朴素贝叶斯垃圾邮件过滤算法[J].计算机工程与应用, 2009, 45(14): 145-148.