严格的说,本节所要讨论的内容已经超出了本文主题范围,但是因为P2P驱动的DDoS攻击很容易与基于P2P的僵尸网络发起的DDoS攻击混淆,所以在这里简要讨论一下。前者是利用P2P协议本身的漏洞,作为发起攻击的手段,而后者在本质上同其它僵尸网络的DDoS攻击一样,只是僵尸网络的控制使用了P2P协议。P2P驱动的DDoS攻击大致可分为以下四类:
·INDEX 投毒
很多P2P系统(不仅限于P2P文件共享系统)包含INDEX,INDEX是文件ID到文件位置(IP+Port)的映射,文件ID是文件名的hash值。欺骗主机把假冒的INDEX保存到本地的索引中,其中IP地址和端口是攻击目标的地址和端口。indexing 节点被投毒以后,当另一个节点搜索一个特定文件的位置时,它就会接收到一个来自被投毒节点的虚假的记录,进而试图从受害主机下载那个文件。首先它先与受害主机建立一个TCP连接,连接建立后,下载节点会发送一个应用层协议的消息,说明它希望下载的文件。由于无法理解这个消息,受害主机可能会忽略这个消息也许会让TCP连接挂在那里,也许关闭连接,也可能崩溃。如果很多节点试图从受害主机下载那个文件,受害主机就遭受到TCP-connection攻击。如果是每隔几分钟就自动索取文件的话,攻击的影响可能更严重。
·路由表投毒
DHT-based P2P系统,节点具有ID,这些IDs 用来把节点组织到一个覆盖范围内,每个节点都有一组邻居。在许多DHT系统中,节点有一个相对较小的邻居集合。通常是 O(log N ), N 是全部节点的数量。
节点的邻居列表组成了路由表,列表中的每个条目包含邻居的ID, IP地址和端口号。DHT中的查询消息包含一个key。 当一个节点接收(或生成)一个消息,它用这个key从路由表中来选择一个邻居转发这个消息。邻居的选择依赖于DHT。当一个节点加入系统,它建立自己的路由表,并且不断更新。当检测到一个邻居节点离开了系统,就删除路由表该邻居的条目。当发现一个新的节点(例如接收到一个查询消息),它可能增加这个节点到它自己的DHT的最高端并且实现协议的标准。
当路由表被投毒以后,攻击者的目标是欺骗其它的终端添加伪造的邻居IP地址,这个地址是攻击受害者的地址。根据DHT及其实现,可以用简单的发送宣告消息来给路由表投毒。一旦接收到宣告,节点可能会选择把这个伪造的IP地址放入路由表并转发消息到邻居节点。
当这个被投毒的节点需要通过DHT转发消息,会有很多节点被投毒,如果被投毒的节点很多,并且一个或多个伪造的IP地址被加入路由表。受害主机可能会接收到来自DHT的巨大消息洪流,受害主机对这些消息作出响应,也会阻塞它自己的上联通道。
·分隔攻击
在新节点加入系统时, 必须和系统中现有节点进行联系以获得相应的初始路由信息。这时,新节点可能被分隔到一个不正确的P2P网络中。假定一组攻击者节点已经构成了一个虚假网络,他们也运行和真实网络相同的协议,因此这个虚假网络从内部来说也是完全正确的。而且其中某些节点也可能是真实网络中的节点。这时如果新节点把这个虚假网络中的某个节点作为初始化节点,那么他将落入到这个虚假网络中去,与真实网络分隔开来。
·Query Flood
攻击者发送大量的虚假查询请求,这些查询请求会被P2P网络广播变成更多的查询请求,从而造成一定程度的拥塞。但是这种攻击如果不利用僵尸网络协同发起,攻击效果是非常有限的。
3.7 基于HTTP协议的Botnet
HTTP 协议是近年来除IRC 协议外的另一种流行的僵尸网络命令与控制协议,与IRC 协议相比,使用HTTP 协议构建僵尸网络命令与控制机制的优势包括两方面:
·僵尸网络更隐蔽,难以检测
由于IRC 协议已经是僵尸网络主流控制协议,安全业界更加关注监测IRC 通信以检测其中隐藏的僵尸网络活动,使用HTTP 协议构建控制信道则可以让僵尸网络控制流量淹没在大量的互联网Web 通信中,从而使得基于HTTP 协议的僵尸网络活动更难以被检测;
·控制信息可以绕过防火墙
大多数组织机构在网关上部署了防火墙,在很多情况下,防火墙过滤掉了非期望端口上的网络通信,IRC 协议使用的端口通常也会被过滤,而使用HTTP 协议构建控制信道一般都可以绕过防火墙。
·代码个头小,容易隐蔽
这类Bot程序除了用于攻击还用户完成对网站的欺诈点击,如果控制协议采用别协议,势必要用额外的代码实现,而采用HTTP 协议则不需要额外的代码。
目前,已知的采用HTTP 协议构建命令与控制机制的僵尸程序有Bobax、Rustock、Clickbot等。例如,Bobax 僵尸程序,它首先会访问类似“http://hostname/reg?u=ABCDEF01&v=114”的一个URL,向僵尸网络控制器发送注册请求,如果连接成功,则僵尸网络控制器将反馈这一请求,并在返回内容中包含当前攻击者对僵尸网络发出的控制命令,Bobax 僵尸程序则从返回内容中解析出命令并进行执行,Bobax 僵尸程序接受的命令包括:upd(下载并执行更新程序)、exe(执行指定的程序)、scn(使用MS04-011 破解程序扫描并感染主机)、scs(停止扩散扫描)、prj(发送垃圾邮件)、spd(报告网络连接速度)等
文章来自天迹社区,原文地址:http://www.99tianji.com/tianji31240.html