标签:架构 优化 复杂 执行 serve 拒绝 维护 就是 http
一、DDOS攻击的来源
任何攻击都不会凭空产生,DDOS也有特定的来源。绝大多数的DDOS攻击都来自于僵尸网络。僵尸网络就是由数量庞大的可联网僵尸主机组成,而僵尸主机可以是任何电子设备(不仅是X86架构的设备,更多反而是物联网中的ARM架构设备),只要被植入僵尸程序即可!
僵尸网络有一个特点:控制者和僵尸主机之间存在一对多的关系,在控制者发布命令后就可以断开与僵尸网络的连接,之后控制命令会在僵尸主机之间自行传播和执行。
僵尸网络架构一般有以下两种:
1、client—to—server型:
client—to—server型僵尸网络是一种典型的星型拓扑,由若干僵尸主机和控制服务器两部分组成。
这种僵尸网络相对比较传统,僵尸主机在被植入僵尸程序后会主动连接一个固定的地址(即控制服务器),然后由控制服务器进行集中管理。
这类的僵尸网络控制相对较容易,而且能快速分发控制者的命令,但是这种控制方式也存在两个重要的不足:
①、控制服务器一旦故障则整张网络失效
②、从僵尸主机侧可以查出控制服务器的地址(容易被抓)
P2P型:
相比client—to—server型P2P型就显得略微复杂一些。在P2P型僵尸网络中充当控制服务器的节点不再单一,而是每台僵尸主机既扮演控制服务器的角色又扮演客户端角色。这样就解决了传统client—to—server型僵尸网络控制服务器单点故障的问题。当然,随之而来的是更加复杂的网络拓扑维护算法。
这种僵尸网络每台僵尸主机都有一张有限的邻居表,并周期性的向其邻居表内的主机发送keeplive包来维护整个僵尸网络。每台僵尸主机在被植入僵尸程序的时候会将上游的邻居表一同植入,并将上游僵尸主机作为主下一跳,邻居表内的其他主机作为备下一跳(主失效后备上位,确保网络不中断),然后继续感染其他主机,在成功感染下一台主机后将对自身邻居表进行优化(将自身作为邻居表中的一员,并随机删掉一个老邻居)后传递给被感染主机,以此递归循环下去,最终构成一张庞大的僵尸网络。(学过网络的同学一定觉得这跟路由协议如出一辙)
那么攻击者是怎样来控制这样一张僵尸网络呢? 攻击者只需要与这张网络中的任意一台僵尸主机进行通信(一般需要经过认证)即可从此节点注入其控制命令,然后指令就如同蜻蜓点水的水波一样向周围扩散,直到扩散至这张网络的边缘。当然,在僵尸主机收到指令后会先判断该指令是否已经存在,如已存在则不处理(僵尸网络也需要防环)
站在监察者的角度来说,通过捕获一个节点可以发现此僵尸网络的许多僵尸主机,但却很难看到其全貌(这根绳子不知道捋到什么时候算个头)
二、DDOS攻击类型:
攻击服务端的:
1、攻击带宽型:
向目标发送大量数据包,以占满被攻击者的带宽,从而实现拒绝服务的目的。例:
UDP洪水攻击:
这是一种最简单粗暴的方法,利用UDP协议直接向目标发送大量的数据包来堵塞对方带宽。但是这种方法对自身要求也极高,属于伤敌一千自损也一千的行为(假如对方带宽10G,那自己这边也需要10G的带宽才可以)。
往往攻击者在带宽资源方面处于劣势,这时他们就会想,有没有可以以小博大的方法呢?有!那就是“放大器”。。。即:自身发出1G的流量,经过放大器后变为10G甚至更大的流量!
标签:架构 优化 复杂 执行 serve 拒绝 维护 就是 http
原文地址:https://www.cnblogs.com/baihualin/p/11336944.html