可否利用蠕虫建立一个分布式网络系统?

tabris17

发帖: 202
积分: 0
注册: 2001-10-04

以往的蠕虫传播,蠕虫将代码传播到另外的主机上,就算完成了任务,网络仅仅是作为一种传播途径。蠕虫只能按照作者编写代码时所决定的功能来运作,对于杀毒软件的防范能力也是有限的,可预料的。而且蠕虫一旦传播开去,就不在作者的控制范围内了(虽然有些蠕虫会在主机上留下后门,但是这种控制能力是独立的、单一的,而不是系统的)

Kademlia被应用在p2p技术中,是一个分布式的网络结构,比如emule的Kad,和BT的DHT网络。

以下为引用:

引用


Kademlia技术,通常又被称为第三代p2p技术,是一种P2P通用协议,适用于所有的分布式点对点计算机网络。Kademlia定义了网络的结构,规划了节点之间的通讯以及具体的信息交互过程。在Kademlia中,网络节点之间使用UDP进行通信,通过一种分布式哈希表来存储数据,每个节点都会有一个自己的ID,在用来标识节点本身的同时,也用以协助实现Kademlia算法和流程。





引用


没有服务器的 Kademlia 网络



连接到这个网络

唯一要做的事是需要连接到这个网络任何已连接的 eMule 客户端 IP 和端口. 这称做启动(Boot Strap).

一旦一个客户端在这个网络, 客户端会要求其他的客户端来判断它是否能自由的连接. 这个过程非常相似于服务器的 高-ID/低-ID 检查. 假如您能自由的连接, 您会被分配一个 ID (相似一个 高-ID) 并且是一个 “直接” 状态. 假如您不能自由的连接, 您会是一个 “防火墙内” 状态. 自从 v.44a 版本之后, Kademlia 网络支持一个 伙伴 来帮助防火墙的使用者. 伙伴是其他的 Kademlia 客户端有著 直接 的 Kad 连接状态并且工作成接替连接的方式, 那样子防火墙内的使用者不能控制著它.



在 Kademlia 搜索

在这个网络你的搜索不是重要的. 对于文件名称, 在一个下载的来源或其他使用者的搜索, 所有工作几乎一样.

在那里没有服务器保持追蹝客户端及他们共享的文件所以它是由每个在这个网络参与的客户端完成 – 基本上, 所有的客户端也是一个小服务器.

自从每个客户端是由一个独一无二的哈希值识别, Kademlia 的构想是结合一个特定的 “责任” 基础在这个哈希值. 每个客户端在 Kademlia 网络为特定的关键字或来源工作成一个服务器. 客户端的哈希值决定了特定的关键字或来源.

所以任何种类的搜索目标是由那些有目前搜索主题责任的客户端来寻找. 这个是由一个藉由询问其他客户端与目标客户端可能的最短路径之复杂计算完成的.



只要接入蠕虫所建立的Kademlia网络,完全可以做到,在电脑前发出一条指令使得所有被感染的网络主机都来响应。
运用Kademlia技术,蠕虫的核心就变成了它所建立的 Kademlia 网络,而非它本身的程序。因为完全可以利用Kademlia网络来对蠕虫的程序进行升级换代,这样不仅使得蠕虫能更有效的避免杀毒软件的查杀,还可以不断的增加蠕虫的功能,不会因为某个漏洞的修复,而导致蠕虫无法传播。

以上纯粹个人妄想,是否可行还值得商榷。
---
Time of Legend
Time of History

 

X-tiger

发帖: 97
积分: 0
注册: 2004-10-07

为什么不可以呢
完全可以啊。
比如我在一个地方放上某时需要蠕虫执行的任务(命令),比如定时连接某网站的页面,从页面中提取需要操作的命令。这样应该可以吧?
Kademlia网络是啥我不懂,就是简单的升级什么的,应该不是什么难题吧?
我以为,没必要把这些想那么复杂。

 

tabris17

发帖: 202
积分: 0
注册: 2001-10-04

引用
比如我在一个地方放上某时需要蠕虫执行的任务(命令),比如定时连接某网站的页面,从页面中提取需要操作的命令。



这样就是一个服务器/客户端网络了,而不是对等网络
万一服务器被封,或者警方通过服务器找到作者怎么办?一旦服务器失效,整个系统就瘫痪了。


而在Kademlia网络中,没有服务器,每个网络节点都要负责一部分网络的路由,没有服务器,不会由于网络的一部分节点失效而导致整个网络的瘫痪,具有更好的稳定性

tabris17 编辑于 2006-01-28 16:16
---
Time of Legend
Time of History

tabris17

发帖: 202
积分: 0
注册: 2001-10-04

 

还有就是,当蠕虫蔓延规模加大了,仅仅几台服务器根本就不堪重负
这就变成DDOS了


想象一下,如果当年所有感染“冲击波”的主机在某个特定的日子突然全部瘫痪,这将给地球带来多大的影响?
---
Time of Legend
Time of History

vxk

发帖: 226
积分: 0
注册: 2004-10-21

只能在实验室里模拟这样的虫子,现实中对网络造成的负担太大,责任付不起阿~~~
有机会探讨一下~~~
嘿嘿~~以前有过这样的想法,不过觉得既然你能分布虫子来升级,AV一样可以利用你得升级来清理你得虫子...
---
每当鲜血流过我的喉咙,我知道我被诅咒了,但是那血的快感让我无法停下。

 

引用
不过觉得既然你能分布虫子来升级,AV一样可以利用你得升级来清理你得虫子



可以对虫虫程序本身的合法性进行验证,呵呵

还想到了一点:如何排除一些伪造的节点对网络本身的影响
AV可能会采用一些非法节点来接入这个网络,从内部来瓦解这个网络,所以这个网络还必须有一定的容错和纠错功能。由于正常节点的数量肯定大于伪造节点的数量,应该能有办法来找出这些恶意节点并忽略它们的(虽然我还没想到^_^)

应该发挥网络的分布计算和分布存储的优势,肯定还能想到很多好玩的东东
---
Time of Legend
Time of History

tabris17

发帖: 202
积分: 0
注册: 2001-10-

vxk

发帖: 226
积分: 0
注册: 2004-10-21

这样的虫子,工程量巨大,其实主要还是责任太大,一旦外流麻烦不断阿
——你要是有大规模的实验室内网还可以考虑自己实验一下~
---
每当鲜血流过我的喉咙,我知道我被诅咒了,但是那血的快感让我无法停下。

ww0830

发帖: 77
积分: 0
注册: 2003-09-01

。。。。对,只能基于模拟的研究吧
---
所谓庸人,就让他们更平庸吧,这是他们的选择,他们也将为此付出代价;
所谓精英,就让自己更杰出吧,这是我们的选择,努力是我们唯一能做到的。

tabris17

发帖: 202
积分: 0
注册: 2001-10-

可以写一个P2P软件来模拟这个网络,然后提供给外界的大量用户使用,以采集数据以及验证效果,嘿嘿

等到模型完善了,加上Exploit就能传播了

即便是外流传播开去也不是很危险,毕竟这个虫子还是可以控制的
---
Time of Legend
Time of History

 

 

D4niel

发帖: 1
积分: 0
注册: 2005-08-01

考虑过类似的问题
把升级程序放到某台虫子上
用类似tor那样共享路由表的办法 建立加密连接
每次连接的路点都是随机的
这样会让监测变得更复杂 假如有honeybot并入虫子的网络
对整个网络的嗅探也会更难

 

Stravadivaly

发帖: 62
积分: 0
注册: 2005-02-20

听到过一个说法: 蠕虫病毒的原形,就是分布式系统中信息采集传送程序。因为编写时的错误,才产生了如今的蠕虫。
---
When the Hell is full,  The death walk on the earth.

vxk

发帖: 226
积分: 0
注册: 2004-10-21

~~~寒~~~
这个说法很玄乎~~
---
每当鲜血流过我的喉咙,我知道我被诅咒了,但是那血的快感让我无法停下

tabris17

发帖: 202
积分: 0
注册: 2001-10-04

写了一个玩玩,等过完年拿到公司的局域网里试试看,hoho
---
Time of Legend
Time of History

vxk

发帖: 226
积分: 0
注册: 2004-10-21

heihei~~
p2p软件...
---
每当鲜血流过我的喉咙,我知道我被诅咒了,但是那血的快感让我无法停下


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值