033 蜜罐【产品】

1 概述

蜜罐系统是一种情报收集系统。

蜜罐作为故意让人攻击的目标,引诱黑客前来攻击,收集黑客所用的各种工具等。

蜜罐通常具备数据捕获、数据分析和数据控制方面的功能。数据捕获主要收集主机数据或者网络数据,主机上可以捕获攻击者的TCP连接情况、执行的命令、各种日志信息等,网络数据包括防护系统日志、网络流量数据等。但蜜罐的价值通常需要对捕获的数据进行分析后才能体现,主要包括网络协议类型分析、攻击行为分析和攻击数据包内容分析等。数据控制主要是指通过对蜜罐的对外数据发送和网络进行限制,使得当蜜罐系统被攻击者攻破时,也不会造成更多的危害。数据控制主要用来保障蜜罐本身的安全。

2 分类

2.1 按交互程度分类

蜜罐的交互程度通常取决于蜜罐对相应服务的模拟程度。

①低交互蜜罐

该类蜜罐通常只提供少量的交互功能,蜜罐在特定端口监听连接并记录数据包,可以用来实现端口扫描和暴力破解的检测。低交互蜜罐结构简单,易于安装部署,由于模拟程度低功能较少,收集信息有限但风险也较低。

②高交互蜜罐

高交互蜜罐通常基于真实的应用环境来构建,能提供真实的服务。高交互蜜罐可用来获取大量的信息,能够捕获攻击者多种操作行为,从而具备发现新的攻击方式和漏洞利用方法的能力。由于高交互蜜罐给攻击者提供了一个相对真实的应用环境,因此风险较大,通常会注重数据控制方面的功能。

2.2 按具体实现分类

蜜罐按照实现的方式可以分为物理蜜罐和虚拟蜜罐。

①物理蜜罐

物理蜜罐通常指真实的物理计算机,安装了相应的操作系统并具备网络环境,它能提供部分或完全真实的应用服务。物理蜜罐通常成本较高。

②虚拟蜜罐

虚拟蜜罐通常是利用虚拟机技术模拟而成的蜜罐,成本相对物理蜜罐较低。但由于虚拟机本身的特点,虚拟蜜罐容易被有经验的攻击者识别。还有这两年流行的基于Docker的蜜罐。

2.3 按用途分类

蜜罐可以按照使用用途的不同分为研究型蜜罐和产品型蜜罐。

①研究型蜜罐

主要用来捕获和分析攻击者的行为数据,对攻击者进行追踪和分析。通过研究攻击者的行为信息,了解攻击者的目的意图,学习其所使用的工具和方法。虽然研究型蜜罐本身并不能提高网络的安全性,但可以通过对攻击者的研究和分析,间接的提高网络的安全防御能力,在一定程度上做到主动防御未知的网络攻击。研究型蜜罐需要部署人员投入大量的时间和精力对进出蜜罐的流量进行监控和分析。

②产品型蜜罐

主要用来提高企业等组织机构的网络安全性,具有攻击事件检测和引诱欺骗黑客攻击的功能,通过部署在真实系统周围,迷惑和引诱攻击者实施攻击,从而降低真实系统被攻击的概率。且能够在不影响正常服务的情况下,提供离线接受安全人员分析检测的功能。

3 设计思路

尽最大的可能模拟完整业务系统的输入输出(包括操作系统、中间件、业务代码)。

尽最大的可能去收集攻击者产生的数据(资产信息、武器信息)。

尽最大的可能去捕获较多的新的在野攻击(受影响组件热切换)。

尽最大的可能去保证蜜罐不对外发起真实的攻击(容易被相关部门查水表)。

4 常见攻击检测

端口扫描检测

端口扫描是一种攻击初期的信息收集技术,主要用来判断目标主机是否开放相应的端口和服务,通过向目标主机发送端口连接请求,然后根据目标主机的回应信息判断目标对应端口是否开放。在扫描到目标系统对应端口开放后,攻击者可能会对需要登陆的服务进行弱口令尝试、未授权访问、暴力破解等,比如对21端口的FTP服务进行反复登录尝试。

端口扫描检测思路相对明确,通常可采用监听本地端口的方式,被动等待连接,可对常用端口和服务进行监听,也可对全端口进行监听。监听对应端口后便可对该端口的连接请求进行检测并对来源和频率进行记录。

②ARP攻击检测

ARP地址解析协议(Address Resolution Protocol)位于TCP/IP四层协议的网络层,负责解析IP地址和MAC地址的对应关系。ARP欺骗通常通过在局域网中发送伪造IP地址和MAC地址的ARP应答包对目标进行攻击,在目前主流的基于路由器的局域网中,ARP欺骗攻击同样适用,ARP欺骗攻击可使受害者无法上网,造成拒绝服务,也可通过伪造网关的ARP应答包进行中间人攻击,嗅探内网敏感数据,甚至能获取到内网用户的用户名口令等信息。

ARP欺骗能够成功的关键点在于由于协议本身的特点,当攻击者发送伪造的ARP应答包冒充网关时,被攻击者没有对声称者的MAC地址和IP地址的真实性进行确认。因此,假设局域网内的检测设备,每次启动时,记录当前网关的IP和MAC地址,先假设当前网关可信,并通过一段时间内网关IP和MAC地址对应关系的变化来再次确认。当突然发现ARP协议中声称的网关IP和MAC地址发生变化时,可对新的IP和MAC对应关系的真实性进行判断和确认,从而检测是否遭受了ARP攻击,并记录攻击源的MAC地址。可通过定期读取本地IP-MAC对应表的方式,对局域网内的设备地址和对应关系进行记录,从而及时发现ARP攻击。

③DNS劫持检测

DNS(Domain Name System)域名服务主要是提供域名到IP地址的映射和转换。在Internet的普及过程中,因为域名比IP更容易记忆,所以Internet的用户通常只会通过域名来访问一个站点,因此DNS服务的作用非常关键。通常局域网网关会在网络配置中设置可信的DNS服务器地址,但基于现有的路由器网络,由于种种路由器漏洞、弱口令等安全问题,路由器一旦被攻击者控制,攻击者便可通过篡改DNS指向自己控制的可定制的DNS服务器,就能实现区域的网络流量劫持和篡改,窃取敏感信息,甚至通过替换返回流量植入远控木马,从而控制内网计算机,极大危害整个内部网络的安全。

检测DNS的思路主要有两种,可以定期读取本地的DNS配置,然后通过建立可信DNS白名单的方式对本地DNS的安全性进行判断。通过ping命令,ping若干知名站点,如百度(www.baidu.com)、若返回IP为当前DNS的IP或某一个相同的IP,则可判断已受到上述这种DNS劫持攻击。

5 开源项目示例

5.1 MHN(http://threatstream.github.io/mhn/)

MHN(Modern Honey Network,现代蜜网)是一个开源软件,它简化了蜜罐的部署,同时便于收集和统计蜜罐的数据。用ThreatStream来部署,MHN使用开源蜜罐来收集数据,整理后保存在Mongodb中,收集到的信息也可以通过web接口来展示或者通过开发的API访问。

MHN能够提供多种开源的蜜罐,可以通过web接口来添加他们。一个蜜罐的部署过程很简单,只需要粘贴,复制一些命令就可以完成部署,部署完成后,可以通过开源的协议hpfeeds来收集的信息。

支持以下蜜罐:

1.Snort:https://www.snort.org/,用C语言开发的开源入侵检测系统。

2.Suricata:http://suricata-ids.org/,开源高性能的入侵检测系统。

3.Dionaea:http://dionaea.carnivore.it/,是一个低交互式的蜜罐,能够模拟MSSQL, SIP, HTTP, FTP, TFTP等服务。

4.Conpot:http://conpot.org/,低交互工控系统和Scada蜜罐,能够提供一些列工业控制协议,模拟复杂的工控基础设施。

5.Kippo:https://github.com/desaster/kippo,是一个中等交互的蜜罐,能够下载任意文件。 

6.Amun:http://amunhoney.sourceforge.net/,是一个低交互式蜜罐,但是已经从2012年之后不在维护了。

7.Glastopf:http://glastopf.org/,是一个Python Web应用程序蜜罐。

8.Wordpot:https://github.com/gbrindisi/wordpot。是一个Wordpress蜜罐。

9.ShockPot:https://github.com/threatstream/shockpot,模拟的CVE-2014-6271,即破壳漏洞。

10.p0f:https://github.com/p0f/p0f,是一个纯粹的被动指纹识别工具,它在不干涉双方通信的情况下,通过嗅探的方式来分析流经某一网卡的流量以达到指纹识别的目的。

11.dionaea:https://github.com/DinoTools/dionaea,是一款低交互式蜜罐,是Honeynet Project 的开源项目。Dionaea 蜜罐的设计目的是诱捕恶意攻击,获取恶意攻击会话与恶意代码程序样本。它通过模拟各种常见服务,捕获对服务的攻击数据,记录攻击源和目标 IP、端口、协议类型等信息,以及完整的网络会话过程,自动分析其中可能包含的shellcode及其中的函数调用和下载文件,并获取恶意程序。

5.2 T-Pot(https://github.com/dtag-dev-sec/tpotce)

T-Pot 蜜罐是德国电信下的一个社区蜜罐项目,是一个基于 Docker 容器的集成了众多针对不同应用蜜罐程序的系统。

组成部分包含:

1.Elastic-Search:https://www.elastic.co/products/elasticsearch,是一个性能十分强大的全文搜索引擎,他可以快速的进行海量数据的查询。在 T-Pot 的实际应用中,各个蜜罐所产生的日志都会导入到 Elastic Search 中,因此可以使用 Elastic Search 来进行检索,同时也可以使用他对数据进行各种复杂条件的查询和导出等。

2.Logstash:https://www.elastic.co/products/logstash,用于接收从蜜罐传递过来的日志,然后对数据进行过滤和格式化后交由 Elastic Search 进行存储和建立索引。

3.Kibana:https://www.elastic.co/products/kibana,用于对进行数据的可视化查询,支持以柱状图、线状图、饼图、旭日图等等输出各种图形,也能通过时间序列对蜜罐日志某个特征的趋势进行分析。

4.Head:https://mobz.github.io/elasticsearch-head/,是一个网页前端,主要用于与 Elastic Search 集群进行交互。和上面的 Kibana 不同的是,他的可视化程度相对较低,但是更便于直接对数据进行操作,类似与 phpMyAdmin 的存在。

5.Conpot:http://conpot.org/,是一个低交互式的工业控制系统的蜜罐,内置了一系列常见的工业控制协议,并且易于修改和拓展,尽其所能的欺骗攻击者,以获得攻击者的最终目的

6.Cowrie:http://www.micheloosterhof.com/cowrie/,是一个中等交互式的 SSH / Telnet 蜜罐,设计上用来记录暴力破解以及登录后 Shell 执行的操作。

主要功能有:

提供了虚假的文件系统(类似 Debian5.0),并且可以进行文件的增加和删除;

随机增加某些文件的内容以便攻击者使用 cat 功能,例如 /etc/passwd;

提供 UML 兼容格式的回话日志,可供用来重放会话;

保存通过 wget 和 curl 下载的文件供后续的分析。

7.Dionaea:https://github.com/DinoTools/dionaea,是一系列基于 Python 语言开发、libemu 作为 Shellcode 分析的蜜罐系统,支持多种不同协议,如下:

blackhole,epmap,ftp,http,memcache,mirror,mqtt,mssql,mysql,pptp,sip,smb,tftp,upnp。

8.ElasticPot:https://github.com/schmalle/ElasticpotPY, 是一个 Elasticsearch 的蜜罐

9.eMobility:https://github.com/dtag-dev-sec/emobility, 是一个高交互式的蜜罐,针对的是下一代的交通基础设施(充电桩系统),用于收集攻击者的动机和方法。系统主要包括中央充电系统、充电点以及模拟的用户交易。

10.Glastopf:https://github.com/mushorg/glastopf,是一个 Python 语言开发的 Web 蜜罐,能提供各种基于漏洞类型的模拟。

11.HoneyTrap:https://github.com/armedpot/honeytrap,是一个低交互式的蜜罐,通过监听 NFQUEUE 用户态数据包,相当与就监听了所有其他未监听的端口,主要功能用于观察攻击者的行为,同时也可以解析攻击的字符串,并且进行相应的下载保存。

12.Mailoney:https://github.com/awhitehatter/mailoney,是一个 SMTP 蜜罐。

13.Rdpy:https://github.com/citronneur/rdpy,是一个用 Python 实现的 RDP 和 VNC 协议,可以用作服务端以及客户端,同时也提供 RDP 的蜜罐,用于记录 RDP 的过程。

14.vnclowpot:https://github.com/magisterquis/vnclowpot,是一个低交互式的 VNC 蜜罐,主要用于记录 VNC 的认证过程

15.Suricata:https://github.com/OISF/suricata,是一个网络 IDS、IPS 和 NSM 引擎,主要分析并记录下连接中一些有用的信息。

16.p0f:http://lcamtuf.coredump.cx/p0f3/,利用一系列复杂的流量指纹识别,被动的来识别 TCP/IP 通信的对方信息,例如可以识别出对方的系统、在线时间等。

你可能感兴趣的:(033 蜜罐【产品】)