扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 2007年8月29日
关键字:
在本页阅读全文(共2页)
由于NetFlow 数据来源是网络中的三层数据转发设备,所以通过从三层设备所搜集到的NetFlow 信息可以协助掌握整体网络的情况,而且通过适当地分析NetFlow 信息,可以协助管理者在蠕虫爆发或不正常网络行为的初期快速分析出网络中存在的问题。接下来我们进一步介绍如何利用NetFlow中所包含的信息来侦测异常的行为。 从网络层的角度进行分析
一般来说,网络攻击行为会存在着某些可供辨识的特征,我们可以通过这些特征来与所获得的NetFlow 数据进行对比,进而找出可能的异常行为。我们可以通过分析NetFlow 数据中目的主机所使用端口号字段,来过滤NetFlow资料找出相对应的攻击;另外我们也可以利用不合逻辑的来源或目的IP 地址来找出异常;此外,因特网地址指派机构(Internet Assigned Numbers Authority , IANA)将下列三段IP 地址保留给私有网络使用10.0.0.0~10.255.255.255、172.16.0.0~172.31.255.255 及192.168.0.0~192.168.255.255,这几段网络的地址不能出现在外在网络环境中,但由于当初网络设计的缺陷,路由器对于所接收数据包的来源地址字段并不会进行验证,所以攻击者可利用这个缺陷伪造来源IP 地址(IP Spoofing )来发动攻击,避免被追踪到攻击来源,所以我们可以从我们所接受到NetFlow 数据中来源主机所使用的IP 地址(Source IP Address)字段,找出伪造来源地址的流量,再利用NetFlow数据中信息流流入接口编号(Input IFindex)字段的信息,找出连接这个接口的上游路由器,请他们协助调查或处理。
某些异常行为可能会连到某个或某些特定地址。比如在2001 年造成严重网络拥塞的Code Red 蠕虫,我们分析所收集到的NetFlow 资料便可发现,此蠕虫的攻击行为有一个特性,每笔Flow 的destination TCP/UDP port 字段值会等于80,Packet Count 字段值等于3,Byte Count 字段值等于144bytes,网络管理者可以撰写程序分析所搜集的NetFlow数据,找出具备此特征的Flow 数据,便可找出管辖网络内有可能感染Code Red蠕虫的主机,并强行将该主机下线或封锁物理端口以降低蠕虫造成的危害。利用已收集到攻击的特征与NetFlow 信息中的相关字段进行比对找出可能的攻击,可以在造成网络严重伤害之前,采取相应措施来降低形成严重问题的可能性。 从传输层的角度进行分析
我们可以通过NetFlow 数据找出网络中建立session 数目最多的主机,因为如果一台主机对特定主机产生不正常的大量连接,这可能代表着新的蠕虫、阻断服务攻击、网络扫描等的可能性,因为一个正常的主机对外连接会有一定正常的频率,如果正常的主机感染了蠕虫,就可能会开始产生异常的网络行为,开始产生对外大量的连接需求来找寻下一个感染的对象,因此我们可以从感染蠕虫的主机的NetFlow 信息中发现到大量的对外连接需求,同样的原理,如果所管辖网络中的使用者从网络上下载阻断服务攻击之工具程序企图对外发动攻击时,或是使用者利用Nmap 之类的扫瞄工具扫瞄特定网址,以找出目标主机所可能存在弱点或是漏洞时,我们都可以从NetFlow 数据中发现从网域中某个特定地址送出的大量session.
除了侦测网络攻击外,我们也可以通过分析session 的方式找出网络滥用的行为,例如分析NetFlow 数据中目的主机所使用端口号的信息,通过分析对外25 port 连接的相关信息,若某一台主机对外25 port 连接的数目在某个特定时间内超出正常值过多,我们便可合理怀疑这台主机被利用来散发广告信或通过e-mail感染蠕虫,同样原理我们也可以应用来分析像emule 等peer-to-peer 档案分享软件常用之TCP 4662 / UDP 4672 port,找出网络滥用的行为,并进行适当处置以降低其所造成的伤害。 利用TCP 的控制过滤出可疑的Flow
但对于一些大型网络,攻击的相关NetFlow 信息可能会被其它正常的NetFlow 信息所稀释,例如感染病毒的初期或是谨慎的黑客,可能会利用正常的流量来掩护其异常行为。另外,当我们遇到新的攻击手法或是病毒时,可能无法在第一时间掌握其Flow 特征,也无法通过特征比对的方式找出异常流量。为了更快速有效地侦测出异常的流量,我们试着对TCP 的控制标志进行分析,希望缩小需要进一步分析的NetFlow 数据量,以及早发现异常流量。对蠕虫而言,由于其在网络中通过感染大量主机进行自我复制的本质,蠕虫会在很短的时间内尽全力探测可能的感染目标,而且大部分的蠕虫都是通过TCP 协议来传输散布,所以我们可以从TCP 的控制标志中发现到一些蛛丝马迹,作为我们缩小可疑名单的根据。
以正常的TCP 连接建立过程而言,客户端会先送出一个SYN 数据包给目的端主机,接着目的端主机会响应一个SYN/ACK 数据包,客户端在接收到这样的数据包后,再送回给目的端主机ACK 数据包完成连接,但并不是每一次都能顺利建立连接,由于NetFlow 会将每个session中所有传输时的TCP 控制标志全部储存在数据包控制标志(TCP Flag) 这个字段中,因此我们可以通过这个字段中的信息来协助我们推测特定主机联机的特性。
若某个Flow 正常地建立TCP 连接后,其数据包控制(TCP Flag) 字段会记录的包含ACK、SYN、FIN 等控制标志,但是如果蠕虫进行感染的动作时,由于随机选取的主机并不一定存在,或是即使存在但目标主机没有开放蠕虫所要感染的TCP port,在这种情况下,NetFlow 信息中由受感染主机对外联机所产生的Flow 数据包控制标志(TCP Flag) 字段会只存在SYN 这个TCP 控制标志,根据这种特性网络管理者可以先将其NetFlow 数据中数据包控制标志(TCP Flag)字段只有存在SYN 控制标志的Flow 数据过滤出来,通过这种方式我们可以把大部分正常的流量排除,这时候我们要从可疑的数据中找出真正异常流量的难度就会降低许多,能快速找出问题,也可以避免运算资源无谓的浪费。 利用ICMP的讯息协助过滤出可疑的Flow
某些蠕虫或网络攻击也会利用ICMP 来进行,我们可以从NetFlow数据中过滤出有异常行为的主机,首先找出通讯协议(protocol) 字段值为1 的Flow,代表所使用的通讯协议为ICMP,再根据目的主机之端口号(destination TCP/UDP port)字段值分析出所代表的ICMP 讯息,例如目的主机之端口号(destination TCP/UDP port)字段值为2048,转化成八进位为800,第一位代表位数字代表的是ICMP 的类型,后两码为这个ICMP 类型中的编码,整体的意思是ICMP echo 请求;但如果字段值为769,转化为八进位则为301,这个编码代表的是ICMP host unreachable;如果字段值是771则代表ICMP port unreachable;字段值是768 则代表ICMP network unreachable.我们可以先找出所使用通讯协议为ICMP 的Flow,进一步过滤出其中目的主机所使用端口号为768、769、771 的Flow,再进一步分析找出可能的异常行为。通过这种方式从大量NetFlow 数据中过滤出可疑名单,再对名单内的Flow 数据进行进一步的分析,这样可以帮助网络管理者快速找出问题所在。
由于目前网络带宽增长非常迅速,仅仅在核心层部署NetFlow可能会导致设备性能下降。目前港湾网络可以在汇聚层的FlexHammer 5210系列、核心层的BigHammer 6800系列提供相应的NetFlow功能,通过核心和汇聚层的NetFlow分布式部署,可以在确保网络性能的前提下提供完善的病毒和网络异常控制机制,从而协助网络管理者完成网络的维护工作,为各个高校网络中心降低管理压力。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。