问题定义
网络异常指的是网络流量行为偏离其正常行为的情形。1990年,卡内基梅隆大学的Maxion R.A. 对网络的“正常”和“异常”给出描述:“正常”意味着遵从并构成某种常规或典型的模型,以一种自然的方式—常规的或预料中的状态、形式、数量或程度发生。正常-强调符合某种已经建立的水准或模式,而“异常”意味着违反了这种期望。在网络系统中,“正常”行为会由于网络的动态变化、噪音而发生改变,所以网络“正常”行为的确定还必须随着网络环境的改变而改变。
具体分3类
l 网络操作异常:网络设备重启、策略阻断、路由错误
l 拥塞异常:用户大量访问网络
l 滥用异常:扫描攻击
维度
对象:基于单点,基于子网,基于整网
症状:暂时断网(5分钟内),长时间断网(大于5分钟)无法访问,网络拥塞(延时大访问慢)
应用类型:全局的,基于单个应用的:视频,办公,web等
模型思路
1. 应用分类:基于流特征进行半监督学习,聚类方法来区分流的类型。(通过AIC准则寻找最优的分类数即应用类型数?待分析)
2. 体验度量:将问题归结为基于时间序列的孤立点(异常点)检测(异常点有加性异常、革新异常,这里是检测加性异常)
基于整网的方法是,收集流量数据计算熵值变化(暂定基于报文,单位时间内目的地址分布、源端口分布、目的端口分布、报文长度分布、tcp报文flag分布),以检测是否异常,例如网络攻击可以导致端口、长度、地址异常集中,参考资料1。资料1中算法是各维度独立计算熵,只要有一个维度超出阈值就算异常,而且阈值是以正常流量计算来得到的。本模型则考虑先使用聚类的方法来进行时间段划分,然后使用基于距离的比较捕捉孤立点,认为孤立点就是异常点。
基于终端的方法是,基于流,因为单位时间内报文数可能不足以达到统计阈值,考虑通过流特征和宏观流特征对比判断是否异常,即将终端每个流按时间排序编号,
3. 故障定位
4.
数据源
1. 基于报文:采样点编号,时间戳,源ip,目的ip,方向(以本地终端为源),协议类型(TCP,UDP),源端口,目的端口,报文长度,tcp flag(参考资料3)
2. 基于流(五元组,源ip,目的ip,协议类型,源端口,目的端口):采样点编号,起始时间,持续时间(udp老化15秒,tcp老化64秒),报文发送个数(以本地终端为源),报文接收个数,发送字节,接收字节,报文平均长度,最大报文长度,最大报文间隔,报文平均间隔时间,接收和发送数据比(参考资料1,P52)
3. 在线终端信息:时间戳,采样点编号,终端mac地址,终端ip地址
4. 各网络设备端点流量:上联口出入报文个数,报文字节数(例如用于故障点的定位)
技术分析
1. 熵计算时是否要分层再统计,例如端口分1-1023、1024-49151、49152-65526,例如IP区分内网流和外网流
2. 检测异常不依赖阈值,而是靠聚类算法
参考资料
1. 《网络流量的异常检测与业务类型识别方法的研究》
2. 《大规模通信网络流量异常检测与优化关键技术研究》
3. KDD CUP 99
4. Darpa 98
5.