张晓明, 王玉鑫, 王 广, 张戈彤, 武瑞江
(北京石油化工学院 信息工程学院 计算机系,北京 102617)
基于Hadoop的网站入侵检测与分析系统设计
张晓明, 王玉鑫, 王 广, 张戈彤, 武瑞江
(北京石油化工学院 信息工程学院 计算机系,北京 102617)
基于大规模数据的入侵检测分析具有重要的研究意义和实用性。针对现有系统的仿真和离线分析不足,设计和实现一套真实的网站入侵检测综合分析系统,能够将入侵检测系统和大数据分析系统结合起来。通过网络构建和软件设计,可以完成真实网站的入侵检测、数据存储、数据清洗和数据挖掘等功能。通过定时和主动两种方式,系统将入侵检测数据传输到数据库中,然后导入到Hadoop系统中。设计了人机交互软件,能够完成Hadoop系统和Mahout技术的大数据分析。实验结果表明,该系统能够快速完成随机森林模型的构建和测试,获得了满意的检测效果。
入侵检测; Hadoop; 大数据; Mahout; 分类; 随机森林
随着网络攻防技术的发展,网站安全的防护要求越来越高,单一的入侵检测系统(Intrusion Detection System, IDS)已不能完全满足这种需要。例如,文献[1] 设计了一种IDS测试的实验系统,能够开展网络流量仿真和攻击仿真,并完成了包捕获率和检测率的实验。文献[2]提出了基于 Snort 的入侵检测实验方案,在实验室搭建了实验环境。但是,文中采用的集线器设备已很少使用,而且Snort软件是基于规则匹配的,在复杂攻击方面难以防范。目前的主要发展方向之一是利用大规模数据资源,通过数据挖掘算法找出规律,形成更为有效的入侵规则,从而为入侵预测提供依据。文献[3]采用Snort和异常检测相结合的方法,但测试数据有限。文献[4]基于随机森林算法和One-R方法结合,提高了检测率。文献[5]将传统的Apriori关联规则算法移植于Hadoop云平台中,使之适应于云平台的入侵检测系统,结果表明:经过优化后的Hadoop云平台IDS具有较好的检测效果。文献[6]基于Hadoop系统开展了模糊关联规则分析,通过与传统的Apriori算法比较,验证了基于云计算的优越性。不过,这三篇文献的仿真数据都是来自于KDD-CUP99[7-8]的评测数据集,缺少网络实证过程。文献[9]针对大规模网络安全态势分析中报警关联的需要,提出了海量报警日志的多维关联规则挖掘算法,制定了一种有利于理解安全事件的关联规则模板,能够在最小支持度较低时,完成大规模报警日志的挖掘任务;并进行了报警的时间序列规则挖掘,发现复杂攻击事件中的攻击模式。其测试数据来自于评测数据集LLS DDOS 1.O和自定义的一组大规模报警日志。文献[10]设计了一种入侵检测的实验系统,实现对网络嗅探和端口扫描两种类型的入侵进行检测。针对网络中的嗅探攻击,利用 WinPcap 网络开发包,实现基于ARP 报文探测的嗅探攻击的演示。此外,实验系统还针对网络中的 TCP 端口扫描攻击,利用 Libnids 网络开发包,实现了基于统计阈值检测法的 TCP 端口扫描攻击的演示。该系统仅能满足实验教学的数据采集和展示需要。文献[11]通过Hadoop搭建了基于云的WEB服务器曰志检测系统,提高攻击检测性能,同时将检测结果和Snort告警进行融合,提高攻击告警的准确性,结果表明融合后的系统提高了告警的准确性,但该文没有给出具体实验数据信息。文献[12]构建了一个包含20个计算节点的云平台,通过随机森林算法的改进设计,验证了云计算的分类效率。文献[13-14]基于Apache Mahout/Hadoop架构[15],分别研究了在线逻辑回归分类和K-均值聚类方法的应用效果,测试数据仍然是KDD-CUP99。
为了解决大规模入侵检测和在线数据分析问题,本文设计了一个基于Hadoop平台的网站入侵检测实验系统,该系统采集的数据具有实时性。针对一定周期内的数据,可以采用多种数据挖掘算法进行入侵检测或预测。下面,具体阐述该系统的设计要点、关键技术、实验方法和效果。
本系统监测的是真实的WEB服务器,运行我校大学生科研训练项目管理和信息发布系统,面向全校师生的项目申报、运行、结题和发布用。为此,要求系统实时和可靠。一旦发生问题,能够及时通告管理员。为了预防复杂的网络攻击,需要采用大数据技术进行深入分析。
1.1 系统功能设计
整个系统包括了实时监测、数据ETL、和Hadoop大数据分析共三大部分,其系统功能框图如图1所示。
图1 监测系统功能框图
通过IDS实时获得可疑数据,并自动保存在日志文件中。然后,通过专用程序定时将日志文件远程传输到MySQL数据管理系统中。接着是数据ETL,指数据抽取、清洗和转换,根据分析需要进行数据编码、格式调整和数据过滤等处理,形成格式化的文本文件。进一步,文本文件传输到Hadoop文件系统中存储,便于数据挖掘处理,并形成可视化分析结果。
1.2 系统拓扑结构设计
监测系统综合了外网和内网两部分,通过路由器进行安全访问。系统拓扑图如图2所示。
图2 Web监测系统的网络拓扑图
图2中,IDS控制台可以通过采集的数据来监测Web服务器,显示数据有列表、图形等方式,并自动备份到数据文件中。表1列出了网络地址设置的详细信息。
云计算服务器负责大规模数据处理与分析,主要由4台刀片服务器组成,每个服务器的基本配置是:CPU1个(64 b,4核,主频2.8 GHz),内存32 GB,SATA硬盘2 TB,千兆以太网卡2个。通过千兆交换机连接,安装配置了Centos 6.5和Hadoop 2.6操作系统。其中1台作为Master节点,另3台为计算计算节点。此外,单独1台服务器作为数据库存储用,安装了MySQL数据库管理系统。
2.1 Hadoop系统的数据挖掘技术
基于Hadoop的生态系统,能够实现大数据的机器学习、可视化分析和查询等功能。其中的Apache Mahout就是针对大规模数据集的可伸缩的机器学习算法,该算法运行在Hadoop平台下,通过MapReduce模式实现。Mahout的API函数主要有:
表1 系统设备IP地址分配表
● 基于协同过滤的Taste相关API: org.apache.mahout.cf.taste
● 聚类:org.apache.mahout.clustering
● 分类:org.apache.mahout.classifier
● 频繁模式:org.apache.mahout.fpm
● 数学计算相关算法:org.apache.mahout.math
● 向量计算相关算法:org.apache.mahout.vectorizer
针对网站IDS的数据特点,采用随机森林算法。随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。随机森林既可以处理属性为离散值的量,比如ID3算法,也可以处理属性为连续值的量,比如C4.5算法。另外,随机森林还可以用来进行无监督学习聚类和异常点检测。
随机森林具有很多优点:能够处理很高维度的数据,并且不用做特征选择;训练速度快;在训练过程中,能够检测到特征间的互相影响;实现比较简单,且容易做成并行化方法;在训练完后,它能够给出哪些特征比较重要。
2.2 系统远程管理技术
通过Java编程,设计与实现了系统远程管理功能:
(1)通过SSH远程连接云计算服务器Hadoop系统,执行shell命令;
(2)执行shell命令将数据整合后的IDS检测数据上传至HDFS;
(3)通过shell指令执行随机森林算法,生成决策树,并输出结果,提供决策信息。
下面描述上传文件情况,其软件界面如图3所示。
图3 系统远程管理界面
图中为上传文件123.txt至Hadoop系统的test文件夹,点击“上传”按钮后完成上传。在“命令”窗口,输入shell的ls命令,点击“执行“按钮”就能够查看test文件夹内的内容。
3.1 实验数据预处理
训练和测试数据来自于设计的IDS监测系统,涵盖了将近1个月的近万条数据,针对真实网站进行入侵检测。选择2/3数据集用于训练,其它用于测试。经过适当预处理,有关IP地址、端口号和日期等数据做了一定的调整。既避免信息泄露,又符合随机森林分类算法的要求。每行数据共有25列,其中,第1列为序号,第2列为使用的访问的协议,最后1列是系统状态[normal, anomaly],分别表示为正常和异常。
3.2 建模过程
基于Hadoop 2.6和mahout-0.10环境,采用随机森林分类算法进行数据分析。
主要执行步骤如下:
(1)上传测试数据文件trainIds.txt,生成描述文件。
Hadoop jar mahout-examples-0.10.0-job.jar org.apache.mahout.classifier.df.tools.Describe-p testIDS/trainIds.txt-f testIDS/trainIds.info-d I C 23 N L
(2)建立森林模型。
hadoop jar mahout-examples-0.10.0-job.jar org.apache.mahout.classifier.df.mapreduce.BuildForest-d testIDS/testIds.txt-ds testIDS/trainIds.info-sl 3-ms 3-p-t 5-o IdsOut0607
建立的决策树如图4所示。
图4 查看决策树
(3)测试模型。
hadoop jar mahout-examples-0.10.0-job.jar org.apache.mahout.classifier.df.mapreduce.TestForest-i testIDS/testIds.txt-ds testIDS/trainIds.info-m IdsOut0607-mr-a-o idsOut0607
测试过程和分类结果如图5所示。可见,总体检测率达到98.5%。从混淆矩阵结果看,正常状态的误报率仅为7/590=1.2%,异常状态的误报率为2/30=6.7%。
图5 随机森林模型的测试结果
针对真实网站的入侵检测需要,设计和实现了一套大数据采集和分析实验系统,能够自动获取IDS日志信息并远程传输到云计算服务器中。通过Hadoop系统和Mahout技术,利用随机森林算法进行入侵检测日志数据分析。结果表明,建立的决策树模型具有很高的检测率和较低的误报率。系统具有一定的通用性,可以为其他类似系统提供参考。今后,将增加网站运行的日志信息分析,通过综合多种数据源,进一步提高检测的可靠性。
[1] 何增颖, 陈建锐. 入侵检测系统测试实验设计与实现[J]. 实验室研究与探索, 2010,29(3): 80-82.
[2] 张旭珍, 黄成玉,张志波. 基于 Snort 的入侵检测系统教学实验设计与实现[J]. 实验室研究与探索, 2014,33(4):159-163.
[3] 高 峥,陈蜀宇,李国勇. 混合入侵检测系统的研究[J]. 计算机技术与发展,2010,20(6):148-151.
[4] 王 翔,胡学钢,杨秋洁.基于One_R的改进随机森林入侵检测模型研究[J].合肥工业大学学报(自然科学版),2015,38(5):627-630.
[5] 陈 真. Hadoop云平台的入侵检测系统优化设计[J]. 西安工业大学学报,2012,32(9):716-722.
[6] 魏德志. 基于云计算的模糊规则挖掘算法在入侵检测中的应用[J]. 吉林师范大学学报, 2012(1):115-118.
[7] ACM KDD CUP [Online]. www.sigkdd.org/ kdd-cup-1999-computer-network-intrusion-detection..
[8] 张新有,曾华燊,贾 磊. 入侵检测数据集 KDD CUP99 研究[J]. 计算机工程与设计. 2010,31(22): 4809-4812.
[9] 孙艺峻, 张宏莉,何 慧.大规模网络安全态势分析中的报警关联规则挖掘[C]//2007年全国网络与信息安全研讨会论文集,2007.
[10] 孙国梓.一种入侵检测实验系统的设计与实现[J]. 计算机教育, 2010(6):154-157.
[11] 刘建军.基于Hadoop的WEB入侵检测分析[C]//2014第十九届全国青年通信学术年会论文集,2014.
[12] 许 旻.高维数据下基于云平台的随机森林算法的研究与实现[J]. 科技通报,2014,30(6):222-224.
[13] Mohammed Nazim Feroz,Susan Mengel.Examination of Data, Rule Generation and Detection of Phishing URLs using Online Logistic Regression[C]//2014 IEEE International Conference on Big Data, 2014.
[14] Jakrarin Therdphapiyanak,Krerk Piromsopa. An analysis of suitable parameters for efficiently applying K-means clustering to large TCPdump data set using Hadoop framework[C]//2013 10thInt Conf on Electrical Engineering/Electronics, Computer, Telecommunications and Information Technology(ECTI-CON). 2013.
[15] overview-Apache mahout-Apache software foundation [Online].https://cwiki.apache.org/confluence/display/MAHOUT/Overview.
Hadoop-based System Design for Website Intrusion Detection and Analysis
ZHANGXiao-ming,WANGYu-xin,WANGGuang,ZHANGGe-tong,WURui-jiang
(Department of Computer, College of Information Engineering,Beijing Institute of Petrochemical Technology, Beijing 102617, China)
It is very important and practical to make data analysis for intrusion detection based on large scale data. For the current system problem in simulation and off-line analysis, a system is proposed to complete intrusion detection and analysis for true website. The system is integrated with two subsystems of intrusion detection and large data analysis. Through network construction and software design, the system achieves functions of intrusion detection, data storage, data cleaning and data mining for true website. With two kinds of modes of timing and active management, the data can be transmitted to the database and Hadoop system online in the system. By means of the designed software, it can make large data analysis under Hadoop system and Mahout technology. Experimental results show that the system can quickly establish the random forest model. It can achieve good detection effects.
intrusion detection; Hadoop; large data; Mahout; classification; random forest
2015-10-29
2015年度国家级大学生创新创业计划项目(2015J00137);北京石油化工学院优秀责任教授资助项目(BIPT-POPME-2015);北京石油化工学院重点教改项目(ZD20140302)
张晓明(1968-),男,江西宁都人,博士,教授,主要研究方向为网络计算和大数据技术。E-mail: zhangxiaoming@bipt.edu.cn
TP 393.08;TP 181
A
1006-7167(2016)04-0125-04