CPot蜜罐系统在图书馆网络中的应用
朱晓东
湖南工业大学科技学院图书馆 株洲 412000
摘要

提出一种融合网络望远镜和入侵检测思想的分布式蜜罐CPot(Click-based honeyPot)。通过在外网联通的虚拟数字图书馆实验平台中部署CPot,在图书馆的安全系统中进行长达半年的测试,证明CPot具备监控范围广、捕获能力强、功能强大和安全性好等特点,经验证CPot可以极大地提高数字图书馆的安全性,在图书馆网络安全方面有较高的实用价值。

关键词: Click路由器; 蜜罐; 网络望远镜; 流量分析; 数字图书馆
中图分类号:G250.76
CPot Honeypot System in Library Network Applications
Zhu Xiaodong
Library of College of Science and Technology,Hunan University of Technology, Zhuzhou 412000, China
Abstract

The paper presents a distributed honeypot system CPot(Click-based honeyPot) which fuses network telescope and intrusion detection.The author deploys CPot in a virtual digital library which is connected to public network, and carries out half a year of test in library security system. The result proves that CPot can increase the security of digital library and has a high practical value in library security.

Keyword: Click router; Honeypot; Network telescope; Traffic analysis; Digital library
1 引 言

“蜜网项目组”的创始人Spitzner给出了蜜罐的定义[ 1]:蜜罐是一种安全资源,它的价值在于被扫描、攻击和攻陷。蜜罐是网络中的陷阱,用来吸引攻击者攻击,以获取攻击者和攻击方法的信息,因而如何吸引攻击者攻击和如何监控攻击成为蜜罐中的两个重要问题。传统的蜜罐系统在吸引攻击者和监控攻击方面都存在一些问题,如Honeyd[ 2]虽然功能强大,能够模拟多种网络服务和复杂的网络体系结构,监控多个IP,但其交互能力有限,获取的攻击信息较少;HoneyBow[ 3]虽能够与攻击者进行深层次的交互,但是监控的IP地址有限,扩展性不佳,难以吸引到大量的攻击,捕获能力有限。

为了解决传统蜜罐系统功能单一、监控能力有限的问题,引入网络望远镜(Network Telescope)[ 4]。网络望远镜的概念是由CAIDA(Cooperative Association for Internet Data Analysis)的Moore等提出,核心思想是收集未使用的IP或者端口的恶意流量,并进行分析。

基于蜜罐系统和网络望远镜各自的优点和作用,笔者提出了一种新的综合性的蜜罐系统CPot(Click-based honeyPot),借助于Click软件路由器[ 5]的强大路由处理功能和扩展性,结合网络望远镜和入侵检测的思想,综合网络望远镜和蜜罐系统的优点,能够监控多个网段的未使用IP,同时具备恶意流量捕获、检测与分析,恶意代码捕获及其行为监控与分析的功能,完整地分析出恶意攻击的整个过程。通过一段时间的试用,证明CPot蜜罐系统能为数字图书馆的网络安全提供新技术保障。

2 CPot系统结构

蜜罐需要提高吸引力,吸引更多的攻击,其次需要强大的监控能力保存完整的攻击步骤,还需要在检测不同攻击时用灵活的架构适应不同的攻击特点。因此CPot也实现了一种灵活的体系结构,实现了网络流量的高度可控、整体框架的模块化和高可扩展性。

2.1 CPot框架

图1所示,整个CPot由三部分组成:CPot前端、CPot控制器和CPot后台。

图1 CPot 完整框架

CPot前端借鉴了网络望远镜的思想,监控与搜集分散在多个网段中的未使用IP地址段的流量。支持两种实现方式:

(1)通过部署Honeyd,监控一段未使用的IP地址,并且将向这些未使用IP发送连接请求的可疑流量,通过代理的方式转发给CPot控制器,进行进一步的处理。

(2)IP Tunnel。通过监控一段未使用的IP地址,将发送到这些IP地址的连接请求通过IP封装转发给CPot控制器。CPot前端采用的网络结构,监控分散在多个网段的未使用IP地址段,扩大了CPot的监控范围,也提高了检测到恶意攻击的概率。

CPot后台采用高交互式虚拟机蜜罐系统,能够直接与CPot控制器转发过来的流量进行交互,并且通过在蜜罐中部署有漏洞的服务和监控工具,捕获恶意攻击对于蜜罐中文件系统、注册表等关键部分的改动,并产生日志,既保证了对攻击者的吸引力和深层次的交互,也保证了整个交互过程被完整监控下来,为进一步的分析提供依据。

针对蜜罐系统,基于Click的CPot控制器的主要优点为:

(1)不同用途的蜜罐往往需要特定的数据控制和监控功能。例如HIHAT[ 6]主要检测Web攻击,那么需要过滤其他服务,而CPot控制器可以通过不同的Click模块配置文件,灵活地改变模块组合达到不同的检测目的,一个简单的专门检测是否有PE文件传输到蜜罐的脚本如下:

FromDevice(eth1) //从网卡0截取网络流量

->fd_cl::Classifier(12/0800,-) //提取IP包

->Strip(14) //去除网卡封装

->CheckIPHeader //检查校验和

->ipc_eth1::IPClassifier(192.168.1.92,-) //提取特定IP的流量

->PEDetector //调用PEDetector组件,检测PE文件

->Discard; //丢弃

fd_cl[1]->Discard; //丢弃其他类型的流量

ipc eth[1]->Discard; //丢弃其他IP的流量

(2)有些蜜罐体系结构中,控制器使用入侵检测系统(Intrusion Detection System,IDS)来实现,例如Honeyfarm[ 7],然而一般的IDS误报率和漏报率较高,反应速度较慢,部署和配置较复杂,缺乏灵活性,CPot控制器相对于IDS来说,具备很强的扩展性和灵活性,能够根据用户的需求添加组件,然后通过修改配置文件来实现用户的需要,更有针对性。此外,CPot控制器能够方便地对流量进行处理,比如过滤、封装、IP改写、重定向转发等,能够实现对流量的高度可控,更加安全。为了实现对各种数据流量的处理,笔者开发了两个简单的模块,实现检测功能。

2.2 流量预处理模块

图2所示,流量预处理模块的主要功能是接收CPot前端捕获的可疑流量,然后进行过滤和转发。

图2 流量预处理模块功能

由于CPot控制器的网卡上收到的数据不是全部来自CPot前端,即使来自于CPot前端,也有一些数据是网络故障导致的错误或者其他一些无关的流量,因此可以借助于流量预处理模块对这些流量进行过滤,只将感兴趣的恶意流量转发到高交互蜜罐上进行进一步的交互。

2.3 端口扫描模块

一般来说,扫描行为是攻击行为的前奏,因而,检测攻击行为,可以从检测扫描行为入手,进而找出攻击的整个过程。本文对于端口扫描行为采用了两种检测方式,传统的基于连接频率的扫描检测和文献[8]中提出的序列假设验证 (Sequential Hypothesis Testing,SHT)算法。通过将端口扫描检测产生的告警和恶意代码检测与捕获模块产生的告警信息进行关联,可以得到攻击的过程和意图。

3 CPot系统关键技术实现
3.1 Click

CPot的核心部分是CPot控制器,它既可以实现部分攻击监控,又能够实现CPot灵活可变的结构。主要原因是CPot基于软件路由器Click来开发。

Click[ 5]是麻省理工学院计算机学院的Kohler博士提出的,Click具备模块化编程,能够灵活地配置和管理路由。Click是由进行包处理的模块组成,这些模块被称为组件。单一的组件能够实施简单的路由功能,比如说过滤、排队和与网络设备交互等功能,目前Click中已经包含了200多个基本模块。Click之所以易于配置就在于用户可以选择不同的组件组合来满足自己的需要。Click还具备良好的扩展性,用户能自己编写组件,编译到Click软件路由器中。Click是开源的,是基于Linux由C++编写的,能够方便地从C++程序修改到Click中,用户能够很容易地编写出自己的Click组件。

Click相当于用C++编写出来的一个个接口,通过调用这些接口,用户能够很容易地实现自己的需求,对流量进行捕获、分类、重定向等,使得路由器的路由功能能够按照用户的意愿进行。

正是因为Click是一种软件路由器,对于流量处理非常方便,而且具备模块化、可扩展的特点,因此选用Click来设计整个框架和各个主要功能模块。

为了实现对各种恶意流量的检测,笔者开发了两个专有功能模块,实现流量的检测。

3.2 恶意代码检测

很多攻击行为都包含恶意代码副本的上传下载,因此通过检测可疑流量的负载,判断是否存在可疑文件的上传或下载,就可以检测出攻击行为,而大多数的恶意代码样本为PE文件,因此,本文以PE文件的检测作为实验测试的标准。

恶意代码检测主要包含两个部分:规则集的定义与构造和规则的匹配。类似于Snort,本文所设计的规则也分为规则头和规则选项两个部分,相对于Snort庞大的规则库和众多的规则选项,本文所设计的规则只用于进行恶意代码特征码的匹配,因而更加简单。

通过编写一个自动转换程序,提取ClamAV病毒库中包含的所有可执行文件类型的病毒特征码,构建符合上述形式化定义的规则,总计包含规则48 617条。简单实例如下:

alert TCP(rank:2; msg:"Trojan.2222"; content:"|2669e8|"; offset: 2222; depth:222; content:"G|FF 04 1F|G|FF 04 1F|G|FF 04 1F|G|FF 04 1F|" ; offset:2; depth:200;)

利用ClamAV病毒库构建恶意代码的特征码规则集,采用BM算法与可疑流量的负载进行匹配,检测网络中恶意代码的上传下载行为以及匹配的恶意代码名,产生告警信息。

3.3 恶意代码捕获

蜜罐系统中的一切活动都是可疑的,因此,如果在与高交互蜜罐进行交互的可疑流量中发现了文件的上传下载行为,则很有可能是恶意文件的上传与下载,通过直接从恶意流量中提取负载进行重组,能够得到原始的恶意文件副本,比传统的对于文件系统的监控捕获效果更佳,因为这种方式能够捕获到那些攻击未完成或者未成功的恶意代码的片段,并产生告警信息。

本文针对PE文件添加了PE文件捕获模块,将每次会话按照(src IP, src port, dst IP, dst port, protocol, ack num)6元组来区分,然后根据序列号来重组数据包,直接从流量中提取负载,重新构建恶意文件。长达半年的实验表明,捕获的可疑文件中多数为恶意代码副本以及可能的恶意代码样本的片段,比简单监控文件系统更为有效。

总体而言,借助于Click,能够对网络流量进行处理和转发,具备高度的可控性和安全性,此外,通过编写Click组件和修改Click配置文件,可以按照实际的需求修改CPot的控制器组件,从而具备了高度的扩展性和灵活性。

4 实验与分析

为了验证与评估CPot的有效性,搭建一个简单的CPot测试环境,进行了为期半年的数据采集与分析工作。

4.1 实验环境搭建

图3 测试系统环境

图3所示,笔者对测试环境进行长时间的测试与分析。CPot前端、CPot控制器和CPot后台都具备高度的可扩展性,在实际需要时都可以进行添加和扩展,形成真正的结构。

CPot前端主机和CPot控制器主机上安装的都是Linux操作系统,CPot后台的高交互蜜罐则采用Windows XP SP1虚拟机。

在CPot前端上,安装Click软件路由器,采用网络望远镜的思想,监控4个未分配的IP地址,通过IP Tunnel的方式将流量转发到CPot控制器上,并且使用Honeyd产生入口流量的统计信息日志(不响应外部请求)。

CPot控制器上安装Click软件路由器,并且编写了4个组件,分别进行流量预处理、端口扫描检测、恶意代码检测与恶意代码捕获。

蜜罐监控功能和工具,如表1所示:

表1 蜜罐监控

在高交互式蜜罐上,安装一个虚拟数字图书馆,其中包括ILAS图书馆集成管理系统、CALIS文献保障系统等几个虚拟模块,组成简单又相对完整的虚拟数字图书馆。

4.2 数据流分析

笔者按天搜集了每日的可疑流量,从进入流量整体特征、流出流量特征、扫描行为特征以及风险评估4个方面进行分析,结果如下:

(1) 进入流量分析

监控的IP地址段位于教育网内部,所以流量相对较少,分析入口流量的整体特征。2010年1月的典型入口流量,如图4图5所示:

图4 2010年1月每日入口流量包数量

图5 2010年1月每日入口流量字节数

图4显示的是2010年1月捕获到的进入的恶意流量的典型示意图。周中流量比周末要多,白天比夜晚多,经过分析认为:休息日和晚上很多被感染主机没有开启,因而捕获到的流量减少。此外,虽然在恶意流量中,UDP占据了一定的比例,但是实际上通过UDP进行传输的信息很少,相对于TCP几乎可以忽略不计,这与TCP和UDP的连接特性有关,TCP是可靠传输,而UDP是不可靠的,一般来说,恶意样本代码都不会超过1MB,比较小,攻击者多数通过TCP协议来进行恶意代码的传输。综合比较图4图5,发现由于TCP包的长度相对固定,TCP包的个数和传输字节数存在一定的对应关系,UDP则没有这种必然联系。因此,TCP包传输的数量也在一定程度上暗示了当天恶意行为的活跃程度。而表2给出了恶意流量2010年5月11日发起连接的目的端口的Top10,从这里可以发现攻击者比较感兴趣的端口,也是需要重点关注的端口。

表2 2010年5月11日To P10 目的端口

(2) 反向流量分析

根据蜜罐系统的定义,蜜罐系统的一切行为都是可疑的,正常情况下,蜜罐系统应该是没有任何行为的,因此由蜜罐中向外发送的反向流量都是值得怀疑的。反向流量既有可能是对外部扫描或者攻击行为的应答报文,也有可能是蜜罐系统在感染之后向外发送的连接请求,不管是哪一种,都是可疑的。2010年5月11日的反向流量类型统计,如表3所示:

表3 2010年5月11日反向流量

表3中可以推测出:

①RST报文。大量的RST报文表明蜜罐系统可能收到了大量的非法连接。

②SYN_ACK报文。大量的SYN_ACK报文说明外界与蜜罐系统大量建立TCP连接,很有可能是攻击者在向蜜罐系统上传恶意代码样本。

③ACK报文和SYN报文。表明蜜罐系统在向外发送大量的TCP连接请求。

④标志位为ACK/RST的TCP包。这种包很有可能是伪造IP发动的SYN Flood攻击的响应报文。

⑤SYN报文。大量的SYN报文预示着蜜罐系统在向外发送大量的扫描连接,很可能表明蜜罐系统已经感染了蠕虫,在尝试进一步感染其他主机。

⑥ICMP包的非正常响应。表3中出现了4类ICMP可疑报文,其中ICMP_PORT_UNREACHABLE说明攻击者在扫描蜜罐中未开启的端口;ICMP_TTL_EXCEEDED则可能是初始TTL很短的DoS攻击造成的。

(3)风险分析

CPot的另外一个重要功能是能够对系统所处的网络环境进行风险分析,给出目前网络风险比较高的区域以及攻击来源,如图6图7所示:

图6 2010年1月源IP分布

图7 2010年1月排名前10源IP

以2010年1月的数据为例,如图6所示,对于当前网络最大的威胁来自于国内,其次是一些非正常IP,主要是IANA保留IP,其中来自于IANA保留IP地址的这些流量都是十分可疑的,很可能是攻击者伪造成IANA保留地址对当前网络进行攻击行为。接下来的是其他一些国家和地区,图6从一定程度上表明了两个问题,一是这些国家和地区被病毒、木马或者蠕虫感染的可能性相对较高,另一方面也可能是这些国家和地区的攻击者在对实验网络进行扫描或者其他攻击行为。

由于监控的地址段正好处于211.XX.XX.1/24网段中,因此,从图7可知,来自网络中的威胁主要来自于同一C类网段,后来经过检测发现,出现在TOP10中的源IP除了211.XX.XX.73存在误操作导致发送大量的ICMP包外,其他IP的主机均感染了Conficker蠕虫病毒,从而不断地扫描同一网段内的IP地址,意图感染其他主机,产生了大量流量。综上可知:

①CPot具备强大的网络风险评估功能,而且由于CPot的可扩展性,使得CPot具备成为分析大型网络环境的安全风险的能力。

②数据表明,网络中的风险更多存在于邻近网络,特别是同一C类网段内,因此,为了保护图书馆网络的安全,需要管理人员对整个网络内部的所有主机进行防护,尽量避免短板出现。

有一个值得特别关注的现象,来自国内的威胁中很大一部分是企图通过植入木马来突破IP权利限制,入侵虚拟图书馆以批量下载学术论文。

对这种情况笔者进行了专门分析,发现入侵者企图下载的论文学科分类很广,经管文法、工程技术、农牧医药无所不包。入侵IP来源分布全国,入侵者使用的技术手段却相对单一,入侵流程有公式化、模块化的特征。

可以推断,出现了专门针对图书馆的流氓软件。这种软件把对图书馆的网络攻击由一般的特例行为上升到普遍行为,降低了对图书馆网络攻击的技术门槛,极大地增加了图书馆网络的威胁,严重影响数字出版物的网络版权。

4.3 恶意代码捕获性能分析

为了评估CPot的恶意代码捕获能力,同时部署了高交互蜜罐HoneyBow和CPot。如表4所示,为便于比较,选取2010年5月第一周的统计记录。

表4 2010年5月第一周恶意代码捕获性能比较(NOD32检测)

表4可知,一周的恶意代码捕获统计结果表明,CPot与HoneyBow相比,无论是在捕获恶意代码次数还是在捕获恶意代码个数方面都具备很大的优势。原因主要在于HoneyBow只能监控在指定文件目录中成功上传的恶意样本,而且当攻击者贡献蜜罐主机时,HoneyBow中捕获的恶意代码可能会被删除,而CPot能够监控更大的网络范围,捕获到更多的攻击,而且CPot直接从网络流量中提取恶意代码,能够捕获到成功上传的恶意代码样本或者片段,不用担心蜜罐被攻击者攻陷的问题,捕获能力更强。

5 结 语

本文借助于Click软件路由器的强大路由处理功能,将网络望远镜和入侵检测的思想融入到蜜罐技术中,解决了蜜罐技术中如何吸引攻击和如何监控攻击的两个难题,相较于传统蜜罐Honeyd、HoneyBow等,具备监控范围广、捕获能力强、高度可控、安全性好和可扩展性高等特点。这些特性对于发展迅速的高校数字图书馆而言,具有十分重要的使用价值,能极大地增强数字图书馆网络的安全性。

The authors have declared that no competing interests exist.

作者已声明无竞争性利益关系。

参考文献
[1] Spitzner L. The Honeynet Project: Trapping the Hackers[J]. IEEE Security & Privacy, 2003, 1(2): 15-23. [本文引用:1] [JCR: 0.962]
[2] Spitzner L. Honeypots: Tracking Hackers[M]. 邓云佳译. 北京: 清华大学出版社, 2004. [本文引用:1]
[3] Zhuge J, Holz T, Han X, et al. Collecting Autonomous Spreading Malware Using High-Interaction Honeypots[C]. In: Proceedings of the 9th International Conference on Information and Communications Security. Berlin, Heidelberg: Springer-Verlag, 2007: 438-451. [本文引用:1]
[4] Moore D. Network Telescopes: Observing Small or Distant Security Events[EB/OL]. [2010-12-25]. http://www.caida.org/publications/presentations/2002/usenix_sec/. [本文引用:1]
[5] Kohler E. The Click Modular Router[EB/OL]. [2010-12-25]. http://www.pdos.lcs.mit.edu/papers/click:kohler-phd/thesis.pdf. [本文引用:2]
[6] Müter M, Freiling F, Holz T, et al. A Generic Toolkit for Converting Web Applications into High-Interaction Honeypots[EB/OL]. [2010-12-25]. http://people.clarkson.edu/~jnm/publications/honeypot-raid2007.pdf. [本文引用:1]
[7] Vrable M, Ma J, Chen J, et al. Scalability, Fidelity and Containment in the Potemkin Virtual Honeyfarm[C]. In:Proceedingsofthe2005SymposiumonOperatingSystemsPrinciples.NewYork,NY,USA:ACM, 2005: 23-26. [本文引用:1]
[8] Jung J, Paxon V, Berger A W, et al. Fast Portscan Detection Using Sequential Hypothesis Testing [C]. In: Proceedings of the IEEE Symposium on Security and Privacy, Berkeley, California, USA. 2004: 211-225. [本文引用:1]