虚拟蜜罐软件honeyd 蜜罐软件

1.摘要

本文主要对虚拟蜜罐软件honeyd介绍,对honeyd的安装,配置,运行和测试结果,以及honeyd的软件架构做了介绍和剖析。

2.相关问题

2.1 蜜罐(honeypot)和蜜网(honeynet)技术

蜜罐技术是一种欺骗入侵者以达到采集黑客攻击方法和保护真实主机目标的诱骗技术。Honeypot不同于大多数传统安全机制,它的安全资源的价值是在于它主动去被探测,被攻击,或者被威胁。

Honetpot能够是任何计算机资源,它能是工作站,文件服务器,邮件服务器,打印机,路由器,任何网络设备,甚至整个网络。

Honetpot 是故意被部署再危险的环境中,以便它被攻击,并且相对于部署honeypot的目的来说,honeypot没有合法的产品价值,即它不能用于对外的正常服务。如果你的web server经常被访问,并且你分析服务器上的信息,这就不代表你把他配置成一个honeypot,而仅仅是一个缺乏安全防护措施的web server。

Honeynet是一组honeypot的集合,这些honeypot是在一个人或者一个组织的控制之下,一个honeynet上可以运行多种不同的操作系统,可以有一个或者多个不同的服务。

2.2 虚拟蜜罐(virtual honeypot)

虚拟蜜罐可以一种快速的方式配置若干个蜜罐,虚拟蜜罐软件能够模仿IP栈,OS,和真实系统的应用程序,一旦你建立了你的虚拟蜜罐系统,在它被攻陷了后你也很容易重建。通常情况下,模仿是完全在内存中实现的。虚拟蜜罐软件也允许在单一的物理主机上配置一个完全的密网,一个虚拟蜜罐系统可被用来模仿成千上万个系统,每个系统使用成千上万个端口且使用不同的IP。

由于整个Honeynet可以部署在一台机器上,可以大大的减少费用,只要足够大的内存与虚拟软件的支持,我们可以在一台机器上安装任意多的操作系统。

3. Honeyd软件

3.1 简介

Honeyd 是一个小的防护程序,它能够产生虚拟的主机,这些主机能够被配置以提供任意的服务,系统特征也是与之相适应,以至于使之看起来像真实的系统在运行。在一个局域网的网络仿真中,Honeyd能够使单个主机拥有许多IP(多达65536个)。通过提供对威胁探测和评估的机制,增强了计算机的安全性,通过隐藏真实的系统在虚拟的系统中,也达到了阻止敌手的目的。

3.2 安装

Honeyd 不能单独运行,需要如下三个函数库作为配套,libenvent,libdnet,libdcap.

3.2.1 libenvent
虚拟蜜罐软件honeyd 蜜罐软件

libevent API 提供了一种机制:当一个特殊事件在一个文件描述符上发生或者一个事先设定的时间到达的时候执行一个 callback 函数,另外,callback 也支持由信号或者规则的timeout 引发的callback.

最新版下载地址:http://www.monkey.org/~provos/

相关网站:http://www.monkey.org/

3.2.2 libdnet

libdnet 为若干个低层的网络例程提供了一个简单的可移植的接口,包括网络地址处理,内核arp 缓冲和路由表查找和管理,网络防火墙(IP filter, ipfw, ipchains, pf, PktFilter, ...),网络接口查找和管理,IP 隧道(BSD/Linux tun, Universal TUN/TAP device),未加工的IP 包和以太网帧的传输。

支持的语言包括:C, C++, Python ,Perl (see below)

支持的平台包括:BSD (OpenBSD, FreeBSD, NetBSD, BSD/OS),Linux (Redhat, Debian, Slackware, etc.) ,MacOS X ,Windows (NT/2000/XP) ,Solaris ,IRIX ,HP-UX ,Tru64

下载地址:http://prdownloads.sourceforge.net/libdnet/

相关网站:http://libdnet.sourceforge.net/

3.2.3 libdcap

libpcap是unix/linux平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。Libpcap可以在绝大多数类unix平台下工作。

下载地址:http://www.tcpdump.org/release/libpcap-0.9.1.tar.gz

相关网站:http://www.tcpdump.org/#needs

3.2.4 arpd

在运行honeyd 之前,我们需要保证honeyd的主机对我们配置的honeypot的ip做出arp请求的应答。可以通过运行arpd软件来做出arp应答。arpd将对指定的IP地址范围内未使用的IP用honeyd主机的MAC地址做出arp应答。

下载地址:http://www.citi.umich.edu/u/provos/honeyd/

3.2.5 honeyd

这里介绍在linux下安装honeyd的方法,首先在http://www.citi.umich.edu/下载最新版的honeyd:honeyd 1.5b。

3.2.6 安装

对于压缩的档案包,先解压:tar –xzvf filename.tar.gz

切换到解压后的目录下执行:

./configure

Make

make install

注:libevent,libdnet,libdcap安装在/usr目录下,在配置时,用./configure -prefix=/usr也可以通过预编译包来安装。只需要下载相应的软件包,直接解压就可以使用,

下载地址:http://www.tracking-hackers.com/solutions/honeyd/honeyd-linux-kit-0.5a.tgz

3.2.7 运行

Honeyd 的命令格式如下:

honeyd [ -dP] [ -l logfile] [ -pfingerprints ] [ -x xprobe] [ -a assoc] [ -ffile ]

[ -i interface] [ -V|--version] [ -h|--help] [ --include-dir] [ -i interface] [net ...]

各选项的含义如下:

-d :非守护程序的形式,允许冗长的调试信息。

-P :在一些系统中,pcap不能通过select(2)来获得事件通知是不可能的,在这种情况下,honeyd需要在轮训模式下工作,这个标志位是使论询位有效的。

-l logfile :对日志包和日志文件的连接是被日志文件指定的。

-x xprobe :读xprobe 类型的指纹,这个文件决定了honeyd 如何响应ICMP 指纹工具。

-a assoc:读联系nmap 风格指纹和xprobe 指纹风格的文件。

-ffile :读取名为file 的配置文件。

-i interface:指定侦听的接口,可以指定多个接口。

[ -V|--version:打印出版本信息同时退出。

--include-dir:用作插件开发,指定honeyd 存贮它的头文件的位置。

net:指定IP地址或者网络或者IP地址范围,如果没有指定,honeyd将监视它能看见的任何IP地址的流量。

3.3 配置

我们通过一个简单的配置文件的例子来说明如何模拟单机,文件取名为honeyd1.conf

create windows

set windows personality "Microsoft Windows NT 4.0 SP3"

set windows default tcp action reset

set windows default udp action reset

add windows tcp port 110 open

add windows tcp port 80 open

add windows tcp port 25 open

add windows tcp port 22 open

add windows tcp port 21 open

bind 172.31.35.10 windows

bind 172.31.35.12 windows

bind 172.31.35.19 windows

上面的配置文件创建了一个叫做windows的模板,绑定了三个honeypot的IP到这个模板上。上面的这个windows模板告诉honeyd,当一个客户端试图用NMap或者XProbe探测honeypot的指纹时,把它自己伪装成Microsoft Windows NT 4.0 SP3的系统。在蜜罐上有5个端口被打开:21/tcp, 22/tcp, 25/tcp, 80/udp and 110/udp。对于关闭的端口,honeyd将发出一个RST (对于TCP协议),或者一个ICMP端口不可到达的消息(对于UDP协议)。

honeyd也可以用于模拟一个网络(假定文件名为honeyd2.conf),我们先模仿如下的网络拓扑:



图1

这个网络拓扑的配置文件如下:

route entry 172.31.0.100 network 172.31.0.0/16

route 172.31.0.100 link 172.31.0.0/24

route 172.31.0.100 add net 172.31.1.0/24 172.31.1.100

route 172.31.1.100 link 172.31.1.0/24

create windows

set windows personality "Microsoft Windows NT 4.0 SP3"

set windows default tcp action reset

add windows tcp port 80 open

add windows tcp port 25 open

add windows tcp port 21 open

create router

set router personality "Cisco 7206 running IOS 11.1(24)"

set router default tcp action reset

add router tcp port 23 "script/router-telnet.pl"

bind 172.31.0.100 router

bind 172.31.1.100 router

bind 172.31.0.20 windows

bind 172.31.0.30 windows

bind 172.31.1.15 windows

bind 172.31.1.16 windows

路由器R1是从LAN进入虚拟网络的入口点,”route entry”配置用来指定入口点:

route entry 172.31.0.100 network 172.31.0.0/16

上面的这一行告诉honeyd,172.31.0.100是到虚拟网络172.31.0.0/16的入口点。Honeyd也可以模拟多个网络入口路由器,每个入口路由器服务不同的网络范围。

172.31.0.0/24网络是从路由器R1直接可达的。”route link”配置命令用来指定哪个网络是直接可达的,即不需要更远的跳数来到达。在这个例子中,配置行如下:

route 172.31.0.100 link 172.31.0.0/24

上面的第一个IP是路由器IP。在”link”关键字后指定的网络地址定义了直接可以访问的网络地址。多个”link”命令可以用来把多个虚拟子网连接到直接连接到一个路由器上。为了增加一个连接到R1的路由器R2,可以使用“route add net”命令,下面是此命令的用法:

route 172.31.0.100 add net 172.31.1.0/24 172.31.1.100

上面的命令行说明了172.31.0.100(路由器R1)能够通过网关172.31.1.100(路由器R2)到达网络172.31.1.0/24。最后的IP地址是新的路由器R2的IP地址。指定的网络地址范围是通过新的路由器R2可以到达的网络。

增加的路由器R2后我们需要指定哪些IP地址可以由路由器R2直接到达。我们再一次使用”route link”命令。在我们的配置的网络拓扑中,172.31.1.0/24子网是经路由器R2可以直接到达的。具体的命令行如下:

route 172.31.1.100 link 172.31.1.0/24

为了模仿这个网络,需要先在配置文件中写一个路由器的模板和一个一个蜜罐模板,并绑定172.31.0.100和172.31.1.100到这个路由器上,绑定四台虚拟蜜罐主机172.31.0.20和172.31.0.30,172.31.1.15和172.31.1.16到这个蜜罐模板上。它们分别处于 172.31.0.0/24和172.31.1.0/24两个局域网中。

至此,模仿图1的配置文件完成。

Honeyd配置还可以指定网络延迟,丢包率,带宽,以及指定多个网络入口点,甚至整合物理主机到honeyd模拟的网络拓扑中,和GRE隧道。

详细的信息可见Simulation Networks With Honeyd 一文。

下载地址:http://paladion.net/papers/simulating_networks_with_honeyd.pdf

我们可以运行如下的命令来运行honeyd。

首先,切换到honeyd配置文件所在的目录。然后键入:

#arpd 172.31.0.0/16

#honeyd –f honeyd1.conf 172.31.35.10-172.31.35.20

(模拟单机的honeyd)

或者

#arpd 172.31.0.0/16

#honeyd –f honeyd2.conf 172.31.0.0-172.31.1.255

(模拟网络拓扑的honeyd)

注意:如果防火墙开启,honeyd模拟的主机或网络可能不能被探测到。

3.4 Honeyd 对应用层协议的模拟

Honeyd 提供仿真服务脚本来对应用层的协议进行模拟,安装honneyd后,可以在源代码包中的scripts目录下找到honeyd提供的脚本。Honeyd提供的脚本的语法并不复杂,基本的规则就是当黑客登陆后,输入命令,脚本会做出相应的输出回应,最简单就是通过case语句来区别命令,对不同的命令用 echo命令来做出响应。我们从honeyd提供的stmp.sh中抽取一段来分析:

......

case $incmd_nocase in

QUIT* )

echo "220 2.0.0 $host.$domain closing connection"

exit 0;;

RSET* )

echo "250 2.0.0 Reset state"

;;

.........

变量incnd_nocase中保存的是黑客输入的命令,对于不同的命令,用不同的echo命令做回答,若黑客输入QUIT命令,回显给黑客的是保存在变量host与domain中的主机域名关闭链接。

Honeyd提供的脚本一般比较很简单,用户想要编写更为复杂的脚本,可以用以honeyd提供的脚本为模板来改写。

下载相应的仿真服务脚本和相应的配置文件:

http://www.citi.umich.edu/u/provos/honeyd/honeyd_kit-1.0c-a.tgz

在honeyd的配置文件中可以指定某个端口的仿真服务脚本,如:

add windows tcp port 21 open

改写为:

add windows tcp port 21 "sh scripts/ftp.sh"

就可以使honeyd运行仿真服务脚本,来模拟ftp服务。仿真服务脚本要指定路径,才能被honeyd找到。

对于要运行的其他端口的仿真服务脚本,可以在配置文件中的相应端口的语句中改。

3.5 日志

honeyd对黑客在终端的输入提供了完善的日志,该日志文件在运行honeyd时已经指定,即使用-f参数加指定的日志文件名。一般指定日志文件为/var/log/honeyd,可以通过查看该日志获得黑客登陆的信息和一些攻击的方法。

4.honeyd的架构

honeyd的软件架构由如下几个组件构成:一个配置数据库,一个中央包分发器,协议处理器,一个特征引擎,以及一个可选的路由器组件。如下图:



图2

正如上图所示,进来的包首先被中央包分配器处理,它首先检查 IP 包的长度并确认包的校验和。honeyd 框架知道主要的 3 种 Internet 协议:TCP,UDP,ICMP。其他协议的包将被日志记录并丢弃。

在处理包之前,分配器必须查询配置数据库来找到一个与目的 IP 相符合的蜜罐配置,如果没有指定的配置存在,一个默认的模板将被使用。给定一个配置,包和相应的配置将被分发给指定的协议处理器。

ICMP协议处理器支持大多数ICMP请求。在默认情况下,所有的honeypot支持对echo requests和process destination unreachable消息的应答。对其他消息的响应决定与配置的个性特征。

对于TCP和UDP协议,honeyd框架能建立连接到任意的服务。服务是外部程序,能从标准输入获取数据,并把输入发送到标准输出。服务的行为完全取决于外部应用程序。当一个连接请求被收到,honeyd框架检查包是否是一个已经建立好的连接的一部分。如果是的话,任何新的数据都发往已经建立好的连接的应用程序。如果包是一个连接请求,一个新的进程将被创建来运行合适的服务。为了替代为每个连接建立一个进程,honeyd框架也支持subsystems和 internal services。一个subsysytem是一个能运行在虚拟蜜罐名字空间下的应用程序。当相应的虚拟蜜罐被初始化的时候,subsystem指定的应用程序就被启动了。一个subsystem能够绑定到端口,接受连接,发起网络通讯。当一个subsystem作为外部程序运行的时候,一个内部的服务就是一个能在honeyd中运行的python脚本。比起subsystem来,internal service 需要的资源更少。

UDP 数据报直接传递给应用程序。当honeyd 框架接受到一个发送给关闭端口的数据包的时候,如果配置的个性特征允许,它将发送一个ICMP port unreachable。在发送ICMP port unreachable的过程中,honeyd框架允许像traceroute一样的工具去发现被模仿的网络拓扑。另外,建立一个到本地服务的连接,honeyd框架也支持连接的重定向。连接的重定向可能是静态的,或者取决于连接的四个要素(源目的端口,源目的地址)。重定向可以使我们把对虚拟蜜罐上的服务的连接请求定向到一个运行着的真实服务上。例如,我们可以重定向一个DNS请求到一个合适的名字服务器上。在一个包被发送到网络前,它会被个性引擎处理。个性引擎调整包的内容,以至于它看起来像被配置的操作系统的协议栈中产生的。

5.总结

honeyd是一款非常优秀的虚拟蜜罐软件,能完成蜜罐的大部分功能,花费的资源相对较少,并能完成对网络拓扑的模拟,对抗指纹探测。honeyd的使用也很方便,仅需要一个配置文件,就可以完成响应的部署。此外,honeyd的使用也是相当广泛。在引诱黑客攻击,反蠕虫,遏制垃圾邮件等方面都有广泛的应用。目前对于虚拟蜜罐的研究还处于起步阶段,以后对它的研究会越来越深入。

“蜜网项目组”(The Honeynet Project)的创始人Lance Spitzner给出了对蜜罐的权威定义:蜜罐是一种安全资源,其价值在于被扫描、攻击和攻陷。这个定义表明蜜罐并无其他实际作用,因此所有流入/流出蜜罐的网络流量都可能预示了扫描、攻击和攻陷。而蜜罐的核心价值就在于对这些攻击活动进行监视、检测和分析。

来源

最初出现在1990 年出版的一本小说《The Cuckoo’s Egg》中,在这本小说中描述了作者作为一个公司的网络管理员,如何追踪并发现一起商业间谍案的故事。 “蜜网项目组”(The Honeynet Project)的创始人Lance Spitzner给出了对蜜罐的权威定义:蜜罐是一种安全资源,其价值在于被扫描、攻击和攻陷。这个定义表明蜜罐并无其他实际作用,因此所有流入/流出蜜罐的网络流量都可能预示了扫描、攻击和攻陷。而蜜罐的核心价值就在于对这些攻击活动进行监视、检测和分析。

蜜罐技术的发展历程

蜜罐技术的发展历程分为以下三个阶段。

从九十年代初蜜罐概念的提出直到1998 年左右,“蜜罐”还仅仅限于一种思想,通常由网络管理人员应用,通过欺骗黑客达到追踪的目的。这一阶段的蜜罐实质上是一些真正被黑客所攻击的主机和系统。

从1998 年开始,蜜罐技术开始吸引了一些安全研究人员的注意,并开发出一些专门用于欺骗黑客的开源工具,如Fred Cohen 所开发的DTK(欺骗工具包)、Niels Provos 开发的Honeyd 等,同时也出现了像KFSensor、Specter 等一些商业蜜罐产品。这一阶段的蜜罐可以称为是虚拟蜜罐,即开发的这些蜜罐工具能够模拟成虚拟的操作系统和网络服务,并对黑客的攻击行为做出回应,从而欺骗黑客。虚拟蜜罐工具的出现也使得部署蜜罐也变得比较方便。但是由于虚拟蜜罐工具存在着交互程度低,较容易被黑客识别等问题,从

2000 年之后,安全研究人员更倾向于使用真实的主机、操作系统和应用程序搭建蜜罐,但与之前不同的是,融入了更强大的数据捕获、数据分析和数据控制的工具,并且将蜜罐纳入到一个完整的蜜网体系中,使得研究人员能够更方便地追踪侵入到蜜网中的黑客并对他们的攻击行为进行分析。

按照其部署目的分

蜜罐可以按照其部署目的分为产品型蜜罐和研究型蜜罐两类,产品型蜜罐的目的在于为一个组织的网络提供安全保护,包括检测攻击、防止攻击造成破坏及帮助管理员对攻击做出及时正确的响应等功能。一般产品型蜜罐较容易部署,而且不需要管理员投入大量的工作。较具代表性的产品型蜜罐包括DTK、honeyd等开源工具和KFSensor、ManTraq 等一系列的商业产品。研究型蜜罐则是专门用于对黑客攻击的捕获和分析,通过部署研究型蜜罐,对黑客攻击进行追踪和分析,能够捕获黑客的键击记录,了解到黑客所使用的攻击工具及攻击方法,甚至能够监听到黑客之间的交谈,从而掌握他们的心理状态等信息。研究型蜜罐需要研究人员投入大量的时间和精力进行攻击监视和分析工作,具有代表性的工具是“蜜网项目组”所推出的第二代蜜网技术。

按照其交互度的等级划分

蜜罐还可以按照其交互度的等级划分为低交互蜜罐和高交互蜜罐,交互度反应了黑客在蜜罐上进行攻击活动的自由度。低交互蜜罐一般仅仅模拟操作系统和网络服务,较容易部署且风险较小,但黑客在低交互蜜罐中能够进行的攻击活动较为有限,因此通过低交互蜜罐能够收集的信息也比较有限,同时由于低交互蜜罐通常是模拟的虚拟蜜罐,或多或少存在着一些容易被黑客所识别的指纹(Fingerprinting)信息。产品型蜜罐一般属于低交互蜜罐。高交互蜜罐则完全提供真实的操作系统和网络服务,没有任何的模拟,从黑客角度上看,高交互蜜罐完全是其垂涎已久的“活靶子”,因此在高交互蜜罐中,我们能够获得许多黑客攻击的信息。高交互蜜罐在提升黑客活动自由度的同时,自然地加大了部署和维护的复杂度及风险的扩大。研究型蜜罐一般都属于高交互蜜罐,也有部分蜜罐产品,如 ManTrap,属于高交互蜜罐。

蜜罐技术的优点

1、 收集数据的保真度,由于蜜罐不提供任何实际的作用,因此其收集到的数据很少,同时收集到的数据很大可能就是由于黑客攻击造成的,蜜罐不依赖于任何复杂的检测技术等,因此减少了漏报率和误报率。

2、使用蜜罐技术能够收集到新的攻击工具和攻击方法,而不像目前的大部 分入侵检测系统只能根据特征匹配的方法检测到已知的攻击。

3、蜜罐技术不需要强大的资源支持,可以使用一些低成本的设备构建蜜罐,不需要大量的资金投入。

4、相对入侵检测等其他技术,蜜罐技术比较简单,使得网络管理人员能够比较容易地掌握黑客攻击的一些知识。

蜜罐技术的缺点

1、需要较多的时间和精力投入。

2、 蜜罐技术只能对针对蜜罐的攻击行为进行监视和分析,其视图较为有限,不像入侵检测系统能够通过旁路侦听等技术对整个网络进行监控。

3、 蜜罐技术不能直接防护有漏洞的信息系统。

4、 部署蜜罐会带来一定的安全风险。

部署蜜罐所带来的安全风险主要有蜜罐可能被黑客识别和黑客把蜜罐作为跳板从而对第三方发起攻击。一旦黑客识别出蜜罐后,他将可能通知黑客社团,从而避开蜜罐,甚至他会向蜜罐提供错误和虚假的数据,从而误导安全防护和研究人员。防止蜜罐被识别的解决方法是尽量消除蜜罐的指纹,并使得蜜罐与真实的漏洞主机毫无差异。蜜罐隐藏技术和黑客对蜜罐的识别技术(Anti-Honeypot)之间相当于一个博弈问题,总是在相互竞争中共同发展。另外,蜜罐技术的初衷即是让黑客攻破蜜罐并获得蜜罐的控制权限,并跟踪其攻破蜜罐、在蜜罐潜伏等攻击行为,但我们必须防止黑客利用蜜罐作为跳板对第三方网络发起攻击。为了确保黑客活动不对外构成威胁,必须引入多个层次的数据控制措施,必要的时候需要研究人员的人工干预。

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/100697.html

更多阅读

虚拟吉他手软件全集 虚拟吉他手 和弦

虚拟吉他手软件全集电脑音乐中常用到的吉他插件,最受人喜爱的当数虚拟吉他手Virtual Guitarist和虚拟电吉他手 VG Electric Edition了Virtual Guitarist VG Electric Edition 虚拟吉他手共分两个版本,一个是虚拟吉他手VirtualGuitar

3D虚拟桌面软件Shock4Way3D shock 4way 3d

Shock4Way3D是一款来自韩国高手制作的3D虚拟桌面软件!其效果远超Vista的立体桌面特效!可以让电脑同时拥有四个独立桌面,四个桌面内容互不显示,可以迅速切换,支持快捷键和边栏操作,可以用来躲避老板哦!看过Shock4Way3D惊艳的3D桌面效果,再回

服装设计虚拟仿真软件 服装品牌虚何以致实?(二)

        主持人:从这些品牌的实践来看,以外包虚拟生产为主要表现形式的“虚拟经营”,是生产功能的扩张,而不是生产设施的扩张。功能的延伸,使得无形的资源得到了合理化配置。      对话2 虚拟经营的本质:懂得“借势”   

声明:《虚拟蜜罐软件honeyd 蜜罐软件》为网友奈何空海有泪分享!如侵犯到您的合法权益请联系我们删除