您的位置:首页 > 参评方案展示 > 网络安全

上海交通大学:基于数据分析的网络黑名单系统

  编辑点评:本文通过描述在一个城域网中,通过基于数据分析的网络黑名单系统,发现并阻断网络攻击站点,提高了教育城域网的安全程度。

  1.引言

  随着互联网的快速发展和普及,越来越多的单位和个人开始接入因特网,并且构建了一些常见的服务器,如:SSH,HTTP,MS-SQL等等。随之而来产生的安全问题越来越引起人们的关注。除了一些服务器系统本身的漏洞之外,各种异常攻击流量成了一个普遍的问题。一方面,各种异常突发流量可能会造成网络的拥塞,从而产生丢包、延时和抖动,导致网络服务

  质量下降,影响正常的网络访问。另外一方面,突发流量还可能存在安全风险,例如:DDOS攻击、蠕虫病毒、弱口令主机被攻破等等,会对网络和业务系统造成更大的危害。

  常规的网络管理和流量监控手段,如Netflow[1],Nfdump,等等,能够看到流量异常突发的现象,却不能够让管理人员在事后深入分析异常流量产生的原因,无法了解异常流量是哪些IP造成的、是否是恶意攻击行为、异常流量的行为特点、传输内容、对网络和业务有多大影响等,导致难以采用正确的处理措施。

  为解决上述问题,有必要监控外部来的连接报文,即时识别出异常攻击,整理出危险的攻击源头,并剔除攻击报文流量。目前已经存在一些类似的安全系统,在实现方法上各不一样,侧重点和应用范围也都有所区别。比如,东北大学的网络威胁黑名单系统(http://antivirus.neu.edu.cn/scan/),采用的是基于蜜罐技术[2]和日志分析的方式,主要应用在校园网和重点保护的服务器群上。国际上存在一个开放式的黑名单系统OpenBL(www.openbl.org)通过在全球架设一些观测点,能够监控全球范围内的一些常见的攻击情况。不过其成本较大,而且范围太广,并不适合普通的单位和个人。

  上海教育城域网黑名单系统的基本思路是首先在城域网边界设备上根据一定规则识别出异常的报文,比如说单位时间从特定IP地址发起的连接数目,认证次数等等。以SSH为例,正常使用的情况下来自特定IP地址的每次SSH连接应该是几秒钟,如果一秒内出现多个连接请求,则基本上可以判断为异常攻击报文流。然后将这些异常流量通过旁路镜像到分析器上,这样就不会影响正常的网络流量。分析器对镜像过来的流量进行即时统计分析,识别出攻击的源和目标IP地址,必要的话将结果保存进入数据库。通过分析这些攻击数据,整理出有威胁的攻击源,并将这些有威胁的IP地址加入边界设备的路由黑洞,从而达到阻止攻击的目的。同时为方便查询和管理,有对应WEB Server显示系统的运行信息和结果。

  2.系统基本工作原理

  该系统主要包括两个部分:识别异常报文的边界交换机和分析器。其基本拓扑情况如下图所示。为简洁考虑,省略了其他的相关边界设备。

  图1 系统的拓扑结构

  城域网边界上的Quidway NE40E交换机根据前面描述的规则识别出异常的报文,将这些异常流量通过旁路镜像到分析器上。为了方便处理,提高效率,将流入和流出CERNET的攻击流量分成开分别通过不同的端口送到分析器,方便分开处理并提高处理效率。

  分析器对两个方向的流量分别进行分析,整理出攻击类型,如ssh扫描、ssh口令暴力破击等。同时将相关攻击信息存入数据库。另外通过定期读取数据库,提取出攻击次数最多的TOPN IP地址。对于外部进来的危险地址,将其写入黑洞设备当中,同时通过BGP协议,将上述IP地址在上海教育城域网范围内进行通告,及时阻断恶意地址的持续攻击。为确保系统的准确、可靠、及时、高效,系统还将提供web页面查询功能,方便上海教育城域网内用户及时了解相关阻断信息。

  本系统可以及时发现ssh等相关的攻击行为,可以显示攻击者来自境内还是境外,还原发生具体时间,评估影响范围。并通过安全网站通知相关学校进行处理因ssh攻击引起的安全隐患,维护上海教育城域网运行安全。

  分析器为一台DELL PowerEdge R730服务器,硬件配置情况是:两个Intel E5-2640v4处理器,主频2.4G,内存64G,运行的操作系统是Ubuntu16.04,内核版本4.4.0。该服务器可以根据后期的需要升级成更高配置的设备。其上的主要工作由下述几个部分组成:

  报文处理进程进程:capture,是该系统中最重要的部分。它长期运行,负责从内核接收边界设备镜像过来的报文并作分析处理,如果发现大量的突发报文,则说明有大量的突发流量,需要检查出此时的攻击来源并将其加入路由黑洞以达到阻止攻击的目的。

  process.sh是一段shell脚本,通过crontab每天定时调用。它会启动下面的readinfo进程完成对危险IP地址的封堵,并保存每天的分析结果已便后期管理和研究。

  处理危险攻击地址进程:readinfo,由上面的脚本调用,负责从报文处理进程的处理结果中整理出发动危险攻击的IP地址,并通过调用相关的 WEB 应用的PERL CGI脚本,将上述IP地址加入路由黑洞中。

  Apache服务器通过WEB页面显示当前系统的运行情况和阻止的危险IP地址列表,以方便管理和查询。

  通过上述各个部分协同工作,该系统可以实时检测出目前网络上的异常流量并作出相应的处理,很好的保护了网络内部各个服务器。下面分别介绍系统的各个部分。

来源:CERNET第二十三届学术年会论文集作者:周立聘 谢锐