将蜜罐技术应用到内网攻击感知中,一篇硕士论文的研究过程与demo实现,抛砖引玉。计划的系列文章内容分为以下几个部分,按照论文撰写的脉络来讲:
好久不见,一个月没更新了...都是因为懒。今天介绍几种不同开源蜜罐的特点和能采集到的数据样例。本课题的蜜罐终端实现的过程集成了现代密网(MHN)技术、Dionaea蜜罐技术、Glastopf蜜罐技术、Kippo蜜罐技术以及P0f指纹识别技术。
通过了解不同蜜罐能采集的原始数据字段与内容,可以更直观地看到蜜罐的采集能力,便于我们结合应用场景解决实际问题的时候去选择和组合不同的开源蜜罐技术。
为方便大家扩展阅读,文末会给出相关的项目链接、文章链接以及参考文献,供参考。
蜜罐网络是随着蜜罐发展衍生出的一种蜜罐技术体系[43]。现代密网(MHN,Modern Honey Network,以下简称MHN)是一个开源项目,它简化了蜜罐的部署并支持多种蜜罐软件作为数据终端。该项目用ThreatStream开源软件程序来部署,MHN支持将收集的数据汇总处理后保存在MongoDB数据库中[44],数据库的内容支持通过定制Web接口展示和存取[45]。MHN系统功能示意如下图所示。
MHN能够支持连接多种类型的蜜罐软件,添加和部署蜜罐过程相对自动化,部署完成后,蜜罐和MHN中心数据库支持通过开源的发布订阅协议hpfeeds来同步数据。
MHN依赖多个蜜罐终端作为探测器Sensors去探测和收集攻击数据,并通过一种基于订阅者与发布者关系的传输协议hpfeeds将蜜罐终端的数据传输到MHN中心服务器,并存储到MongoDB数据库中,再通过honeymap和Webapp模块进行展示,示例页面如下图所示。
针对不同种类的底层蜜罐软件,本课题采用统一格式化的处理方案,从不同蜜罐的日志数据中提取所需字段,统一处理成JSON格式数据后传输到中心服务器。
Dionaea(捕蝇草)是起始于Google Summer of Code 2009的一款低交互式蜜罐,属于Honeynet Project开源项目。Dionaea蜜罐的设计目的是诱导和记录攻击行为,能捕获攻击载荷和恶意代码样本。它基于监听端口来模拟各种服务,能够捕获攻击者的连接请求和攻击载荷,同时记录攻击来源IP、来源端口、目的端口、所用协议等,能为后续分析提供需要的数据支持。Dionaea是一种低交互式蜜罐,它只提供相应服务的基础模拟,能够和攻击者进行初始阶段的数据模拟交互,因此Dionaea蜜罐风险较低。相应的Dionaea蜜罐可以便捷地安装、配置和使用,基础模拟安全风险低带来的不足之处是捕获的数据类型和范围有限,且容易被有经验的攻击者察觉[46]。
Dionaea目前需要基于Linux操作系统进行安装配置,需要网络环境,它可以监听1433端口、3306端口、21端口、445端口、42端口、135端口等,对于外部连接请求,模拟正常服务进行交互,同时能够记录网络数据包,并且Dionaea能够对数据包中的shellcode进行模拟执行。对于未模拟的端口Dionaea可以记录请求的连接数据包并保存成pcap格式。
本课题主要利用Dionaea蜜罐模拟1433端口的MSSQL服务、3306的MySQL服务、21端口的FTP服务,监听连接并捕获攻击者发送的数据包,为攻击行为分析提供数据支持。
Glastopf是一款低交互的Web应用蜜罐软件,该蜜罐采用Python语言开发,能够跨平台运行,在Windows、Linux、OSX操作系统环境下均能方便部署,启动后,Glastopf默认监听80端口,同时也可自定义监听端口。Glastopf可处理GET、POST、HEAD三种HTTP数据包,同时能够对数据包的Base64编码进行处理[47]。对于Web多种攻击的仿真,Glastopf维护了一个Dorklist列表,可以自定义实现根据不同请求数据包进行针对性的响应。在数据收集和展示上,Glastopf可以通过WebUI模块配合Apache服务器进提供数据可视化功能[48]。
本课题主要利用Glastopf模拟Web服务,捕获攻击者对80端口发送的数据包。
Kippo蜜罐是一款专门针对22端口的SSH服务进行仿真的蜜罐软件,由于互联网上始终暴露很多存在极大脆弱性的SSH服务,导致这种针对SSH的扫描和爆破的攻击方式至今依旧有效[49]。Kippo是2009年发布的一款接近中等交互等级的SSH蜜罐软件,它能够提供接近真实的交互shell环境,能够伪装文件目录、记录攻击者的访问和暴力破解日志,并且提供扩展程序能够对攻击者的攻击过程进行还原[18]。本课题主要利用Kippo蜜罐模拟SSH服务,捕获攻击者对22端口的扫描和暴力破解数据包。
P0f(passive OS fingerprinting)是一款开源的指纹识别软件,它通过分析源主机发出的数据包来识别攻击者的操作系统和应用软件类型,而且,P0f集成了大量的设备和工具的指纹库[50]。本课题主要利用P0f工具的指纹库对攻击者使用的攻击工具类型进行识别,为分析攻击者的攻击手法提供数据基础。
ARP和DNS检测功能这块自主实现,记录的日志比较简单。
本来还想再整理一遍,恰好看到这篇2017.10.27的知乎回答正好梳理了典型的开源蜜罐项目链接:
再结合我前边一篇文章的参考阅读文章列表就差不多了:
- 蜜罐技术科普与发展简述(2016年):
https://sosly.me/index.php/2017/09/05/jymiguan2/
再补充两篇小伙伴的文章:
- MHN开源蜜罐项目学习笔记(一)HPFEEDS协议:
http://phantom0301.cc/2016/02/19/Hpfeeds/
- MHN学习笔记(二)Dionaea蜜罐架构:
http://phantom0301.cc/2016/03/17/DIonaea/
系列文章,未完待续,看这更新的频率,“不打扰是我的温柔”这种借口我就不说了...