第9卷第1期 智能系统学报 Vol.9 No.1 2014年2月 CAAI Transactions on Intelligent Systems Feb.2014 D0:10.3969/j.issn.1673-4785.201305011 网络出版地址:http://www.cnki.net/kcms/detail/23.1538.TP.20140221.1804.001.html 检测僵尸网络的贝叶斯算法的 MapReduce并行化实现 邵秀丽,刘一伟2,耿梅洁,韩健斌 (1.南开大学计算机与控制工程学院,天津300071:2.北京大学数学科学学院,北京100871:3.武警指挥学院军事 教育训练系,天津300250) 摘要:僵尸网络严重威胁互联网的安全,目前主流的僵尸网络检测方法准确性较低,针对此问题,考虑贝叶斯算法 具有较高的准确性,提出了基于Hadoop平台的MapReduce机制的贝叶斯算法。该方法以主机对作为分析对象,提 取2个主机对通信的流量特征,将这些特征作为贝叶斯分类算法的输入,通过并行化计算贝叶斯算法训练阶段的先 验概率和条件概率形成贝叶斯分类器,使其学会辨认僵尸网络的流量。在检测阶段利用训练阶段形成的贝叶斯分 类器和并行化计算后验概率,实现检测僵尸网络。通过实验表明,该方法检测僵尸网络是有效的,检测正确率在 90%以上,并且该方法较单机检测僵尸网络的贝叶斯算法效率有了较大的提高。 关键词:僵尸网络:检测僵尸网络;贝叶斯算法;Hadoop;MapReduce;流量 中图分类号:TP311文献标志码:A文章编号:1673-4785(2014)01-0026-08 中文引用格式:邵秀丽,刘一伟,耿梅洁,等.检测僵尸网络的贝叶斯算法的MapReduce并行化实现[J].智能系统学报,2014,9 (1):2633. 英文引用格式:SHAO Xiuli,LIU Yiwei,,GENG Meijie,etal.The parallel implementation of MapReduce for the Bayesian algo- rithm to detect botnets[J].CAAI Transactions on Intelligent Systems,2014,9(1):26-33. The parallel implementation of MapReduce for the Bayesian algorithm to detect botnets SHAO Xiuli',LIU Yiwei2,GENG Meijie',HAN Jianbin3 (1.College of Computer and Control Engineering,Nankai University,Tianjin 300071,China;2.School of Mathematical Sciences, Peking University,Beijing 100871,China;3.Department of Education and Training,Armed Police Command College,Tianjin 300250,China) Abstract:The botnet network poses a serious threat to the Internet security,and the accuracy of the botnet detec- tion method is low,while the Bayesian algorithm has high accuracy.This paper puts forward a Bayesian algorithm with the mechanism of MapReduce based on the Hadoop platform to achieve botnet detection.Taking the host-pairs as analysis objects,this method extracts the traffic features of communications between two hosts,takes these fea- tures as input and trains the Bayesian classifier through parallel calculations of the prior probability and condition probability on the stage of the Bayesian algorithm training to learn to recognize botnet traffic.By using the Bayesian classifier trained on the stage of the Bayesian algorithm training and parallel calculations of the posterior probability on the stage of detecting,the detection of botnets can be achieved.Experiments show that the method for detecting botnets is effective and the correct detection rate is more than 90%.The efficiency of this method is greatly im- proved as compared with detecting the single Bayesian algorithm of the botnets. Keywords:botnets;botnet detection;Bayesian algorithm;Hadoop;MapReduce;flow 由于僵尸网络威胁着互联网的安全,其检测方 法也随者僵尸网络的发展而发展。流行的僵尸网络 检测技术一般是通过网络流量分析实现的,如通过 收稿日期:2013-05-06.网络出版日期:2014-02-21 PageRank算法实现检测:通过网络通信图识别:利 基金项目:天津市科技支撑计划资助项目(13ZCZ①ZGX02500, 12ZCZDZGX49600.12ZCZDZGX46700). 用神经网络算法识别僵尸网络。这些僵尸网络检测 通信作者:邵秀丽.E-mail:shaoxl@nankai..edu.cn. 方法或者需要依赖外部系统提供信息,不能独立完
第 9 卷第 1 期 智 能 系 统 学 报 Vol.9 №.1 2014 年 2 月 CAAI Transactions on Intelligent Systems Feb. 2014 DOI:10.3969 / j.issn.1673⁃4785.201305011 网络出版地址:http: / / www.cnki.net / kcms/ detail / 23.1538.TP.20140221.1804.001.html 检测僵尸网络的贝叶斯算法的 MapReduce 并行化实现 邵秀丽1 ,刘一伟2 ,耿梅洁1 ,韩健斌3 (1.南开大学 计算机与控制工程学院,天津 300071; 2.北京大学 数学科学学院,北京 100871; 3.武警指挥学院 军事 教育训练系,天津 300250) 摘 要:僵尸网络严重威胁互联网的安全,目前主流的僵尸网络检测方法准确性较低,针对此问题,考虑贝叶斯算法 具有较高的准确性,提出了基于 Hadoop 平台的 MapReduce 机制的贝叶斯算法。 该方法以主机对作为分析对象,提 取 2 个主机对通信的流量特征,将这些特征作为贝叶斯分类算法的输入,通过并行化计算贝叶斯算法训练阶段的先 验概率和条件概率形成贝叶斯分类器,使其学会辨认僵尸网络的流量。 在检测阶段利用训练阶段形成的贝叶斯分 类器和并行化计算后验概率,实现检测僵尸网络。 通过实验表明,该方法检测僵尸网络是有效的,检测正确率在 90%以上,并且该方法较单机检测僵尸网络的贝叶斯算法效率有了较大的提高。 关键词:僵尸网络;检测僵尸网络;贝叶斯算法;Hadoop;MapReduce;流量 中图分类号:TP311 文献标志码:A 文章编号:1673⁃4785(2014)01⁃0026⁃08 中文引用格式:邵秀丽,刘一伟,耿梅洁,等.检测僵尸网络的贝叶斯算法的 MapReduce 并行化实现[ J]. 智能系统学报, 2014, 9 (1): 26⁃33. 英文引用格式:SHAO Xiuli, LIU Yiwei, GENG Meijie, et al. The parallel implementation of MapReduce for the Bayesian algo⁃ rithm to detect botnets[J]. CAAI Transactions on Intelligent Systems, 2014, 9(1): 26⁃33. The parallel implementation of MapReduce for the Bayesian algorithm to detect botnets SHAO Xiuli 1 , LIU Yiwei 2 , GENG Meijie 1 , HAN Jianbin 3 (1. College of Computer and Control Engineering, Nankai University, Tianjin 300071, China; 2. School of Mathematical Sciences, Peking University, Beijing 100871, China; 3. Department of Education and Training, Armed Police Command College, Tianjin 300250, China) Abstract:The botnet network poses a serious threat to the Internet security, and the accuracy of the botnet detec⁃ tion method is low, while the Bayesian algorithm has high accuracy. This paper puts forward a Bayesian algorithm with the mechanism of MapReduce based on the Hadoop platform to achieve botnet detection. Taking the host⁃pairs as analysis objects, this method extracts the traffic features of communications between two hosts, takes these fea⁃ tures as input and trains the Bayesian classifier through parallel calculations of the prior probability and condition probability on the stage of the Bayesian algorithm training to learn to recognize botnet traffic. By using the Bayesian classifier trained on the stage of the Bayesian algorithm training and parallel calculations of the posterior probability on the stage of detecting, the detection of botnets can be achieved. Experiments show that the method for detecting botnets is effective and the correct detection rate is more than 90%. The efficiency of this method is greatly im⁃ proved as compared with detecting the single Bayesian algorithm of the botnets. Keywords:botnets; botnet detection; Bayesian algorithm; Hadoop; MapReduce; flow 收稿日期:2013⁃05⁃06. 网络出版日期:2014⁃02⁃21. 基金项 目: 天 津 市 科 技 支 撑 计 划 资 助 项 目 ( 13ZCZDZGX02500, 12ZCZDZGX49600,12ZCZDZGX46700). 通信作者:邵秀丽. E⁃mail: shaoxl@ nankai.edu.cn. 由于僵尸网络威胁着互联网的安全,其检测方 法也随着僵尸网络的发展而发展。 流行的僵尸网络 检测技术一般是通过网络流量分析实现的,如通过 PageRank 算法实现检测;通过网络通信图识别;利 用神经网络算法识别僵尸网络。 这些僵尸网络检测 方法或者需要依赖外部系统提供信息,不能独立完
第1期 邵秀丽,等:检测僵尸网络的贝叶斯算法的MapReduce并行化实现 .27. 成检测:或者由于网络流量信息量巨大,在单个服务 案把捕获的网络流量利用云环境的贝叶斯并行算法 器上完成检测的工作效率比较低口。此外,僵尸网 进行分析处理,最终检测出僵尸网络)。 络具有流量大的特征[],因此贝叶斯分类训练阶段 需要对大量的网络数据集进行训练,用单一结点来 1检测僵尸网络的计算架构 进行检测僵尸网络将会遇到计算时间和计算资源瓶 图1给出了云环境下检测僵尸网络的架构,由被 颈)。为利用贝叶斯算法较高的准确性,基于云的 测网络环境、云环境和代理服务器层三部分构成,这三 Hadoop机制和MapReduce实现贝叶斯算法,该算法 部分协同完成僵尸网络的检测向。每个被测网络中有 根据流量分析判断网络访问流量信息中是否存在僵 若干台机器和一个核心交换机,连接一个代理服务器, 尸行为4。基于MapReduce检测僵尸网络的贝叶 代理服务器与核心交换机连接,主要负责网络流量的 斯算法,把贝叶斯算法训练阶段的先验概率、条件概 采集、解析、过滤并上传到云环境中。云的Hadoop收 率和检测阶段的后验概率的计算并行化处理。该方 集并处理各个代理服务器上传的网络流量)。 Hadoop集群 huffle&Sort Mapper Reducer Splito 俭测是否 SplitD 基于MapReducel的并 为倍尸 行僵尸网络检测 Splitn 云环境 预处理后的网络流量数据 贝厨 代理服务器 代理服务器 ② 正常计算机 篇尸计算机 被测网络1 被测网络n 计算机间的通信 采集、上传流量 被测网络2 被测网络环境 图1基于MapReduce的检测僵尸网络 Fig.1 Botnet detection based on MapReduce 代理服务器运行tepdump抓包工具来抓取网络式为:序号1数据包到达时间I源P地址|源端口号1 数据包,且将抓取的数据包以十六进制格式的文件 目的P地址I目的端口号I协议1数据包字节数1 存储,经过解析将文件变为可读的格式,以便程序分 FINISYNIACKIRST 析处理。解析后将数据包存储在le中,不同协议 代理服务器将解析后的fle上传到云的Hadoop 的数据包格式不同,例如TCP协议的流量数据包格 中,以便用MapReduce并行化的贝叶斯算法进行分
成检测;或者由于网络流量信息量巨大,在单个服务 器上完成检测的工作效率比较低[1] 。 此外,僵尸网 络具有流量大的特征[2] ,因此贝叶斯分类训练阶段 需要对大量的网络数据集进行训练,用单一结点来 进行检测僵尸网络将会遇到计算时间和计算资源瓶 颈[3] 。 为利用贝叶斯算法较高的准确性,基于云的 Hadoop 机制和 MapReduce 实现贝叶斯算法,该算法 根据流量分析判断网络访问流量信息中是否存在僵 尸行为[4] 。 基于 MapReduce 检测僵尸网络的贝叶 斯算法,把贝叶斯算法训练阶段的先验概率、条件概 率和检测阶段的后验概率的计算并行化处理。 该方 案把捕获的网络流量利用云环境的贝叶斯并行算法 进行分析处理,最终检测出僵尸网络[5] 。 1 检测僵尸网络的计算架构 图 1 给出了云环境下检测僵尸网络的架构,由被 测网络环境、云环境和代理服务器层三部分构成,这三 部分协同完成僵尸网络的检测[6] 。 每个被测网络中有 若干台机器和一个核心交换机,连接一个代理服务器, 代理服务器与核心交换机连接,主要负责网络流量的 采集、解析、过滤并上传到云环境中。 云的 Hadoop 收 集并处理各个代理服务器上传的网络流量[7] 。 图 1 基于 MapReduce 的检测僵尸网络 Fig.1 Botnet detection based on MapReduce 代理服务器运行 tcpdump 抓包工具来抓取网络 数据包,且将抓取的数据包以十六进制格式的文件 存储,经过解析将文件变为可读的格式,以便程序分 析处理。 解析后将数据包存储在 file 中,不同协议 的数据包格式不同,例如 TCP 协议的流量数据包格 式为:序号|数据包到达时间|源 IP 地址|源端口号| 目的 IP 地址 | 目的端口号 | 协议 |数据包字节数| FIN| SYN|ACK|RST。 代理服务器将解析后的 file 上传到云的 Hadoop 中,以便用 MapReduce 并行化的贝叶斯算法进行分 第 1 期 邵秀丽,等:检测僵尸网络的贝叶斯算法的 MapReduce 并行化实现 ·27·
·28 智能系统学报 第9卷 析处理。le中每一行表示一个数据包。不同被测 P(n)和条件概率P(e:In)、P(w:In)、P(w:lb)、 网络的代理服务器将le上传到云环境的同一个指 P(地,Ib)(1≤i≤6),其中b表示僵尸网络,n表示 定文件夹,以便在云环境中对各个被测网络的流量 集中分析处理,检测出所有被测网络中的僵尸主 正常网络。其中心,为TCP数据流,心,为时间间隔 机。 平均值,心3为时间间隔变化,心4为数据包字节数, ,为数据包个数平均值,心。为持续时间平均值。计 为适合MapReduce计算模型处理,须将le中 算正常网络和僵尸网络的先验概率对应一个Ma- 的数据包进行预处理。将抓取的网络流量信息数据 包处理成以行形式存储的文件,每行信息形式为: pReduce计算过程,即MapReducel;对6个属性列既 要判断是否为僵尸网络又要判断是否在阈值内,即 序号1数据包到达时间1源P地址1目的P地址 每个属性有4个判断条件,因此需要求24个条件概 TCP数据流I时间间隔平均值I时间间隔变化I数据 率,计算这24个条件概率对应另一个MapReduce 包字节数1数据包个数平均值1持续时间平均值1类 标签。其中,类标签值为0或者1来标明该条网络 计算过程,即MapReduce2。贝叶斯检测阶段基于由 26个概率构成的知识库,根据贝叶斯算法公式: 数据是否属于僵尸网络,本文设类标签值为0的网 络访问为正常网络,否则为僵尸网络。 P(b)ΠP(w,1b) 随机选择类标签值为0的正常网络信息行的 P(bI d)= 2/3,再随机选择类标签值为1的僵尸网络信息行的 P(d) 2/3,这些行信息合成文件作为训练数据文件,剩余 P(n)ΠP(w:ln) 行作为检测数据文件。然后,将训练数据文件和检 P(nI d)= 测数据文件分别按行分块,分块过程由Hadoop自动 P(d) 按64MB大小作为一个数据块处理。 计算每条网络数据的后验概率[0],进行分类并判断 是否为僵尸网络。检测阶段对应一个MapReduce 2 基于MapReduce的贝叶斯算法 计算过程,即MapReduce3。图2描述了贝叶斯算法 贝叶斯算法进行MapReduce设计的基本思路 检测僵尸网络的MapReduce并行化实现方法。 是:贝叶斯训练阶段形成知识库,先验概率P(b)、 预处理后训练流Key:偏移量 预处理后训练流Key:偏移量 Vahe:源IP,目的P,w,w2 Vale源IP,目的P,w,, W3,1W4,Ws,6类标签 13,W4,W5,1P6,类标签 MapReducel MapReduce2 Split1 Split2 Splitn Splitl Split2 Splitn MapDMapD MapD Map2Map2 Map2 Key:类标签 Key:ff…fa Value:1 Value:ppp ReduceD ReduceD Reduce2 Reduce2 Key:类标签 Value:类先验概率 Key Value:p.Pa MapReduce3 w:TCP数据流 :时间间隔平均值 预 Splitl Map3 :时间间隔变化 w:字节数平均值 理 Reduce3 ws:数据包个数平均值 Split2 Map3 w%:持续时间平均值 Key:time f人:w-w。条件字符电 Value:P(Cld)P(Cld) 判断是否为僵尸网络P一P”的条件概率 流 C:正常网络 Reduce3 C:福尸网络 Key:偏移量 d:网络数据特征向量 Vaue:源IP 目的IP,w1,w2 Splitn Map3 time:检测数据行数 Split:被Hadoop分割的数据块 W3,W4,W5,W6, 类标签 图2基于MapReduce检测僵尸网络的贝叶斯算法 Fig.2 The process of Bayesian algorithm to detect botnets based on MapReduce
析处理。 file 中每一行表示一个数据包。 不同被测 网络的代理服务器将 file 上传到云环境的同一个指 定文件夹,以便在云环境中对各个被测网络的流量 集中分析处理,检测出所有被测网络中的僵尸主 机[8] 。 为适合 MapReduce 计算模型处理,须将 file 中 的数据包进行预处理。 将抓取的网络流量信息数据 包处理成以行形式存储的文件[9] ,每行信息形式为: 序号 | 数据包到达时间 | 源 IP 地址 |目的 IP 地址| TCP 数据流|时间间隔平均值 | 时间间隔变化 | 数据 包字节数|数据包个数平均值 | 持续时间平均值 | 类 标签。 其中,类标签值为 0 或者 1 来标明该条网络 数据是否属于僵尸网络,本文设类标签值为 0 的网 络访问为正常网络,否则为僵尸网络。 随机选择类标签值为 0 的正常网络信息行的 2 / 3,再随机选择类标签值为 1 的僵尸网络信息行的 2 / 3,这些行信息合成文件作为训练数据文件,剩余 行作为检测数据文件。 然后,将训练数据文件和检 测数据文件分别按行分块,分块过程由 Hadoop 自动 按 64 MB 大小作为一个数据块处理。 2 基于 MapReduce 的贝叶斯算法 贝叶斯算法进行 MapReduce 设计的基本思路 是:贝叶斯训练阶段形成知识库,先验概率P(b)、 P(n)和条件概率 P(wi | n)、P( wi | n )、P(wi | b)、 P(wi | b)(1 ≤ i ≤ 6),其中 b 表示僵尸网络,n 表示 正常网络。 其中 w1 为 TCP 数据流,w2 为时间间隔 平均值,w3 为时间间隔变化,w4 为数据包字节数, w5 为数据包个数平均值,w6 为持续时间平均值。 计 算正常网络和僵尸网络的先验概率对应一个 Ma⁃ pReduce 计算过程,即 MapReduce1;对 6 个属性列既 要判断是否为僵尸网络又要判断是否在阈值内,即 每个属性有 4 个判断条件,因此需要求 24 个条件概 率,计算这 24 个条件概率对应另一个 MapReduce 计算过程,即 MapReduce2。 贝叶斯检测阶段基于由 26 个概率构成的知识库,根据贝叶斯算法公式: P(b | d) = P(b)∏ n i = 1 P(wi | b) P(d) P(n | d) = P(n)∏ n i = 1 P(wi | n) P(d) 计算每条网络数据的后验概率[10] ,进行分类并判断 是否为僵尸网络。 检测阶段对应一个 MapReduce 计算过程,即 MapReduce3。 图 2 描述了贝叶斯算法 检测僵尸网络的 MapReduce 并行化实现方法。 图 2 基于 MapReduce 检测僵尸网络的贝叶斯算法 Fig.2 The process of Bayesian algorithm to detect botnets based on MapReduce ·28· 智 能 系 统 学 报 第 9 卷
第1期 邵秀丽,等:检测僵尸网络的贝叶斯算法的MapReduce并行化实现 .29. 2.1 MapReducel的设计 yes/sum、sum_no/sum计算得到先验概率P(n)和 Mapl接收到的训练数据是被Hadoop处理形成 P(b),并以成员变量sum_-yes_-P和sum_no_p存储。 的(Key,Value〉对,形式为(该行起始位置相对于文 Reducel过程伪代码如下。 件起始位置的偏移量,文本文件中的一行信息〉的 输入:Text、Int Writable 信息。由于MapReducel是计算贝叶斯的先验概 输出:Text、Float Writable 率,只需用到Value的类标签属性,所以Mapl将每 reduce(Key,Value) 行Vaue数据按空格分隔成字符串数组,取出数组 for(Int Writable val:Value) 最后一项,即类标签值。判断类标签值,若为0,输 Suml+=val.get();/若Key为“正常网络”, 出中间结果〈Keyl,Valuel〉对的形式为(“正常网 统计的是正常网络数据行数;否则为僵尸网络数据 络”,1):若为1,输出中间结果(Keyl,Value1〉对的 行数 形式为(“僵尸网络”,I〉。并且,MapReduce框架每 If(Key.equals(“正常网络”)) 执行一次map()说明处理一行数据,通过累加统计 {sum_yes=suml;/存储正常网络数据行数 训练数据总行数,以成员变量sum存储。Mapl只是 sum_-yes-p=sum_yes/sum;//正常网络先验 一个数据准备阶段,使Reducel能在该准备数据上 概率 继续处理。Mapl过程伪代码如下。 } 输入:Object、Texto Else 输出:Text、Int Writable。. {sum_no=suml:/存储僵尸网络数据行数 map(Key、Value) sum no_p=sum_no/sum;/僵尸网络先验概率 StringTokenizer itr new StringTokenizer(value. } toString()); Context.write(key,(float)sum1/sum));// String[]temp=new String[9] 出先验概率 While(itr.hasMoreTokens()) } {temp[i]=itr.next Token():/属性字符串数组 经过MapReducel的处理,形成2个以成员变 i++; 量sum_-yesp、sum_no_p存储的概率,即正常网络先 验概率和僵尸网络先验概率,构成知识库的一部分, Sum++;//网络数据总行数 供检测阶段使用。 If(temp[8].equals(0))/类标签0为正常网络 2.2 MapReduce2的设计 Context..wite(“正常网络”,l); Map2接收到的信息与Mapl相同,是训练数据 Else//表示为僵尸网络 被Hadoop处理形成的(Key,Vaue〉对,形式为(该 Context..write(“僵尸网络”,1); 行起始位置相对于文件起始位置的偏移量,文本文 件中的一行信息)的信息。MapReduce2计算贝叶斯 经过Mapl把分块的每行信息都处理成〈Keyl, 的条件概率,需用到Value的6个属性列及类标签 Valuel)形式的等待整体处理的中间文件输出,Ma- 值。因此Map2将每行Value数据按空格分割成字 pReduce框架将每个Mapl输出的中间文件的结果 符串数组,取出数组的第3~9项01,心2,…,心6,以及 (“正常网络”,1〉或(“僵尸网络”,1〉按照Ky值 类标签值。首先判断类标签值是否为“0”,然后判 (正常网络、僵尸网络)进行分组形成新的(Key2, 断各属性是否在各自阈值内。若标签值为“0”且属 Value2)对,形式为(类标签值,{1,1,…,1})。 性值在阈值内,输出中间结果〈Key3,Value3)对的形 Reducel接收到的信息为(Key2,Value2.〉。Re ducel的任务是对Key2相同的中间结果计数,若 式为(“w:In”,1〉;若标签值为“0”且属性值在阈值 Key2值为“正常网络”,统计的Value22的行数为正 外,输出中间结果〈Key3,Value3〉对的形式为 常网络个数,并以成员变量sum-yes存储;若Key2 〈“0,1n”,1〉:若标签值为“1”且属性值在阈值内,输 值为“僵尸网络”,统计的Value2的行数为僵尸网络 出中间结果〈Key3,Value.3〉对的形式为 个数,并以成员变量sum_no存储。并分别用sum_ 〈“0:1b”,1〉;若标签值为“1”且属性值在阈值外,输
2.1 MapReduce1 的设计 Map1 接收到的训练数据是被 Hadoop 处理形成 的〈Key,Value〉对,形式为〈该行起始位置相对于文 件起始位置的偏移量, 文本文件中的一行信息〉的 信息。 由于 MapReduce1 是计算贝叶斯的先验概 率,只需用到 Value 的类标签属性,所以 Map1 将每 行 Value 数据按空格分隔成字符串数组,取出数组 最后一项,即类标签值。 判断类标签值,若为 0,输 出中间结果〈Key1,Value1〉 对的形式为〈“正常网 络”,1〉;若为 1,输出中间结果〈Key1,Value1〉对的 形式为〈“僵尸网络”,1〉。 并且,MapReduce 框架每 执行一次 map( )说明处理一行数据,通过累加统计 训练数据总行数,以成员变量 sum 存储。 Map1 只是 一个数据准备阶段,使 Reduce1 能在该准备数据上 继续处理。 Map1 过程伪代码如下。 输入:Object、Text。 输出:Text、IntWritable。 map(Key、Value) {StringTokenizer itr = new StringTokenizer( value. toString()); String[]temp = new String[9]; While(itr.hasMoreTokens()) {temp[i] =itr.nextToken();/ / 属性字符串数组 i++; } Sum++; / / 网络数据总行数 If(temp[8].equals(0)) / / 类标签 0 为正常网络 Context.write(“正常网络”,1); Else / / 表示为僵尸网络 Context.write(“僵尸网络”,1); } 经过 Map1 把分块的每行信息都处理成〈Key1, Value1〉形式的等待整体处理的中间文件输出,Ma⁃ pReduce 框架将每个 Map1 输出的中间文件的结果 〈“正常网络”,1〉 或〈“僵尸网络”,1〉 按照 Key 值 (正常网络、僵尸网络) 进行分组形成新的〈Key2, Value2〉对,形式为〈类标签值,{1,1,…,1 }〉。 Reduce1 接收到的信息为〈Key2,Value2〉。 Re⁃ duce1 的任务是对 Key2 相同的中间结果计数,若 Key2 值为“正常网络”,统计的 Value2 的行数为正 常网络个数,并以成员变量 sum_yes 存储;若 Key2 值为“僵尸网络”,统计的 Value2 的行数为僵尸网络 个数,并以成员变量 sum_no 存储。 并分别用 sum_ yes/ sum、sum_no / sum 计算得到先验概率 P( n) 和 P(b),并以成员变量 sum_yes_p 和 sum_no_p 存储。 Reduce1 过程伪代码如下。 输入:Text、IntWritable。 输出:Text、FloatWritable。 reduce(Key,Value) {for(IntWritable val:Value) Sum1+ = val.get( ); / / 若 Key 为“正常网络”, 统计的是正常网络数据行数;否则为僵尸网络数据 行数 If(Key.equals(“正常网络”)) {sum_yes = sum1; / / 存储正常网络数据行数 sum_yes_p = sum_yes/ sum; / / 正常网络先验 概率 } Else {sum_no = sum1; / / 存储僵尸网络数据行数 sum_no_p=sum_no / sum;/ / 僵尸网络先验概率 } Context.write(key,(float)(sum1 / sum)); / / 输 出先验概率 } 经过 MapReduce1 的处理,形成 2 个以成员变 量 sum_yes_p、sum_no_p 存储的概率,即正常网络先 验概率和僵尸网络先验概率,构成知识库的一部分, 供检测阶段使用。 2.2 MapReduce2 的设计 Map2 接收到的信息与 Map1 相同,是训练数据 被 Hadoop 处理形成的〈Key,Value〉 对,形式为〈该 行起始位置相对于文件起始位置的偏移量, 文本文 件中的一行信息〉的信息。 MapReduce2 计算贝叶斯 的条件概率,需用到 Value 的 6 个属性列及类标签 值。 因此 Map2 将每行 Value 数据按空格分割成字 符串数组,取出数组的第 3~9 项 w1 ,w2 ,…,w6 ,以及 类标签值。 首先判断类标签值是否为“0”,然后判 断各属性是否在各自阈值内。 若标签值为“0”且属 性值在阈值内,输出中间结果〈Key3,Value3〉对的形 式为〈“wi | n”,1〉;若标签值为“0”且属性值在阈值 外,输 出 中 间 结 果 〈 Key3, Value3 〉 对 的 形 式 为 〈“wi | n”,1〉;若标签值为“1”且属性值在阈值内,输 出 中 间 结 果 〈 Key3, Value3 〉 对 的 形 式 为 〈“wi | b”,1〉;若标签值为“1”且属性值在阈值外,输 第 1 期 邵秀丽,等:检测僵尸网络的贝叶斯算法的 MapReduce 并行化实现 ·29·
.30. 智能系统学报 第9卷 出中间结果(Key3,Vaue3)对的形式为(“e,Ib”,1)。 个数,利用suml/sum_no求得条件概率P(e,Ib),并 Map2过程伪代码如下。 以成员变量wiin_unnomal存储;若Key4值为“e;I 输入:Object、Text。 僵尸”,统计的Value4的行数suml为w:在阈值外且 输出:Text、Int Writable 属于僵尸网络个数,利用suml/sum_no求得条件概 map(Key,Value) 率P(w:Ib),并以成员变量wi_out_unnomal存储。 StringTokenizer itr=new StringTokenizer(value. Reduce2过程伪代码如下。 toString()); 输入:Text、Int Writable String[temp=new String[9]; 输出:Text、Float Writable. While(itr.hasMoreTokens()) Reduce(Key、Value) {temp[i]=ir.nextToken();//属性字符串数组 for(Int Writable val:value) i++; Suml+=val.get():/key为不同的条件字 If Float.parsefloat temp [2])>140 &Float. 符串,则统计的是满足不同条件的网络数据行数 parsefloat(temp[2])<150) f(temp[8].equals(“0”)) /计算Key字符串长度length Context.write("w In",1); /截取条件字符串Key最后2个字符msg_ Else temp Context..write(“o1lb”,1); If(msg_temp.equals(“n”))/若属于正常网络 Else {Float result=suml/sum_yes;//计算条件概率 If(temp[8].equals(“0”)) If(Key.equals(“w,ln”)) Context.write(“w,ln”,l); wl_in_nomal=result;/成员变量存储属性 Else 列1在阈值内且属于正常网络条件概率 Context.write(“w,lb”,l); Else if(Key.equals(“w;In”)) /其他5个属性列训练过程同上。 wl_out_normal=result;/成员变量存储属 } 性列1在阈值外且属于正常网络条件概率 经过Map2把分块的每行信息都处理成以 /其他5个属性列计算在阈值内、外属于正常 〈Key3,Value23)形式的等待整体处理的中间文件输 网络的条件概率同上 出,MapReduce框架将每个Map2输出的中间文件 Else 的结果按照Key值(,ln、:In、:lb、:Ib)进行分 组形成新的(Key4,Value44〉对,形式为(条件字符 {Float result=suml/sum_no;/计算条件概率 If(Key.equals(“e,lb”)) 串,{1,1,…,1})。 wl_in_unnormal=result:/成员变量存储 Reduce.2接收到的信息为(Key4,Value4)。Re 属性列1在阈值内且属于僵尸网络条件概率 duce2的任务是对Key4相同的中间结果计数,若 Key4值为“w:ln”,统计的Value4的行数suml为e: Else if(Key.equals(“w:Ib”)) 在阈值内且属于正常网络个数,利用suml/sum_yes wl_out_unnormal=result:/成员变量存储 求得条件概率P(w:ln),并以成员变量wi_in_nomal 属性列1在阈值内且属于僵尸网络条件概率 /其他5个属性列计算在阈值内、外属于僵尸 存储;若Key4值为“w:In”,统计的Value4的行数 网络的条件概率同上 suml为心:在阈值外且属于正常网络个数,利用 suml/sum_yes求得条件概率P(w:ln),并以成员变 Context..wite(Key,result);//输出条件概率 量wi_out_nomal存储;若Key4值为“w:Ib”,统计的 } Value4的行数suml为w:在阈值内且属于僵尸网络 由于MapReduce.2要对训练数据的6个属性列
出中间结果〈Key3,Value3〉对的形式为〈“wi |b”,1〉。 Map2 过程伪代码如下。 输入:Object、Text。 输出:Text、IntWritable。 map(Key,Value) {StringTokenizer itr = new StringTokenizer( value. toString()); String[] temp = new String[9]; While(itr.hasMoreTokens()) {temp[i] =itr.nextToken();/ / 属性字符串数组 i++; } If ( Float. parsefloat ( temp [ 2]) > 140 && Float. parsefloat(temp[2])<150) If(temp[8].equals(“0”)) Context.write(“w1 | n”,1); Else Context.write(“w1 | b”,1); Else If(temp[8].equals(“0”)) Context.write(“ w1 | n”,1); Else Context.write(“ w1 | b”,1); / / 其他 5 个属性列训练过程同上。 } 经过 Map2 把 分 块 的 每 行 信 息 都 处 理 成 以 〈Key3,Value3〉形式的等待整体处理的中间文件输 出,MapReduce 框架将每个 Map2 输出的中间文件 的结果按照 Key 值(wi | n、 wi | n、wi | b、 wi | b)进行分 组形成新的〈 Key4,Value4〉 对,形式为〈 条件字符 串,{1,1,…,1 }〉。 Reduce2 接收到的信息为〈Key4,Value4〉。 Re⁃ duce2 的任务是对 Key4 相同的中间结果计数,若 Key4 值为“wi | n”,统计的 Value4 的行数 sum1 为 wi 在阈值内且属于正常网络个数,利用 sum1 / sum_yes 求得条件概率 P(wi | n),并以成员变量 wi_in_nomal 存储; 若 Key4 值为“ wi | n”,统计的 Value4 的行数 sum1 为 wi 在阈值外且属于正常网络个数,利用 sum1 / sum_yes 求得条件概率 P( wi | n),并以成员变 量 wi_out_nomal 存储;若 Key4 值为“wi | b”,统计的 Value4 的行数 sum1 为 wi在阈值内且属于僵尸网络 个数,利用 sum1 / sum_no 求得条件概率 P(wi | b),并 以成员变量 wi_in_unnomal 存储;若 Key4 值为“ wi | 僵尸”,统计的 Value4 的行数 sum1 为 wi在阈值外且 属于僵尸网络个数,利用 sum1 / sum_no 求得条件概 率 P( wi | b),并以成员变量 wi_out_unnomal 存储。 Reduce2 过程伪代码如下。 输入:Text、IntWritable。 输出:Text、FloatWritable。 Reduce(Key、Value) {for(IntWritable val:value) { Sum1+ = val.get( ); / / key 为不同的条件字 符串,则统计的是满足不同条件的网络数据行数 } / / 计算 Key 字符串长度 length / / 截取条件字符串 Key 最后 2 个字符 msg _ temp If(msg_temp.equals(“n”)) / / 若属于正常网络 {Float result = sum1 / sum_yes; / / 计算条件概率 If(Key.equals(“w1 | n”)) w1_in_nomal = result; / / 成员变量存储属性 列 1 在阈值内且属于正常网络条件概率 Else if(Key.equals(“ wi | n”)) w1_out_normal = result; / / 成员变量存储属 性列 1 在阈值外且属于正常网络条件概率 / / 其他 5 个属性列计算在阈值内、外属于正常 网络的条件概率同上 } Else {Float result = sum1 / sum_no; / / 计算条件概率 If(Key.equals(“w1 | b”)) w1_in_unnormal = result; / / 成员变量存储 属性列 1 在阈值内且属于僵尸网络条件概率 Else if(Key.equals(“ wi | b”)) w1_out_unnormal = result; / / 成员变量存储 属性列 1 在阈值内且属于僵尸网络条件概率 / / 其他 5 个属性列计算在阈值内、外属于僵尸 网络的条件概率同上 } Context.write(Key,result);/ / 输出条件概率 } 由于 MapReduce2 要对训练数据的 6 个属性列 ·30· 智 能 系 统 学 报 第 9 卷
第1期 邵秀丽,等:检测僵尸网络的贝叶斯算法的MapReduce并行化实现 ·31 进行训练,每个属性既要判断是否为僵尸网络又要 判断是否在阈值内,因此每个属性有4个判断条件。 P=P w1_out_normal; 因此,经过MapReduce22的处理,形成24个条件概 P2=P2 w1_out_unnormal; 率分别存储在24个成员变量里,这与MapReduce1 形成的2个成员变量存储的先验概率共同构成完整 /其他5个属性列检测过程同上。 的知识库,可用于检测僵尸网络。 Line++;/统计所在行数 2.3 MapReduce3设计 Context.write(Line,P:P2); Map3接收到的检测数据是被Hadoop处理形成 的(Key,Value〉对,形式为(该行起始位置相对于文 经过Map3把分块的每行信息都处理成以 件起始位置的偏移量,文本文件中的一行信息〉的 〈Key5,Value5)形式的等待整体处理的中间文件输 信息。MapReduce.3要对6列属性全部检测,需用到 出,MapReduce框架将每个Map3输出的中间文件 Value的6个属性列。所以Map3将每行Value数据 结果按照Ky值(数据所在行数)进行分组后发送 按空格分割成字符串数组,取出数组的第3~8项, 给Reduce3。 分别为T℃P数据流、时间间隔平均值、时间间隔变 Reduce3.接收到的信息为。Re- 化、数据包字节数、数据包个数平均值、持续时间平 duce5的任务是逐行比较网络数据的P(bId)和 均值。判断6个属性列的值是否在各自阈值内,若 P(nld)的大小。若P(nld)>P(bld),判断该行 在阈值内,分别利用存储条件概率的成员变量wi_in 网络数据为正常网络数据:否则为僵尸网络数据。 nomal、wi_in_unnormal计算后验概率;若在阈值外, Reduce.3伪代码如下所示。 分别利用存储条件概率的成员变量wi_out_nomal、 输入:Text、Text。 wi_out_unnormal计算后验概率。并将每行网络数 输出:Text、Text。 据的正常网络后验概率P(nId)和僵尸网络后验 reduce(Key,Value) 概率P(bId)一起输出。输出结果(Key5,Values5) StringTokenizer itr new StringTokenizer(value. 对的形式为(数据所在行数,P(nId)P(bId)〉。 toString()); Map3过程伪代码如下。 String[temp=new String[2] 输入:Object、Text。 While(itr.hasMoreTokens()) 输出:Text、Texto {temp[]=itr.nextToken();/正常网络后 map(Key,Value) 验概率与僵尸网络后验概率 StringTokenizer itr new StringTokenizer(value. i++: toString()); String[temp=new String[9]; If(Float.parseFloat(temp[0])>Float.parseFloat While(itr.hasMoreTokens()) (temp[1]))/比较 {temp[i]=itr.nextToken()://属性字符串数组 Context..write(Key,“正常网络”):/判断 i++; Else Context.write(Key,“僵尸网络”)://判断 P =sum_yes_p;P2=sum_no_p; If Float.parsefloat temp [2])>140&&Float. 3实验结果与分析 parsefloat(temp[2])150) 1.6GB,TCP数据包个数23631638。D2解析后的
进行训练,每个属性既要判断是否为僵尸网络又要 判断是否在阈值内,因此每个属性有 4 个判断条件。 因此,经过 MapReduce2 的处理,形成 24 个条件概 率分别存储在 24 个成员变量里,这与 MapReduce1 形成的 2 个成员变量存储的先验概率共同构成完整 的知识库,可用于检测僵尸网络。 2.3 MapReduce3 设计 Map3 接收到的检测数据是被 Hadoop 处理形成 的〈Key,Value〉对,形式为〈该行起始位置相对于文 件起始位置的偏移量, 文本文件中的一行信息〉的 信息。 MapReduce3 要对 6 列属性全部检测,需用到 Value 的 6 个属性列。 所以 Map3 将每行 Value 数据 按空格分割成字符串数组,取出数组的第 3 ~ 8 项, 分别为 TCP 数据流、时间间隔平均值、时间间隔变 化、数据包字节数、数据包个数平均值、持续时间平 均值。 判断 6 个属性列的值是否在各自阈值内,若 在阈值内,分别利用存储条件概率的成员变量 wi_in _nomal、wi_in_unnormal 计算后验概率;若在阈值外, 分别利用存储条件概率的成员变量 wi_out_nomal、 wi_out_unnormal 计算后验概率。 并将每行网络数 据的正常网络后验概率 P(n | d) 和僵尸网络后验 概率 P(b | d) 一起输出。 输出结果〈Key5,Value5〉 对的形式为〈数据所在行数, P(n | d) P(b | d) 〉。 Map3 过程伪代码如下。 输入:Object、Text。 输出:Text、Text。 map(Key,Value) {StringTokenizer itr = new StringTokenizer( value. toString()); String[] temp = new String[9]; While(itr.hasMoreTokens()) {temp[i] =itr.nextToken();/ / 属性字符串数组 i++; } P1 = sum_yes_p;P2 = sum_no_p; If ( Float. parsefloat ( temp [ 2 ]) > 140&&Float. parsefloat(temp[2])<150) { P1 =P1∗w1_in_nomal; P2 =P2∗w1_in_unnormal; } Else if(Float. parsefloat( temp[2]) <140‖Float. parsefloat(temp[2])>150) { P1 =P1∗w1_out_normal; P2 =P2∗w1_out_unnormal; } / / 其他 5 个属性列检测过程同上。 Line++; / / 统计所在行数 Context.write(Line,P1 P2 ); } 经过 Map3 把 分 块 的 每 行 信 息 都 处 理 成 以 〈Key5,Value5〉形式的等待整体处理的中间文件输 出,MapReduce 框架将每个 Map3 输出的中间文件 结果按照 Key 值(数据所在行数)进行分组后发送 给 Reduce3。 Reduce3 接收到的信息为<Key5,Value5>。 Re⁃ duce5 的任务是逐行比较网络数据的 P(b | d) 和 P(n | d) 的大小。 若 P(n | d) > P(b | d) ,判断该行 网络数据为正常网络数据;否则为僵尸网络数据。 Reduce3 伪代码如下所示。 输入:Text、Text。 输出:Text、Text。 reduce(Key,Value) {StringTokenizer itr = new StringTokenizer( value. toString()); String[] temp = new String[2]; While(itr.hasMoreTokens()) { temp[ i] = itr. nextToken( ); / / 正常网络后 验概率与僵尸网络后验概率 i++; } If(Float. parseFloat ( temp [ 0]) >Float. parseFloat (temp[1])) / / 比较 Context.write(Key,“正常网络”); / / 判断 Else Context.write(Key,“僵尸网络”); / / 判断 } 3 实验结果与分析 本文实验中的被测网络环境为某校园网中一个 子网的流量,该子网内主机约 200 台,白天的网络流 量为 150~200 Mbps。 实验采集了某天数据,为测试 本文提出并行化的算法性能,分别使用了 2 个不同 时间段的数据集 D1 和 D2 。 D1 解析后的文本文件 1.6 GB, TCP 数据包个数 23 631 638。 D2 解析后的 第 1 期 邵秀丽,等:检测僵尸网络的贝叶斯算法的 MapReduce 并行化实现 ·31·
.32. 智能系统学报 第9卷 文本文件0.8GB,TCP数据包个数11570835。 实验三通过改变训练、测试数据集大小,比较数 实验一通过选取检测不同的特征向量个数,分 据集大小分别对普通串行贝叶斯分类检测僵尸网络 析贝叶斯分类器的正确率。分类器由训练D,数据 和MapReduce并行化的贝叶斯分类检测僵尸网络 集获得,检测率通过分类器对D,测试获取。具体 效率的影响。具体实验结果如图5所示。实验A为 实验结果如图3所示。 普通串行贝叶斯检测僵尸网络、实验B为MapRe 100 duce并行化贝叶斯检测僵尸网络。从图5中看出, 与普通串行贝叶斯检测僵尸网络相比,MapReduce 99 并行化贝叶斯检测僵尸网络效率较高,并且随着数 年 据量增大,效率优势明显增强。 97 ×10 60r % 40H 实验A 0 23456 属性列个数 20 实验B 图3检测不同属性列个数的正确率比较 0 Fig.3 Comparison of correct rates among detecting dif- 0.33 0.991.65 2.31 ferent numbers of attribute columns 数据集大小MB 根据图3所示的实验结果,可以得到基于Ma 图5串行与MapReduce化贝叶斯算法检测僵尸网络效率比较 pReduce的贝叶斯分类对于检测僵尸网络的正确率 Fig.5 Efficiency Comparison of Serial and MapReduce Bavesian algorithms to detect botnets 很高的结论,因此该方法是有效的。另外选取不同 的属性列个数直接影响基于Ma即Reduce的贝叶斯 4 结束语 分类器的正确率,在一定程度上,检测属性列个数越 本文提出了一种利用云环境下的Hadoop机制 多正确率越高。 的MapReduce框架设计与实现贝叶斯分类的僵尸 实验二改变TCP数据流个数属性列的阈值,经 网络检测方法。与已有的僵尸网络检测方法不同的 过多次反复测试得到“正确率”分布如图4所示。 是:它以主机对作为分析对象,提取主机对通信的流 100.0 量特征,然后将这些特征作为贝叶斯分类算法的输 99.5 入,基于MapReduce训练生成贝叶斯分类器,用训 99.0 练好的贝叶斯分类器进行僵尸网络的检测。这种检 98.5 测方法有较高的检测率并且提高了检测效率。另 98.0 外,本文在训练形成贝叶斯分类器阶段存在如何选 97.5 择各特征值的阈值范围的问题,阈值范围的选取影 97.0 响僵尸网络的检测率,下一步工作将对此另行研究。 96.5 100-150110-150120-150130-150140-150140-145 参考文献: 阈值范围 [1]JIANG Hongli,SHAO Xiuli.Detecting P2P botnets by dis- 图4改变阈值对正确率影响 covering flow dependency in C&C traffic[J].Peer-to-Peer Fig.4 Influence of threshold changes on accuracy Networking and Applications,2012,5(2):1-12. 从图4中可以看到,如果把TCP数据流个数选 [2]王威,方滨兴,崔翔.基于终端行为特征的RC僵尸网络 为需要检测的特征向量,那么它的阈值可以选择为 检测[J].计算机学报,2009,32(10):1980-1988. 140~145。另外,如果选时间间隔值作为特征向量, WANG Wei,FANG Binxing,CUI Xiang.IRC botnet detec- 同样可以测出它的阈值为595~605:那么,可以 tion based on host behavior[J].Chinese Journal of Comput- 通过这样的方法获得每个属性的阈值以及它取到阈 es,2009,32(10):1980-1988 值时的最高准确率。 [3]蒋鸿玲,邵秀丽.基于神经网络的僵尸网络检测方法[J刀
文本文件 0.8 GB,TCP 数据包个数 11 570 835。 实验一通过选取检测不同的特征向量个数,分 析贝叶斯分类器的正确率。 分类器由训练 D1 数据 集获得,检测率通过分类器对 D2 测试获取。 具体 实验结果如图 3 所示。 图 3 检测不同属性列个数的正确率比较 Fig.3 Comparison of correct rates among detecting dif⁃ ferent numbers of attribute columns 根据图 3 所示的实验结果,可以得到基于 Ma⁃ pReduce 的贝叶斯分类对于检测僵尸网络的正确率 很高的结论,因此该方法是有效的。 另外选取不同 的属性列个数直接影响基于 MapReduce 的贝叶斯 分类器的正确率,在一定程度上,检测属性列个数越 多正确率越高。 实验二改变 TCP 数据流个数属性列的阈值,经 过多次反复测试得到“正确率”分布如图 4 所示。 阈值范围 图 4 改变阈值对正确率影响 Fig.4 Influence of threshold changes on accuracy 从图 4 中可以看到,如果把 TCP 数据流个数选 为需要检测的特征向量,那么它的阈值可以选择为 140~145。 另外,如果选时间间隔值作为特征向量, 同样可以测出它的阈值为 595~605;那么,可以一一 通过这样的方法获得每个属性的阈值以及它取到阈 值时的最高准确率。 实验三通过改变训练、测试数据集大小,比较数 据集大小分别对普通串行贝叶斯分类检测僵尸网络 和 MapReduce 并行化的贝叶斯分类检测僵尸网络 效率的影响。 具体实验结果如图 5 所示。 实验 A 为 普通串行贝叶斯检测僵尸网络、实验 B 为 MapRe⁃ duce 并行化贝叶斯检测僵尸网络。 从图 5 中看出, 与普通串行贝叶斯检测僵尸网络相比,MapReduce 并行化贝叶斯检测僵尸网络效率较高,并且随着数 据量增大,效率优势明显增强。 图 5 串行与 MapReduce 化贝叶斯算法检测僵尸网络效率比较 Fig.5 Efficiency Comparison of Serial and MapReduce Bayesian algorithms to detect botnets 4 结束语 本文提出了一种利用云环境下的 Hadoop 机制 的 MapReduce 框架设计与实现贝叶斯分类的僵尸 网络检测方法。 与已有的僵尸网络检测方法不同的 是:它以主机对作为分析对象,提取主机对通信的流 量特征,然后将这些特征作为贝叶斯分类算法的输 入,基于 MapReduce 训练生成贝叶斯分类器,用训 练好的贝叶斯分类器进行僵尸网络的检测。 这种检 测方法有较高的检测率并且提高了检测效率。 另 外,本文在训练形成贝叶斯分类器阶段存在如何选 择各特征值的阈值范围的问题,阈值范围的选取影 响僵尸网络的检测率,下一步工作将对此另行研究。 参考文献: [1]JIANG Hongli, SHAO Xiuli. Detecting P2P botnets by dis⁃ covering flow dependency in C&C traffic[ J]. Peer⁃to⁃Peer Networking and Applications, 2012, 5(2): 1⁃12. [2]王威,方滨兴,崔翔.基于终端行为特征的 IRC 僵尸网络 检测[J].计算机学报, 2009, 32(10): 1980⁃1988. WANG Wei, FANG Binxing, CUI Xiang. IRC botnet detec⁃ tion based on host behavior[J]. Chinese Journal of Comput⁃ ers, 2009, 32(10): 1980⁃1988. [3]蒋鸿玲,邵秀丽.基于神经网络的僵尸网络检测方法[ J]. ·32· 智 能 系 统 学 报 第 9 卷
第1期 邵秀丽,等:检测僵尸网络的贝叶斯算法的MapReduce并行化实现 .33. 智能系统学报,2013,8(2):113-118 [10]张鹏,唐世渭.朴素贝叶斯分类中的隐私保护方法研究 JIANG Honglin,SHAO Xiuli.Botnet detection algorithm [J].计算机学报,2007,30(8):1267-1276. based on neural network[J].CAAI Transactions on Intelli- ZHANG Peng,TANG Shiwei.Privacy preserving naive gent Systems,2013,8(2):113-118. Bayesian classification[J].Chinese Journal of Computers, [4]DEAN J,GHEMAWAT S.MapReduce:simplified data pro- 2007,30(8):1267-1276 cessing on large cluster[J].Communications of the ACM, 作者简介: 邵秀丽,女,1963年生,教授,博士 2005,51(1):107-113. 生导师,主要研究方向为云计算与软件 [5]陶永才,薛正元,石磊.基于MapReduce的贝叶斯垃圾邮 工程等。参与或主持国家自然科学基 件过滤机制[J].计算机应用,2011,31(9):2412-2416. 金项目,国家“863”计划项目,天津市青 TAO Yongcai,XUE Zhengyuan,SHI Lei.MapReduce- 年基金、自然科学基金、重点研究项目、 based Bayesian anti-spam filtering mechanism[].Journal CMS重点工程项目等多项科研项目。 of Computer Applications,2011,31(9):2412-2416. 获得省部级科技进步奖、国家档案局二等奖等8项,发表学 [6]杜跃进,崔翔.僵尸网络及其启发[J].中国数据通信, 术论文80余篇。 2005,7(5):9-13. DU Yuejin,CUI Xiang.Botnets and its enlightment J]. 刘一伟,女,1992年生,本科生,主 China Data Communication,2005,7(5):9-13. 要研究方向为应用数学,发表学术论文 [7]VALIANT L G.A bridging model for parallel computation 4篇。 [J].Communications of the ACM,1990,33(8):103-111. [8]李晓桢,程佳,胡军基于聚类分析的僵尸网络识别系统 [J]计算机系统应用,2009(8):130-135. LI Xiaozhen,CHENG Jia,HU Jun.Botnet recognition sys- tem based on the clustering technology[J].Computer Sys- 耿梅洁,女,1988年生,硕士研究 生,主要研究方向为云计算。 tem and Application,2009(8):130-135. [9]STONEBRAKER M,ABADI D J,DEWITT D J,et al.Ma- pReduce and parallel DBMSs:friends or foes?[J].Com- munication of the ACM,2010,53(1):64-71. 第31届机器学习国际会议 31st International Conference on Machine Learning The 31st International Conference on Machine Learning (ICML 2014)will be held in Beijing,China,from June 21 to 26,2014.The conference will,tentatively,consist of one day of tutorials,followed by three days of main confer- ence sessions,followed by two days of workshops.We invite submissions of papers on all topics related to machine learning for the conference proceedings,and proposals for tutorials and workshops. After reviewing author and reviewer feedback from the previous conference,ICML 2014 will adopt a two-cycle sub- mission/review format,of which the first submission/review cycle will facilitate both regular one-time review/rebut- tal of submissions,as well as invitation-only resubmission into the second cycle,whereas the second cycle will only allow regular first-time submission plus resubmission of papers invited from the first cycle.We are also exploring the possibility of a JMLR track at ICML that allows direct submission of papers intended for JMLR to be reviewed under the same time frame of ICML,more detail will be available soon once agreement with JMLR has been reached.Ac- cepted papers will be announced and posted online shortly after acceptance and will be considered published and a- vailable for citation at that time. Webstie:http://icml.cc/2014/
智能系统学报, 2013, 8(2): 113⁃118. JIANG Honglin, SHAO Xiuli. Botnet detection algorithm based on neural network[ J]. CAAI Transactions on Intelli⁃ gent Systems, 2013, 8(2): 113⁃118. [4]DEAN J, GHEMAWAT S. MapReduce: simplified data pro⁃ cessing on large cluster[ J]. Communications of the ACM, 2005, 51(1): 107⁃113. [5]陶永才,薛正元,石磊.基于 MapReduce 的贝叶斯垃圾邮 件过滤机制[J].计算机应用, 2011, 31(9): 2412⁃2416. TAO Yongcai, XUE Zhengyuan, SHI Lei. MapReduce⁃ based Bayesian anti⁃spam filtering mechanism[ J]. Journal of Computer Applications, 2011, 31(9): 2412⁃2416. [6]杜跃进,崔翔.僵尸网络及其启发[ J]. 中国数据通信, 2005, 7(5): 9⁃13. DU Yuejin, CUI Xiang. Botnets and its enlightment [ J]. China Data Communication, 2005, 7(5): 9⁃13. [7]VALIANT L G. A bridging model for parallel computation [J]. Communications of the ACM, 1990, 33(8): 103⁃111. [8]李晓桢,程佳,胡军.基于聚类分析的僵尸网络识别系统 [J].计算机系统应用, 2009(8): 130⁃135. LI Xiaozhen, CHENG Jia, HU Jun. Botnet recognition sys⁃ tem based on the clustering technology[ J]. Computer Sys⁃ tem and Application, 2009(8): 130⁃135. [9]STONEBRAKER M, ABADI D J, DEWITT D J, et al. Ma⁃ pReduce and parallel DBMSs: friends or foes? [J]. Com⁃ munication of the ACM, 2010, 53(1): 64⁃71. [10]张鹏,唐世渭.朴素贝叶斯分类中的隐私保护方法研究 [J].计算机学报, 2007, 30(8): 1267⁃1276. ZHANG Peng, TANG Shiwei. Privacy preserving naive Bayesian classification[J]. Chinese Journal of Computers, 2007, 30(8): 1267⁃1276. 作者简介: 邵秀丽,女,1963 年生,教授,博士 生导师,主要研究方向为云计算与软件 工程等。 参与或主持国家自然科学基 金项目,国家“863”计划项目,天津市青 年基金、自然科学基金、重点研究项目、 CIMS 重点工程项目等多项科研项目。 获得省部级科技进步奖、国家档案局二等奖等 8 项,发表学 术论文 80 余篇。 刘一伟,女,1992 年生,本科生,主 要研究方向为应用数学,发表学术论文 4 篇。 耿梅洁,女,1988 年生,硕士研究 生,主要研究方向为云计算。 第 31 届机器学习国际会议 31st International Conference on Machine Learning The 31st International Conference on Machine Learning (ICML 2014) will be held in Beijing, China, from June 21 to 26, 2014. The conference will, tentatively, consist of one day of tutorials, followed by three days of main confer⁃ ence sessions, followed by two days of workshops. We invite submissions of papers on all topics related to machine learning for the conference proceedings, and proposals for tutorials and workshops. After reviewing author and reviewer feedback from the previous conference, ICML 2014 will adopt a two⁃cycle sub⁃ mission / review format, of which the first submission / review cycle will facilitate both regular one⁃time review / rebut⁃ tal of submissions, as well as invitation⁃only resubmission into the second cycle, whereas the second cycle will only allow regular first⁃time submission plus resubmission of papers invited from the first cycle. We are also exploring the possibility of a JMLR track at ICML that allows direct submission of papers intended for JMLR to be reviewed under the same time frame of ICML, more detail will be available soon once agreement with JMLR has been reached. Ac⁃ cepted papers will be announced and posted online shortly after acceptance and will be considered published and a⁃ vailable for citation at that time. Webstie:http: / / icml.cc / 2014 / 第 1 期 邵秀丽,等:检测僵尸网络的贝叶斯算法的 MapReduce 并行化实现 ·33·