基于LINUX蜜网(Honeynet)的防御系统

基于LINUX蜜网(Honeynet)的防御系统

随着Internet的高速发展,个人、企业以及政府部门越来越多地依靠网络传递信息,然而网络的开放性与共享性使它正遭受着来自黑客、脚本编辑者所带来的巨大的安全威胁,分布式拒绝服务攻击、被控主机敏感信息的窃取,严重地影响了网路的正常工作,一个安全可靠的防御网络成为现在安全领域的一个热点。究其根源,是攻击者与防御者之间在进行着一场不对称的博弈,特别是信息上的不对称,攻击者可以利用扫描、探测等一系列技术手段全面获取攻击目标的信息,而防御者对他所受到的安全威胁一无所知,即使在被攻陷后还很难了解攻击者的来源、攻击方法和攻击目标,蜜网技术就是为了扭转这种不对称局面而提出的。

1 蜜网技术原理

蜜网技术实质上仍是一种蜜罐技术,是一种对攻击者进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务以及信息诱使攻击者对他们进行攻击,减少对实际系统所造成的安全威胁。但蜜网有其自身特点:首先,蜜网是由多个蜜罐以及防火墙、入侵防御系统、系统行为记录、自动报警、辅助分析等一系列系统和工具所组成的一整套体系结构,这种体系结构创建了一个高度可控的网络,使得安全研究人员可以控制和监视其中的所有攻击活动,从而去了解攻击者的攻击工具、方法和动机。其次,蜜网是一种高交互型的用来获取广泛的安全信息的蜜罐,高交互意味着蜜网是用真实的系统,应用程序以及服务来与攻击者进行交互。

蜜网体系结构具有三大关键需求:即数据控制、数据捕获和数据分析。数据控制是对攻击者在蜜网中对第三方发起的攻击行为进行限制的机制,用以降低部署蜜网所带来的安全风险。最大的挑战在于对攻击数据流进行控制而不能让攻击者怀疑:我们必须要给攻击者一定的自由度,允许他们做大部分“合法”的事情,比如从网络上下载入侵工具包等,这样才能获取信息,学习他们的攻击方法,但是要拒绝所有攻击其它机器的行为,这就需要一个自由度和安全性的权衡。数据捕获,即监控和记录攻击者在蜜网内的所有行为,最大的挑战在于要搜集尽可能多的数据,而又不被攻击者所察觉。数据分析则是对捕获到的攻击数据进行整理和融合,以辅助安全专家从中分析出这些数据背后蕴涵的攻击工具、方法、技术和动机,在分布式部署的蜜网体系中,还存在着将多个蜜网中捕获数据进行安全地传输到一台中央服务器,并进行集中化分析的分布式数据收集需求。

2 基于LINUX蜜网的防御系统的实现

本系统中使用IP分布如下:


Name       |Type          |IPorGroupitems      |Description
Firewall   |Workstation   |10.10.14.11         |honeynetadministrator
Roxen      |Workstation   |10.10.14.20         |runningtheRoxenwebserver
DNS        |Workstation   |10.10.14.23         |DNSserver
Apache     |Workstation   |10.10.14.30         |webserver,vulnerabiliable
      Honeynet   |Group         |Roxen+DNS+Apache    |Theseareourhoneypots


本honeynet没有故意留下了漏洞,但可以通过Apache能够给用户一个nobodyshell,再使用EOE防止普通用户成为root,这样限制了攻击者所能做的事。在此基础上增加策略:

(1)有主机都可以通过ssh或MYSQL连通/firewall;

(2)有主机都可以连接到honeynet这个组;

(3)honeynet允许连接到任意主机;

(4)除了以上之外,所有的通信都被拦截;

(5)所有防火墙允许通过的数据都记录。

因此策略可以有下面四条:


Num Source   Destination     Service     ActionLog
00           Firewall        sshorMySQL  AcceptLog
01           honeynet        any         acceptlog
02           honeynet        any         anyacceptlog
      03           other           any         droplog


进行日志服务器配置

日志服务器数据库采用MYSQL,首先在MYSQL中建立snort和ssyslog的用户并分别给他们对各自数据库的INSERT,DELETE,USAGE,SELECT权限方法如下:


Echo CREATE DATABASE snort; | mysql – u root - pmypass
      mysql> grant INSERT,SELECT on snort.* to root@* ;


入侵检测系统配置

作为一个Honeynet,有大量的数据需要手工分析,IDS在这里可以起到很大的帮助。主机型入侵检测系统往往以系统日志、应用程序日志等作为数据源,它保护的一般是所在的系统。网络型入侵检测系统的数据源则是网络上的数据包。往往将一台主机的网卡设于混杂模式(promiscmode),监听所有本网段内的数据包并进行判断。一般网络型入侵检测系统担负着保护整个网段的任务。作为Honeynet,从目的考虑,我们需要捕获网络及主机上的所有信息。这时主机IDS的必要性不是非常明显,所以主机只要能够阻止用户执行shell或者成为超级用户就可以了。网络层使用snort作为入侵检测的记录工具。

主机IDS:EyeonExec如我们上面所说的,EyeonExec就是一个阻止用户执行shell或者成为超级用户的微型HIDS,它可以在发现这样的企图后报警,并且发送mail给系统管理员。
网络IDS:Snort

把snort配置为记录所有连接情况,HoneynetProject提供了一份snort.conf文件,在此snort一是充当了嗅探器的作用,不用再加载一个sniffer,这样可以减轻系统负载;二是一旦snort没有发现攻击特征,我们还可以通过连接记录的情况来发现入侵企图。

配置VirtualHoneynet

虚拟Honeynet通常依靠某些模拟软件,在一个操作系统上同时运行几个虚拟的系统,User-Mode-Linux来实现在Linux中运行Linux的功能,创建内核通常加上“ARCH=um”,比如你用makex config,现在就需要用make xfocus ARCH= um,然后“make dep ARCH=um”、“make linux ARCH=um”,编译完成后你会得到一个名为“linux”的可执行文件。

创建root file system文件,并以此作为UML的启动参数。可以在一台真实的机器上用不同的root file system来启动UML。

虚拟系统启动

用命令启动虚拟系统

Linux ubd0=rootfs.rh72.pristine.bz2ubd1=swap eth0= mcast umn=10.10.10.50

以root登陆系统,密码为空,然后对虚拟系统进行配置。同时可以将日志记录等级设为最高。

陷阱Ssyslog

前面我们提到过将syslog更改并且将日志发送到MYSQL中,现在我们再做一次同样的工作,只是这次我们是在虚拟的机器中这么做,日志仍然发送到真实(物理的)机器上的MYSQL数据库中。

日志服务器配置:你也可以配置Snare将日志存放于远程服务器上,这里可以存放在我们的真实(物理的)机器上,或者我们可以设置严格的ACL来管理日志,或者只允许日志以appen only形式存在。

3 防御系统的应用实例

我们所部署的防御系统中的虚拟Linux蜜罐主机被黑客所攻陷,并被用以进一步对外发起扫描和攻击,此攻击的整个捕获和分析过程如下:

(1)自动告警工具发出告警邮件,显示虚拟Linux蜜罐主机有向外HTTP端口的网络连接。 (2)通过查看HoneyWall上的snort报警信息,发现黑客通过攻击Linux蜜罐主机的smbd服务的漏洞攻陷主机,并获得一个root权限的shell。

(3)进一步查看黑客攻陷蜜罐主机后的行为,发现黑客连续下载后门工具以替换系统文件如sshd和login等,同时也下载了一些批量扫描和攻击(autorooter)工具如SCAN,TD等,并不断地对外部主机的137端口进行扫描,由于Honeywall上的IPTables对外发出连接数进行了限制,结果黑客并没有利用我们的蜜罐主机攻陷任何其他主机。

4 防御系统实现的主要问题的分析

在防御系统中设置蜜网的目的就是要诱人攻击,以便了解和研究黑客所采用的技术,提升网络防御能力。所以系统务必提供真实有效的服务,以便迷惑入侵者,而且要能对所有进出的数据能够进行监控,以避免无法控制局面的出现。

在防御系统中我们主要针对3个方面的问题:

(1)如何诱惑入侵。为了吸引入侵者,需要构建一个具有网络流量仿真能力的模拟网作为Honeynet,然后利用端口映射和重定向技术,将它转向到一个Honeynet的lP地址中,对其行为进行监控。得到入侵者使用的主要技术,同时牵制他们的主要攻击精力,保证正常网络的安全。

(2)如何控制信息。信息控制是一种规则。必须保证一旦Honeynet被攻陷,不会出现无法控制的局面,避免对所保护网络的安全造成危害。难点在于如何在控制住数据流量的同时又不引起入侵者的怀疑。当入侵者突破Honeynet后,他们将进行网络连接,以便从网络上获取攻击力量等,我们必须允许他们做大部分的“合法”事情。但应防止对其他系统的攻击,可以使用多层次控制避免单点失效,同时使用人工实时监控,一旦入侵者的活跃范围超越了受控制的范围,马上终止所有连接。

(3)如何实现数据捕获。数据捕获主要是指IDS日志和蜜网中主机的系统日志,即“多重捕获”。对于高明入侵者在攻入系统后,会试图更改甚至销毁目标主机上易于暴露入侵行为的各种记录。蜜网的“多重捕获”措施就是在确保不被入侵者发现的前提下捕获攻击行为信息,IDS在数据链路层对蜜网中的网络数据流进行监控!分析和抓取以便将来能够重现攻击行为。蜜网中主机除了使用操作系统自身提供的日志功能外,还可以利用第三方软件加强日志功能,并且传输到安全级别更高的服务器上进行备份。

5 结束语

蜜网是一个很有价值的资源,通过研究运用蜜网技术深入了解已知攻击!发现未知攻击,进而根据攻击深度更新完善网络防御系统。随着各种新的观点和技术还在不断出现,相信它会开辟出网络安全主动防御领域的一个新方向,并具有广阔的应用前景。