随着新技术和新应用的发展,互联网使用模式已经发生了显著变化,目前,网络视频、网盘、P2P及移动App等新应用占据了大量网络带宽。为提高用户上网体验,大学校园网出口已进入到万兆网络时代。万兆网络产生的大流量上网日志数据对网络管理人员提出了诸多新的管理要求,通过构建校园网上网日志查询及入侵检测系统,将出口的流量进行采集、汇总和分析,了解校园网用户的上网行为,包括流量构成、协议分布和用户活动情况,按需为用户提供上网日志明细查询,以及校外用户对校内资源的访问情况(特别是危险的访问),将对规范网络管理、合理分配网络带宽、增强信息安全以及确保校园网络环境的平稳,具有重要意义[1]。现有校园网出口一般包括计费、流控、防火墙、负载均衡或路由器等设备或系统,有些高校为备查另外部署了上网行为审计系统,但这些系统提供的原始日志信息相互独立、格式不统一、信息不够完整、存储量大、查询缓慢、流量信息与计费流量有较大差距等原因难以直接用之实现以上的目标。为此,本文利用NetFlow+Nfdump+Nfsen+Nfsight搭建了校园网出口流量日志采集分析系统,并融合校园网计费管理系统,自主开发了一套万兆校园网上网日志查询及入侵检测系统,集流量采集、存储、查询、分析于一体,既能快速对校园网用户提供详细的上网明细,又能诊断和监测网络攻击行为或备查安全事件,并提供了简单直观的Web及图形化查询界面。
相关技术
网络流量数据的收集和分析有多种解决方案,而NetFlow技术是高速网络中常用的一种方法,它在提供数据细节以及可扩展性上具有较好的平衡性,且不会成为网络的瓶颈或故障点[2-3]。NetFlow是由Cisco公司研发的一种流量监控技术,数据流为单向流,包含有:源地址和目的地址、源端口和目的端口、协议类型、字节数、包数量和流数量等。本文在中国农业大学校园网出口的两台万兆JuniperSRX3400防火墙内口上配置了NetFlow并将接口的数据流通过UDP方式发往校内的日志服务器。
目前有很多命令行或图形化的日志处理工具可供管理员对日志服务器接收到的NetFlow数据流进行读或过滤查询操作,本文在日志服务器上配置日志处理工具Nfdump及Nfsen(含Nfsight)用于接收和分析NetFlow数据流,并将其存储至文件及数据库中。
Nfdump是一款被使用最多的Netflow命令行工具,具有执行速度快、同时支持IPv4和IPv6、过滤查询功能强大的特点。但命令行显示不够直观明了,本文因而选取并配置了Nfsen工具作为NetFlow的可视化查询工具[4-9],它使用Nfdump工具包收集及处理NetFlow数据流,但较Nfdump多了可视化查询功能,简单且易于扩展。
NetFlow采集数据时会将单个逻辑流分成多个分开的单向流,其并不能保持对客户机(Client)和服务器(Server)间逻辑网络会话的跟踪。无论是命令行的Nfdump,还是图形化的Nfsen,都仅对NetFlow单向流进行处理操作,不易对一些较为隐蔽的攻击进行识别。为解决此问题,本文进一步引入了美国马里兰大学与AT&T实验室共同研发的Nfsight,它作为Nfsen的插件存在,用于将NetFlow的单向数据流构建为双向数据流,并可提供Client/Server识别及入侵检测功能[10]。Nfsight的工作原理如图1所示,描述如下:服务检测组件(ServiceDetector)获取NetFlow数据流,通过推理判断网络会话的Client和Server,从而将单向流转化为双向流,并保存至文件中,同时,将Client和Server信息保存至MySql数据库;入侵检测组件检测双向流中可疑或频繁的网络行为,将其和事件通知一并写入MySql数据库;聚合脚本周期性执行用于维护数据库,其提供了每5分钟、每小时和每天三个层次的数据聚合;可视化查询提供过滤查询及图形化显示网络行为的Web用户界面。
服务检测组件在将单向流转化为双向流的过程中,Client和Server的区分是其中的一个难点问题。Nfsight在一个采集周期里(本系统设置5分钟采集一次),通过启发式推理和贝叶斯推理的算法实现了Client和Server的区分。过程如下:
1.Nfsight合并源、目的IP(含端口)相同的数据流。
2.Nfsight进一步合并源IP、目的IP(含端口)相反的数据流。
3.Nfsight通过启发式推理辨识网络事务中的Server和Client端。Server相较Client的判断条件有:时间戳(timestamp)较大、端口较小、端口小于1024、端口在unix或linux的/etc/services中有定义、终端端口或IP为固定值等。
4.在不易区分Server端(例如时间戳相同或端口相同的情况)时,则利用贝叶斯推理将过程3的各类启发式推理的结果进一步进行综合,通过概率计算识别Server端。
校园网上网日志查询及入侵检测系统构建
1.NetFlow的设置方法
(1)要在JuniperSRX系列防火墙接口上配置NetFlow,首先必须要设置NTP。
setsystemtime-zoneAsia/Shanghai##设定时区为上海setdatentp202.205.81.48##手动与时间服务器校时setsystemntpserver202.205.81.48##配置校时服务器
(2)在欲取样的防火墙内口配置
NetFlow。setinterfacesxe-3/0/1unit0familyinetsamplinginputoutput
(3)配置合适的采样率。
本文设置的采样率为300,不建议设置太小的采样率,过于频繁采样会降低设备的性能。
setforwarding-optionssamplinginputrate300
(4)指定收集NetFlow的日志服务器设备。
setforwarding-optionssamplingfamilyinetoutputflow-server202.205.88.51port2055##指定收集设备及端口
setforwarding-optionssamplingfamilyinetoutputflow-server202.205.88.51version5##指定NetFlow版本。
如果未配置NTP,则第(4)步的指令在提交时会报错。
2.系统架构
系统的硬件平台仅需一台虚拟服务器,安装64位CentOS6.7操作系统,配置2颗2核主频2GHz的CPU及8G内存,出口日志保存于日志服务器挂载的一块网盘中。对于中国农业大学校园网规模(月均2.5万活动用户,IPv4出口带宽为4.5G),本系统自2015年7月至2017年7月共2年时间内,所保存的出口日志约为1.2T,可见,NetFlow格式的出口日志所占空间非常小。系统的软件平台涉及较多的应用软件,这些软件从功能上可分为:(1)NetFlow捕获及处理软件nfdump;(2)NetFlow图形化管理软件nfsen及其插件PortTracker、nfsenevents、nfsight;(3)Web服务器及Php脚本支持环境:apache、php和tomcat;(4)数据库服务器——mysql;(5)功能软件所需的支撑软件:perl、rrdtool、apr、apr-util、pcre。其中,nfsen、PortTracker、nfsenevenets和nfsight软件包括有前端和后端程序。前端指的是Php语言编写的Web程序,后端指的是Perl语言编写的管理程序及配置文件。按需成功编译配置后,则浏览http://主机IP/nfsen以及http://主机IP/nfsight即可分别访问到Nfsen和Nfsight的图形化管理界面。
此外,本文基于java语言,结合计费管理系统,研发了Web上网日志明细查询系统,以实现精确到用户账号的单次上网日志明细的查询,或可查询出针对某个IP、某段IP或某些服务端口在自定义时间范围内的上网日志明细,因而即可作为校园流量计费系统的验证系统,也可作为辅助的安全管理系统。
应用实践
1.校园网上网日志明细查询系统
为防止校园网用户浪费出口带宽资源,目前多数高校校园网趋向于采用流量计费策略。在网速快、多媒体及App应用普及、软件客户端会自动更新的情况下,有可能产生用户不自知情况下的大流量网费。如果用户对其流量产生质疑,如何快速在大带宽的高速网络下为其提供对应的上网明细尤显重要。目前高校的计费系统所提供日志明细功能仍有欠缺,表现在上网明细仅能提供http访问日志,而udp及非http的日志获取不到或不全,且查询速度缓慢。
本文基于Netflow出口日志和计费系统开发的校园网上网日志明细查询系统,可实现利用IP或计费网关账号查询用户上网明细的功能,也可查询校内特定网段的敏感端口访问信息,或查询某一时间段内访问校外某一地址的用户明细。分为面向管理员和面向校园网用户的子功能。本文仅介绍管理段的功能。
(1)按IP或端口查询上网日志明细
系统提供了基于:源地址、源端口、目的地址、目的端口、双向地址或双向端口查询某时间段内上网明细的快速查询。如下以源地址查询为例进行说明。
源地址查询功能模块可根据输入的源IP地址、上网开始时间及截止时间(以天为单位),查询出对应时间段内出口数据包中源IP为此IP的所有上网日志明细。例如输入图2的查询条件,并点击查找,则后台调度nfdump进行过滤查询,同时将查询结果写入一个txt文件,并在图2页面给出链接。
点击图2的txt查询结果文件链接,则可查看相应的网络访问日志明细。本系统的上网日志明细查询结果以网络五元组的格式给出,每一行均包括:时间(Datafirstseen)、协议(Proto)、源地址及源端口(SrcIPAddr:Port)、目的地址及目的端口(DstIPAddr:Port))、流量大小(Bytes)等信息。查询结果的尾部(最后倒数4行)则是本次查询的汇总信息,其中经常关注的是本次查询时间段内的总计流量大小(totalbytes)。
通过此模块可以快速查询出指定IP或端口在某个时间段内与哪些IP发生过信息交互,其最大的特点是快速(一般在10s内即可完成一次查询操作),也可完成对某些安全事件的查询。
图2按源地址查询上网日志明细的界面(2)按用户查询上网日志明细
系统实现了与计费系统的紧密结合,能够针对用户上网账号查询用户的上网日志明细,或根据上网IP定位用户身份。此处给出了根据账号查询单次上网明细的功能说明。此功能在校园网计费中经常使用,即用于与计费对账使用。
按计费用户账号查询其历史上网明细的功能界面如图3所示:按需输入校园网账号、上网开始及截止时间的查询条件,并点击查找,则系统会查出对应账号在指定时间段内的所有上网记录信息,显示在页面的底部。
图3账号在指定时间段内的上网记录查询点击图3所查出的某条上网登录记录的IP地址链接,则后台会调用nfdump生成对应IP在本次上网登录时间到断开时间内的所有网络访问日志明细,所查结果为IP的双向日志明细。通过此功能管理员可轻松回答用户在什么时间与哪个目的服务器进行交互、流量集中在哪些目的地址、所使用的协议和端口、共计产生了多少流量等信息,从而减轻管理员的查询工作量。此外,按用户查询上网日志明细程序还可作为计费准确与否的一个验证,这部分功能目前也已经在用户自助平台上提供。
(3)服务器网段安全查询
校外对校内服务器所进行的攻击中,某些攻击是正常的网络访问(例如已获得了服务器的访问权限,例如获得了SSH权限、数据库控制权限、远程桌面权限等)。这种情况在中国农大校园网实际运行过程中曾有发生,主要集中在学院自管的服务器。因此类攻击是通过正常访问进行的,所产生的流量或异常数据包并不大,不容易被发现。为解决此问题,本系统提供了针对服务器敏感端口的安全查询功能。
以查询校外通过SSH端口访问校内某段地址为例:根据输入的服务器网段、上网开始和上网结束时间,可查询出指定时间段内访问此网段22端口的所有上网明细,点击相应链接,即可查看具体的上网日志明细,以排查是否有异常访问。图4Nfsen显示ICMP存在异常
2.异常流量实时监测
Nfsen的图形化监控界面可实时监测出口流量信息。管理员可侧重分析网络流量图出现的尖峰信息及原因,占用了校园网出口大带宽TopN的IP地址,校园网TopN的应用,正进行端口扫描的机器等。
图4显示在2017-7-3016:35左右校园网出口曾出现了ICMP流的异常情况,管理员在异常处点击鼠标选定时间点、并设置过滤条件后即可查出对应时间所发生的具体ICMP流的明细信息。
3.非大流量入侵检测的诊断案例
图形化界面虽然易于对异常流量进行掌控和分析,但很多时候黑客对某台设备的攻击并不会导致机器流量异常。本系统通过对Mysql数据库的汇总统计实现了对海量网络流量日志中非法行为的准确定位。要实现此功能,需在Nfsight配置文件中预先定义校内IP的范围。图5为系统所使用的入侵检测方法。
图5中,无效数据包(invalid_packet)一般为服务器拒绝回应的数据包,经常在服务器遭受攻击时产生。危险端口包括远程桌面的3389、ssh协议的22、数据库的3306和1521、linuxwebmin的10000等。
在2016-7-11,查询到202.205.91.97的无效数据包数量达到了71700个;进一步查询此IP当天的上网明细,发现虽然其发生的总流量仅为565.7M,但自凌晨起校外的几个IP一直在不间断访问它的3389服务直至早上8点多;再一次查询这些校外IP的网络明细,发现其不仅对202.205.91.87,还对此网段的几台服务器进行了3389端口的频繁访问,而这些机器分别是不同学院课题组的服务器,由此推测此网段的服务器正遭受对3389端口的攻击。网络管理员将相关情况告知相关负责人,并进行网络拦截,及时阻止了事态的恶化。
本文介绍了中国农业大学万兆校园网上网日志查询及入侵检测系统构建:基于Nfdump和计费系统实现了10s内定位到用户身份的上网明细查询,基于Nfsen及Nfsight的图形化接口实现了网络流量构成及异常流量的快速分析,并基于Nfsight对Netflow单向流的双向重建和对数据库的聚集过滤检索,实现了对流量不明显入侵的检测。目前该系统不仅成为校园网计费系统的一个辅助子系统,对用户提供流量日志明细查询及计费验证,而且也成为了校园网安全监控及日志审计系统的一个有机组成部分。
(责编:杨洁)
(作者单位为中国农业大学网络中心)
参考文献:
[1]马云龙,张千里,王继龙.基于IPFIX的网络流量日志系统[J].通信学报,2013,34(sup2):5-8.MA,YL,ZHANGQL,WANGJL.NetworktrafficanalysissystembasedonIPFIX[J].JournalonCommunications,2013,34(sup2):5-8
[2]王珊,陈松,周明天.网络流量分析系统的设计与实现[J].计算机工程与应用.2009,45(10):86-88.WANGS,CHENS,ZHOUMT.Designandimplementationofnetworkflowanalysissystem[J].ComputerEngineeringandApplications,2009,45(10):86-88
[3]孟晓蓓.基于NetFlow的网络流量采集技术和应用[J].武汉理工大学学报.2009,31(23):155158.MENGXB.NetworkfluxcollectiontechniquebaseonNetFlowanditsApplication[J].JournalofWuhanUniversityofTechnology,2009,31(23):155-158.
[4]NfSen-NetflowSensor[EB/OL].(2011-12-31)http://nfsen.sourceforge
[5]Ntop:[EB/OL].(2014-06-25)http://www.ntop.org
[6]PLONKAD.Flowscan:Anetworktrafficflowreportingandvisualizationtool[A].14thUSENIXLargeInstallationSystemAdministrationConference(LISA)[C].NewOrleans,LADecember3?8,2000.305?318.
[7]CIRNECIA,BOBOCS,LEORDEANUC,etal.Netpy:advancednetworktrafficmonitoring[A].InternationalConferenceonIntelligentNetworkingandCollaborativeSystems(INCOS’09)[C].Fukuoka,JapanNovember30-December2,2011.253?254.
[8]DAMICOA,GOODALLJ,TESONED,etal.Visualdiscoveryincomputernetworkdefense[J].IEEEComputerGraphicsandApplications,2007,27(5):20?27.
[9]FISCHERF,MANSMANNF,KEIMD,etal.Large-scalenetworkmonitoringforvisualanalysisofattacks[A].WorkshoponVisualizationforComputerSecurity(VizSEC)[C].Cambridge,MA,USASeptember15,2008.111.
[10]Nfsight:NetFlow-basedNetworkAwarenessTool[EB/OL].(2010-09-01)http://sourceforge/p/nfsight/home/Nfsight/