一种用于海量网络数据流日志处理的异常审计方法与流程

文档序号:13617476阅读:330来源:国知局
本发明涉及一种用于海量网络数据流日志处理的异常审计方法,属于分布式网络异常检测
技术领域
:。
背景技术
::网络流量日志记录着网络中发生的点点滴滴,通过分析网络流量日志,可以对网络环境中的安全事件进行定位和深入分析,发现网络内部用户的异常行为。目前网络日志安全审计系统中,对网络流量进行分析的大多是根据协议类型和内容进行分析和审计工作。大多数的流量异常也都是实时的,基于静态或者动态的阈值的时间窗口划分,对全网进行监控,这样不能对单个用户的周期性的异常做出识别和判断。因此,构建离线的网络安全日志审计系统是必要的,将不同用户不同日期相同时间段的日志进行划分和聚合再通过审计算法审计便可以对用户的异常事件进行定位。网络安全流量日志的数据量非常的庞大,如何才能有效的存储和管理这些数据。这不仅要考虑设备开销,可移植性等问题,同时也需要考虑到海量日志中包含很多的信息。googlemapreduce计算模型和gfs(googlefilesystem)的技术的出现给海量数据的存储、处理提供了解决方案,hadoop是这一技术的开源实现。利用hadoop技术可以将普通计算机的存储能力和计算能力聚集起来,构建起hadoop环境来提供强大的存储能力和大型计算的能力。在国内外已经有很多的企业在应用hadoop来进行海量数据的存储和处理。日志审计中海量数据的存储和处理的问题,可以利用hadoop技术来解决。利用hadoop进行有效合理的数据存储以及将传统审计方法与mapreduce技术进行结合是两项非常重要的工作。随着分布式处理、海量数据挖掘技术的发展,研究hadoop分布式系统,从数据的存储和处理两个方面展开研究,hadoop不仅是包含hdfs分布式文件存储系统和mapreduce计算模型的简单组合,随着技术的发展,hadoop如今也包含了很多的子系统作为hadoop生态系统的各个组件,使得hadoop可以更好的提供服务。因此需要对hadoop进行深入的学习研究,以便更好的组织数据进行存储和处理。在日志审计的过程中需要将mapreduce的编程思想与传统的审计方法进行结合。技术实现要素:本发明针对现有的异常流量检测的算法不能对周期性的异常有效识别、对mapreduce和传统算法的结合困难、异常检测时间窗口划分不当的缺点,提出了一种基于mapreduce和离群点检测算法相结合的用于海量网络数据流日志处理的异常审计方法,可以对海量数据进行有效的存储和处理,新的方法检测出的异常有更好的说服力,这是一种用户基于自身的行为习惯的异常。本发明采用如下技术方案:一种用于海量网络数据流日志处理的异常审计方法,其特征在于,包括如下步骤:步骤ss1:特征提取预处理,具体包括:采用mapreduce对网络数据流日志进行特征提取;步骤ss2:异常审计,具体包括:采用离群点检测算法进行网络数据流日志分割聚合。作为一种较佳的实施例,所述步骤ss1中的特征提取的特征数据包括流量大小、交互ip个数、小时和分钟、日期。作为一种较佳的实施例,所述步骤ss1中的特征提取的方法包括如下步骤:步骤ss11:扫描数据集,map阶段提取源ip、目的ip、流量大小、小时和分钟、日期;判断如果源ip是监控ip,则向map输出中写入一条数据,key为源ip、小时和分钟、日期的组合,value为目的ip、流量大小的组合;判断如果目的ip是监控ip,则向map输出中写入一条数据,key为目的ip、小时和分钟、日期的组合,value为源ip、流量大小的组合;步骤ss12:reduce阶段接收map阶段的输出,输入是ip、小时和分钟、日期的组合的key,list即交互ip、流量大小的value;初始化ip_list,记录不同的交互ip;对于每个list即包含交互ip和流量大小的交互ip,判断是否存在于ip_list中,如果不存在则加入到ip_list中;不断累加流量大小;等list中数据全部扫描结束后,将ip、小时和分钟、日期、交互ip个数、流量大小写入到输出。作为一种较佳的实施例,所述步骤ss2中的所述网络数据流日志分割聚合的方法具体包括如下步骤:步骤ss21:map过程,map将所有hbase中保存的日志作为输入,对应的<k1,value1>,分别为rowkey、value对应各列的值;提取ip和时间作为k2,将交互ip个数和产生流量大小作为v2,map的输出为list(k2,v2);步骤ss22:在shuffle、sort过程中,系统会自动将具有相同key的记录聚集在一起,生成(k2,list(v2)),作为reduce函数的输入;步骤ss23:reduce过程,接收排序后的(k2,list(v2)),这里的每个k2代表每个需要进行异常检测的最小单元,标识了某个用户的某个时间段。作为一种较佳的实施例,所述步骤ss23还包括:将所有的v2初始化为多个对象,然后利用离群点检测算法进行异常检测,最后将结果写入结果表保存到hbase中。作为一种较佳的实施例,所述步骤ss23中的最小单元是某一用户的某段时间内的数据集合。本发明所达到的有益效果:本发明提出基于maprduce和离群点检测想结合的网络数据流审计算法,结合hadoop开源系统以及离群点检测算法,进行大规模的分析,通过将不同日期,相同时间段的日志进行聚合,可以有效的分析用户的基于自身行为习惯改变的异常检测。附图说明图1是本发明的一个实施例的某用户7天相同时间段流量情况的曲线图。图2是本发明的一个实施例的某用户7天相同时间交互ip个数的曲线图。图3是本发明的一个实施例的某用户7天相同时间段交互ip、流量信息的曲线图。图4是本发明的一个实施例的结果分析曲线图。具体实施方式下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。本发明的具体实现过程包括以下几个步骤:第一,特征提取预处理:本发明对日志进行统计的最终目的是发现产生异常流量的主机ip以及对应的时间间隔。我们需要对存入数据库中所有数据进行分类筛选,挑选出想要的目标,然后进行特征值的提取。对每个主机ip的每分钟内的流量进行统计,并统计这一分钟内与之产生流量交互的对端主机ip个数。map算法流程:输入:原始信息表中的rowkey,rowkey对应的各列,输出描述符context。输出:ip和时间、日期为key,对端ip和流量大小为vaule。①提取原始信息rowkey。stringrow[]=newstring(rowkey.get()).split("#");②提取源ip信息、目的ip信息、时间信息、流量大小。③提取时间戳中的日期和时间。④如果源ip是监控ip。向map输出中写入一条数据,key为ip、小时分钟、日期的组合,value为目的ip、流量大小的组合。⑤如果目的ip是监控ip。向map输出中写入一条数据,key为ip、小时分钟、日期的组合,value为目的ip、流量大小的组合。⑥结束。reduce算法流程:输入:ip和小时分钟、日期的组合的key,list(交互ip,流量大小)的value,输出描述符context。输出:null,hbase添加数据对象put。①提取key。②初始化ip_list,记录不同的交互ip。③forvalueinlist(交互ip,流量大小)。④if‘交互ip’inip_list。⑤if为真,不添加。⑥if为假,添加‘交互ip’到ip_list中。⑦将流量大小累加到data_size中。⑧endfor。⑨组合新的rowkey,为ip、小时分钟、日期、交互ip个数、流量大小。⑩初始化put对象。添加列值,ip、hour_and_min、date、ip_nums、data_size。向输出描述符,写入put。结束。主函数流程:输入:原始日志表名、统计信息表名输出:无①初始化hbase配置,设置集群相关的ip、端口。②初始化job对象,为job命名。③为job指定操作类。④初始化scan对象。⑤使用tablemapreduceutil初始了tablemapperjob,设置原始日志表名、scan、mapper类、mapper输出key类型、mapper输出value类型,job对象。⑥使用tablemapreduceutil初始了tablereducerjob,设置统计信息表名、reducer类、job对象。⑦等待job执行结束。⑧结束。第二,异常审计过程:map过程,map将所有hbase中保存的日志作为输入,对应的<k1,value1>,分别为rowkey、value为对应各列的值。提取ip和时间(hh:mm)作为k2,将交互ip个数和产生流量大小作为v2,map的输出为list(k2,v2)。在shuffle、sort过程中,系统会自动将具有相同key的记录聚集在一起,生成(k2,list(v2)),作为reduce函数的输入。reduce过程,接收排序后的(k2,list(v2)),这里的每个k2代表每个需要进行异常检测的最小单元,标识了某个用户的某个时间段。将所有的v2初始化为多个对象,然后利用离群点检测算法进行异常检测,最后将结果写入结果表保存到hbase中。map算法流程:输入:hbase表中的rowkey,rowkey对应的列,输出描述符context;输出:ip和时间为key,交互ip数目和流量大小为vaule;①提取ip。stringip=newstring(value.getvalue(bytes.tobytes("basic"),bytes.tobytes("ip")));②提取小时和分钟hour_min。stringhour_min=newstring(value.getvalue(bytes.tobytes("basic"),bytes.tobytes("hour_minute")));③提取日期date。stringdate=newstring(value.getvalue(bytes.tobytes("basic"),bytes.tobytes("date")));④提取交互ip个数ip_nums。integerip_nums=newinteger(bytes.toint(value.getvalue(bytes.tobytes("basic"),bytes.tobytes("ip_nums"))));⑤提取流量大小data_size。integerdata_size=newinteger(bytes.toint(value.getvalue(bytes.tobytes("basic"),bytes.tobytes("data_size"))));⑥将字符串类型的小时和分钟提取为整数,并计算一个time_id。inttime_id=(hour_int*6)+(min_int/10);⑦将ip和time_id的组合作为key,交互ip数目和流量大小作为value写入到map输出。⑧结束。reduce算法流程:输入:ip和time_id的组合的key,list(交互ip个数,流量大小)的value,输出描述符context输出:用户ip、时间、交互ip个数、流量大小为rowkey,局部偏离系数为colum①初始化对象列表。arraylist<node>dpoints=newarraylist<node>()。②forvalueinlist(交互ip个数,流量大小)。③将value初始化为node对象。④endfor。⑤调用离群点检测算法流程。⑥将用户ip、时间、日期、交互ip、流量大小作为rowkey,将局部偏离系数作为列值,存入hbase中。⑦结束。主函数流程:输入:保存数据的表名、保存结果的表名输出:无①初始化hbase配置,设置集群相关的ip、端口。②初始化job对象,为job命名。③为job指定操作类。④初始化scan对象。⑤使用tablemapreduceutil初始了tablemapperjob,设置表名、scan、mapper类、mapper输出key类型、mapper输出value类型,job对象。⑥使用tablemapreduceutil初始了tablereducerjob,设置表名、reducer类、job对象。⑦等待job执行结束。⑧结束。为了验证算法的合理性正确性,需要根据系统的设计对网络安全日志进行收集、预处理、检测的过程,实验设计着重考察算法的正确性,即能否通过网络安全日志检测出网络中出现过的异常情况,并作对检测的正确性作出评估。实验环境具体如下:硬件:hadoop服务器(4台,1台hmaster3台regionserver)、客户端pc(2台)、交换机(1台)。软件:hadoop-1.0.1,hbase-0.92.0,zookeeper-4.3.3,eclipse3.7。hadoop服务器配置:双核cpudual-coreamdopteron(tm)processor2214,主频2.2ghz,内存1g,网络接口速度为1gb/s(双网卡),内核gnu/linux2.6.18。客户端pc配置:双核cpuintel-coreduo,主频1.67ghz,内存1g,windowsxp。实验中需要在网络环境下进行,所以的服务器都需要连接到交换机下,master可以免密码登录到slave各个机器上。本发明中的实验数据是局域网真实网络环境中的数据包,通过libpcap进行捕获,并储存到hadoop集群中。(2)实验及分析对某个用户(192.168.100.37),提取用户在10:00~10:09,10分钟中每分钟产生的流量大小,以及在各分钟内与之交互的其他ip的个数,取七天的数据为了验证算法的有效性,在12月9日10:03-10:05启动迅雷下载工具。表1用户192.168.100.37部分日志数据表在离群点检测算法中k的选择会直接影响最后的检测结果,在本文的应用场景下,审计对象形成的点是不同日期,相同时间段的流量。对于7天内10分钟间隔内的流量,选择k=11,这样是为了检测出某一天的流量全部都异常的情况,如果k过小,那么异常可能会被忽略。如果k过大会增加计算的复杂程度。表2产生的偏离值表图1是本发明的一个实施例的某用户7天相同时间段流量情况的曲线图。图2是本发明的一个实施例的某用户7天相同时间交互ip个数的曲线图。图3是本发明的一个实施例的某用户7天相同时间段交互ip、流量信息的曲线图。图4是本发明的一个实施例的结果分析曲线图。实验验证了,对于网络异常流量检测可以与历史作为考量,但是考虑到不同用户不同的网络使用情况,进行审计时应该将用户与自身网络历史流量对比,通过离群点检测算法可以对用户网络流量异常情况作出判断。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1