蜜罐技术:如何跟踪攻击者的活动

简介: 【10月更文挑战第22天】蜜罐是一种用于网络安全的系统,通过模拟漏洞吸引攻击者,记录其行为以研究攻击手法。分为高交互和低交互两种类型,前者提供真实操作系统服务,后者仅模拟部分系统功能。蜜罐有助于收集恶意软件样本,分析攻击者行为,提高网络安全防御。

蜜罐是一个孤立的系统集合,其首要目的是:利用真实或模拟的漏洞或利用系统配置中的弱点(如一个容易被猜出的密码),引诱攻击者发起攻击。蜜罐吸引攻击者,并能记录攻击者的活动,从而更好地理解攻击者的攻击。蜜罐一般分为两种类型:高交互蜜罐和低交互蜜罐。
类型和折中

高交互蜜罐是一部装有真正操作系统(非模拟),并可完全被攻破的系统。与攻击者进行交互的是一部包含了完整服务栈(service stack)的真实系统。该系统的设计目的是捕获攻击者在系统中详尽的活动信息。而低交互蜜罐只是模拟出了真正操作系统的一部分(如,网络堆栈、过程和服务),例如模拟某个版本的FTP(文件传输协议)服务,其中的代码存在漏洞。这可能会吸引蠕虫查找服务脆弱部分的漏洞,由此可以深入观察到蠕虫的行为。

不过,在你使用这两种蜜罐时,需要做出一些折中。用于网络安全的高交互蜜罐提供了真实操作系统的服务和应用程序,使其可以获得关于攻击者更可靠的信息,这是它的优势。它还可以捕获攻击者在被攻破系统上的大量信息。这一点可能会非常有帮助,比如说,在组织想要收集关于攻击者是如何找到攻破特定类型系统的详细真实数据,以便增加适当的防御的时候。另一方面,这些蜜罐系统部署和维护起来十分困难,而且需要承担很高的副作用风险:例如,被攻破的系统可能会被用来攻击互联网上其他的系统。

虽然低交互蜜罐容易建立和维护,且一般对攻击者产生了免疫,但模拟可能不足以吸引攻击者,还可能导致攻击者绕过系统发起攻击,从而使蜜罐在这种情况下失效。到底部署哪种蜜罐取决于你最终的目标是什么:如果目标是捕获攻击者与系统的详细交互情况,那么高交互蜜罐是一个更好的选择;如果目标是捕获针对某个有漏洞的服务版本的恶意软件样本,使用低交互蜜罐就足够了。

在你决定使用哪种蜜罐部署时,另一个需要考虑的重要因素是:蜜罐是安装在物理系统上,还是安装在物理系统的几台虚拟机上。这将直接影响到系统维护的工作量。虽然虚拟系统自身的确有一系列安全问题,但虚拟系统允许快速回复,并能显著缩短部署和重新部署的时间。

蜜罐部署

无论是高交互蜜罐还是低交互蜜罐,都被设计成在互联网上不进行传统目的活动。换句话说,除操作系统要求的以外,蜜罐系统不运行其他的进程、服务和后台程序。这种思想实际上把所有与蜜罐有关的交互作用都当作具有恶意活动嫌疑的对象,这样一来反而有利于检测攻击活动。在探讨蜜罐部署的最佳做法之前,先让我们来看一下常用的高交互和低交互蜜罐。

通常情况下,高交互蜜罐不需要专用软件就可以进行底层操作系统的安装。一般来说,安装一个VMware工作站或者用一个类似QEMU(模拟处理器)的虚拟机,就足以满足蜜罐对操作系统的要求了(典型情况是,主机上的客户操作系统运行虚拟软件)。底层操作系统安装好后,下一步的重点就是进行设置,以对蜜罐(客户操作系统)进行合理的监测。这一设置要分为两部分:监测主机操作系统和监测客户操作系统。主机操作系统应该重点对进出蜜罐的流量进行抓包,这一过程可以利用像tcpdump 或Wireshark之类的程序来完成。同时,如果客户操作系统被感染,恶意带外连接会造成潜在的附加危害,对这一情况用户希望提前被警告,这也被叫做挤压检测(extrusion detection)。这一点可以利用类似iptables(或者基于主机的防火墙)的本地访问控制列表来完成。执行带内过滤实质上是对蜜罐所受攻击的类型实施部分控制。用户可以把主机操作系统流量过滤和入侵检测系统(例如Snort)结合起来,从而获得针对已知攻击媒介的附加报警能力(也就是基于签名的报警)。

对客户操作系统,或者是攻击的实际目标进行监测,需要捕捉到攻击者的所有活动,比如跟踪键盘记录活动、记录攻击者所用的工具和记载权限扩大尝试。Sebek就是一款能够完成上述大规模数据搜集活动的工具。另外一些值得关注的虚拟化高交互蜜罐还有用户模式的Linux和Argos系统。

与高交互蜜罐不同,低交互蜜罐需要在主机操作系统上安装特殊的软件,另外还要进一步配置,以便有效地模拟有缺陷的服务。较受欢迎的低交互蜜罐技术有Nepenthes,以及后续产品Dionaea和mwcollectd。

低交互蜜罐创造性地配置了多种检测功能,包括广泛记录功能、恶意软件捕捉功能、实时安全事件通知,以及提交恶意软件活动进行远程分析。它们的功能还可以进一步提高,方法是使用Nepenthes中的log-IRC附加模块,通过Dionaea和p0f模块一同使用还可以获得被动识别远程操作系统的能力。Dionaea同样支持XMPP(可扩展消息现场协议)模块,该模块可以在企业之间和安全社区中实现恶意软件二进制共享,从而提高用户的安全意识。

接触过一些与高交互蜜罐监测有关的部署最佳实践,这些实践中执行了带内和带外的过滤,以及网络入侵检测。这些功能有待于增强,还需要强化蜜罐和正常网络之间的隔离。理想的情况是,蜜罐环境应该部署在自己专用的互联网入口上,而主机的操作系统管理则放在另一个独立的网络上。另一方面,低交互蜜罐无法被攻击者全部攻破,因此它们的保护工作要简单一些。利用chroot之类的程序,可以把低交互蜜罐系统隔离到一个较小的文件系统中。另外,低交互蜜罐系统也要与正常网络彻底隔离,否则低交互蜜罐仍旧会暴露在与高交互蜜罐相同的威胁下。

典型应用

蜜罐的主要用途之一是收集恶意软件样本。这些样本可能利用零日漏洞(zero-day vulnerabilities),或已知的攻击向量。蜜罐可以让研究者对上述攻击有更好的了解。例如,通过监测IRC控制通道,蜜罐就可以提供实时攻击流量。它们还具备被动识别攻击者操作系统类型,或存储/重演攻击活动的能力。另外,它们允许研究者共享威胁信息(例如XMPP),或者把样本提交给在线沙盒和多反病毒扫描工具(如VirusTotal、Jotti、ThreatExpert和CWSandbox)进行进一步分析。

蜜罐收集恶意软件活动的领域可以扩展到僵尸系统(bot)和僵尸网络(botnet)。僵尸网络拥有分布式的特点,依赖于远程命令通道的使用(一般是通过IRC和 HTTP),利用的往往是零日攻击或已知攻击向量,这种体系结构使得蜜罐可以很好的对其进行跟踪和分析。

目录
相关文章
|
9月前
|
人工智能 编解码 芯片
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
不会向ai提问,不知道怎么提问的 可以看看
20946 1
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
|
算法 程序员 Go
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
|
6月前
|
IDE 开发工具 Windows
磁盘损坏导致无法开机怎么办?
电脑无法开机可能是磁盘损坏所致,常见原因包括物理损坏、逻辑错误、接口问题或系统文件损坏。本文详解判断方法与应对措施,帮助你快速定位问题并恢复系统或数据。
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能应用领域有哪些
本文全面探讨了人工智能(AI)的应用领域和技术核心,涵盖医疗、交通、金融、教育、制造、零售等多个行业,并分析了AI技术的局限性及规避策略。同时,介绍了生成式人工智能认证项目的意义与展望。尽管AI发展面临数据依赖和算法可解释性等问题,但通过优化策略和经验验证,可推动其健康发展。未来,AI将在更多领域发挥重要作用,助力社会进步。
|
6月前
|
机器学习/深度学习 人工智能 算法
基于YOLO的中医舌苔自动识别系统 | 五类舌象精准检测【含完整数据+训练源码】
本项目以 YOLOv8 为核心检测引擎,实现了对中医舌象中五类舌苔特征的高效识别,构建了一个具有实用价值的中医智能辅助诊断系统原型。项目涵盖从数据准备、模型训练到推理部署的全流程,配套图形界面(可选),实现了开箱即用、模块清晰、易于复现的目标。
基于YOLO的中医舌苔自动识别系统 | 五类舌象精准检测【含完整数据+训练源码】
|
8月前
|
API 开发工具 开发者
HarmonyOS NEXT实战:拨打电话
本课程介绍如何在HarmonyOS SDK中使用Telephony Kit实现拨打电话功能。通过CallPhoneDemoPage示例,讲解如何输入电话号码并调用makeCall接口拨号,涉及call模块的使用及设备通话能力检测。
7996 0
|
算法 数据安全/隐私保护
CTF — MP3文件隐写
CTF — MP3文件隐写
583 1
|
运维 监控 网络协议
IP 地址是什么,有什么用,通俗易懂答案?
**IP地址是互联网上设备的唯一标识,分为IPv4(32位,如192.168.1.1)和IPv6(128位,如2001:0db8:85a3:0000:0000:8a2e:0370:7334)。IP地址用于定位设备、数据包传递、网络安全和管理。分为公有(全球唯一)和私有(局域网内使用)IP,以及动态(DHCP分配)和静态(固定不变)IP。IP管理由ICANN和区域机构负责。了解IP地址基础知识对网络理解和故障排查至关重要。**
2736 3
|
关系型数据库 MySQL 数据库
在 MySQL 中使用 Alter Table
【8月更文挑战第11天】
2416 0
在 MySQL 中使用 Alter Table
|
机器学习/深度学习 数据采集 自然语言处理
深入浅出:用Python实现简单文本分类器
【8月更文挑战第31天】本文旨在通过简明的Python代码示例,引导读者理解并实现一个简单的文本分类器。从数据预处理到模型训练,再到结果评估,我们将一步步构建起一个基于朴素贝叶斯算法的文本分类系统。无论你是编程新手还是机器学习初学者,这篇文章都将为你打开一扇通往文本分析世界的大门。