欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 计算机应用 > 一种利用Mainline DHT脆弱性发动DDos攻击的技术分析

一种利用Mainline DHT脆弱性发动DDos攻击的技术分析

日期:2023-01-24 阅读量:0 所属栏目:计算机应用


 0引言
  近年来,在各国版权和法律机构的压力下,以著名的海盗湾为代表的很多BT下载网站关闭了各自的Tracker服务器,由此将不再有中心Tracker服务器提供下载列表,节点也不可能再连入BT网络。但是BT提供了一种可选的方案,也就是连入DHT(Distribute hash table)网络,这时的每个节点都相当于一个小型的Tracker服务器,可用来维护某些文件的下载列表。
  DHT技术现在已经获得广泛使用,几乎所有的BT客户端软件都支持这个协议,因此该技术对BT的发展起到了很重要的推动作用。但与此同时,还应看到因其需要消耗大量资源来维护路由表,同时也没有对节点身份进行验证,就会导致DHT网络可能受到DDos攻击。本文主要研究了如何利用Mainline DHT协议的脆弱性进行DDos攻击,同时通过在Mainline DHT真实网络下的实验对攻击的性能进行了评估。可以看到利用这种脆弱性发动的攻击不仅仅对DHT网络本身有害,同时也可以对因特网内的任意一个用户发动攻击。
  1相关研究工作以及背景知识
  1.1Mainline DHT协议
  BitTorrent 使用了分布式哈希表(distributed sloppy hash table)的技术,用以实现在无tracker的torrent文件中peer的联系信息存储。此时,每个peer都是一个tracker。该协议是基于Kademila协议的,并且全部都使用着UDP报文。
  在DHT中,每个节点都有一个全局的唯一标识节点id。节点id的产生是随机的,且使用与BitTorrent的infohash相同的160-bit空间。“异或距离”用来比较两个node_id或者node_id与infohash的接近程度。Nodes必须维护一个路由表,其中保存了部分其他Nodes的联系信息。而当与自身节点更为接近时,路由表的信息则会更加详细。
  Mainline DHT协议包括4种RPC操作:
  (1)ping主要用于探测一个节点是否在线;
  (2)announce_peer用于通知一个节点储存对,方便日后查询需要;
  (3)find_node使用160位的目标ID作为参数。接收者返回包含K个离目标ID最近节点的形式的列表;
  (4)get_peers使用160位的infohash作为参数。接收者如果有这个infohash对应的peers下载列表,则直接返回相关的peers,否则返回本地路由表中距离infohash最近的K个节点。
  当一个node想得到某个torrent文件的peers,首先使用异或距离来比较torrent文件的infohash和路由表中节点的node ID。接下来向路由表中node ID与infohash最接近的那些节点发送请求,得到当前正在下载此一torrent文件数据的peers的联系信息。如果被请求的节点知道该torrent文件的peers,则peers的联系信息将包含在回复中。否则,被请求的节点必须返回其路由表中更接近infohash的那些节点。当获取得到peers列表后,客户端就可以使用BT协议与peers通信,并进行文件的下载了。
  1.2Mainline DHT安全性研究
  分布式拒绝服务主要是利用木马或病毒等攻击方式,将多台分散主机联合起来,再对某个或某些目标发动攻击,耗尽主机的资源。当然,联合的主机越多,拒绝服务攻击的效果就越好。
  近年来,有关利用P2P网络脆弱性发动DDos攻击已开展了大量研究。文献[1] 探讨了P2P网络中Napster等协议的安全性,并对DDos攻击的攻击防御方法进行了深入研究。文献[2-3] 借助BT协议中与Tracker服务器交互部分的脆弱性而发动了DDos攻击。但是由于近年来大部分Tracker服务器出于版权原因关掉,这种方式的危害性已经不大。文献[4-5] 研究了基于Mainline DHT脆弱性发动DDos攻击的方法。首先,在网络上选择非常热门的几个种子,其次在本地发动Sybil攻击伪造大量node_id与热门种子infohash接近的节点,这时就会有大量节点发送get_peers消息请求获取peers 列表,因此只需要将攻击的节点IP、端口写入get_peers回复中的peers字段,就会有大量用户对受害节点请求TCP连接,从而发动DDos攻击。虽然如此,但这样的方式却仅能针对某一个热门种子。通过文献[6]即可看到,一个热门电影的peers大小不过几万个,这样的数字也并不足以产生很大的危害。基于以上研究,进一步地,本文设计的系统可以对多个种子的用户列表同时进行污染,由此显著提高了攻击效率。第3期张信幸,等:一种利用Mainline DHT脆弱性发动DDos攻击的方法智能计算机与应用第4卷
 2系统设计与实现
  2.1Mainline DHT脆弱性
  Mainline DHT对节点node_id的选取并未做任何检查,因此可将DHT节点的node_id设置为任意值;其次,可在本地服务器上产生多个node_id,并将其发布出去,这样,外界就会将本系统视为多个DHT节点。一个DHT节点就是一个小型Tracker服务器,那么产生多个DHT节点,将这多个小型的Tracker服务器组合起来,就变成了一个大型的Tracker服务器。但对于node_id的选取,不能仅仅只是随机产生,而是需要进行精心设计,否则搜索效率将会非常地低。Mainline DHT也没有对节点node_id和IP以及端口做任何校验,因此在DHT网络发动Sybil攻击显然就极为容易了。
  2.2攻击原理
  在本文的系统中,完成DDos攻击主要有两个步骤。首先,要产生大量Sybil节点,如此可使DHT网络中尽可能多的节点知晓其存在后而向其发送get_peers请求;接下来,就可在get_peers回复中加入将要攻击的节点,这里的受害节点可使用一台预先部署的服务器进行测试;最后,大量的用户就会向受害节点请求TCP连接,相应地就在受害服务器端记录各项信息用于评估攻击性能。
  2.3系统设计
  文中的系统主要由图1所示的多个模块组成,下面对各个模块进行简要介绍:
  (1)base-mysql。这是mysql数据库操作的基类,其中实现了mysql数据库与C函数的接口函数,也就是将打开、插入、删除、查询等操作都进行了封装。
  (2)dht-mysql。base-mysql类的子类,在其基础上实现了dht模块与mysql的交互,而且将插入、删除等操作的参数都设置为infohash。
  (3)log。这个模块用来管理配置文件和日志文件,其中配置文件的名字是。
  (4)dht。这是程序最主要的模块,主要提供了3个接口函数,分别是:dht_init(),dht_periodic(),dht_uninit()。其中,dht_init()用来初始化搜索模块中的各数据结构,根据配置文件产生多个node_id,并开始第一步扩散;dht_periodic()是在epoll_wait()收到消息或者发生超时现象时调用 的,可解析收到的消息类型,并按照前述的消息处理方式对消息进行处理;dht_uninit()是对本模块进行一些释放工作,在此过程中,首先会产生大量Sybil节点并向DHT网络扩散,这样就能够收到大量get_peers请求,为此再构造get_peers回复,并在回复中包含全部的受害节点。
  (5)dht-config。用来解析、读取配置文件。
  (6)dht-main。这是main函数所在的模块,将其上所有模块整合起来实现系统的整体功能。
  图1系统架构
  Fig.1System architecture
  对于受害节点模块,则仅仅开启对应的端口号,并记录接收到的连接数以及占用的带宽,当客户端发送报文时,就将关闭连接。
  3实验结果与结论分析
  3.1节点扩散模块
  由2.1节可知,系统节点的扩散效果对DDos的攻击状况将产生很大影响,而通过文中在不同网络环境下的测试发现,对系统的扩散效果最具影响的因素就是IP类型。图2描述了在国内三种不同网络环境下,扩散系统在前140分钟收到get_peers请求的测试结果,其中电信网络和网通网络使用的都是内网IP,而移动网络使用的则是外网IP。可以看到在移动网络环境下,扩散效果非常好,140分钟内就收到了26万个get_peers请求,而另外两种环境请求数都在1万以下。由此可知,外网IP对系统性能影响很大,这主要是由于针对通过DHT网络学习到系统的那些节点,在外网IP环境下,能够主动与这些节点连接,而内网IP则不行,NAT阻断了很多连接请求。
  图2不同网络下收到的get_peers请求数
  Fig.2The number of get_peers requests in different network
  3.2DDos攻击的效能
  文中在该部分进行了4次实验,攻击时间分别为10:00、16:00、22:00、04:00,每次攻击持续1个小时,并且在已经部署的模拟受害节点上,持续监控6小时,受害节点总计监听24小时。其后,统计了各个时间点受害节点上收到的TCP连接数。
  图3描述了从10:00到16:00的DDos攻击情况。可以看到在10:00到11:00的攻击持续时间中,收到的请求数从0快速增加到6万以上,在11点系统的监听程序死掉了,即进行了重启。重启后看到,尽管在12点已经停止了攻击,但是系统仍然收到很多的新攻击,在13点30左右甚至超过了之前11点的峰值。
  图310:00-16:00收到的攻击连接数
  Fig.3The number of attack connections
  received in 10:00-16:00
  图4描述了16:00到22:00的攻击情况,这里为受害模拟程序增加了重启脚本,同时为了防止机器死掉,即将程序最大连接数限制为112 000万。可以看到,在17点停止攻击后,连接数仍然继续增加,直到19点左右增加到设定的最大限制值。
  图416:00-22:00收到的攻击连接数
  Fig.4The number of attack connections
  received in 16:00-22:00
  图5描述了22:00到04:00的攻击情况。可以看到,攻击延续了之前的连接,一直保持之前设定的最大连接数,直到3点时程序得到了重启。
  图522:00-04:00收到的攻击连接数
  Fig.5The number of attack connections
  received in 22:00-04:00
  图6描述了04:00到10:00的攻击情况。可以看到,这个时间段的增加速度明显没有之前快。对比图6与图4可以得到,图6中在攻击后五小时才达到所设定的最大连接数,而图4仅经过两小时就已达到了这一数目。
  由图3~图6可以看出,利用Mainline DHT脆弱性发动的DDos攻击具有很强的可持续性,在攻击结束后的6小时,新的连接仍然在不断建立;其次,与文献[5]及文献[7] 相比,文献中的DDos攻击数都在25左右,而文中的DDos攻击规模则在10万以上,其攻击威力明显要强大了许多;最后,通过图4和图6的对比还可以看到16:00时的攻击性能比04:00要提高了2倍,这说明白天的攻击性能比晚上的要好一些。图604:00-10:00收到的攻击连接数
  Fig.6The number of attack connections
  received in 04:00-10:00
  4结束语
  本文给出了一种利用Mainline DHT脆弱性发动DDos攻击的方法。由实验结果可以看出,这种方法可以对因特网上的任意目标发动DDos攻击,并造成很大的危害。通过文中的实验可以得到以下结论:第一,利用Mainline DHT脆弱性发动DDos攻击可以造成很大的危害性,对比文献[5]和文献[7] 中受害机上产生的25个左右的DDos TCP连接数,本文中的10万以上的TCP连接数,显然其危害要更大;第二,白天的攻击效能要比晚上提高2倍左右;最后,这种攻击方式的持续性非常强,在停止攻击后的5小时仍然能接收到大量TCP连接。因此,Mainline DHT的脆弱性会对因特网造成很大危害,应当对其Mainline DHT协议进行安全性增强改进。
  参考文献:
  [1]刘晓娟.基于P2P网络的DDoS攻击防御研究[D]. 北京:北京邮电大学,2009.
  [2]JEROME H, COREY K, ZOU C C. A BitTorrent-driven distributed denial of service attack[C]// Security and privacy in communication networks and workshops International conference,2007:261-268.
  [3]DEFRAWY K, GJOKA M, MARKOPOULOU A. BitTorrent: misusing BitTorrent to launch DDoS attacks[C]// SRUTI 2007: Proceedings of the 3rd USENIX Workshop on Steps to Reducing Unwanted Traffic on the Internet,2007:1–6.
  [4]史建焘,张宏莉.一种DHT安全性优化策略[J].智能计算机与应用,2012,2(6):11-13.
  [5]余杰.P2P网络测量与安全关键技术研究[D].长沙:国防科学技术大学,2010.
  [6]WOLCHOK S, HALDERMAN J A. Crawling BitTorrent DHTs for fun and profit[C]// Proceedings of the 4th USENIX Conference on Offensive Technologies., August 2010:1-8.

本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/243376.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学