APP下载

一种数据捕获策略的研究与实现

2017-04-15赵新伟

电脑知识与技术 2016年34期
关键词:入侵检测蜜罐网络安全

赵新伟

摘要:近年来,网络安全问题日益严重,针对网络攻击方与防御方存在着不对称的技术博弈问题,提出一种利用sebek技术实现数据捕获的改进方案。该文首先详细分析了sebek的特点﹑工作原理和实现机制,通过调试发现运行中的缺陷并给出解决方法,然后进行验证,对sebek在windows下的运行流畅性进一步优化,在此基础上,实现了利用sebek在蜜网中进行数据捕获的方案。实验结果表明,该方案能够有效的捕获网络中的入侵行为,实现了数据捕获功能,为下一步的数据分析提供依据。

关键词:sebek;数据捕获;蜜罐;入侵检测;网络安全

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)34-0072-04

Abstract: In recent years ,network security problem becomes more and more serious,for the question of the network attack side and defense side existing asymmetric technology game ,the paper proposes a modified solution of realizing data capture by sebek technology. At first this paper tries to analyse the characteristics, working principle and the implementation mechanism of sebek in detail,through debugging finds out defects and gives the solution in operation, and then verifies the solution, by optimizing further, sebek can run smoothly under windows system.Based on that, the paper implements the proposal of data capture by sebek technology in honeynet .The experimental results show that the proposal can effectively capture the invasion behavior in network,realizes the function of data capturing, and provides the basis for next data analysis.

Key words: sebek ; data capture ; honeypot ; intrusion detection ; network security

1 概述

近年来,网络安全形势日益严峻,平均每20秒就发生一次入侵计算机网络的事件。网络攻击方与防御方存在着不对称的技术博弈问题[1],攻击方只要在任何时间找到目标的一个漏洞就能攻破系统,而防御方必须确保系统不存在任何可被攻击者利用的漏洞,并拥有全天候的监控机制,才能确保系统的安全。

为了解决这个问题,蜜网项目组[2](the Honeynet Project)提出了诱骗的概念,即在一个可控的网络环境中,诱骗入侵者进行入侵,在入侵者没有察觉的情况下对入侵行为进行捕获,分析入侵者的意图,并让入侵者一无所获,从而避免损失。

2 相关工作

利用sebek在蜜网中实现数据捕获是蜜网项目组提出的一种关键的数据捕获方案,sebek是由蜜网项目组(the Honeynet Project)在2001年至2003年间开发的用于数据捕获的内核模块,该模块常被用于蜜网中实现数据捕获功能,也可以单独使用,国內对其研究较少,大多数是针对蜜网的研究,如由北京大学诸葛建伟博士主持的狩猎女神项目组[3],多年来一直专注于蜜网技术及其应用研究,取得了很多成果,但是针对sebek的特点﹑工作原理和实现机制研究较少。

本文详细分析了sebek的特点﹑工作原理和实现机制,进而通过调试发现了源码中的缺陷并给出解决方法,然后进行验证,在此基础上,实现了利用sebek在蜜网中进行数据捕获的解决方案并进行了测试。

3 sebek关键技术分析

sebek是运行在内核空间的一段代码,它能记录系统用户存取的一些或者全部数据,具体包括:记录加密会话中的击键,恢复使用SCP拷贝的文件,捕获远程系统被记录的口令,恢复使用 Burneye保护的二进制程序的口令等。

3.1 数据封包模块

sebek体系结构如图1所示,客户端部署在蜜网体系结构的蜜罐中,服务端部署在蜜网网关上,数据捕获并且封装成数据包是在客户端实现的,当外部入侵者通过internet连接入侵了装有sebek客户端的蜜罐A主机时,蜜罐A主机中的sebek会在入侵者没有察觉的情况下捕获外部入侵行为,然后把捕获的入侵数据封装成数据包通过局域网传给蜜网网关,在蜜网网关中装有sebek的服务端程序,它截获客户端发来的数据包并对外部入侵行为进行分析。

通过分析发现,sebek重定向了系统调用,把原有的系统调用函数替换成自定义的函数,这个新的函数再来调用原有的系统调用函数,并把原有系统调用函数读取的数据记录下来,然后在WritePacket函数中实现数据的封包,图2为sebek数据包的包头结构[4],关键字段的数据类型和功能如表1所示。

sebek数据包的包头部分除了上述结构以外还要再添加上IP/UDP头,因为传输的过程中采用的是无连接的udp传输,包头的后面跟的是捕获的入侵行为数据,数据包的捕获的实现方法采用的是经典的hook技术,它修改了系统的函数调用入口点,把函数调用地址替换成自己的函数地址,从而使系统执行自定义的函数,完成数据捕获的功能。

3.2 数据包的传输

在捕获入侵行为数据后,还要以隐蔽的方式把数据传输到服务器端以供分析使用,sebek没有采用套接字传输,因为套接字传输是在应用层实现的,很容易被外部入侵者察觉,它采用的是协议驱动的形式实现传输的,图3为windows网络架构图,从下到上依次为网卡硬件﹑总线﹑NDIS(网络驱动接口标准)﹑protocol drivers(协议驱动)﹑Tdi clients(传输驱动接口客服端)﹑Network application(网络应用层)。

图3中NDIS[5]为1989年由Microsoft和3Com联合开发的网络驱动接口标准,使得协议驱动程序可以以一种与设备无关的方式来跟网络适配器驱动程序进行通信,极大地方便了网络驱动程序的编写,遵从NDIS的网络适配器驱动程序称为NDIS minport driver,NDIS支持三种类型的网络驱动程序:

网卡驱动程序(NIC drivers):网卡驱动程序是网卡与上层驱动程序通信的接口, 它负责接收来自上层的数据包,或将数据包发送到上层相应的驱动程序, 同时它还完成处理中断等工作。

中间驱动程序(Intermediate protocol dirvers):中间驱动程位于网卡驱动程序和协议驱动程序之间,它向上提供小端口(Miniport)函数集, 向下提供协议 (protocol)函数集,因此对于上层驱动程序而言,它是小端口驱动程序。对于底层的驱动程序,它是协议驱动程序。

协议驱动程序(Upper level protocol drivers):协议驱动程序执行具体的网络协议,如IPX/SPX、TCP/IP等。协议驱动程序为应用层客户程序提供服务,接收来自网卡或中间驱动的信息。

sebek的数据传输采用的就是协议驱动的形式,这种传输是在内核层实现的,因而相对于socket传输而言,隐蔽性和安全性更好。通过分析还可以发现,在数据传输前,sebek要判断数据包的长度是否超过最大数据传输单元(MTU),如果超过了就自动进行截断处理,每一部分再加上包头,分别进行传输,所有的准备工作就绪后,调用NdisSendPackets函数实现数据包的发送。

3.3 服务端数据接收

当把数据包传到局域网中以后,为了实现更好的隐蔽性,sebek采用一种机制使得同一蜜网体系中其它装有sebek蜜罐的主机不能检测到该数据包,只有服务器端能检测到,而且数据包的传输只能是单向的,即只能从客服端传输到服务器端,反之则不能传输,实现这一机制的方法是sebek定义了一个通用的协议,客户端和服务端的通信通道是单向的,这个通道使用udp协议,每个数据包除包含udp头以外还有一个sebek头部数据,在sebek头中定义了一个Magic成员,具体的数据包传输过程中的算法为:

while(蜜罐A的sebek数据包传输到蜜罐B时)

if ( 蜜罐B的Magic值=数据包中的Magic值)

蜜罐B主机丢弃该数据包

while(蜜罐A的sebek数据包传输到蜜网网关时)

if(数据包中端口号=网关预定义的端口号&&数据包中的Magic值=预定义的

Magic值)

蜜网网关接收数据包并处理

采用这种机制的好处是即使外部入侵者攻陷蜜网后,企图利用攻陷的蜜罐主机来截获另一个蜜罐主机发送的数据包也不能实现,并且由于除了端口号以外,又引入了Magic成员,提高了暴力检测的难度。

当蜜罐主机发送的数据包到达蜜网网关处时,装有sebek服务端的蜜网网关可以直接从网卡捕获该数据包,此外还可以从tcpdump日志文件中获取,该日志文件是系统捕获的所有网络数据文件。

3.4 抗检测性

sebek一個重要的特点就是在外部入侵行为不知不觉的情况下捕获入侵行为,如果外部入侵行为攻陷了蜜罐主机后发现了它的存在,就会终止入侵行为从而使数据捕获不能继续,所以抗检测性是它非常重要的功能,为了实现这个功能,采取了如下措施:

1) 采用了诸如Adore等基于LKM的rootkit的技术,使自身更难于被发现。

2) 通过安装cleaner模块来隐藏sebek,该模块把sebek从安装链表中删除,删除以后蜜罐主机中不再显示安装有sebek,并且不能删除,提高了抗检测性。

4 调试

为了验证sebek的功能,我们对其进行调试运行,sebek是运行在内核空间的一段代码,最初是在linux上运行的,后来被移植到windows等其它的操作系统中,我们以在windows上运行的版本为例,由于其是以驱动的形式存在的,编译驱动有两种方式,一种是通过集成开发环境诸如VC或visual studio和ddk配合来编译,一种是直接通过ddk[6]来编译,前者通过集成开发环境编译,优点是便于修改和发现错误,符合大多数习惯集成开发环境的人们,缺点是需要一系列的配置。后者优点是不用安装集成开发环境且不需要配置,可以直接编译,缺点是脱离了集成环境后不便于调试。

这里采用的是直接使用ddk来编译的方式,ddk有windows 2000 ddk,windows xp ddk和windows 2003 ddk,这里我们采用的是windows xp ddk。此外为了加载编译好的驱动文件并显示该驱动程序在内核空间的行为,还需要借助一些工具才能实现,因为驱动程序和普通的程序区别就是它是在内核空间运行,这里我们采用的工具是KmdManager[7]和Dbgview[8],KmdManager是一个免费的加载驱动程序的小工具,而Dbgview能够捕获内核空间的行为并且可以把捕获的数据保存到一个日志文件中,通过对该日志文件的分析,我们可以清楚地查看到驱动程序在内核空间的运行情况。

4.1 实验过程

使用ddk编译sebek客户端程序,會生成一个sebek.sys文件,接下来,为了加载该驱动文件并查看运行后该程序在内核空间的行为,我们使用KmdManager来进行加载,使用Dbgview捕获内核空间行为,实验如图4所示和图5所示,图4显示了被加载和运行的过程,图5显示了加载后该驱动在内核空间的行为。

4.2 对蓝屏的解决方法

在对sebek客服端程序进行调试的过程中发现启动程序以后总是蓝屏,经过调试发现问题在于抗检测模块Antidetection.c模块中FindPsModuleList函数的问题,文献[9]中给出了一种方法,但是并没有彻底解决问题,客服端端程序仍不能运行,本文在此基础上进一步完善,消除了蓝屏现象,具体算法为:

If(系统运行在windows2000中)

模块列表头指针pModuleListStart赋值为驱动对象pDriverObject在内存中的偏移量

else if(系统运行在windows xp or 更高版本)

pModuleListStart赋值为驱动对象pDriverObject+0x14

If(pModuleListStart指针为空)

{

直接返回

pModuleListStart赋值给指向模块列表的指针

}

while(pModuleListStart->lModuleList.Flink 不指向模块列表指针时)

{

If(pModuleListStart->unk1等于0)并且pModuleListStart驱动路径长度为0)

返回pModuleListStart指针的值

}

返回pModuleListStart指针的值

5 系统需求分析

要设计一个支持sebek进行数据捕获的应用系统,通过该系统可以捕获蜜罐主机上的击键信息,进而分析击键行为,验证sebek的功能,从而实现利用sebek在蜜网中进行数据捕获的解决方案。

其次,由于sebek是在不断的完善过程中,最新版本为sebek 2,以后还会进一步完善,因此设计的系统要具有良好的可扩展性和可维护性,Sebek的实现包括客服端和服务端,因此我们首先要搭建一个蜜网体系结构,然后在该体系结构中部署sebek,并测试sebek的功能。

基于以上分析,提出一种采用基于vmware的虚拟蜜网的体系结构来部署sebek并进行测试的方案,如图6所示,利用vmware虚拟了三个系统,利用虚拟的windows 2000系统作为攻击方,虚拟的windows xp作为蜜罐主机,虚拟的linux系统作为网管。

6 系统设计

sebek是蜜网体系结构中核心的数据采集模块,因此我们把它部署在蜜网中来检测其功能,Honeynet Project(蜜网项目组)提供了一些关于部署Gen III(第三代蜜网)的一般性文件,对任何想使用honeywall Roo和VMware构建虚拟蜜网的个人或组织提供了一个可参考的模板。

此外,北京大学诸葛建伟[10]等人提出了基于第三代蜜网的VNet网络攻防实验环境构建,本文实验参考了该方案,实验是在一台三星笔记本电脑上完成的,该设备只有一个网卡,可以利用VMware再虚拟出另外两个网卡以供使用。虚拟环境搭建好以后,首先要配置蜜网网关,由于篇幅关系,本文不再详述,读者可以参考相关资料,蜜网网关[11]配置好以后,还要在蜜罐主机上安装sebek客服端程序代码,由于蜜网网关上已经装有sebek服务器端的程序,因此不需要再单独安装服务器端程序。

实验结果如图7和图8所示,记录了sebek服务端捕获的蜜罐主机上的活动信息,首先,图7中上部红线框内捕获的数据含义为在IP地址为192.168.200.124的蜜罐主机上,点击开始菜单,在运行对话框里输入了cmd.exe命令,并且记录该命令的版本号,其次,中间红线框内的数据含义为在同一IP地址蜜罐主机上向IP地址为192.168.200.2的主机发起了ping连接,最后一个红线框内的数据含义为IP地址为192.168.200.2的主机向IP地址为192.168.200.124的蜜罐回复了连接信息,表示两者之间的网络是联通的,此外从捕获的数据中还可以看出蜜罐上每一个活动的时间信息。

图8中红线框内的数据含义为在测试了连通性以后,sebek服务端捕获了在蜜罐主机上通过dir命令搜索本地文件信息的记录,具体为首先通过cmd.exe命令打开命令行窗口,然后通过DIR命令扫描C盘文件信息,具体扫描到的文件和文件夹分别为ASFRoot﹑Inetpub和ftpdir﹑Documents and Settings﹑Microsoft UAM﹑Program Files及WINNT,同样服务端也捕获到了具体的时间信息。

由此可见,通过部署sebek这一重要的数据捕获工具,在蜜网网关上收集到了蜜罐主机上的入侵信息,从而为数据分析提供了依据。

7 总结

本文在分析sebek特点﹑工作原理和实现机制的基础上,设计并实现了利用sebek在蜜网中进行数据捕获的改进方案,针对sebek客服端程序在windows系统上运行时暴露出的缺陷,采取方法加以完善,使其能更好的运行在windows系统上,实验结果表明,该方案能够有效的捕获蜜网中的入侵行为,从而为在蜜网中进行数据分析提供了依据。

参考文献:

[1] 诸葛建伟,唐勇,韩心慧,等.蜜罐技术研究与应用进展[J].软件学报,2013,24(4): 825-826.

[2] The Honeynet Project[EB/OL]. (2014-02-02).http://www.honeynet.org.

[3] 諸葛建伟.狩猎女神的前世今生[EB/OL]. (2014-02-02).http://netsec.ccert.edu.cn/zhugejw/2011.

[4] lance.spitzner. Know Your Enemy: Sebek[EB/OL]. (2008-12-08). http://www.honeynet.org/papers/sebek.

[5] 网络驱动接口规范 baodi_z.网络驱动程序接口规NDIS[EB/OL]. (2008-02-21).http://blog.csdn.net/baodi_z/article/details/2110917.

[6] speedingboy. DDK开发介绍[EB/OL]. (2013-09-17). http://blog.csdn.net/speedingboy/article/details/3035131.

[7] 灰狐. Windows驱动学习笔记[EB/OL]. (2013-03-12).http://wenku.baidu.com/view/fbcd721cfad6195f312ba63e.html.

[8] Bactq. 关于Dbgview的使用[EB/OL]. (2007-03-28).http://blog.sina.com.cn/s/blog_7359f2100100onth.html.

[9] EastCoke. Sebek源码修正档[EB/OL]. (2011-05-31).http://blog.csdn.net/eastcoke/article/details/6456012.

[10] 诸葛建伟解决方案.网络攻防环境搭建[EB/OL]. (2012-06-24).http://www.docin.com/html.

[11] 吴智发,张芳芳.第三代蜜网网关Roo介绍[EB/OL]. (2010-05-18). http://wenku.baidu.com/view/76859cf3f90f76c661371a 55.html.

猜你喜欢

入侵检测蜜罐网络安全
被自己撑死的蜜罐蚁
网络安全
网络安全人才培养应“实战化”
基于博弈的蜜罐和入侵检测系统最优配置策略
上网时如何注意网络安全?
哈密瓜:乡间蜜罐