avatar

对等网络协议在botnet中的应用

对等网络协议在botnet中的应用

Botnet-僵尸网络

Botnet的基础概念

僵尸网络 Botnet 是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序)病毒,从而在控制者和被感染主机之间所形成的一个可一对多控制的网络。

攻击者通过各种途径传播僵尸程序感染互联网上的大量主机,而被感染的主机将通过一个 控制信道 接收攻击者的指令,组成一个僵尸网络。之所以用僵尸网络这个名字,是为了更形象地让人们认识到这类危害的特点:众多的计算机在不知不觉中如同中国古老传说中的僵尸群一样被人驱赶和指挥着,成为被人利用的一种工具 [1]

Botnet的发展历史

​ 时间来到1993年,最开始被使用的bot程序是由Eggdrop程序控制的IRC聊天网络(速度快、低时延的一种网络协议),主要应用是对IRC网络中的频道滥用、管理权限、纪录频道的防范。后来黑客编写带有恶意功能Bot工具从而对受害者的主机进行利用,所以IRC也是bot程序中被广泛采用的协议。

0NTtw6.png

​ botnet的发展是随着计算机的发展不断进步的,在20世纪90年代,DDOS(分布式拒绝服务)的概念成熟,该技术可以对网站服务器发起大量访问,堵塞服务器的网络流量,导致服务器不能被正常访问。这期间诞生了如:TFNTFN2KTrinoo这些程序。依靠这些程序可以运行不同版本的网络协议从而产生各种不同的攻击,同时运行有这些程序的计算机从一定角度上来说已经有了Botnet的雏形。

​ 1999 年,在第八届DEFCON 年会上发布的SubSeven 2.1 版开始使用IRC 协议构建攻击对僵尸主机的控制信道,也成为第一个真正意义上的bot程序。随后基于IRC协议的bot程序的大量出现,如GTBotSdbot 等,使得基于IRC协议的Botnet成为主流。

​ 来到21世纪,Iot的构建也使得利用物联网构建Botnet成为了可能,如Mirai(2016年十月,利用telnet爆破了一个蜜罐从而被发现),后来其变种Gafgyt(又称BASHLITE,Qbot,Lizkebab,LizardStresser),这是一款基于IRC协议的物联网僵尸网络程序,主要用于发起DDoS攻击也显示出了他巨大的威力,估计感染了100万以上的Iot设备[2]

​ 同时,为了保证设备之间的匿名性,大量设备的管理和攻击者也为了保证自身的不可溯源性,采用了当下更为新潮的P2P协议,如:Hide ‘N Seek3。所以p2p协议也广泛引用在IOT的僵尸网络中。

Bot程序的种类分类

  • IRC Botnet。是指控制和通信方式为利用IRC协议的Botnet,形成这类Botnet的主要bot程序有spybot、GTbot和SDbot,目前绝大多数Botnet属于这一类别。
  • AOL Botnet。与IRC Bot类似,AOL为美国在线提供的一种即时通信服务,这类Botnet是依托这种即时通信服务形成的网络而建立的,被感染主机登录到固定的服务器上接收控制命令。AIM-Canbot和Fizzer就采用了AOL Instant Messager实现对Bot的控制。
  • P2P Botnet。这类Botnet中使用的bot程序本身包含了P2P的客户端,可以连入采用了Gnutella技术(一种开放源码的文件共享技术)的服务器,利用WASTE文件共享协议进行相互通信。由于这种协议分布式地进行连接,就使得每一个僵尸主机可以很方便地找到其他的僵尸主机并进行通信,而当有一些bot被查杀时,并不会影响到Botnet的生存,所以这类的Botnet具有不存在单点失效但实现相对复杂的特点。

Botnet的危害

(1)主动攻击漏洞。其原理是通过攻击系统所存在的漏洞获得访问权,并在Shellcode 执行bot程序注入代码,将被攻击系统感染成为僵尸主机。属于此类的最基本的感染途径是攻击者手动地利用一系列黑客工具和脚本进行攻击,获得权限后下载bot程序执行。攻击者还会将僵尸程序和蠕虫技术进行结合,从而使bot程序能够进行自动传播,著名的bot样本AgoBot,就是实现了将bot程序的自动传播。

(2)邮件病毒。bot程序还会通过发送大量的邮件病毒传播自身,通常表现为在邮件附件中携带僵尸程序以及在邮件内容中包含下载执行bot程序的链接,并通过一系列社会工程学的技巧诱使接收者执行附件或点击链接,或是通过利用邮件客户端的漏洞自动执行,从而使得接收者主机被感染成为僵尸主机。

(3)即时通信软件。利用即时通信软件向好友列表发送执行僵尸程序的链接,并通过社会工程学技巧诱骗其点击,从而进行感染,如2005年年初爆发的MSN性感鸡(Worm.MSNLoveme)采用的就是这种方式。

(4)恶意网站脚本。攻击者在提供Web服务的网站中在HTML页面上绑定恶意的脚本,当访问者访问这些网站时就会执行恶意脚本,使得bot程序下载到主机上,并被自动执行。

(5)特洛伊木马。伪装成有用的软件,在网站、FTP 服务器、P2P 网络中提供,诱骗用户下载并执行。

通过以上几种传播手段可以看出,在Botnet的形成中传播方式与蠕虫和病毒以及功能复杂的间谍软件很相近。

对等网络协议简介

对等式网络(英语:peer-to-peer, 简称P2P),又称点对点技术,是无中心服务器、依靠用户群(peers)交换信息的互联网体系,它的作用在于,减低以往网路传输中的节点,以降低资料遗失的风险。与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其户群进行信息交流。

P2P节点能遍布整个互联网,也给包括开发者在内的任何人、组织或政府带来监控难题。P2P在网络隐私要求高和文件共享领域中,得到了广泛的应用。使用一般型P2P技术的网络系统有比特币Gnutella等。另外,P2P技术也被使用在类似VoIP等实时媒体业务的数据通信中。有些网络(如Napster、OpenNAP、IRC 、@find包括搜索的一些功能,也使用客户端-服务器结构,而使用P2P结构来实现另外一些功能。这种网络设计模型不同于客户端-服务器模型,在客户端-服务器模型中通信通常来往于一个中央服务器。[4]

在生活中我们最常见的应用方式就是下载

  • 在传统的C/S(客户端-服务器)中的下载,所有客户都向一个服务器之前进行通讯,从而进行文件的传输。这样的话,用户过多就会对服务器的网络进行堵塞,而且服务器重复的发送相同数据也大大降低了传输效率。

    0Ui8eK.png

  • 那么我们让用户之间进行通讯呢?这样的话,假如一份文件被分成3份,每份代号为1、2、3,有 A、B、C三个用户要下载这份文件,那么服务器先这样传送 1->A、2->B、3->C,然后用户之间A+B->C、A+C->B、B+C->A,这样大大提升了下载速度。

    0UiGdO.png

典型:StormWorm僵尸网络

简介

This worm uses email and various phishing Web sites to spread and infect computers. When the worm breaks into the system, it installs a kernel driver to protect itself. With the help of the driver, it then injects and runs malicious code from the legitimate process “services.exe”. So, it can bypass firewalls easily and open a back door for the bad guys. This worm contains an SMTP client engine and a peer-to-peer client component. Obviously, these components are prepared for spamming or mass-mailing purposes. [6]

Bot程序通过邮箱和钓鱼网站来传播,同时向受害者的设备中植入rootkit(这导致他可以绕开防火墙甚至操作系统部件)和木马后门。程序同时包含了一个STMP的邮件收发协议和P2P网络协议用于邮件传播和控制。

对等网络的利用手法

在这里我们略过逆向工程部分,直接看他是如何利用p2p来管理的

(1)将系统时间当作随机数种子

(2)由Kademlia算法生成128bit的ID作为一个Bot的ID(分布式哈希表)

+--------------------------+-----------------------+
| 128 bit 随机 ID | IP | UDP端口 | Flag |
+--------------------------+-----------------------+

(3)从自身携带的静态字符串中随机选择一个IP/UDP端口

(4)在设置文件中保留一部分Botnet的消息

这样不同的Bot子网络之间相互通讯,并且通过分布式哈希表来避免广播灾难的发生。

最后通过对手感染机器上保留的那一小部分Botnet子网的信息进行分析后,利用python爬虫获得网络结构,最终得到BotList,描绘了StormWorm的庞大受害面积,在JunZhang[6]的研究中,最终扫描的UDP节点多达5796个。

D-BitBot模型

模型简述

该模型为我们阐述了一种基于比特币网络双向通信的点对点(P2P)僵尸网络模型构建方法[7],从而对Botnet的鲁棒性得到大大提升,利用这种方法可以大大提升Botnet的效果。

模型的改进

1.使用比特币测试网络作为回传信道

该网络由三个部分组成;

控制端(Botmaster):发布命令和接受回传数据

普通节点(Normal Bot):被控制端

感知节点(Sensor Bot):被控制端

​ 每个感知节点有控制端认可的两个比特币私钥和对应的比特币测试网络,用于发行和测试网络比特币,这样比特币测试网络地址上具有未花费的交易(Unspent Transaction Output,UTXO),则可以将数据传回控制端。

​ 之后让整个Botnet加入到Sensor Bot网络里面,通过SensorBot的比特币测试网络识别出攻击者的指令与反馈,在将数据回传给Botmaster,从此Botmaster完成了对自己僵尸网络的升级。

​ 构架如图:

0U20g0.jpg

2.节点上线机制

上线地址通过周期性发布的比特币交易被记录在比特币主网区块链上.未加入网络的D-BitBot通过对比特币主网区块链进行检索即可获取最新的上线地址并加入到僵尸网络中。

3.节点列表交换算法

在原文中已经介绍的很详细了,这里不再赘述[7]

该模型的抵御方法

(1)由于该模型基于比特币网络,需监听受感染主机的8 333和18 333端口(比特币主网和比特币测试网络的默认通信端口),那么受感染的主机关闭关口即可。

(2)发布命令的比特币主网结点被屏蔽,虽然这完全违背比特币创造的初衷。

(3)连接到比特币主网的时候会经过ISP服务器,运营厂商可以屏蔽流量导致与僵尸网络的通讯完全失效,并且可能对Botmaster的溯源变得简单,但是全球来讲有很多的ISP服务器,所以僵尸网络在全球均有设备的情况下几乎不可能被关闭。

总结

僵尸网络已经成为当前网络空间面临的最大安全威胁之一,伴随着新技术的出现,僵尸网络逐渐偏向于由物联网设备组成的对等网络,同时用于传播的恶意软件的破坏性也越来越大,有时甚至会包裹一些0day;而对等网络技术使得对控制端的溯源变得越来越困难,这种强大的能力今后也可能会称为网络战的一部分。

参考文献

[1]百度百科-僵尸网络

[2]Gafgyt家族物联网僵尸网络家族分析

[3]“捉迷藏”IoT僵尸网络,以自定义P2P形式进行传播感染的新型僵尸网络

[4]维基百科-点对点网络

[6]Storm Worm & Botnet Analysis

[7]D-BitBot:比特币网络双向通信的P2P僵尸网络模型-周安民 钟毅 左政 张磊
四川大学网络空间安全学院 四川大学电子信息学院

Author: Joe1sn
Link: http://blog.joe1sn.top/2020/%E8%BF%91%E5%B9%B4p2p%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE%E5%9C%A8botnet%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信