好久没更博了,说明学习进度太慢了。
一 实施目的
用抓取的数据包做统计分析,分析出行为的特征信息,用于进一步的网络诊断
二 实现思路
对已经抓取和解析的大量的数据包,进行数据清洗和初步过滤,处理成半结构化的数据,导入到HDFS分布式文件系统中,做进一步的统计分析、信息检索、快速查询。具体采用Hive做统计特征的计算,Hbase作为详细信息的快速查询,Splunk对文件建立索引,全文检索,可以直观查询统计关键字,提示敏感信息。
三 系统流程图
四 具体模块
1. 数据包抓取:用现成的抓包工具,包含捕捉抓包、过滤 、解析、存储的功能,如windows下的抓包驱动winpcap,linux下的tcpdump和libpcap工具。
2. 数据清洗、初步过滤
3. 导入HDFS文件系统
HDFS直接存取、存入Hbase、进一步清洗后存入Hive
注:Hbase和Hive的数据最终是存储在HDFS上的,只是是有结构的。
HDFS上,Splunk对原始数据以关心的敏感信息词来建立索引,提供全文检索的功能,可直接在web上查询关键字。
Hbase,以抓取时间为Rowkey。供快速查询
导入Hive的为结构化数据:
表一 抽取的数据信息
表格 | 原始信息 |
捕包信息表 | 捕包的开始时间、结束时间、捕包次数、每次捕获包的个数、每次捕获包的总字节数的大小
|
包头信息表
| 流入接口 流出接口 来源地址 目的地址 协议类型 时间 长度 标志位 |
在Hive中进行统计特征提取:
表一 Hive统计特征
类型 | 特征 | 应用场景 |
报文统计 | 捕捉报文的总数与百分比 显示报文的数量 显示报文的大小 | 情景:流量统计 |
终端信息统计 | IP终端节点统计 以太网终端节点统计 TCP/UDP终端节点统计 | 情景一:少量MAC地址与IP端点:可能很多远端设备收发报文 情景二:少量IP端点与大量TCP端点:每台主机可能有多个TCP连接,可能是网络攻击(SVN) |
协议统计 | 含有该协议的包数目在捕捉文件所有包所占的比例 含有该协议包的数目 含有该协议的字节数 抓包时间内的协议带宽 | 情景一:分析数据流负载是否正常 情景二:通过结合流量分类统计和协议分析,阻断大流量的流,如P2P的视频流 |
会话统计 | 以太网会话统计 IP会话统计 TCP/UDP会话统计
| 情景一:大量的广播风暴 情景二:如果看到来自某一MAC地址的大量数据,可以通过ARP获取其MAC地址 情景三:查看收发大量数据流的IP地址 情景四:查看扫描模式,如防止蠕虫病毒 情景五:如果有上百个TCP连接则不正常,并可以尝试查找无法辨识的端口号 |
其他 | 计算时间间隔内事件发生的次数 捕获TCP数据量 检查TCP序列号 计算帧之间的最小/平均/最大时间 | 情景一:查看TCP分析标识符,比如重传 情景二:分析单个方向移动的数据量 情景三:看TCP序列号是否相对稳定的增加,表示数据传输平稳,没有过多的重传或丢失。 情景四:计算平均时间等对查看报文之间的延时很有用,如果帧之间平均延时相对较低但突然某一点延时很长,可查看这一帧详情 |
4.可视化展示:
功能 | 表现形式 | 作用 |
统计图表展示 | 折线图 直方图 饼状图 框图 | 用来显示统计特征 部分信息筛选 查看摘要信息 |
异步统计 | Web定制分布式查询,统计相应数值,消息通知机制 | 避免后台操作,方便其他人员开发统计 |
快速查询 | Hbase快速查询一段报文详细信息 | Hbase响应最快,容量大,用来查询具体信息 |
全文检索 | Splunk以定义的敏感信息,建立索引 | 查询选择范围报文的敏感信息及所处的准确位置 |
坚持不懈