构建一个高交互型的难以发现的蜜罐

本文我将手把手的带大家来,构建一个高交互型的蜜罐。我们将会利用到两款开源工具sysdig和falco,来帮助我们快速构建这个系统。在正式开始之前,让我们对什么是高交互型蜜罐?以及sysdig和falco做个简单的了解!

为企业提供做网站、成都网站制作、网站优化、营销型网站、竞价托管、品牌运营等营销获客服务。创新互联建站拥有网络营销运营团队,以丰富的互联网营销经验助力企业精准获客,真正落地解决中小企业营销获客难题,做到“让获客更简单”。自创立至今,成功用技术实力解决了企业“网站建设、网络品牌塑造、网络营销”三大难题,同时降低了营销成本,提高了有效客户转化率,获得了众多企业客户的高度认可!

一、高交互型蜜罐

一个高交互蜜罐是一个常规的计算机系统,如商用现货(commercial off-the-shelf ,COTS)计算机、路由器或交换机。该系统在网络中没有常规任务,也没有固定的活动用户,因此,除了运行系统上的正常守护进程或服务,它不应该有任何不正常的进程,也不产生任何网络流量。这些假设帮助检测攻击:每个与高交互蜜罐的交互都是可疑的,可以指向一个可能的恶意行为。因此,所有出入蜜罐的网络流量都被记录下来。此外,系统的活动也被记录下来备日后分析。

相较于低交互型蜜罐,高交互型蜜罐由于运行着带有所有漏洞的真实的操作系统,没有使用仿真,攻击者可以与真实的系统和真实的服务交互。因此,允许我们捕获大量的威胁信息,同时也更难被攻击者发现。

二、Sysdig和Falco

sysdig是一款开源的工具,可以捕获并保存当前正在运行的Linux的系统状态及活动。因此这对于我们进行相关进程、网络和I/O活动的离线分析,提供了极大的便利。Sysdig falco是一个活动行为监视器,用于检测和发现应用程序中的异常活动。Falco可以检测和警告涉及使Linux系统调用的任何行为。借助于sysdig的核心解码和状态跟踪功能,可以通过使用特定的系统调用其参数,以及调用进程的属性来触发falco警报。

三、将服务器转换为蜜罐

作为一个合格的蜜罐服务器,都应该具有文件捕获和cifs-utils包,以挂载到保存我们sysdig抓取文件的远程samba共享上。

四、手动安装

Sysdig和falco可以部署在不同的Linux发行版中。以下是在不同发行版中的安装过程:

1.RHEL,CentOS和Fedora下的安装:

  • 信任Dralex GPG密钥并配置yum存储库
  • 安装EPEL存储库(只有在发行版中不提供DKMS时,才需要使用)。你可以使用“yum list dkms”验证DKMS是否可用。
  • 安装内核头文件
  • 安装falco

以下为命令执行过程(注意在root权限下运行)

 
 
 
 
  1. rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public
  2. curl -s -o /etc/yum.repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo
  3. rpm -i http://mirror.us.leaseweb.net/epel/6/i386/epel-release-6-8.noarch.rpm
  4. yum -y install kernel-devel-$(uname -r)
  5. yum -y install falco psmisc

2.Ubuntu,Debian下的安装

基本步骤与上面一致,操作命令如下:

 
 
 
 
  1. curl -s https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public | apt-key add -
  2. curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list
  3. apt-get update
  4. apt-get -y install linux-headers-$(uname -r)
  5. apt-get -y install falco

五、自动安装

为了让大家能够在任何Linux发行版中快速部署sysdig和falco,我们特意开发了一个简易的chef cookbook,大家可以在GitHub上获取到它。

当cookbook成功执行后,sysdig将开启连续捕获模式,以便持续捕获系统的运行状态和活动。同时falco也开始运行,将所有警报发送到syslog。这里我们需要确保文件捕获已经开启,并将syslog发送到我们设置的集中分析的ELK堆栈。此外,我们还需要检查 sysdig捕获文件目录,是否已经存在于samba共享。最后一步配置弱口令的root帐户,例如passw0rd和test123。

要创建一个蜜罐,我们需要克隆一个合适的受害者机器,并在该系统上运行cookbook。Red Hat,Fedora,CentOS,Debian或Ubuntu操作系统都可以正常运行cookbook。注意!以下命令必须要以root身份运行。

 
 
 
 
  1. wget https://packages.chef.io/files/stable/chefdk/1.0.3/ubuntu/16.04/chefdk_1.0.3-1_amd64.deb
  2. dpkg -i chefdk_1.0.3-1_amd64.deb

以上命令是在Debian操作系统中获取并安装Chefdk。对于其他架构包请参阅此链接。

现在让我们来安装git并克隆cookbook库。

 
 
 
 
  1. apt-get install git -y
  2. mkdir ~/cookbooks
  3. cd ~/cookbooks
  4. git clone https://github.com/mwrlabs/honeypot_recipes sysdig-falco
  5. cd sysdig-falco

在运行cookbook之前,请确保当前我们系统的内核版本为最新版本。这样可以避免内核和kernel-devel包之间的版本不同问题。

然后,我们执行以下命令来运行cookbook:

 
 
 
 
  1. chef-client --local-mode --runlist 'recipe[sysdig-falco]'

当cookbook被成功执行后,我们可以看到一个名为mysysdig的文件,在/etc/init.d/目录下被创建。该init脚本将使用以下参数启动sysdig:

 
 
 
 
  1. sysdig -C 5000 -W 3 -w /usr/local/src/image.$(date +"%Y%m%d-%H%M%S").gz > /dev/null 2>&1 &

Sysdig将以连续捕获模式启动(选项-W)。使用-C选项,指定捕获文件的大小。最后使用-w选项,将我们捕获的文件保存到/usr/loca/src/目录中。此外,我们还可以通过编辑/sysdig-falco-cookbook/templates/default/目录下cookbook中的mysysdig.erb文件来更改这些选项。

六、Samba服务器

除了蜜罐服务器,我们还需要有一个samba服务器,以便实时发送我们捕获的文件。以下是samba服务器的设置步骤。

 
 
 
 
  1. apt-get install samba -y
  2. smbpasswd -a ubuntu

ubuntu是我们的用户名。创建一个目录,用于保存sysdig的捕获文件。

 
 
 
 
  1. mkdir -p /home/ubuntu/image

然后编辑位于/etc/samba/目录下的smb.conf文件,并在该文件的末尾附加以下内容:

 
 
 
 
  1. [image]
  2. path = /home/ubuntu/image
  3. valid users = ubuntu
  4. read only = no

最后,让我们来启动samba服务。

 
 
 
 
  1. /etc/init.d/samba restart

现在我们可以来启动init脚本了,这将启动sysdig程序。但是在此之前,我们需要在/usr/local/src/目录下,挂载远程文件共享。

 
 
 
 
  1. apt-get install cif-utils -y
  2. mount.cifs -o user=ubuntu //IP_of_samba_server/image /usr/local/src/image/

出现密码提示,输入我们之前设置的密码。

现在我们运行init脚本,以确保falco正在运行,并通过init脚本启动sysdig。

 
 
 
 
  1. /etc/init.d/falco status
  2. /etc/init.d/mysysdig start

七、监控攻击者

我们尝试监测攻击者何时与我们的蜜罐进行互动。我们的蜜罐基本架构如下:

  • 作为蜜罐的几台Linux机器
  • 一台作为samba服务器的Ubuntu机器
  • 一台安装了ELK(Elasticsearch Logstash Kibana)堆栈的Ubuntu机器。

选择ELK堆栈是因为它适合于消耗和分析,来自syslog的sysdig/falco输出的数据。

我们在两个蜜罐上安装了文件捕获,以便将syslog和auth.log都发送到ELK堆栈。

为了检测攻击者,我们监控了Kibana中的身份验证日志(auth.log)。除了身份验证日志,我们正在监控falco警报。例如,下图显示的falco警报,说明了某人与我们的一个蜜罐进行了互动。

我们还可以通过观察sysdig捕获文件的大小,来初步判断是否有人与我们的蜜罐进行了互动。突然增加,则表明有人正在与我们的蜜罐进行互动,因为这些机器上本身的活动很少。

八、实例探究

为了验证我们的Sysdig/Falco蜜罐主机,对攻击者的监控和检测的有效性,我们打算将蜜罐放置在公网的云设备上。

1. 案例研究1

我们将蜜罐暴露在互联网上,很快我们得到了第一个结果。攻击者试图猜解我们的root账户密码,如图。

从上图可以看出,攻击者的行为发生在17:25:00。在17:26:36,我们又捕获了一个不同的IP试图猜解root密码,如图。

我们确信虽然IP不同,但应该是同一人所为。最初,攻击者尝试爆破的IP地址为221.194.44.216,可能使用的是爆破脚本或肉鸡,而后密码被成功爆破后,地址又回到了原IP 103.42.31.138。以下两图显示了它们的相关联性:

从上面的第一张图,我们可以看到,IP地址221.194.44.216有2522个生成的警报(右上角)。这些警报与爆破root密码的失败尝试相关联,如图。

攻击者获取到root密码后,又返回到了原IP 103.42.31.138重新访问目标机器。搜索与此特定IP地址相关联的不同警报,我们发现只有以下两个警报,如图所示。

falco警告显示,有人突破了我们的蜜罐,如下图所示。

我们快速下载sysdig捕获的文件,并运行以下凿子(凿子是用于分析sysdig捕获的事件流的小脚本)。

 
 
 
 
  1. sysdig -r image.20160721-1547320 -c list_login_shells

我们使用另一个凿子,通过使用sysdig运行以下命令,基于loginshellid来查看攻击者运行的命令。

 
 
 
 
  1. sysdig -r image.20160721-1547320 -c spy_users proc.loginshellid=1743

从falco的警报,我们看到攻击者在/etc/cron.hourly目录中创建了一个名称为zbbpxdqalfe.sh的文件。sysdig能够帮助我们轻松的看到文件的内容,因为sysdig记录了每一个I/O操作。

运行以下命令:

 
 
 
 
  1. sysdig -r image.20160721-1547320 -A -c echo_fds fd.filename=zbbpxdqalfe.sh

我们得到以下输出信息。

搜索攻击者运行的命令“mv /usr/bin/wget /usr/bin/good ”,我们发现了一个关于尝试DDoS不同目标的ELF恶意软件二进制的分析。该分析讲述了一种多态恶意软件,在“/bin”或“/usr/bin”目录下创建了具有随机名称的不同可执行文件,我们可以从以下falco警报中看到。

2. 案例研究2

为了更进一步的研究,我们又为系统添加了三个账户,并分别使用了僵尸网络通常会尝试爆破的账户及密码,分别为user,user2,且用户名和密码相同。几个小时后,我们发现有人用用户名“user”进行了登录。十四分钟后,攻击者又再次登录,我们可以从auth.log到kibana看到。

我们检查了falco警报信息,但并没有发现与该事件相关的信息。我们从samba服务器下载了sysdig捕获文件,尝试看看发生了什么。首先,我们使用”spy user” 凿子来查看已执行的所有交互式命令。

 
 
 
 
  1. sysdig -r image.20160729-104943.gz0 -c spy_users

我们观察了攻击者执行的一些命令。为了更清楚地看到攻击者试图做什么,我们再次运行相同的凿子,但是这次我们使用proc.loginshellid过滤器字段来限制spy user凿子的输出。从上图可以看出,攻击者的登录名为2308,所以我们运行:

 
 
 
 
  1. sysdig -r image.20160729-104943.gz0 -c spy_users proc.loginshellid=2308

并观察以下输出。

我们可以看到攻击者试图为不同的处理器架构运行一些二进制文件。他们试图运行的第一个二进制文件名为kaiten。在google中搜索kaiten二进制文件,我们可以看到,这个恶意软件二进制文件是用C编写的,并且已经在许多漏洞利用数据库站点中公开已久。主要目的是通过利用我们的unix和IoT设备,来实现对不同目标的DDoS。更多信息请点击链接。

分析二进制文件时,我们发现没有一个符号被剥离,这也使得我们更容易对其进行逆向工程。经过一些额外的研究,我们发现github上的一个脚本是用于设置该恶意二进制文件的。硬编码的加密密钥/通道密钥都没有被改变,这也说明攻击者刚刚下载并运行的就是github上的这个脚本。通过对Jackmy$arch二进制文件的逆向我们发现,这些二进制文件通过/usr/bin/sshd替换进程(proc名称)的第一个参数,在ps aux中隐藏其进程列表。

九、总结

以上我们学习了,如何利用Sysdig和falco来快速的构建一个高交互型蜜罐。以及通过两个研究案例,证明了该蜜罐系统的有效性。从中我们也可以看出,对于一个企业或组织而言,建立一套良好的防御体系的重要性和不可或缺性。在安全方面的投入,作为企业而言永远不能吝啬!

本文标题:构建一个高交互型的难以发现的蜜罐
URL分享:http://www.shufengxianlan.com/qtweb/news21/115121.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联