在物联网设备部署激增的背景下,腾讯反病毒实验室一直在观察面向物联网设备的恶意软件的热潮。网络犯罪的目标已经逐渐转向物联网设备,而不是传统的PC或手机,而过时的蜜罐技术无法在恶意软件调查中提供足够的证据。为了应对新的挑战,腾讯开发了一种全新的物联网蜜罐,用于物联网恶意软件取证。

与传统的蜜罐技术相比,它是一种高交互性蜜罐(HIH),可以为物联网恶意软件调查和取证提供更多的信息。首先,双向网络流量将被捕获,这意味着记录的数据不仅包含旨在攻击设备的流量,还包含由受感染设备本身初始化的流量。第二,提供常见的网络服务,包括SSH、Telnet、HTTP、UPnP,甚至视频流。所有的服务都包含专门的远程代码执行漏洞。一旦它们被破坏,漏洞和恶意行为将被监测并作为数字取证报告给管理中心。最后,网流代理模块可以选择性地部署在前层。该模块不需要到处部署设备,而是将攻击流重定向并聚集到预先设定的蜜罐上,以增加捕捉全球攻击的覆盖面。蜜罐集群也得益于这个代理模块的可扩展性。

该演讲从解决物联网环境下传统蜜罐的缺点开始。然后将介绍架构和实施,接着介绍物联网蜜罐解决方案有助于解决上述挑战的原因。在演讲的最后,将介绍一个由蜜罐捕获的真实物联网攻击的案例研究。

introduction

在介绍这个蜜罐的架构之前,请允许我给出一些关于蜜罐和物联网蜜罐的一般信息。这三个主要问题是:我们如何对蜜罐进行分类;传统蜜罐和物联网蜜罐之间有什么区别;以及我们在物联网环境中可能面临的挑战。

目前有两大类蜜罐,高互动和低互动。那么,我们为什么要关心互动呢?在我看来,互动是衡量一个蜜罐允许攻击者进行的活动。它设定了一个蜜罐的能力和限制。在一定的互动下,攻击者能做什么,不能做什么已经确定。因此,你允许的互动越多,你能学到的东西就越多。而你允许的互动越多,你的复杂性和风险就越大。

下面是两种典型的互动的比较。低交互式蜜罐只允许攻击者或恶意软件进行有限的交互。低互动蜜罐所提供的所有服务都是模拟的。因此,低交互式蜜罐本身并不存在漏洞,也不会被试图针对模拟漏洞的攻击所感染。高交互性蜜罐利用实际有漏洞的服务或软件。高互动蜜罐通常是复杂的解决方案,因为它们涉及真实的操作系统和应用程序。在高互动蜜罐中,没有任何东西是模拟的,一切都是真实的。高互动蜜罐提供了更详细的攻击或入侵的进展情况,或某一恶意软件的实时执行情况。由于没有模拟的服务,高互动蜜罐有助于识别未知的漏洞。但高互动蜜罐更容易受到感染,高互动蜜罐增加了风险,因为攻击者可以使用这些真实的蜜罐操作系统来攻击和破坏生产系统。

我们关注的下一个问题是传统蜜罐和物联网蜜罐的区别。现在已经有很多蜜罐的实现方式。你可以在GitHub上找到数以百计的开放源码仓库。然而,它们主要是针对互联网服务的。传统蜜罐的架构主要是x86和x86-64。然而,物联网蜜罐的架构是异质性的。典型的架构是ARM和MIPS,但也有许多其他架构,如SPARC PowerPC。

这些设备通常提供的服务也是不同的。网络服务器通常提供远程管理服务和其他网络服务,如HTTP、FTP。而物联网设备通常提供特定的服务,如视频流和其他类型的私人协议。因此,现有的某些服务的模拟器可能不适用于物联网蜜罐。

此外,部署方式也有很大不同。传统的蜜罐可以很容易地部署在云中。不幸的是,如果我们需要各种架构,我们必须在本地设置物理设备,这是很难部署的。

总结我们在物联网时代面临的挑战,我们认为主要的挑战是由两个因素造成的。第一个挑战是,要适应不同的架构是相当困难的。如果我们想建立一个LIH,我们缺乏如何在物联网设备上模拟一个服务的知识。但是,如果我们想建立一个HIH,使用仿真器也是相当困难的,因为没有现有的解决方案来仿真商业物联网设备。

另一个挑战是,如果我们想部署真正的HIH,它既昂贵又困难。因为现有的虚拟机都不适用。

因此,我们需要一个全新的架构来设计和实现物联网蜜罐。接下来,杨静宇将介绍该架构和实现。

  1. 架构

我很高兴介绍我们的蜜罐的结构和实现。首先,我想解释一下蜜罐项目的全貌。然后将介绍两个有趣的组件。最后,我们将讨论一个案例,以证明我们的蜜罐系统是如何工作的,以猎取一种新的网络攻击。

2.1 全貌

首先,这是关于蜜罐项目的架构。正如我们所看到的,有三个主要层次。访问层,存储层和视图层。

访问层

接入层的反应是接受来自各种来源的网络攻击,然后收集有效载荷并将恶意行为报告给存储层。

在访问层,我们开发了一个负载平衡器组件和几个不同种类的蜜罐代理作为后端执行组件,如SSH和Telnet代理。数据层

当接入层收到网络攻击时,它将向中间层报告。存储层响应,进行数据存储、统计和数据挖掘。报告的数据将被存储在MongoDB中,处理后的信息将以JSON格式提供给视图层。

在未来,我们计划开放数据上传接口,与安全研究人员分享信息,以战胜网络犯罪。我们采用了名为hpfeeds的发布和订阅系统,因为hpfeeds协议已经在许多种类的蜜罐项目中被广泛使用。

视图层

我们还设计了一个网络管理系统作为视图层,它可以提供人类可读的信息和数字取证。在视图层中,管理员将能够安装和卸载蜜罐代理。特殊用户可以导出数字取证,如PCAP文件,这对进一步调查非常有帮助。

接下来,我想介绍访问层中两个有趣的组件。

2.2 负载平衡器

我们创建了一个负载平衡器组件,用于将网络攻击从原始接入点重定向到后端执行组件。但为什么呢?

因为这个组件将确保后端执行组件中的恶意软件不会给同级别的接入点中的其他节点带来任何有害影响。基于我们将接入点和后端执行组件分开的设计,我们可以专注于监控恶意行为,而不是防止恶意软件逃逸。

我们的客户要求我们提供更多关于攻击者的信息。他们不仅想知道攻击者的IP,而且还想知道他们是谁,以及他们在入侵后到底做了什么。

然而,攻击者操纵蜜罐来攻击其他受害者的威胁应该得到妥善处理。任何客户都不会接受他们的蜜罐变成跳板,帮助渗透他们自己的业务而不是防御攻击。在开发负载平衡器组件的过程中,我们面临着一个技术挑战,那就是如何转发攻击者的真实IP而不是来自负载平衡器的IP。

为了解决这个问题,负载平衡器也将向存储层报告TCP连接对。在存储层,日志收集器将合并这两个相对的信息。最后,攻击者的真实 IP 地址将被发现,并与代表一次入侵攻击的会话 ID 联系起来。

2.3 另一个SSH蜜罐

关于后端执行组件,我们将讨论SSH蜜罐,因为面向SSH的攻击是物联网威胁的主要部分。

我们的设计原则是建立一个基于真实执行环境的监控系统,包括硬件和嵌入式Linux。我们修补了dropbear的源代码,它是一个开源的SSH服务器,并将该程序部署在Raspberry Pi 3上。与传统的SSH蜜罐,如cowrie和kippo相比,监控系统而不是仿真系统将带来许多优势。

例如,我们的蜜罐代理将不仅提供关于用户名和密码,而且还提供攻击者输入的命令列表。而这些命令将直接在我们的蜜罐中执行,而不是在虚拟环境中被模拟。更重要的是,网络数据和CPU使用信息将被报告给存储层。这些额外的信息将有助于调查新型的网络犯罪,如加密货币挖掘和勒索软件。所有报告的信息都将作为数字取证记录在存储层。

然而,对基于硬件的蜜罐进行管理并不是一件容易的事。我们发现了两个技术挑战。

一个是关于如何在以前的入侵后重新初始化,文件系统在入侵后会被修改。

我们从头开始建立了一个特殊的Linux内核,启动参数为root=/dev/ram。在这种情况下,内核将在RAM中挂载根文件系统。任何对文件系统的修改在重启后都会丢失。我们的SSH蜜罐将在会话中执行任何命令时重新启动,或者等待到超时。另一个是关于如何应对硬件故障。我们设计了一个带有可编程继电器的电源控制器,心跳系统将发送一个信号,使设备重新启动。

  1. 案例研究

接下来,我想介绍一种新的SSH攻击,以证明我们的蜜罐如何工作。

我们的案例研究是关于pivoting攻击,它是一种较少的文件和纯网络攻击。在枢轴攻击中,一旦攻击者得到SSH服务器的正确凭证,他将通过设置动态端口转发选项把服务器变成一个代理。然后,攻击者将在自己的一侧启动DoS攻击程序。最终,网络流将被重定向到目标。在受害者看来,攻击者的IP地址是来自代理服务器。通过这种方式,真正的攻击者将被掩盖。

在这一年里,有大量的证书被丢失。而其中大多数是物联网设备。这种攻击包含三个主要步骤。

首先,攻击者使用暴力手段来获得正确的用户名和密码对。其次,攻击者使用带有动态端口转发选项的SSH命令来设置一个代理服务器。最后,攻击者使用代理配置的DoS程序来攻击目标。

在会话报告数据中,我们监测到一个比特币网站受到了大量的透视攻击。而且该网站还宣布他们在twitter上受到了DDoS攻击。

枢轴攻击与传统的入侵攻击不同。首先,它是纯粹的网络攻击,任何恶意的文件都不会被下载到文件系统中。其次,真正的攻击者会隐藏在SSH服务器的后面,而SSH服务器已经变成了一个代理。

3.1 基于硬件的蜜罐

许多人问我,为什么你选择开发一个基于硬件的蜜罐而不是基于软件的解决方案?

让我回顾一下基于硬件的蜜罐带来的好处,并尝试回答这个问题。首先,正如这个案例研究表明的那样,我们的蜜罐可以提供关于真实攻击者和受害者的准确信息。例如,传统的SSH蜜罐,如cowrie,将无法捕捉到新型的网络犯罪,如透视攻击。因为,从技术上讲,它们是SSH协议的模拟器,而动态端口转发还没有实现。

其次,反蜜罐技术已经出现,以帮助恶意软件检测虚拟环境,但我们的蜜罐是基于真实的设备和操作系统,这意味着它对反蜜罐技术自然免疫。

最后,物联网设备是基于各种CPU的,如ARM和MIPS。大多数物联网固件不会直接在模拟器中加载。然而,这些物联网设备只要稍加修改就可以变成蜜罐。