电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 859 人浏览分享

解析p2p僵尸网络工作原理内幕

[复制链接]
859 0
p2p僵尸网络工作原理

严格的说,本节所要讨论的内容已经超出了本文主题范围,但是因为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网络中。假定一组攻击者节点已经构成了一个虚假网络,他们也运行和真实网络相同的协议,因此这个虚假网络从内部来说也是完全正确的。而且其中某些节点也可能是真实网络中的节点。这时如果新节点把这个虚假网络中的某个节点作为初始化节点,那么他将落入到这个虚假网络中去,与真实网络分隔开来。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

关注

0

粉丝

39

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.