实用教程:使用Netflow分析网络异常流量

随着各种网络应用迅速增加,由此带来了网络流量的激增。在这些流量中,网络用户的上网行为如何管理?各种类型的流量如何分布?在这种情况下,可以使用NetFlow这一有效工具以满足对网络流量管理的需求。

NetFlow最初是由Cisco开发的,由于使用广泛,目前很多厂家都可以实现,如:Juniper、Extreme、Foundry、H3C等。Cisco的NetFlow也有多种版本,如V5、V7、V8、V9。目前NetFlow V5是主流。因此本文主要针对NetFlow V5,该版本数据包中的基本元素包含哪些内容呢?首先从Flow讲起,一个IP数据包的Flow至少定义了下面7个关键元素:

源IP地址;

目的IP地址;

源端口号;

目的端口号;

第三层协议的类型;

TOS字段;

网络设备输入/输出的逻辑端口(if index)

以上7个字段定义了一个基本的Flow信息。 Netflow就是利用分析IP数据包的上述7种属性,快速区分网络中传送的各种类型的业务数据流。

1. Cache管理

在NetFlow中有两个关键组件:

(1) NetFlow Cache,主要描述流缓存(或者说源数据)如何存放在Cache中。

NetFlow缓存管理机制中包含一系列高度精细化算法,能够有效地判断一个报文是属于已存在Flow的一部分还是应该在缓存中产生一条新的Flow。这些算法也能动态更新缓存中Flow的信息,并且判断哪些Flow应该到期终止。

(2) NetFlow Export,数据流的输出机制,主要描述了数据流是如何输出并被分析器接收的。

首先了解NetFlow Cache(缓存机制)。当缓存中的Flow到期后,就产生一个将Flow输出的动作。将超时的Flow信息以数据报文的方式输出,叫做“NetFlow Export”,这些输出的报文包含30条以上的Flow信息。这些NetFlow信息一般是无法识别的,需由专用收集器(Flow Collector)采集到并做出进一步分析,这些Flow Collector能够识别NetFlow的特殊格式。

2.输出格式

NetFlow的输出报文包含报头和一系列的Flow流,报头包含系列号、记录数、系统时间等,Flow流包含具体内容,如IP地址、端口、路由信息等。各个版本的NetFlow格式都相同,且NetFlow采用UDP报文,这更有利于大流量情况下的数据报文传输。换句话说,在路由器,防火墙等网络设备中如要使用NetFlow就不能禁用UDP端口,否则无法接收设备传递的信息。

3 .抽样机制

在Netflow的实际应用中,它不是时刻都把数据包抓取过来,而是采用抽样的机制,通过使用抽样技术可以降低路由器的CPU利用率,减少Flow的输出量,但仍然可以监测到大多数的流量信息。当我们不需要了解网络流量的每个Flow的具体细节的时候,抽样就成了比较好的选择。但流量计费系统采用NetFlow会造成误差,使得NetFlow输出有时不能准确反映流量的实际情况。这时如果你的流量计费系统选用Netflow就不太合适了。

4.性能影响

使用任何一种技术作为工程师最应该关注它的性能问题。由于在设备缓存中Flow的生成,需要消耗系统资源同样,将Flow格式化成特定的输出报文并将报文输出,也是要消耗系统资源,因此在设备上使用NetFlow时,肯定就会影响设备性能。由于高端Cisco设备(如6500、7600系列等)都是通过ASIC硬件处理数据包,所以占用10%~20%利用率均属正常。注意,在使用中CPU的利用率会随着缓存中Flow条目的增大而增加,所以在高负载情况下,一定要慎用Netflow功能。

5.在蠕虫病毒监测中的举例

前些年Code Red、SQL Slammer、冲击波、振荡波等蠕虫病毒的相继爆发,不但对用户主机造成影响,而且对网络的正常运行也构成了的危害,因为这些病毒具有扫描网络,主动传播病毒的能力,会大量占用网络带宽或网络设备系统资源。这些蠕虫在网络行为上都有某些共同特征,我们可以利用NetFlow的信息筛选出这些数据包,从而快速发现问题。

例1:CodeRed的Flow特征是destination port=80,、packets=3、size=144bytes。虽然在Internet上,符合上述特性的正常行为是存在的(如使用ICQ),但是一般正常使用的主机不会在连续几段时间内发出大量的这些报文。

因此监测CodeRed 可采用的方法是:取几个不同时间段,例如每段时间5分钟,如果每个时间段内符合特征的Flow大于上限值,则可以判断为Code Red。

例2:感染了Nimda病毒的主机会向外部地址(往往是TCP 80端口)发起大量连接,Nimda的Flow特征是每个Flow代表一次连接destination port=80的行为,如果普通的客户机在一段时间内(例如5分钟)Flow数量过大,那么很有可能遭受病毒感染或者有其他针对HTTP的攻击行为。

因此监测Nimda可采用的策略是:取几个不同时间段,每段时间5分钟,如果每个时间段内符合特征的Flow超过上限值,则可以判断为Nimda病毒或其他攻击行为。另外,如果Apache Http Server感染了Slapper Worm的话,也会产生大量的Http报文。

例3:震荡波(Worm.Sasser)的特征是一个IP同时向随机生成的多个IP发起445端口的TCP连接。因此检测条件是:相同源IP,大量不同目的IP,目的端口为445,当符合的Flow达到上限值时,则可以认定是振荡波病毒。

例4:几年前臭名昭著的微软SQL-Server漏洞造成了很大的影响,它的特征是目的端口为1433的TCP流。表13-2是根据此条件筛选出的NetFlow统计数据,可以得知IP地址66.190.144.166正在对某网段进行SQL漏洞扫描。

表1 筛选的NetFlow数据

  例5:用NetFlow分析DOS攻击流量

DOS攻击使用非正常的数据流量攻击网络设备或其接入的服务器,致使网络设备或服务器的性能下降,或占用网络带宽,影响其他相关用户流量的正常通信,最终可能导致网络服务不可用。例如DOS可以利用TCP协议的缺陷,通过SYN打开半开的TCP连接,占用系统资源,使合法用户被排斥而不能建立正常的TCP连接。以下为一个典型的DoS SYN攻击的NetFlow数据实例,该案例中多个伪造的源IP同时向一个目的IP发起TCP SYN攻击。

111.*.68.35|202.*.*.80|Others|64851|3|2|10000|10000|6|1|40|1

105.*.93.91|202.*.*.80|Others|64851|3|2|5557|5928|6|1|40|1

158.*.25.208|202.*.*.80|Others|64851|3|2|3330|10000|6|1|40|1

日常工作中发现,除了遇到DOS 以外还有许多攻击属于DDOS攻击,只不过攻击类别不同,有些为Ping Death,另一些则为SYN Flooding。

DDOS攻击基本上都造成这样一种结果:服务器无法处理源源不断如潮水般涌来的请求,从而造成响应迟缓,直至系统资源耗尽而宕机。DDOS攻击的共同点是来源广泛,针对一台主机,大量数据包。

因此检测ICMP攻击就可以根据下面的条件:在连续的几个时间段,假设每个时间段为5分钟,各个时间段内ICMP报文大于5000。符合这个条件的,可以认为受到了ICMP攻击。

下面是ICMP流的NetFlow实例。

另外,还有一种DDOS攻击是SYN flooding,它的特征是TCP报头中的SYN被置位,且有大量的SYN特征数据包。NetFlow输出格式中提供了Flag位,为我们判断SYN攻击创造了条件。

因此检测SYN flooding的条件是:在连续的几个时间段,假设每个时间段为5分钟,产生大量flag=2的数据包,正常连接不会产生这么多flag=2的数据包,所以可以设置阈值为5000。超过这个数值就认为服务器受到SYN flooding攻击。如果主机发出flag=2的数据包数量超过1000,则可以认为主机在发起攻击。以下是SYN特征的NetFlow实例。

各种DDOS攻击的特征都是在短时间内产生大量的数据包,因此,即使不知道攻击报文的特征,也可以在NetFlow的输出结果中进行相应的查找,找到符合条件的异常Flow。这就为及时发现和防范网络上的不安全因素提供了有效的手段。

案例6:NetFlow在网络取证方面的应用

假设图1中的ADSL拨号用户从Internet上某FTP服务器上下载了可疑文件,在客户端PC上留有下载日期时间戳信息,在局端的接入服务器上也可以看到特定IP地址在相应时间内被分配给客户端PC,通过在ISP方面的ANI(Automatic Number Identification)日志就能将客户端的所在家庭电话号码与上网拨号信息联系到一起,与此同时,在ISP的路由器上记录(一般会保留30天左右)着FTP下载/上传网络流量(NetFlow)日志,这个流量至关重要。最后在Ftp服务器上还有完整的下载记录。

  图 1 分析下载可疑文件

由上图可以看出,从客户端发起连接到FTP服务器下载分为四个阶段,分别是客户端发送/接受、接入服务器验证、路由器转发及FTP服务器接受下载,每个阶段都有日志记录信息包含用户账号、登录时间、IP、端口、发送数据包大小及日期及时间戳等。这些日志信息分别存放在不同的设备上,即便是某些日志遭到了一定程度破坏(例如篡改IP,丢失了某些日志等)也不会影响全局,所以这些相关信息,在调查人员进行计算机网络取证时就显得尤为重要,希望引起管理人员重视。

在某些情况下,设备不支持Netflow,怎么对流量进行检测呢?对于这样的环境也有相应的解决方法,那就是使用Fprobe。利用Fprobe来生成Netflow报文,其默认格式为V5版本。最初Fprobe是一款在BSD环境下运行的软件,目前在UNIX/Linux平台上均可运行。它可以将NIC接口收到的数据转化为Netflow数据,并发送至Netflow分析端。我们可以通过部署这样一台Ossim服务器,将网络流量镜像至Ossim服务器,实现网络流量分析。Ossim服务器中的Netflow分析器,由下列三个工具组成:

Fprobe: 从远程主机发送数据流;

NfSen: NetFlow的分析图形前端;

Nfdump: NetFlow采集模块;

有关Ossim结构大家可以先参看本书第14章,这里介绍Netflow分析数据包的过程。首先,在网络接口接收网络数据,然后由Fprobe程序将收集的数据按照一定规则和格式进行转换(Netflow格式),再发到系统的555端口(查看/etc/default/fprobe能得知详情),再由Nfsen系统中的Nfdump程序将转换后的数据统一存放在/var/cache/nfdump/flows/目录下,最后由Web前端程序Nfsen来读取,数据通过555端口接收,同时结果会显示在前台Web界面上(在Ossim系统中路径为Situational Awareness→Network→Traffic,显示效果在Ossim右侧导航栏里可以查看),分析Netflow过程如图2所示。

  图 2 Ossim系统分析Netflow数据

在Ossim4.1系统中查询 Netflow流量如图13-3所示。

  图 3 Netflow流量源端口Top 10

在Ossim 4.1系统中由Netflow收集的数据放置在/var/cache/nfdump/flows/live/ossim/目录下,并存储为二进制文件格式,以天为单位分别设置目录,方便查看。这些数据按照一定的时间组织起来,每5分钟采集一次数据,同时由nfcapd产生新的文件,并用当前时间来命名,例如nfcapd.2013053112035包含的数据是从2013年5月31日12小时35分钟开始的数据。

  图 4 nfcapd产生的数据

从系统捕获数据包的过程来看Nfdump这一过程至关重要,它由nfcpad、fddump、nfprofile和nfreplay这4个进程组成,功能见表2所示。

表2 nfdump工具组成

  6.分布式环境数据流处理

本节内容是对上述知识点的总结,下面这个实验在一个模拟的分布式环境中完成,其中有一台混合安装的Ossim USM,两台Sensor,三台接入层交换机和一台核心交换机以及若干PC组成,为简化实验这些设备均在同一个VLAN中,实际生产中应在多个VLAN。拓扑如图5所示。

  图5 Ossim分布式部署

第2章讲解了如何添加Sensor,并与Server进行连接,下面接着启用Netflow服务,交换机上Netflow也必须同时设置正确,注意nfcapd进程在12000和120001端口进行监听。各主机IP、UUID及端口如表3所示。

表3 Ossim服务器传感器配置

  前面已经讲过查看UUID的方法下面依次在终端下输入如下命令:

所有数据存储在Ossim Server端,所以我们到Server命令行下输入以下命令进行验证:

为了确保在SensorA、SensorB和Sensor上都能展现其Netflow数据要确保nfsen都收到数据,我们在Ossim Server的终端控制台下,操作以下命令

接着观察目录的内容,我们进入目录564db4303295cb66ae8a8141c00f6233,在该目录下有若干Pcap格式的文件,每隔5分钟生成一个,每个文件大小在500KB~1000KB(大小并不固定),每天会产生100~200MB的抓包文件。

如果在实验中发现没有收到Sensor数据包,首先检查设置是否正确,接下来用tcpdump来抓包分析,具体抓包操作如下图所示。

  或tcpdump -i eth0 ‘port 12001’ 。

通过nfdump可以实现Netflow记录的过滤、Top统计和排序等功能,在Ossim通过Web UI能轻松的展现给用户,如图6所示。

  图6 Netflow多传感器显示

作为系统维护人员需要了解后台执行的命令,例如我们进入2015-05-01目录,对其数据包按端口排序输入命令nfdump –r nfcapd.201505010315 –s dstport –n 10

  又如

  7.交换机上配置

下面归纳一下实施流量监控的步骤(以Cisco 6000系列交换机为例):

1) 在Cisco 6509上配置NetFlow(或其他网络设备),并输出到指定到Ossim采集器(IP)的固定UDP端口。

2) 采集器软件为Ossim系统的Flow-tool工具,该软件监听UDP端口,接收进入的NetFlow数据包并存储为特定格式。

3) 使用Nfsen等软件包中的工具对NetFlow源文件进行读取,转换成可读的ASICII格式,再用Ossim内的Perl程序对NetFlow进行分析和规范格式的操作,并将读取的NetFlow信息存储入Ossim数据库中。

4) 依据蠕虫和DDOS攻击等异常报文的流量特征,在分析程序中预设各种触发条件,定时运行,从中发现满足这些条件的Flow。

5) 将分析结果在Web客户端中展示,或者通过E-mail、短信等接口发送。也可以通过与设备联动的方式,采用ACL对设备进行自动配置,等攻击流消退后再自动取消ACL。

除了OSSIM之外,还有些商业软件都提供了很好的分析工具,例如Solarwinds NetFlow Traffic Analysis 和Manage Engine NetFlow Analyzer这两款软件如图7所示,它们都是不错的选择。

  图7 Manage Engine NetFlow Analyzer

====================================分割线================================

本文转自d1net(转载)

时间: 2024-10-28 17:07:55

实用教程:使用Netflow分析网络异常流量的相关文章

【Hadoop Summit Tokyo 2016】使用基于Lambda架构的Spark的近实时的网络异常检测和流量分析

本讲义出自Pankaj Rastogi与Debasish Das在Hadoop Summit Tokyo 2016上的演讲,主要分享了网络数据相关知识.网络异常DDoS攻击以及使用基于Lambda架构的Spark的近实时的网络异常检测和流量分析的架构设计,并分享了Trapezium的相关概念.

给校园网络进行流量监控和流量分析

在我们精心打造的校园网中,如果网络突然缓慢,在重要数据往来的教学时间段,留给系统管理员的响应时间只有宝贵的十几分钟.甚至几分钟.而且,蠕虫病毒对网络速度的影响越来越严重,例如"网络天空"等邮件蠕虫病毒,它们导致被感染的用户只要一连上网就不停地往外发邮件,病毒选择用户个人电脑中的随机文档附加在用户的通讯簿上,通过随机地址进行邮件发送.成百上千的这种垃圾邮件有的排着队往外发送,有的又成批地被退回来堆在服务器上.这都造成个教 育网骨干线路出现明显拥塞,甚至在蠕虫泛滥的局域网中,瘫痪的事件屡有

《jQuery与JavaScript入门经典》——2.5 分析网络流量

2.5 分析网络流量 调试JavaScript时,常用的一个极具价值的Firebug工具是网络流量分析器.要使用网络流量分析器,可单击Firebug中的标签Net(网络),如图2.25所示.它显示从浏览器向Web服务器发送的每个请求的信息,让您能够更深入地了解当前传输的数据.当前是否发送了请求以及请求的顺序是否正确. 图2.25显示了加载网页amazon.com涉及的网络流量.发出的请求很多,每个请求都在流量列表中占据一行.对于每个请求,都显示了如下信息. URL:请求的URL很有用.您可右击U

《初级会计电算化实用教程(金蝶ERP—K/3版)》一第1章 会计电算化概论1.1 会计电算化概念

第1章 会计电算化概论 初级会计电算化实用教程(金蝶ERP-K/3版)学习重点 通过本章学习,了解会计电算化的发展历史,理解会计电算化的含义,了解国内外会计电算化的发展历程.熟悉手工会计信息系统与电算化会计信息系统的联系与区别:掌握会计电算化信息系统的总体结构,为学习会计电算化这门课程奠定理论基础. 1.1 会计电算化概念 初级会计电算化实用教程(金蝶ERP-K/3版) 1.1.1 会计电算化含义 "会计电算化"一词,是1981年中国会计学会在长春市召开的"财务.会计成本应用

Win8系统怎么设置无线网络按流量计费

  大部分笔记本电脑都有自带无线网卡设备,当我们在有无线网络的环境下使用笔记本时,就可以搜索得到无线WiFi网络来连接使用.大家都知道在不同的操作系统下使用无线网络的操作方式也有所不同,在win8系统中无线网络的连接功能更加丰富,我们可以通过无线网络的查看来启用或关闭共享.快速删除网络和查看连接属性等等,我们可以将无线网络设为按流量计费方式来连接,这样就可以让我们更好的掌握电脑使用无线网络流量状态,那么在win8系统中该如何实现该功能呢? 1.单击桌面右下角的信号图标; 2.和win7 64位不

《初级会计电算化实用教程(金蝶ERP—K/3版)》一2.2 会计电算化的岗位分工

2.2 会计电算化的岗位分工 初级会计电算化实用教程(金蝶ERP-K/3版) 2.2.1 岗位设置 企业根据会计电算化的特点和要求,按照"责.权.利相结合"的原则,对会计信息系统使用人员和维护人员的职责和权限作出明确规定.按照会计电算化工作的特点,会计电算化的工作岗位可分为基本会计岗位和电算化会计岗位. 基本会计岗位可分为会计主管.出纳.会计核算各岗.稽核.会计档案管理等工作岗位.电算化会计岗位是指直接管理.操作.维护计算机及会计核算软件的工作岗位.电算化会计岗位可分为软件操作.审核记

《初级会计电算化实用教程(金蝶ERP—K/3版)》一1.4 会计核算软件

1.4 会计核算软件 初级会计电算化实用教程(金蝶ERP-K/3版)会计软件的应用是电算化会计信息系统建设和管理的一个重要环节,正确.有效地应用会计软件有利于发挥会计电算化的职能,实现会计工作目标,提高企业会计核算的能力. 1.4.1 会计核算软件的概念与分类 1.会计软件的概念会计软件是以会计理论和会计方法为核心,以会计法规和会计制度为依据,以计算机技术和通信技术为技术基础,以会计数据为处理对象,以会计核算.财务管理.为经营提供财务信息为目标,用计算机处理会计业务的计算机应用软件. 2.会计软

《初级会计电算化实用教程(金蝶KIS专业版)》一1.4 会计核算软件

1.4 会计核算软件 初级会计电算化实用教程(金蝶KIS专业版)会计软件的应用是电算化会计信息系统建设和管理的一个重要环节,正确.有效地应用会计软件有利于发挥会计电算化的职能,实现会计工作目标,提高企业会计核算的能力. 1.4.1 会计核算软件的概念与分类 1.会计软件的概念会计软件是以会计理论和会计方法为核心,以会计法规和会计制度为依据,以计算机技术和通信技术为技术基础,以会计数据为处理对象,以会计核算.财务管理为经营提供财务信息为目标,用计算机处理会计业务的计算机应用软件. 2.会计软件的分

硅谷杂志:基于内容的网络异常信息过滤

[硅谷网12月3日文]据<硅谷>杂志2012年第18期刊文,虽然网络促进社会经济的发展与进步, 但是在互联网规模的不断扩大下,恶意邮件和不良网络,以及不健康网络内容的传播等都将严重影响网络健康运行.因此,对内容的网络异常信息过滤的安全保护成为人们关注的焦点.通过简要介绍网络异常信息过滤,对网络异常信息过滤模型进行分析,并设计基于内容的网络异常信息过滤系统,同时通过试验与分析证明 其实用的价值. 为了确保网络内容安全,主要是针对数据和社会安全信息的过滤.这种基于内容的网络异常信息过滤可以分为以用