没有合适的资源?快使用搜索试试~ 我知道了~
虚拟蜜罐软件Honeyd(v1.0)简介、安装与使用文档资料.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 160 浏览量
2022-01-23
03:45:47
上传
评论
收藏 950KB PDF 举报
温馨提示
试读
11页
虚拟蜜罐软件Honeyd(v1.0)简介、安装与使用文档资料.pdf
资源推荐
资源详情
资源评论
虚拟蜜罐软件 Honeyd(v1.0) 简介、安装与使用文档
The Artemis Project/狩猎女神项目组
诸葛建伟,梁知音
1. Honeyd 软件简介
Honeyd 是一款非常优秀的开源虚拟蜜罐软件,由 Google 公司软件工程师 Niels Provos
于 2003 年开始研发, 2005 年发布 v1.0 正式版,目前已发布了 v1.5b。
Honeyd能让一台主机在一个模拟的局域网环境中配有多个地址(曾测试过的最多可以
达到 65536个),外界的主机可以对虚拟的蜜罐主机进行 ping 、traceroute 等网络操作,虚拟
主机上任何类型的服务都可以依照一个简单的配置文件进行模拟, 也可以为真实主机的服务
提供代理。
Honeyd可以通过提供威胁检测与评估机制来提高计算机系统的安全性,也可以通过将
真实系统隐藏在虚拟系统中来阻止外来的攻击者。因为 Honeyd只能进行网络级的模拟,不
能提供真实的交互环境,能获取的有价值的攻击者的信息比较有限,所以 Honeyd 所模拟的
蜜罐系统常常是作为真实应用的网络中转移攻击者目标的设施, 或者是与其他高交互的蜜罐
系统一起部署,组成功能强大但花费又相对较少的网络攻击信息收集系统。
2. Honeyd 的设计与实现
2.1. 网络数据收集
Honeyd 被设计用来应答目标地址属于模拟蜜罐范围之内的网络包。要让 Honeyd 能够
接受到发送给虚拟蜜罐的数据包, 必须要正确的配置网络。 有几种方法可以实现网络的配置,
如为指向 Honeyd 主机的虚拟 IP 建立特殊的路由、使用代理 ARP 或者使用网络隧道等。
这里我们假设 A 为网络路由器的 IP, B 是 Honeyd 主机的 IP,最简单的情形是,虚拟
蜜罐的 IP 位于局域网范围之内。 我们标识他们为 V1,V2……Vn, 当攻击者通过互联网发送一
个数据包给蜜罐 Vi ,路由器 A 会接受到数据包并试图发送该数据包。路由器会查询路由表
来决定该将发送到 Vi 的包传递到哪里。数据会有 3 种处理方式:
当没有路由指向 Vi 时,路由器会丢弃该数据包;
路由器 A 将数据包转发到另一个路由器;
Vi 位于路由器所在的局域网范围之内,路由器 A 可以直接将数据包传送给 Vi.
图 1 路由方式
为了将到 Vi 的数据流导向 Honeyd 主机 B,我们可以使用下面两种方法:
最简单的方法是将到 Vi 的路由入口设置为指向 B,这样一来,路由器转发到虚拟蜜罐
的数据包将会直接发送到 Honeyd 主机。
如果我们没有配置特殊的路由, 路由器会使用 ARP 指令来查询虚拟蜜罐的 MAC 地址。
但由于没有响应的虚拟主机, ARP 查询会得不到应答,路由器在重试几次后就会将数据包
丢弃。此时,我们可以配置让 Honeyd 主机利用自己的 MAC 地址去响应针对 Vi 的 ARP 查
询。这种方法就称之为代理 ARP。代理 ARP 允许路由器将发送到 Vi 的数据发送到 Honeyd
主机 B 的 MAC 地址。
在更复杂的环境下,可以将一段网络地址空间通过网络隧道连接到 Honeyd 主机。我们
可以使用一般路由封装( generic routing encapsulation , GRE)等隧道协议。
2.2. Honeyd 软件体系结构
Honeyd 体系由几个组件构成,这些组件是配置数据库、中央包分发器、协议处理器、
个性引擎和可选路由构件。如下图所示:
图 2 Honeyd 软件体系结构图
系统接受到的数据会由中央包分发器进行处理,首先中央包分发器进行处理会检查 IP
包的长度,修改包的校验和。 Honeyd 框架响应的是最主要的 3 种互联网协议: ICMP, TCP
和 UDP,其他协议的包在被记入日志后会被悄悄丢弃。
在处理数据包之前,分发器会查询配置数据库以查找到一个符合目标地址的蜜罐配置。
如果没有特定的配置存在, 系统会采用默认配置模板。 给定配置后, 数据包和相应的配置会
被转交给相应的协议处理器处理。
ICMP 协议处理器支持多数的 ICMP 查询。 默认情况下, 所有的蜜罐配置都会响应 echo
请求,并且处理“ destination unreachable ”消息。其他请求的处理主要依赖于个性引擎的配
置。
对于 TCP 和 UDP 包, Honeyd 可以建立到任意服务的连接。这些服务是外部的应用程
序,可以通过标准输入输出来接收和输出数据。 不同于为每个连接创建一个新进程, Honeyd
支持子系统 (subsystem)和内部服务 (internal service), 子系统是一个运行在某个虚拟蜜罐的名
称空间下的应用程序, 子系统的特定应用是在相应的虚拟蜜罐实例化的时候创建的。 一个子
系统可以绑定端口、 接收连接和创建网络连接。 子系统是作为外部进程运行的, 而内部服务
则是一个 Honeyd 内部运行的 python 的脚本。 内部服务要求的资源比子系统更少, 但只能接
收连接,不能创建网络连接。
UDP 数据报文会直接传递到应用程序,当接收到一个发送到关闭的端口的数据报文的
时候, 如果个性化配置中没有设置禁止的话, 系统会发送一个端口不可达消息。 在发送端口
不可达消息的时候,系统允许网络映射工具如 traceroute 来查探网络路由。
除了可以建立到本地服务的连接外, Honeyd 还支持网络连接的重定向。这种重定向可
以是静态的, 也可以是与网络连接的四个参数相关 (源地址与源端口, 目标地址与目标端口) 。
重定向使得我们可以将一个到虚拟蜜罐上的服务的连接请求转发到一台真实服务器运行的
服务进程。
在发送数据到外部网络之前, 数据包会经由个性引擎处理。 个性引擎会修改数据包的内
容,使得数据包看上去和从指定配置的操作系统的网络栈中发出的一样。
剩余10页未读,继续阅读
资源评论
gw19501103285
- 粉丝: 1
- 资源: 7万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功