资讯专栏INFORMATION COLUMN

P2P 僵尸网络入门

chnmagnus / 567人阅读

摘要:传统僵尸网络传统僵尸网络图例无论使用或是其他协议,传统僵尸网络的构成都是相同的。尽管这些节点仅仅从技术上可以作为服务器,但是可以利用它们防止僵尸网络被摧毁。

当前人们正大肆宣传ZeroAccess(一种恶意程序)被攻克的消息,我认为是时候介绍一下P2P僵尸网络(botnets)了。包括它们是如何工作的,以及通常怎么应对它们。

传统僵尸网络


传统僵尸网络图例

无论使用HTTP、IRC或是其他协议,传统僵尸网络的构成都是相同的。所有的僵尸主机(bot)都通过一个或多个域名连接到一个或多个服务器。尽管网络结构可能千差万别,或一目了然,或错综复杂,通过各服务器间良好的协作,都可以轻易摧毁僵尸网络。

恢复僵尸主机正常工作最常见的办法,就是夺取它所使用的域名或服务器的控制权。然而有些时候由于某些原因我们无法向僵尸主机发送指令,就需要另一种手段。当然尝试关闭命令与控制服务器(C&C Server)一般情况下都是浪费时间的做法,因为主控者(botmaster)不需要花多少时间,就可以找到另一个服务器,并将域名重定向到它上面。于是我们就只有在域名上做文章来应对了。

高手操纵的僵尸网络通常会使用多个域名,当其中一个被关闭时,僵尸主机会连接到另一个。想要彻底破坏这样的僵尸网络,有两个办法:1、暂时关闭所有和这个僵尸网络相关的域名(需要在短时间内完成,以防主控者操作僵尸主机定向到新的域名);2、把僵尸网络使用的域名定向到一个有特殊功能的服务器(如Sinkhole路由器),使僵尸主机远离正常的控制服务器,从而切断主控者对它们的控制。

P2P

不同于传统僵尸网络在域名或服务器被夺取控制权时表现出的脆弱,P2P僵尸网络会建立一个相对分散的网络环境。思路就是所有的僵尸主机都互相连接并且进行通信,从而不再需要一个中心服务器,但实际上并不单纯是这样。

指令

如果所有的僵尸主机都能互相通信,那么主控者需要确保只有他能向这些主机发送指令,通常的解决办法是数字签名。这个签名是由不对称加密算法生成的,需要两个密钥(公钥和私钥)。如果其中一个密钥用于加密消息,那么必须使用另一个来解密。于是主控者可以自己持有一个密钥(私钥),将另一个(公钥)发放到僵尸主机上。他使用私钥对指令进行加密,然后僵尸主机使用公钥解密。没有私钥,任何人都无法正确加密指令。

网络架构

图1

大部分人眼中P2P僵尸网络的构造和图1类似,所有僵尸主机通过IP地址互相连接,互相发送命令,完全不需要中心服务器或者域名。很遗憾,这种表述是错误的。

那些使用NAT、防火墙,或者代理访问网络的计算机,无法接受连入的请求,它们只能向外发送消息,这会导致大多数僵尸主机无法被另一个直接连接。在传统僵尸网络中,这根本不是问题,因为僵尸主机都是连接到服务器的。因此在P2P网络中,我们仍然需要服务器,只不过形式不同罢了。

图2

把那些可以接受连入请求的僵尸主机(没有使用代理、NAT或防火墙)作为服务器(通常称作节点),同时那些不能连入的主机(通常称作worker,暂译工作机)将向一个或多个节点发起连接,从而获取指令(图2)。尽管这些节点仅仅从技术上可以作为服务器,但是可以利用它们防止僵尸网络被摧毁。办法就是:所有的工作机在节点间是分布式连接的,这使它们在某个节点失效时,能够轻易转移到另一个节点上。有时关闭所有的节点是一件不切实际的事情,于是P2P僵尸网络得以持续工作。不幸的是,这些节点都是合法的普通计算机,它们可不能像服务器一样随意被我们控制。

每个节点都维护着一个IP列表,它包含所有和自身有相同工作机的节点。然后工作机再获取这个列表,于是它们就能够在其中某个节点失效时转向另一个。在这个阶段,数个僵尸主机成为一组,并且连接到许多不同的节点,但整个僵尸网络还无法接受指令。为了使指令能够抵达网络中各台主机,需要僵尸主机连接到多个节点并把接受到的指令发送到其他节点,或者节点之间相互连接同时相互传递指令,亦或者把两者结合起来。

引导增殖

要将一台主机拥入僵尸网络的怀抱,它至少需要获取一个节点的IP地址,这时引导增殖的过程便开始了。僵尸程序里硬编码了一系列可提供自身繁衍所需信息的服务器(暂译引导服务器),当程序第一次在被感染的计算机上运行时,它就会连接到这些服务器。引导服务器的工作就是维护一个海量的节点地址,将其中一部分发放到僵尸主机上(把主机引入僵尸网络)。通常来说,引导服务器使用某种签名,防止被安全人员劫持,也避免提供无效的节点地址。

显然引导服务器是中心要点,就像传统僵尸网络一样,他们可以被破坏,然而这也不算什么大不了的事。如果所有的引导服务器在一瞬间被全部拿下,这也不会影响到已经存在的僵尸主机,只是阻止了新僵尸的加入。主控者可以从容地暂停感染新机器,直到他设置好新的引导服务器。因此这个办法只能算是一个临时措施,去攻击僵尸网络的引导增殖系统意义并不大。

拆解僵尸网络

攻击引导服务器只是临时地阻止了网络的感染,而包含数字签名的指令使得除了主控者以外的人无法操纵僵尸主机,同时节点数量又太多以至于很难同时被击破,那么我们还能做什么呢?

投下慢性毒药

几乎所有的P2P僵尸网络都有一个弱点,那就是所有的对等主机会使用相同的运行机制。像之前描述过的那样,节点主机需要维护包含其他节点的列表,同时共享给工作机,使它们能够分布式地连接到一系列节点上。如果主控者手动为每个节点提供其他节点的地址,将耗费难以估计的时间,甚至是不可能做到的,因此交给节点自动完成。当一个僵尸节点被认定可以接受连入请求时,节点主机便连接到它,并给它共享一个节点列表。

那么如果你引入一台对僵尸网络来说居心叵测的计算机呢,它有条件作为节点主机,并且向其他节点共享一个包含无效IP的列表。很可能效果不是很大,节点会校验新获取的IP以确保它们可用。但是既然想到了这点,离成功也就不远了!

安全人员可以引入许多这样的“恶意”计算机,并非提供无效的节点IP,而是提供它们各自的IP。资源充足的情况下,“恶意”计算机会成为僵尸网络中重要的一部分,并且把僵尸主机和节点主机分离。通过这样的方式,可以使工作机只能获取“恶意”的节点,从而显著降低它们重新成为僵尸网络一员的可能性。在一定的时间内,“恶意”节点会阻止正常节点传播命令,于是工作机也无法接收到指令,打了主控者一个措手不及。这个办法不太可能将所有的工作机分离出来,但已大大削弱了僵尸网络的影响程度。保持“恶意”节点持续运行能够将更多的主机占为己有,也时刻监视着那些可能存有“正常”节点IP地址的僵尸主机。


原文:Peer-to-Peer Botnets for Beginners
转载于:伯乐在线 - 蒋生武

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/11135.html

相关文章

  • P2P 僵尸网络入门

    摘要:传统僵尸网络传统僵尸网络图例无论使用或是其他协议,传统僵尸网络的构成都是相同的。尽管这些节点仅仅从技术上可以作为服务器,但是可以利用它们防止僵尸网络被摧毁。 当前人们正大肆宣传ZeroAccess(一种恶意程序)被攻克的消息,我认为是时候介绍一下P2P僵尸网络(botnets)了。包括它们是如何工作的,以及通常怎么应对它们。 传统僵尸网络 showImg(http://segmen...

    iliyaku 评论0 收藏0
  • 了解僵尸网络的控制类型可以做最好的防护措施!

    摘要:型僵尸网络主要是基于协议建立的命令与控制服务器的节点不再单一,可以通过网络中的任一节点控制整个型僵尸网络。 僵尸网络是由多个系统元素组成,节点也是由PC端和高性能服务器以及移动设备,那么它们之间是怎么进行相互联系的呢?僵尸网络的节点有几种方式,它也是根据通信的协议进行控制,大家都知道,互联网有很多种协议,我们主要讲下僵尸网络利用哪几种协议进行控制?showImg(https://seg...

    187J3X1 评论0 收藏0
  • 僵尸网络之如何防护DDoS攻击,愿这个世界再无黑产

    摘要:我写这篇文章的目的是为了让大家更多的去了解如何防护攻击,所以请勿用作违法行为愿这个世界再无黑产。僵尸网络执行某些任务的方式存在很大差异。这种结构是所谓的命令与控制僵尸网络的特征。与僵尸网络无关。该消息将从格式化为僵尸网络的名称要执行的命令。 ...

    NeverSayNever 评论0 收藏0
  • EOS入门指南 - PART2 连接主网

    摘要:本文主要介绍了本地的程序如何连接主网。连接主网添加种子节点这时我们看上去似乎没啥问题了,之后出来的也是主网,一切看上去岁月静好。这要靠显示声明的种子节点来解决,这些种子节点通常是的创建者和运营者。 本文主要介绍了本地的eos程序如何连接主网。 1. 我们在EOS主网上么 这时我们在命令行中输入: cleos get info 会显示如下界面:showImg(https://segmen...

    brianway 评论0 收藏0
  • 带你了解僵尸网络是怎样组成的?

    摘要:普通节点组建的僵尸网络是由大量安全性能差的个人计算机通过长时间的发展组成的。接入僵尸网络的僵尸程序将会被预先设置指令,给目标发起攻击。因此攻击者利用移动设备组成的僵尸网络随时进行持续不间断的发起攻击。 在流量攻击中,攻击者通常利用大批量僵尸网络和大量肉鸡发送恶意访问请求,因此有些人就会想说僵尸网络是什么?对于不懂网络得人肯定是存有疑问的,所以也经常会在网络安全防护中遇到用户问到僵尸网络...

    kviccn 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<