精华内容
下载资源
问答
  • DDoS攻击原理防御方法
  • ---恢复内容开始---DDOS是分布式拒绝访问服务攻击,就是海量的向服务器发起request,而服务器难以区分这些request哪些是真实请求。只能都进行回应,于是服务器的带宽被榨干,无法相应,使得正常的访问也被拒绝。SYN...

    ---恢复内容开始---

    DDOS是分布式拒绝访问服务攻击,就是海量的向服务器发起request,而服务器难以区分这些request哪些是真实请求。只能都进行回应,

    于是服务器的带宽被榨干,无法相应,使得正常的访问也被拒绝。

    SYN攻击的原理;

    SYN攻击主要利用的是TCP/IP协议

    TCP三次握手的过程

    client server

    SYN(SEQ=x)

    =========================>

    state  SYN_SEND

    SYN(SEQ=Y) ACK(ACK=x+1)

    <========================

    state                      SYN_RECV

    ACK(ACK=y+1)

    =========================>

    state ESTABLISHED <==================>ESTABLISHED

    ......

    如上图所示,建立一次连接需要经过三次连接,当第二次握手发生时,server断就会将client端的地址放入一个缓存队列,等待client完成第三次握手。

    SYN攻击使得服务器发回第二次握手给一个并不存在的地址,并将其存在缓存队列等待。很快队列会被填满,攻击效果达到。

    linux下的防御措施

    主:

    方式1、减少发送syn+ack包时重试的次数

    synctl -w net.ipv4.tcp_syncak_retries=3

    synctl -w net.ipv4.tcp_syn_retires=3

    方式2、开启SYN cookies

    synctl -w net.ipv4.tcp_syncookies=1

    方式3、增加backlog队列

    synctl -w net.ipv4.tcp_max_syn_backlog=2048

    次:

    关闭ICMP协议请求

    synctl -w net.ipv4.icmp_echo_ignore_all=1

    通过iptables防止扫描

    iptables -A FORWARD -p tcp -syn -m limit -limit 1/s -limit-burst 5 -j ACCEPT

    iptables -A FORWARD -p tcp -tcp-flags SYN,ACK,FIN,RST RST -m limit -limit 1/s -j ACCEPT

    iptables -A FORWORD -p icmp -icmp-type echo-request -m limit -limit 1/s -j ACCEPT

    ---恢复内容结束---

    DDOS是分布式拒绝访问服务攻击,就是海量的向服务器发起request,而服务器难以区分这些request哪些是真实请求。只能都进行回应,

    于是服务器的带宽被榨干,无法相应,使得正常的访问也被拒绝。

    SYN攻击的原理;

    SYN攻击主要利用的是TCP/IP协议

    TCP三次握手的过程

    client server

    SYN(SEQ=x)

    =========================>

    state  SYN_SEND

    SYN(SEQ=Y) ACK(ACK=x+1)

    <========================

    state                      SYN_RECV

    ACK(ACK=y+1)

    =========================>

    state ESTABLISHED <==================>ESTABLISHED

    ......

    如上图所示,建立一次连接需要经过三次连接,当第二次握手发生时,server断就会将client端的地址放入一个缓存队列,等待client完成第三次握手。

    SYN攻击使得服务器发回第二次握手给一个并不存在的地址,并将其存在缓存队列等待。很快队列会被填满,攻击效果达到。

    linux下的防御措施

    主:

    方式1、减少发送syn+ack包时重试的次数

    synctl -w net.ipv4.tcp_syncak_retries=3

    synctl -w net.ipv4.tcp_syn_retires=3

    方式2、开启SYN cookies

    synctl -w net.ipv4.tcp_syncookies=1

    方式3、增加backlog队列

    synctl -w net.ipv4.tcp_max_syn_backlog=2048

    次:

    关闭ICMP协议请求

    synctl -w net.ipv4.icmp_echo_ignore_all=1

    通过iptables防止扫描

    iptables -A FORWARD -p tcp -syn -m limit -limit 1/s -limit-burst 5 -j ACCEPT

    iptables -A FORWARD -p tcp -tcp-flags SYN,ACK,FIN,RST RST -m limit -limit 1/s -j ACCEPT

    iptables -A FORWORD -p icmp -icmp-type echo-request -m limit -limit 1/s -j ACCEPT

    展开全文
  • 主要介绍了浅谈利用JavaScript进行的DDoS攻击原理防御,以及介绍了相关的中间人攻击原理,需要的朋友可以参考下
  • DDoS原理、分类与防御

    千次阅读 2020-12-28 11:16:14
    文章主要介绍了DDoS原理防御方法。

    一、DDoS是什么

    DDoS攻击,又称为分布式拒绝服务 (distributed denial-of-service attack,简称DDoS攻击);攻击是通过大规模 Internet 流量淹没目标服务器或其周边基础设施以破坏目标服务器、服务或网络正常流量的恶意行为。DDoS 攻击利用多台受损计算机系统作为攻击流量来源以达到攻击效果。利用的机器可以包括计算机,也可以包括其他联网资源(如 IoT 设备)。总体而言,DDoS 攻击好比高速公路发生交通堵塞,妨碍常规车辆抵达预定目的地。
    在这里插入图片描述

    据2014年统计,被确认为大规模DDoS的攻击已达平均每小时28次。DDoS发起者一般针对重要服务和知名网站进行攻击,如银行、信用卡支付网关、甚至根域名服务器等。

    1. DDoS 攻击的工作原理

    DDoS 攻击是通过连接互联网的计算机网络进行的。

    这些网络由计算机和其他设备(例如 IoT 设备)组成,它们感染了恶意软件,从而被攻击者远程控制。这些个体设备称为机器人(或僵尸),一组机器人则称为僵尸网络。

    一旦建立了僵尸网络,攻击者就可通过向每个机器人发送远程指令来发动攻击。
    在这里插入图片描述

    当僵尸网络将受害者的服务器或网络作为目标时,每个机器人会将请求发送到目标的 IP 地址,这可能导致服务器或网络不堪重负,从而造成对正常流量的拒绝服务。

    由于每个机器人都是合法的 Internet 设备,因而可能很难区分攻击流量与正常流量。

    2. 如何识别 DDoS 攻击

    DDoS 攻击最明显的症状是网站或服务突然变慢或不可用。但是,造成类似性能问题的原因有多种(如合法流量激增),因此通常需要进一步调查。流量分析工具可以帮助您发现 DDoS 攻击的一些明显迹象:

    • 来自单个 IP 地址或 IP 范围的可疑流量
    • 来自共享单个行为特征(例如设备类型、地理位置或 Web 浏览器版本)的用户的大量流量
    • 对单个页面或端点的请求数量出现不明原因的激增
    • 奇怪的流量模式,例如一天中零碎时间上的激增或看似不自然的模式(例如,每 10 分钟出现一次激增)

    3. 常见的 DDoS 攻击有哪几类?

    不同的 DDoS 攻击手段针对不同的网络连接组件。为了解不同 DDoS 攻击的工作原理,必需掌握建立网络连接的方式。Internet 网络连接由许多不同的组件或“层”构成。就像打地基盖房子一样,模型中的每一步都有不同的目的。OSI 模型(如下图所示)是一个概念框架,用于描述 7 个不同层级的网络连接。
    OSI 模型
    虽然几乎所有 DDoS 攻击都涉及用流量淹没目标设备或网络,但攻击可以分为三类。攻击者可能利用一种或多种不同的攻击手段,也可能根据目标采取的防范措施循环使用多种攻击手段。

    (1)攻击带宽——容量耗尽攻击

    在这里插入图片描述
    (1) 直接攻击。直接攻击是指攻击者利用控制的大量主机对受害者发送大量的数据流量, 使得受害者的网络带宽被占据, 并大量消耗服务器和网络设备的处理能力, 达到拒绝服务攻击的目的。例如ICMP/IGMP洪水攻击, UDP洪水攻击等都是典型的DDoS直接攻击方式。

    (2) 反射和放大攻击。直接攻击不仅效率低而且容易被追踪, 所以攻击者更多地选择反射攻击。反射攻击又称DRDoS (Distributed Reflection Denial of Service, 分布式反射拒绝服务) , 是指攻击者利用路由器、服务器等设施对请求产生应答, 从而反射出大量的流量对受害者进行攻击的一种DDoS攻击方式。这种攻击方式隐蔽, 更大危害还来自于使用反射过程的放大。放大是一种特殊的反射攻击, 其特殊之处在于反射器对于网络流量具有放大作用, 可以将攻击者较小的流量放大成较大流量, 从而造成更加严重的带宽消耗。

    (3) 攻击链路。攻击链路与前面提到的攻击方法不同, 攻击对象不是服务器而是骨干网络上的带宽资源。一种典型的链路攻击方式是Coremelt攻击。首先, 攻击者通过traceroute等手段确定各个僵尸主机与攻击链路之间的位置关系。然后, 由攻击者将僵尸网络分成两部分, 并控制这两部分之间通过骨干网络进行通信。大量的数据包通过骨干网络, 将会造成骨干网络的拥堵和延时。从骨干网络上来看, 通过网络的数据包是真实存在的, 并没有任何有效的方式将真正的数据包与拒绝服务攻击的数据区分开来, 这样使得这种攻击方式更加隐蔽和难以防范。

    容量耗尽攻击攻击目标:此类攻击尝试耗尽目标和大型 Internet 之间的可用带宽,从而造成拥塞。运用某种放大攻击或其他生成大量流量的手段(如僵尸网络请求),向目标发送大量数据。
    放大示例
    跟交通堵塞情况一样,大家都应该清楚:当网络数据包的数量达到或者超过上限时,会出现网络拥堵、响应缓慢的情况。DDoS 就是利用这个原理,发送大量网络数据包,占满被攻击目标的全部带宽,从而造成正常请求失效,达到拒绝服务的目的。

    攻击者可以使用 ICMP 洪水攻击(即发送大量 ICMP 相关报文)、或者 UDP 洪水攻击(即发送用户数据报协议的大包或小包),使用伪造源 IP 地址方式进行隐匿,并对网络造成拥堵和服务器响应速度变慢等影响。

    但是,这种直接方式通常依靠受控主机本身的网络性能,所以效果不是很好,还容易被查到攻击源头。于是反射攻击就出现,攻击者使用特殊的数据包,即 IP 地址指向作为反射器的服务器,源 IP 地址被伪造成攻击目标的 IP,反射器接收到数据包的时候就被骗了,会将响应数据发送给被攻击目标,然后就会耗尽目标网络的带宽资源。

    DNS 放大: 利用伪造的 IP 地址(受害者的 IP 地址)向开放式 DNS 服务器发出请求后,目标 IP 地址将收到服务器发回的响应。DNS 放大就好比有人打电话给餐馆说“每道菜都订一份,请给我回电话复述整个订单”,而提供的回电号码实际上属于受害者。几乎不费吹灰之力,就能产生很长的响应并发送给受害者。

    (2)攻击系统——协议攻击

    在这里插入图片描述
    (1) 攻击TCP连接。TCP是一种面向连接的、可靠的、基于字节流量的传输层控制协议。由于在设计之初考虑更多的是协议的可用性, 缺乏对协议的安全性进行周密比较和详细描述, 因此TCP协议存在许多安全缺陷和安全问题。TCP连接洪水攻击的原理, 就是在建立三次握手过程中, 服务器会创建并保存TCP连接信息, 该信息会被保存在连接表中。但是, 连接表中的空间是有限的, 一旦连接表中存储的数据超过了其最大数目, 服务器就无法创建新的TCP连接。攻击者利用大量的受控主机, 占据连接表中所有空间, 使得目标无法建立新的TCP连接。当大量的受控主机进行攻击时, 其攻击效果非常明显。攻击手段主要有:SYN洪水攻击、PSH+ACK洪水攻击、RST攻击、Sock stress攻击等。

    (2) 攻击SSL连接。安全套接字 (Secure Sockets Layer, SSL) 是为网络通信协议提供安全及数据完整性的一种安全协议。其在传输层对数据进行加密, 然而SSL协议在加密、解密和密钥协商的过程中会消耗大量的系统资源。SSL洪水攻击的原理, 就是在SSL握手过程中, 无论接收的数据是否有效, 只能先进行解密才能进行验证, 所以攻击者利用这个特性, 向被攻击者发送大量的无用数据, 消耗目标大量的计算资源。

    协议攻击攻击目标:协议攻击(也称为状态表耗尽攻击)旨在耗尽 Web 应用程序服务器或中间资源(如防火墙和负载均衡器)的可用状态表容量,进而导致服务中断。协议攻击利用协议堆栈第 3 层和第 4 层的弱点致使目标无法访问。

    在这里插入图片描述

    创建 TCP 连接需要客户端与服务器进行三次交互,也就是常说的“三次握手”。这个信息通常被保存在连接表结构中,但是表的大小有限,所以当超过存储量,服务器就无法创建新的 TCP 连接。

    攻击者利用这一点,用受控主机建立大量恶意的 TCP 连接,占满被攻击目标的连接表,使其无法接受新的 TCP 连接请求。如果攻击者发送了大量的 TCP SYN 报文,让服务器在短时间内产生大量的半开连接,连接表也会被很快占满,导致无法建立新的 TCP 连接,这个方式是 SYN 洪水攻击。

    SYN Flood: SYN Flood是互联网上最经典的DDoS攻击方式之一,最早出现于1999年左右,雅虎是当时最著名的受害者。SYN Flood攻击利用了TCP三次握手的缺陷,能够以较小代价使目标服务器无法响应,且难以追查。

    标准的TCP三次握手过程如下:

    • 客户端发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;
    • 服务器在收到客户端的SYN报文后,将返回一个SYN+ACK(即确认Acknowledgement)的报文,表示客户端的请求被接受,同时TCP初始序号自动加1;
    • 客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加1。

    经过这三步,TCP连接就建立完成。TCP协议为了实现可靠传输,在三次握手的过程中设置了一些异常处理机制。第三步中如果服务器没有收到客户端的最终ACK确认报文,会一直处于SYN_RECV状态,将客户端IP加入等待列表,并重发第二步的SYN+ACK报文。重发一般进行3-5次,大约间隔30秒左右轮询一次等待列表重试所有客户端。另一方面,服务器在自己发出了SYN+ACK报文后,会预分配资源为即将建立的TCP连接储存信息做准备,这个资源在等待重试期间一直保留。更为重要的是,服务器资源有限,可以维护的SYN_RECV状态超过极限后就不再接受新的SYN报文,也就是拒绝新的TCP连接建立。

    协议攻击示例
    SYN Flood正是利用了上文中TCP协议的设定,达到攻击的目的。攻击者伪装大量的IP地址给服务器发送SYN报文,由于伪造的IP地址几乎不可能存在,也就几乎没有设备会给服务器返回任何应答了。因此,服务器将会维持一个庞大的等待列表,不停地重试发送SYN+ACK报文,同时占用着大量的资源无法释放。更为关键的是,被攻击服务器的SYN_RECV队列被恶意的数据包占满,不再接受新的SYN请求,合法用户无法完成三次握手建立起TCP连接。也就是说,这个服务器被SYN Flood拒绝服务了。

    简单来说,SYN 洪水就好比补给室中的工作人员从商店的柜台接收请求。

    工作人员收到请求,前去取包裹,再等待确认,然后将包裹送到柜台。一时之间,工作人员收到太多包裹请求,来不及确认,直到无法处理更多包裹,实在不堪重负,致使无人能对请求做出回应。

    此类攻击利用 TCP 握手(两台计算机发起网络连接时要经过的一系列通信),通过向目标发送大量带有伪造源 IP 地址的 TCP“初始连接请求”SYN 数据包来实现。

    目标计算机响应每个连接请求,然后等待握手中的最后一步,但这一步却永远不会发生,因此在此过程中耗尽目标的资源。

    (3)攻击应用——应用程序层攻击

    在这里插入图片描述
    (1) 攻击DNS服务器。DNS服务是网络服务中一项核心服务, 对DNS服务器攻击造成的影响更具威胁性。针对DNS服务器的攻击, 主要有DNS QUERY洪水攻击和DNS NXDOMAIN攻击两类。DNS QUERY洪水攻击是利用大量的查询请求, 使得DNS服务器进行大量查询, 消耗其大量的计算和存储资源, 使得DNS服务器的服务质量下降, 甚至完全停止服务。在发起该攻击方式时, 考虑到DNS服务器的查询方式, 需要发送大量的不同域名的地址查询, 而且尽量不要选择存储在DNS缓存记录里面的域名。DNS NXDO-MAIN攻击是DNS QUERY洪水攻击的一种变种, 后者攻击时发送的是真实的域名地址, 前者则发送大量不存在的域名地址, 使得DNS服务器进行大量递归查询, 从而使得正常的请求速度变慢, 甚至是拒绝服务。

    (2) 攻击Web服务器。随着Web的迅速发展, 人们的生活因此而变得方便快捷, 大量的商务也因此更加方便。所以一旦Web服务器遭到拒绝服务攻击, 那么就会对其承载的大量服务造成巨大的影响。攻击Web服务器, 常用的手段包括HTTP (s) 洪水攻击、Slowloris攻击、慢速POST请求攻击、数据处理过程攻击等。

    应用程序层攻击攻击目标:有时称为第 7 层 DDoS 攻击(参考 OSI 模型第 7 层),此类攻击的目标是耗尽目标资源。攻击目标是生成网页并传输网页响应 HTTP 请求的服务器层。 在客户端执行一项 HTTP 请求费用很低,但目标服务器做出响应却可能比较昂贵,因为服务器通常必须加载多个文件并运行数据库查询才能创建网页。第 7 层攻击很难防御,因为很难确定流量是否存在恶意。

    应用程序层攻击示例
    由于 DNS 和 Web 服务的广泛性和重要性,这两种服务就成为消耗应用资源的分布式拒绝服务攻击的主要目标。

    比如,向 DNS 服务器发送大量查询请求,从而达到拒绝服务的效果,当 DNS 服务的可用性受到威胁,互联网上大量的设备都会受到影响而无法正常使用;如果攻击者利用大量的受控主机不断地向 Web 服务器恶意发送大量 HTTP 请求,要求 Web 服务器处理,就会完全占用服务器资源,让正常用户的 Web 访问请求得不到处理,导致拒绝服务。一旦 Web 服务受到这种攻击,就会对其承载的业务造成致命的影响。

    DNS Query Flood: 作为互联网最基础、最核心的服务,DNS自然也是DDoS攻击的重要目标之一。打垮DNS服务能够间接打垮一家公司的全部业务,或者打垮一个地区的网络服务。前些时候风头正盛的黑客组织anonymous也曾经宣布要攻击全球互联网的13台根DNS服务器,不过最终没有得手。

    UDP攻击是最容易发起海量流量的攻击手段,而且源IP随机伪造难以追查。但过滤比较容易,因为大多数IP并不提供UDP服务,直接丢弃UDP流量即可。所以现在纯粹的UDP流量攻击比较少见了,取而代之的是UDP协议承载的DNS Query Flood攻击。简单地说,越上层协议上发动的DDoS攻击越难以防御,因为协议越上层,与业务关联越大,防御系统面临的情况越复杂。

    DNS Query Flood就是攻击者操纵大量傀儡机器,对目标发起海量的域名查询请求。为了防止基于ACL的过滤,必须提高数据包的随机性。常用的做法是UDP层随机伪造源IP地址、随机伪造源端口等参数。在DNS协议层,随机伪造查询ID以及待解析域名。随机伪造待解析域名除了防止过滤外,还可以降低命中DNS缓存的可能性,尽可能多地消耗DNS服务器的CPU资源。

    HTTP Flood(cc攻击): HTTP 洪水攻击类似于同时在大量不同计算机的 Web 浏览器中一次又一次地按下刷新,大量 HTTP 请求涌向服务器,导致拒绝服务。

    这种类型的攻击有简单的,也有复杂的。

    较简单的实现可以使用相同范围的攻击 IP 地址、referrer 和用户代理访问一个 URL。复杂版本可能使用大量攻击性 IP 地址,并使用随机 referrer 和用户代理来针对随机网址。

    简单来说,HTTP Flood是针对Web服务在第七层协议发起的攻击。它的巨大危害性主要表现在三个方面:发起方便、过滤困难、影响深远。

    SYN Flood和DNS Query Flood都需要攻击者以root权限控制大批量的傀儡机。收集大量root权限的傀儡机很花费时间和精力,而且在攻击过程中傀儡机会由于流量异常被管理员发现,攻击者的资源快速损耗而补充缓慢,导致攻击强度明显降低而且不可长期持续。HTTP Flood攻击则不同,攻击者并不需要控制大批的傀儡机,取而代之的是通过端口扫描程序在互联网上寻找匿名的HTTP代理或者SOCKS代理,攻击者通过匿名代理对攻击目标发起HTTP请求。匿名代理是一种比较丰富的资源,花几天时间获取代理并不是难事,因此攻击容易发起而且可以长期高强度的持续。

    另一方面,HTTP Flood攻击在HTTP层发起,极力模仿正常用户的网页请求行为,与网站业务紧密相关,安全厂商很难提供一套通用的且不影响用户体验的方案。在一个地方工作得很好的规则,换一个场景可能带来大量的误杀。

    最后,HTTP Flood攻击会引起严重的连锁反应,不仅仅是直接导致被攻击的Web前端响应缓慢,还间接攻击到后端的Java等业务层逻辑以及更后端的数据库服务,增大它们的压力,甚至对日志存储服务器都带来影响。

    有意思的是,HTTP Flood还有个颇有历史渊源的昵称叫做CC攻击。CC是Challenge Collapsar的缩写,而Collapsar是国内一家著名安全公司的DDoS防御设备。从目前的情况来看,不仅仅是Collapsar,所有的硬件防御设备都还在被挑战着,风险并未解除。

    (4)慢速连接攻击

    提起攻击,第一反应就是海量的流量、海量的报文。但有一种攻击却反其道而行之,以慢著称,以至于有些攻击目标被打死了都不知道是怎么死的,这就是慢速连接攻击,最具代表性的是rsnake发明的Slowloris。

    HTTP协议规定,HTTP Request以\r\n\r\n结尾表示客户端发送结束,服务端开始处理。那么,如果永远不发送\r\n\r\n会如何?Slowloris就是利用这一点来做DDoS攻击的。攻击者在HTTP请求头中将Connection设置为Keep-Alive,要求Web Server保持TCP连接不要断开,随后缓慢地每隔几分钟发送一个key-value格式的数据到服务端,如a:b\r\n,导致服务端认为HTTP头部没有接收完成而一直等待。如果攻击者使用多线程或者傀儡机来做同样的操作,服务器的Web容器很快就被攻击者占满了TCP连接而不再接受新的请求。

    很快的,Slowloris开始出现各种变种。比如POST方法向Web Server提交数据、填充一大大Content-Length但缓慢的一个字节一个字节的POST真正数据内容等等。

    (5)混合攻击

    在实际的生活中,攻击者并不关心使用的哪种攻击方法管用,只要能够达到目的,一般就会发动其所有的攻击手段,尽其所能的展开攻势。对于被攻击目标来说,需要面对不同的协议、不同资源的分布式拒绝服务攻击,分析、响应和处理的成本就会大大增加。

    随着僵尸网络向小型化的趋势发展,为降低攻击成本,有效隐藏攻击源,躲避安全设备,同时保证攻击效果,针对应用层的小流量慢速攻击已经逐步发展壮大起来。因此,从另一个角度来说,DDoS 攻击方面目前主要是两个方面:一是 UDP 及反射式大流量高速攻击,二是多协议小流量及慢速攻击。

    一般而言,高级攻击者从来不会使用单一的手段进行攻击,而是根据目标环境灵活组合。普通的SYN Flood容易被流量清洗设备通过反向探测、SYN Cookie等技术手段过滤掉,但如果在SYN Flood中混入SYN+ACK数据包,使每一个伪造的SYN数据包都有一个与之对应的伪造的客户端确认报文,这里的对应是指源IP地址、源端口、目的IP、目的端口、TCP窗口大小、TTL等都符合同一个主机同一个TCP Flow的特征,流量清洗设备的反向探测和SYN Cookie性能压力将会显著增大。其实SYN数据报文配合其他各种标志位,都有特殊的攻击效果,这里不一一介绍。对DNS Query Flood而言,也有独特的技巧。

    首先,DNS可以分为普通DNS和授权域DNS,攻击普通DNS,IP地址需要随机伪造,并且指明服务器要求做递归解析;但攻击授权域DNS,伪造的源IP地址则不应该是纯随机的,而应该是事先收集的全球各地ISP的DNS地址,这样才能达到最大攻击效果,使流量清洗设备处于添加IP黑名单还是不添加IP黑名单的尴尬处境。添加会导致大量误杀,不添加黑名单则每个报文都需要反向探测从而加大性能压力。

    另一方面,前面提到,为了加大清洗设备的压力不命中缓存而需要随机化请求的域名,但需要注意的是,待解析域名必须在伪造中带有一定的规律性,比如说只伪造域名的某一部分而固化一部分,用来突破清洗设备设置的白名单。道理很简单,腾讯的服务器可以只解析腾讯的域名,完全随机的域名可能会直接被丢弃,需要固化。但如果完全固定,也很容易直接被丢弃,因此又需要伪造一部分。

    其次,对DNS的攻击不应该只着重于UDP端口,根据DNS协议,TCP端口也是标准服务。在攻击时,可以UDP和TCP攻击同时进行。

    HTTP Flood的着重点,在于突破前端的cache,通过HTTP头中的字段设置直接到达Web Server本身。另外,HTTP Flood对目标的选取也非常关键,一般的攻击者会选择搜索之类需要做大量数据查询的页面作为攻击目标,这是非常正确的,可以消耗服务器尽可能多的资源。但这种攻击容易被清洗设备通过人机识别的方式识别出来,那么如何解决这个问题?很简单,尽量选择正常用户也通过APP访问的页面,一般来说就是各种Web API。正常用户和恶意流量都是来源于APP,人机差别很小,基本融为一体难以区分。

    (6)来自P2P网络的攻击

    前面的攻击方式,多多少少都需要一些傀儡机,即使是HTTP Flood也需要搜索大量的匿名代理。如果有一种攻击,只需要发出一些指令,就有机器自动上来执行,才是完美的方案。这种攻击已经出现了,那就是来自P2P网络的攻击。

    高级P2P攻击,是直接欺骗资源管理服务器。如迅雷客户端会把自己发现的资源上传到资源管理服务器,然后推送给其他需要下载相同资源的用户,这样,一个链接就发布出去。通过协议逆向,攻击者伪造出大批量的热门资源信息通过资源管理中心分发出去,瞬间就可以传遍整个P2P网络。更为恐怖的是,这种攻击是无法停止的,即使是攻击者自身也无法停止,攻击一直持续到P2P官方发现问题更新服务器且下载用户重启下载软件时为止。

    4. DDoS攻击检测技术

    (1)基本方法

    常见的入侵检测方法分为误用检测和异常检测两种。误用检测通过匹配攻击基本特征库检测攻击, 一旦发生攻击, 系统能够快速作出判断, 且误报率低。异常检测则通过发现当前网络状态明显偏离正常状态检测攻击。由于误用检测只能检测攻击类型已知、攻击报文具有明显误用特征的入侵行为, 因此对系统漏洞型的DDoS攻击有较好的作用。随着DDoS攻击的日益发展, 通过操纵大量的傀儡机来达到攻击目标。在原来伪造大量虚假报文的基础上, 改进到可以发送大量的真实报文。所以误用检测对DDoS攻击已经不能有效地进行阻止, 异常检测在防御DDoS攻击发挥着日益重要的作用。

    (2)基于流量特征的攻击检测

    基于流量特征的攻击检测是一种基于知识的检测方法。首先收集已知的DDoS攻击的各种特征, 然后将当前网络中的数据包与收集到的各种数据特征进行比较。如果特征与DDoS攻击的特征匹配, 则可以检测出遭受了DDoS攻击。这种检测方法能够准确检测攻击行为, 辨别攻击的类型, 可以采用相应措施来阻止攻击。但缺点是不能检测未知的入侵, 总是滞后于新出现的攻击方式, 需要不断更新特征库, 对系统依赖性较大, 不但系统移植性差, 而且维护工作量也大。这种检测方法一般用于检测利用漏洞型的DDoS攻击。基于流量特征的攻击检测主要使用了特征匹配、模型推理、状态转换和专家系统的方法。

    (3)基于流量异常的攻击检测

    基于流量异常的检测是目前常用的方法。基于流量的攻击方法必然会带来流量异常变化。因此, 通过建立模型来判断流量是否异常, 从而知道服务器是否被攻击。流量异常检测可以检测到未知类型的攻击, 然而仅仅通过流量的异常变化并不能判断是否是因为流量攻击而导致的流量异常变化。如正常上班时间周一到周五, 公司服务器的访问数量是一定的, 但是流量异常变化可能是由于人员突然集中或者发生紧急情况人员突然撤离。由此可知流量导致的变化不只是由于攻击造成的, 还有种种可能的原因, 要从中将正常的流量变化与遭受攻击时的流量变化进行区分, 需要确定正常流量是如何变化的。这是确定遭到攻击所必须解决的问题。

    已有研究中, 大量异常流量是通过检测时的流量特征进行建模来识别攻击。这种单纯依靠检测时的流量进行区分攻击的方式是不准确的。一旦出现与攻击类似的异常流量变化就会导致检测结果出错。所以这种检测方式是不完善的。


    二、DDoS 攻击工具

    (1) LOIC

    LOIC 是一个颇受欢迎的 DOS 攻击的淹没式工具,会产生大量流量,可以在多种平台运行,包括 Linux、Windows、Mac OS、Android 等。早在 2010 年,黑客组织对反对维基解密的公司和机构的攻击活动中,该工具被下载了 3 万次以上。

    LOIC 界面友好,易于使用,初学者也可以很快上手。但是由于该工具需要使用真实 IP 地址,现在已经停用。

    (2)HULK (HTTP Unbearable Load King)

    HULK 是另一个 DOS 攻击工具,这个工具使用 UserAgent 的伪造,来避免攻击检测,可以通过启动 500 线程对目标发起高频率 HTTP GET FLOOD 请求,更可怕的是每一次请求都是独立的,可以绕过服务端的缓存措施,让所有请求得到处理。HULK 是用 Python 语言编写,对获得的源码进行更改也非常方便。

    (3)R.U.D.Y.

    R-U-Dead-Yet 是一款采用慢速 HTTP POST 请求方式进行 DOS 攻击的工具,它提供了一个交互式控制台菜单,检测给定的 URL,并允许用户选择哪些表格和字段应用于 POST-based DOS 攻击,操作非常简单。

    而且,它也使用的是 Python 语言编写,可移植性非常好。R.U.D.Y.能够对所有类型的 Web 服务端软件造成影响,因此攻击的威胁非常大。这些工具在保持攻击力的同时还再加强易用性,而免费和开源降低了使用门槛。随着攻防对抗的升级,工具会越来越智能化。


    三、DDoS 防御

    (一)攻击源消除

    DDoS攻击需要大量的傀儡机才能完成, 离开了傀儡机那么攻击者就不能实施。因此, 可以采取各种措施防止攻击者获得大量傀儡机, 从攻击源头上消除攻击。攻击者能够控制的傀儡机大都是系统存在严重安全漏洞的计算机, 所以要防范计算机成为傀儡机, 就必须对主机的硬件或软件系统存在的安全漏洞进行全面检测, 及时打补丁、修补漏洞。当然在当前的网络体系中, 还可以通过破坏DDoS攻击形成的条件来对该攻击进行防范。当前网络架构下, 接收端被动接收报文, 而对于发送端没有约束。基于授权的攻击预防技术可以控制发送端的流量, 从而达到从源头上解决DDoS攻击。对于一部分不需要向外提供服务的对象, 也可以通过隐藏自己在网络上的存在, 从而达到防范DDoS攻击的效果。

    (二)攻击缓解

    若要缓解 DDoS 攻击,关键在于区分攻击流量与正常流量。

    例如,如果因发布某款产品导致公司网站涌现大批热情客户,那么全面切断流量是错误之举。如果公司从已知恶意用户处收到的流量突然激增,或许需要尽量缓解攻击。

    真正的难点在于区分真实客户流量与攻击流量。

    在现代 Internet 中,DDoS 流量以多种形式出现。流量设计可能有所不同,从非欺骗性单源攻击到复杂的自适应多方位攻击无所不有。

    多方位 DDoS 攻击采用多种攻击手段,以期通过不同的方式击垮目标,很可能分散各个层级的缓解工作注意力。

    同时针对协议堆栈的多个层级(如 DNS 放大(针对第 3/4 层)外加 HTTP 洪水(针对第 7 层))发动攻击就是多方位 DDoS 攻击的一个典型例子。

    为防护多方位 DDoS 攻击,需要部署多项不同策略,从而缓解不同层级的攻击。

    (1)黑洞路由

    有一种解决方案几乎适用于所有网络管理员:创建黑洞路由,并将流量汇入该路由。在最简单的形式下,当在没有特定限制条件的情况下实施黑洞过滤时,合法网络流量和恶意网络流量都将路由到空路由或黑洞,并从网络中丢弃。

    如果互联网设备遭受 DDoS 攻击,则该设备的互联网服务提供商(ISP)可能会将站点的所有流量发送到黑洞中作为防御。这不是理想的解决方案,因为它相当于让攻击者达成预期的目标:使网络无法访问。

    (2)速率限制

    限制服务器在某个时间段接收的请求数量也是防护拒绝服务攻击的一种方法。

    虽然速率限制对于减缓 Web 爬虫窃取内容及防护暴力破解攻击很有帮助,但仅靠速率限制可能不足以有效应对复杂的 DDoS 攻击。

    然而,在高效 DDoS 防护策略中,速率限制不失为一种有效手段。

    (3)Web 应用程序防火墙

    通过 DDoS 硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤、及数据包内容定制过滤等顶尖技术能准确判断外来访问流量是否正常,进一步将异常流量禁止过滤。

    Web Application Firewall (WAF) 是一种有效工具,有助于缓解第 7 层 DDoS 攻击。在互联网和源站之间部署 WAF 后,WAF 可以充当反向代理,保护目标服务器,防止其遭受特定类型的恶意流量入侵。

    通过基于一系列用于识别 DDoS 工具的规则筛选请求,可以阻止第 7 层攻击。有效的 WAF 的一个关键价值是能够快速实施自定义规则以应对攻击。

    (4)Anycast 网络扩散

    此类缓解方法使用 Anycast network,将攻击流量分散至分布式服务器网络,直到网络吸收流量为止。

    这种方法就好比将湍急的河流引入若干独立的小水渠,将分布式攻击流量的影响分散到可以管理的位置,从而分散破坏力。

    Anycast 网络在缓解 DDoS 攻击方面的可靠性取决于攻击规模及网络规模和效率。采用 Anycast 分布式网络是 Cloudflare 实施 DDoS防护策略的一个重要组成部分。

    Cloudflare 拥有 51 Tbps 的网络,比有记录的最大 DDoS 攻击大一个数量级。

    (5)采用高性能的网络设备

    要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某些种类的DDoS攻击是非常有效的。

    CDN 高防 IP是针对互联网服务器在遭受大流量的 DDoS 攻击后导致服务不可用的情况下,推出的付费增值服务,用户可以通过配置高防 IP,将攻击流量引流到高防 IP,确保源站的稳定可靠,通常可以提供高达几百 Gbps 的防护容量,抵御一般的 DDoS 攻击绰绰有余。

    此外还可以:提高网络带宽保证;升级主机服务器硬件等等,这就是传说中的技术不够,用钱凑。
    在这里插入图片描述

    (6)高级DDoS 防护和缓解:Cloudflare CDN

    内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全国的海量加速节点,使其用户可就近获取所需内容,避免网络拥堵、地域、运营商等因素带来的访问延迟问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。

    Cloudflare 的内容分发网络(CDN)是一组分布在不同地理位置的服务器,可确保快速交付 Internet 内容,包括 HTML 页面、JavaScript 文件、样式表和图像。在 Cloudflare 上缓存静态资源可减少服务器负载和带宽,不会因带宽峰值而产生额外费用。

    分布式拒绝服务(DDoS)攻击通过用流量淹没其基础架构来中断网站服务。Cloudflare 的 CDN 的网络容量为史上最大 DDoS 攻击的 15 倍,并且可以处理现代 DDoS 以确保您的网站正常运行。

    使用Cloudflare CDN的五个好处:

    1. 隐藏服务器IP,SYN/ACK攻击直接豁免,亦可避免攻击者扫描服务器端口找到漏洞;
    2. 防火墙前置,在CDN上即已缓解/过滤异常请求[GET/POST]压力;
    3. 验证码前置,即人机验证;(技术不够的DDoS攻击根本绕不过,攻击随即缓解;
    4. 缓存静态资源,大大减少服务器带宽压力;
    5. Page Rule,Page Rule 使您能够根据页面的 URL 进行各种操作,例如创建重定向、微调缓存行为或启用和禁用各种服务。

    分布式集群防御的特点是在每个节点服务器配置多个 IP 地址,并且每个节点能承受不低于 10G 的 DDoS 攻击,如一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更为深度的安全防护角度去影响企业的安全执行决策。

    服务器前端加CDN中转(免费的有百度云加速、360网站卫士、加速乐、安全宝等),如果资金充裕的话,可以购买高防的盾机,用于隐藏服务器真实IP,域名解析使用CDN的IP,所有解析的子域名都使用CDN的IP地址。此外,服务器上部署的其他域名也不能使用真实IP解析,全部都使用CDN来解析。另外,防止服务器对外传送信息泄漏IP,最常见的是,服务器不使用发送邮件功能,如果非要发送邮件,可以通过第三方代理(例如sendcloud)发送,这样对外显示的IP是代理的IP。总之,只要服务器的真实IP不泄露,10G以下小流量DDOS的预防花不了多少钱,免费的CDN就可以应付得了。如果攻击流量超过20G,那么免费的CDN可能就顶不住了,需要购买一个高防的盾机来应付了,而服务器的真实IP同样需要隐藏。

    (7)使用缓存

    后端对MySQL进行缓存处理,避免对数据库频繁查询;如使用Redis + PHP方案

    (8)静态化

    将网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,最好在需要调用数据库的脚本中,拒绝使用代理的访问,经验表明,使用代理访问你网站的 80%属于恶意行为。

    静态可以很好的减轻服务器负载,是湮灭DDoS攻击者最后的倔强;

    静态页面:htm、html、shtml、xml

    静态网页是指存放在服务器文件系统中实实在在的HTML文件。当用户在浏览器中输入页面的URL,然后回车,浏览器就会将对应的html文件下载、渲染并呈现在窗口中。早期的网站通常都是由静态页面制作的。

    动态页面:asp、jsp、php、perl、cgi

    动态网页是相对于静态网页而言的。当浏览器请求服务器的某个页面时,服务器根据当前时间、环境参数、数据库操作等动态的生成HTML页面,然后在发送给浏览器(后面的处理就跟静态网页一样了)。很明显,动态网页中的“动态”是指服务器端页面的动态生成,相反,“静态”则指页面是实实在在的、独立的文件。

    由于静态页面不会涉及数据库请求,也无需经过PHP处理,几乎零消耗;这样的情况下,只需要使用到nginx,而nginx的高性能低消耗,基本无敌。

    实现静态化的方案:

    1. 部署CDN,缓存静态资源。如使用:Cloudflare CDN
    2. 配置静态镜像,自动切换静态镜像脚本:主要用于网页的排版展示,论坛,社区不可用(因为这些地方需要交互,需要大量调用数据库,PHP等)
    (9)封禁异常请求IP
    (10)使用TLS1.3

    Transport Layer Security (TLS) 保证客户端和 Web 服务器之间通过 HTTPS 进行加密通信。它取代了现已弃用的安全套接字层(SSL)协议。 使用 TLS 加密网络流量时,用户会在浏览器窗口中的 URL 框附近看到一个绿色挂锁。

    通过在 Cloudflare 仪表板的 SSL/TLS 应用中设置Minimum TLS Version,您可以管理域在通过 Cloudflare 进行代理时使用的 TLS 版本。

    TLS 1.3 是 TLS 协议的最新且最安全的版本。它具有比旧版本更短的延迟以及多个新功能。 当前在 Chrome(从第 66 版开始)和 Firefox(从第 60 版开始)中以及在 Safari 和 Edge 浏览器的开发中都支持 TLS 1.3。
    在这里插入图片描述

    (11)专项防御
    1. SYN Flood防御
      前文描述过,SYN Flood攻击大量消耗服务器的CPU、内存资源,并占满SYN等待队列。相应的,我们修改内核参数即可有效缓解。
      此外,可以分别为启用SYN Cookie、设置SYN最大队列长度以及设置SYN+ACK最大重试次数。
      SYN Cookie的作用是缓解服务器资源压力。启用之前,服务器在接到SYN数据包后,立即分配存储空间,并随机化一个数字作为SYN号发送SYN+ACK数据包。然后保存连接的状态信息等待客户端确认。启用SYN Cookie之后,服务器不再分配存储空间,而且通过基于时间种子的随机数算法设置一个SYN号,替代完全随机的SYN号。发送完SYN+ACK确认报文之后,清空资源不保存任何状态信息。直到服务器接到客户端的最终ACK包,通过Cookie检验算法鉴定是否与发出去的SYN+ACK报文序列号匹配,匹配则通过完成握手,失败则丢弃。当然,前文的高级攻击中有SYN混合ACK的攻击方法,则是对此种防御方法的反击,其中优劣由双方的硬件配置决定
      tcp_max_syn_backlog则是使用服务器的内存资源,换取更大的等待队列长度,让攻击数据包不至于占满所有连接而导致正常用户无法完成握手。net.ipv4.tcp_synack_retries是降低服务器SYN+ACK报文重试次数,尽快释放等待资源。这三种措施与攻击的三种危害一一对应,完完全全地对症下药。但这些措施也是双刃剑,可能消耗服务器更多的内存资源,甚至影响正常用户建立TCP连接,需要评估服务器硬件资源和攻击大小谨慎设置。
      除了定制TCP/IP协议栈之外,还有一种常见做法是TCP首包丢弃方案,利用TCP协议的重传机制识别正常用户和攻击报文。当防御设备接到一个IP地址的SYN报文后,简单比对该IP是否存在于白名单中,存在则转发到后端。如不存在于白名单中,检查是否是该IP在一定时间段内的首次SYN报文,不是则检查是否重传报文,是重传则转发并加入白名单,不是则丢弃并加入黑名单。是首次SYN报文则丢弃并等待一段时间以试图接受该IP的SYN重传报文,等待超时则判定为攻击报文加入黑名单。
      首包丢弃方案对用户体验会略有影响,因为丢弃首包重传会增大业务的响应时间,有鉴于此发展出了一种更优的TCP Proxy方案。所有的SYN数据报文由清洗设备接受,按照SYN Cookie方案处理。和设备成功建立了TCP三次握手的IP地址被判定为合法用户加入白名单,由设备伪装真实客户端IP地址再与真实服务器完成三次握手,随后转发数据。而指定时间内没有和设备完成三次握手的IP地址,被判定为恶意IP地址屏蔽一定时间。除了SYN Cookie结合TCP Proxy外,清洗设备还具备多种畸形TCP标志位数据包探测的能力,通过对SYN报文返回非预期应答测试客户端反应的方式来鉴别正常访问和恶意行为。
      清洗设备的硬件具有特殊的网络处理器芯片和特别优化的操作系统、TCP/IP协议栈,可以处理非常巨大的流量和SYN队列。
    2. HTTP Flood防御
      HTTP Flood攻击防御主要通过缓存的方式进行,尽量由设备的缓存直接返回结果来保护后端业务。大型的互联网企业,会有庞大的CDN节点缓存内容。
      当高级攻击者穿透缓存时,清洗设备会截获HTTP请求做特殊处理。最简单的方法就是对源IP的HTTP请求频率做统计,高于一定频率的IP地址加入黑名单。这种方法过于简单,容易带来误杀,并且无法屏蔽来自代理服务器的攻击,因此逐渐废止,取而代之的是JavaScript跳转人机识别方案。
      HTTP Flood是由程序模拟HTTP请求,一般来说不会解析服务端返回数据,更不会解析JS之类代码。因此当清洗设备截获到HTTP请求时,返回一段特殊JavaScript代码,正常用户的浏览器会处理并正常跳转不影响使用,而攻击程序会攻击到空处。
    3. DNS Flood防御
      DNS攻击防御也有类似HTTP的防御手段,第一方案是缓存。其次是重发,可以是直接丢弃DNS报文导致UDP层面的请求重发,可以是返回特殊响应强制要求客户端使用TCP协议重发DNS查询请求。
      特殊的,对于授权域DNS的保护,设备会在业务正常时期提取收到的DNS域名列表和ISP DNS IP列表备用,在攻击时,非此列表的请求一律丢弃,大幅降低性能压力。对于域名,实行同样的域名白名单机制,非白名单中的域名解析请求,做丢弃处理。
    4. 慢速连接攻击防御
      Slowloris攻击防御比较简单,主要方案有两个。
      第一个是统计每个TCP连接的时长并计算单位时间内通过的报文数量即可做精确识别。一个TCP连接中,HTTP报文太少和报文太多都是不正常的,过少可能是慢速连接攻击,过多可能是使用HTTP 1.1协议进行的HTTP Flood攻击,在一个TCP连接中发送多个HTTP请求。
      第二个是限制HTTP头部传输的最大许可时间。超过指定时间HTTP Header还没有传输完成,直接判定源IP地址为慢速连接攻击,中断连接并加入黑名单。

    (三)攻击预防

    (1)减少公开暴露

    对于企业而言, 减少不必要的分开曝光是十分有效的防御DDoS攻击的一种方式, 及时关闭不必要的服务, 设置安全群组和私有网络, 禁止对主机的非开放服务, 限制打开最大SYN连接数, 限制特定IP地址的访问。通过这些方式可以减少受到攻击的可能性。

    (2)利用扩展和冗余

    DDoS攻击对不同的协议层具有多种攻击方式, 因此尽可能采取多种手段进行防范。利用扩展和冗余是在受到攻击前做好防范。它能使得系统在遭受攻击时具有一定的可扩展性, 不至于一旦受到攻击就将完全暂停服务, 尽可能减少DDoS攻击带来的危害。

    (3)提升网络带宽保证能力

    网络带宽直接决定抗DDoS攻击的能力, 如果带宽仅仅只能10M的话, 无论如何都不能抵御DDoS攻击。理论上讲网络带宽越大越好, 但是考虑到经济原因, 不可能无限制地将网络带宽提高, 要在经济能力允许的范围内尽量提高网络带宽的保证能力。

    (4)分布式资源共享服务器

    将数据和程序分布在多个服务器上, 建立分布式资源共享服务器。分布式资源共享服务器有利于协调整个系统共同解决问题, 进行更加优化的资源分配。能够克服传统的资源紧张与响应瓶颈的缺陷, 分布式规模越大, 防御攻击也就更加容易。

    (5)监控系统性能

    对系统性能进行监控也是预防DDoS攻击的一种重要方式, 不合理的服务器配置会使得系统容易被DDoS攻击, 对API、CDN和DNS等第三方服务进行监控, 对网络节点进行监视, 及时发现并清理可能出现的漏洞。当这些性能出现异常后, 及时进行维护。对网络日志进行定期查阅, 看是否有异常入侵, 及时做好防范工作。


    至此,文章也就进入尾声了。希望本文能够起到抛砖引玉之效,也欢迎大家的批评交流。


    如果您有任何疑问或者好的建议,期待你的留言、评论与关注!

    展开全文
  • DDOS原理防御

    千次阅读 多人点赞 2018-07-06 14:54:46
    这家公司早些年是做抗DDOS设备的,培训的时候就很粗略的讲了部分原理,但是我却对DDOS产生了浓厚的兴趣。一但有了兴趣,便有了研究下去的动力。所以我开始在网络上搜集各种DDOS文章、书籍,学习的同时还做了记录,在...

    0X00前言

    暑假无聊,找了一家公司实习,打算学点东西。这家公司早些年是做抗DDOS设备的,培训的时候就很粗略的讲了部分原理,但是我却对DDOS产生了浓厚的兴趣。一但有了兴趣,便有了研究下去的动力。所以我开始在网络上搜集各种DDOS文章、书籍,学习的同时还做了记录,在此与大家分享,文中必要之处,我会连同协议的工作方式及报文格式一并讲解,这样才能更好的理解攻击触发点。

    0X01DDOS简介

    DDOS(Distributed Denial of Service),又称分布式拒绝服务攻击。骇客通过控制多个肉鸡或服务器组成的僵尸网络,对目标发送大量看似合法请求,从而占用大量网络资源,瘫痪网络,阻止用户对网络资源的正常访问。

    0X02DDOS危害

    • 出口带宽堵死
    • 游戏掉线导致客户流失
    • 服务器连接数多,连接资源被耗尽
    • 服务器卡、慢、死机、无法连接

    0X03攻击来源

    • 高性能服务器配合发包软件
    • 可联网的设备(如打印机、摄像头、电视等等)
    • 移动设备(数量多,增长速度快,其高性能利于组建僵尸网络)
    • 个人PC(存在漏洞的PC或一些黑客迷自愿成为DDOS一员)
    • 骇客控制的僵尸网络(僵尸网络又分为IRC型、HTTP型、P2P型)

    0X04流量特点

    • IP地址随机或固定某些IP段随机
    • 没有完整完成三次握手
    • 地址多数是伪造的
    • 请求数量大、快

    0X05导致DDOS原因

    人类因素

    • 金钱利益
    • 政治冲突
    • 宗教冲突
    • 为求出名

    非人类因素

    • 带宽上限
    • 协议缺陷
    • 设备性能上限
    • 应用性能上限
    • 系统性能上限

    0X06攻击类型及防御

    Smurf攻击
    攻击者向网关发送ICMP请求包,并将该ICMP请求报文的源地址伪造成受害主机IP地址,目的地址为广播地址。路由器在接受到该数据包,发现目的地址是广播地址,就会将该数据包广播出去,局域网内所有的存活主机都会受到一个ICMP请求包,源地址是受害主机IP。接下来受害主机就会收到该网络内所有主机发来的ICMP应答报文,通过大量返回的ICMP应答报文来淹没受害主机,最终导致网络阻塞,受害主机崩溃。下面是smurf攻击示意图


    防护方案:

    • 禁止路由器广播ICMP请求包;
    • 禁止操作系统对广播发出的ICMP请求包做出响应;
    • 配置防火墙静止来自你所处网络外部的ping包

    TearDrop攻击

    在了解这种攻击之前,需要先知道什么是IP fragmentation(数据包分片)。数据在网络中传输必定会产生数据包被分片,因为每种网络都有不同的最大单个数据包的大小,也就是常说的MTU(Maximum Transmission Unit,最大传输单元)。当要传输的数据超过你要通信的那台主机所处网络的MTU时,数据包就会被分片进行传输,然后在到达目的地再重新组装成原来的数据包,下面是数据包分片重组过程


    TearDrop攻击,就是通过设置错误的片偏移,使得数据包到达目的地时,服务器无法重新组合数据包,因为数据包的组合是通过片偏移来组装的,最终导致崩溃。对比一下正常IP数据包和错误IP数据包


    这种攻击主要对旧的windows版本和Linux版本有效,防护的话,可以检测发来的数据包片偏移是否合法,如果合法在组装,不合法直接丢弃。例如这个:分片重组检查算法

    Land Attack

    攻击者发动Land Attack攻击时,需要先发出一个SYN数据包,并将数据包的源IP与目的IP都设置成要攻击的目标IP,这样目标在接收到SYN数据包后,会根据源IP回应一个SYN+ACK数据包,即和自己建立一个空连接,然后到达idel超时时间时,才会释放这个连接。攻击者发送大量这样的数据包,从而耗尽目标的TCP连接池,最终导致拒绝服务。攻击过程如下


    防御方案参考如下:这种攻击对早期系统有效。通过设置防火墙和路由规则,检测源IP与目的IP相同的数据包,丢弃、过滤这种数据包。

    SYN FLOOD攻击

    SYN FLOOD攻击是在TCP三次握手过程中产生的。攻击者通过发送大量伪造的带有SYN标志位的TCP报文,与目标主机建立了很多虚假的半开连接,在服务器返回SYN+ACK数据包后,攻击者不对其做出响应,也就是不返回ACK数据包给服务器,这样服务器就会一直等待直到超时。这种攻击方式会使目标服务器连接资源耗尽、链路堵塞,从而达到拒绝服务的目的。SYN FLOOD攻击图示如下

    防御:
    SYNCheck:使用防护设备,3次握手变成了6次握手,由防护设备检测SYN请求是否合法,通过后再由防护设备将报文转发给服务器,后续报文仍由防护设备代理。
    Micro blocks:管理员可以在内存中为每个SYN请求创建一个小索引(小于16字节),而不必把整个连接对象存入内存。
    RST cookies:在客户端发起第一个SYN请求后,服务器故意回应一个错误的SYN+ACK报文。如果合法用户收到这个报文,就会给服务器响应RST报文。当服务器收到这个报文时,就将这个主机的IP记录进合法IP列表,下次该主机发起SYN请求时,就可以直接通过了。
    STACK tweaking:管理员可以调整TCP堆栈以减缓SYN泛洪攻击的影响。这包括减小超时时间,等到堆栈存释内放时再分配连接,否则就随机性地删除传入的连接。

    ACK FLOOD攻击

    ACK FLOOD攻击是利用TCP三次握手过程。这里可以分为两种。
    第一种:攻击者伪造大量的SYN+ACK包发送给目标主机,目标主机每收到一个SYN+ACK数据包时,都会去自己的TCP连接表中查看有没有与ACK的发送者建立连接 ,如果有则发送ACK包完成TCP连接,如果没有则发送ACK+RST 断开连接。但是在查询过程中会消耗一定的CUP计算资源。如果瞬间收到大量的SYN+ACK数据包,将会消耗服务器的大量cpu资源,导致正常的连接无法建立或增加延迟,甚至造成服务器瘫痪、死机。


    第二种:利用TCP三次握手的ACK+SYN应答,攻击者向不同的服务器发送大量的SYN请求,这些SYN请求数据包的源IP均为受害主机IP,这样就会有大量的SYN+ACK应答数据包发往受害主机,从而占用目标的网络带宽资源,形成拒绝服务。


    通常DDOS攻击会将ACK flood与SYN flood结合在一起,从而扩大威力。防御方案可参考如下:采用CDN进行流量稀释;避免服务器IP暴露在公网上;通过限速或动态指纹的方式;利用对称性判断来分析出是否有攻击存在;在连续收到用户发送的ACK包时,中断回话,让其重连。

    UDP FLOOD攻击

    UDP(User Datagram Protocol,用户数据报协议),是一种无连接和无状态的网络协议,UDP不需要像TCP那样进行三次握手,运行开销低,不需要确认数据包是否成功到达目的地。这就造成UDP泛洪攻击不但效率高,而且还可以在资源相对较少的情况下执行。UDP FLOOD可以使用小数据包(64字节)进行攻击,也可以使用大数据包(大于1500字节,以太网MTU为1500字节)进行攻击。大量小数据包会增大网络设备处理数据包的压力;而对于大数据包,网络设备需要进行分片、重组,最终达到的效果就是占用网络传输接口的带宽、网络堵塞、服务器响应慢等等。


    防御方案:限制每秒钟接受到的流量(可能产生误判);通过动态指纹学习(需要攻击发生一定时间),将非法用户加入黑名单。

    NTP放大攻击

    NTP(Network Time Protocol,网络时间协议),是用来使计算机网络时间同步化的一种协议,它可以使计算机与时钟源进行同步化并提供高精度的时间校正,使用UDP123端口进行通信。通常在NTP服务器上会有一些调试接口,而利用这些接口中的monlist请求,就可触发放大攻击。当主机向NTP服务器发送monlist查询请求时,NTP服务器会将与之进行时间同步的最后600个IP地址返回。所以攻击者只需要将源地址伪造为受害主机的IP,向NTP服务器发送一个monlist查询请求包,受害主机就会收到大量的UDP响应包。这种攻击在放大攻击里,危害相对较大。下面是NTP放大攻击示意图


    总结一下这种攻击产生的原因,请求与响应数据包不等价;UDP协议的通信模糊性(无数据传输确认机制);以及NTP服务器的无认证机制。再来谈谈防御方案:使用防 DDoS 设备进行清洗;加固并升级NTP服务器;在网络出口封禁 UDP 123 端口;通过网络层或者借助运营商实施 ACL 来防御;关闭现在 NTP 服务的 monlist 功能,在ntp.conf配置文件中增加disable monitor选项。

    DNS放大攻击

    DNS(Domain Name System,域名系统),由于使用IP地址来记忆各个网站比较困难,所以就产生了使用主机名称来表示对应的服务器,主机名称通过域名解析的过程转换成IP地址。下面来看一下DNS报文格式,以便了解攻击发生在何处。


    报文首部格式


    报文首部各字段含义如下,其中绿色高亮是攻击点之一,之后会分析


    下面是问题记录中查询类型可设置的值,我们发现最后一个ANY类型会请求所有记录,这也是一个攻击点


    DNS查询可分为递归查询和迭代查询,下面是DNS迭代查询图


    再来看DNS递归查询图



    从DNS数据包结构以及DNS递归查询过程,我们就可以大致分析出攻击原理。首先,攻击者向僵尸网络发出指令,使僵尸网络中的每一台主机均发出一个伪造源地址的DNS查询请求包,这些请求包查询类型设置为ANY,因为这种类型会请求所有的记录,这些记录会在返回的响应包中,也就是说这种数据包的大小较其他类型是最大的。接着查询类型设为递归查询,为什么不是迭代查询呢,仔细看两种查询的过程图可发现,如果迭代查询第一个请求的DNS服务器没有查询到结果,那么第一个请求的服务器会返回另一个DNS服务器IP,让请求主机向这个IP去继续查询,然而攻击者的数据包源地址是伪造的,所以并不会发起第二次查询,因为第一次查询根本就不是它发起的;而递归查询却是在查询到结果之后,才返回给查询请求发起者。利用这两个特点,攻击者就可以成功发起DNS放大攻击。这种普通的查询请求可以将攻击流量放大2~10倍,如果想增大攻击倍数,可以使用RFC 2671中定义的DNS拓展机制EDNS0。未使用EDNS0时,若响应包大小小于512字节,就使用UDP封装数据;若响应包大小超过512字节,就使用TCP连接或者服务器截断响应报文,丢弃超过512字节的部分,并把TC位置1。这两种方式都不利于进行DNS放大攻击。然而在开启EDNS0机制后,增加了OPT RR字段,这两个字段包含了能够处理的最大UDP报文大小信息,所以攻击者将这个信息设置的很大,服务器就会根据这个信息生成响应报文。最后看一下DNS放大攻击演示图


    防御的话,可以参考以下几点:联系ISP清洗上游流量;DNS服务器只对可信域内提供服务,限制对域外用户提供DNS解析服务;对单个IP的查询速率做限制;拥有足够的带宽承受小规模攻击;关闭DNS服务器的递归查询;利用防火墙等对ANY Request进行过滤。

    SNMP放大攻击

    SNMP(Simple Network Management Protocol,简单网络管理协议),是目前网络中应用最为广泛的网络管理协议,它提供了一个管理框架来监控和维和互联网设备,它使用UDP161端口进行通信。攻击者向互联网上开启SNMP服务的设备发送GetBulk请求,并使用默认通信字符串作为认证凭据。常见的默认通信字符串如public、private以及一些厂商默认的通信字符串。GetBulk请求是在SNMPv2中添加的的,该请求会让SNMP设备尽可能多的返回数据,这也就是SNMP放大攻击的利用点。下面来看一下SNMP的PDU格式


    攻击者先将源地址改成要攻击的目标IP,再使用默认的通信字符串,向大量SNMP设备发出GetBulk请求,设备收到GetBulk请求数据包后,会将一大段的设备检索信息返回给目标主机,最终目标主机会被这些SNMP设备返回的数据包淹没,导致拒绝服务。看一下SNMP的攻击图


    可以采取以下措施进行防御:禁止已开启SNMP的设备响应GetBulk请求,避免自己的设备被黑客利用;更改默认的通信字符串;修改默认端口161;隐藏开启SNMP设备的公网IP

    TFTP放大攻击

    TFTP(Trivial File Transfer Protocol,简单文件传输协议),使用UDP 69端口进行通信,由于TFTP使用的是不可靠的UDP协议,所以他不能确保发送的任何报文都能真正到达目的地,因此他必须使用定时器来检测并重传报文,以下是TFTP传输文件过程图


    超时重传机制


    可以看到,TFTP协议将数据分成好多个数据块进行传输,每个数据块最大为512字节,客户端在接受到数据块时,需要给服务器端返回一个ACK确认报文,然后才会继续传输下一个报文。若服务器没有收到客户端发来ACK报文,则在时间到达超时计数器时,便会开启重传机制,这也就是攻击利用点。攻击者利用TFTP协议上的缺陷,伪造源地址向服务器发起请求,服务器回复的第1个data数据包后无法收到客户端发送的ACK。此时TFTP就会利用他的重传机制,定时重传第1个data数据包,当攻击者发出大量的这种请求时,TFTP放大攻击也就发生了。来看一下TFTP放大攻击示意图


    防御方案可参考如下:不要将TFTP服务器暴露在公网上;对流经TFTP服务的流量进行入侵检测;将重传(数据包)率设置为1;只为信任域内的主机提供服务。

    CC攻击

    CC攻击(ChallengeCollapsar)又称作HTTP 泛洪攻击,其原理是攻击者控制肉鸡、僵尸网络或使用代理服务器,不停地向目标的web服务发送大量合法请求,使得正常用户的web请求处理缓慢甚至得不到处理,制造大量的后台数据库查询动作,消耗目标CPU资源,最终导致服务器宕机崩溃。这种攻击方式不需要很大的带宽,且无法使用伪造IP地址进行攻击,需要真实的机器与web服务器建立连接,因为HTTP协议是建立在TCP协议上,必须先进行TCP三次握手才能进行HTTP通信。如果目标web服务器支持HTTPS,那么发起的HTTPS泛洪攻击还能穿透一些防护设备。


    防御方案:必要时将网页做成静态,减少数据库的使用;限制连接数量;修改最大超时时间;让用户手动输入验证码;在response报文中添加特殊字段,验证IP合法性;屏蔽频繁访问服务器的主机IP。

    HTTP慢速攻击

    Slow HTTP Dos AttACKs(慢速HTTP拒绝服务攻击),黑客模拟正常用户向web服务器发送慢速http请求,由于是慢速的,服务器端需要保持连接资源,直到数据传输结束或请求结束才可释放连接。当服务器端建立了大量这样的慢速连接,就会导致服务器拒绝服务。这种攻击可以分为两类,一类是客户端发数据,另一类是客户端读取服务器发来的数据。HTTP慢速攻击对基于线程处理的web服务器影响显著,如apache、dhttpd,而对基于事件处理的web服务器影响不大,如ngix、lighttpd。HTTP慢速攻击还可以细分成以下几种攻击方式.

    Slowloris攻击方式

    HTTP协议规定请求头以一个空行结束,所以完整的http请求头结尾是\r\n\r\n。然而使用非正常的\r\n来结尾,就会导致服务端认为我们的请求头还没结束,等待我们继续发送数据直到超时时间。两种请求头区别如下,CRLF(Carriage Return Line Feed)表示回车换行


    Slow post攻击方式

    在http头部信息,可以使用content-length声明HTTP消息实体的传输长度,服务器端会content-length的值作为HTTP BODY的长度。利用这一特点,攻击者把content-length设置得很大的,然后缓慢发送数据部分,比如一次只发送一个字节,这样服务器端就要一直保持连接,直到客户端传完所有的数据。


    Slow read攻击方式

    攻击者发送一个完整的HTTP数据请求,之后服务器会给出响应,这时攻击者在将自己的TCP窗口大小设置的很小,服务器会根据客户的TCP窗口大小来传送数据。由于客户端的TCP窗口大小很小,服务器只能缓慢的传输数据给客户端。当建立大量的这种连接时,web应用的并发连接池将被耗尽,最终导致拒绝服务。


    Apache range header攻击

    这种攻击方式只针对apache,当客户端传输大文件时会有range字段,表示将大文件分段,分成几个小段进行传输。例如攻击者将一个文件按照一个字节一段,分成好多段,这样就会造成传输数据缓慢,长时间占用连接,消耗服务器CPU和内存资源。
    上面这4种攻击方式,也可以参考这篇文章:CC攻击。了解了攻击原理,我们就可以有针对性地进行防御,这里说一下apache的防护策略:设置并使用以下模块
    mod_reqtimeout模块,控制请求数据传输的超时时间及最小速率,防护配置如下


    mod_qos模块,Apache的一个服务质量控制模块,用户可配置各种不同阈值,防护配置如下


    mod_security模块,一个开源的WAF模块,有专门针对慢速攻击防护的规则,防护配置如下


    以上是针对Apache的一些防护策略,至于其他中间件的防护,可以参考这篇文章:How to Protect Against Slow HTTP AttACKs

    XSS-DOS

    利用网站存在的存储型XXS漏洞,在网站中插入恶意的javascript代码。代码的功能是不断向web服务器发起大量请求,从而导致服务器宕机,无法响应正常用户的请求。客户端访问已插入恶意的javascript代码的页面后,抓包截图如下


    由于这种攻击的是由存储型XSS导致的,我们再防御方面就要考虑如何防御存储型XSS。防御策略如下:对用户的输入以及url参数进行特殊字符过滤;对输出内容进行编码转换;结合黑白名单机制。

    时间透镜攻击

    通过控制相同源和相同目的IP报文,使得走不同路径的数据包,在同一时刻到达目标服务器,从而达到流量集中攻击的目的。这种攻击其实我也还弄不太懂,详细信息可以阅读这篇paper:Temporal Lensing and its Application in Pulsing Denial-of-Service Attacks,或者看这个视频,还有这份中文分析:时间透镜及其在脉冲拒绝服务攻击的应用。看一下freebuf上的一个分析图

    防御方案:增加抖动,干扰攻击路径,使得数据包无法预期到达;由运营商禁止源路由。
    其他防御措施:
    采用高性能的网络设备;充足的网络带宽保证;升级主机服务器硬件;避免将服务器的真实IP暴露在公网中;使用CDN对流量进行稀释,当大流量稀释到各个CDN节点时,再对流量进行清洗,从而达到防护源站的目的。然而这种防御方式只能用在对域名发起的DDOS攻击,如果攻击者直接对IP进行攻击,则需要使用anycast技术来防御。

    0X07总结

    这篇文章是自己对DDOS学习的一个总结,当中参考了不少文章书籍,当然还有很多类型的DDOS文中未提及,需要再深入学习,文中若有原理性错误,还望大家指出修正。如果大家有什么好的书籍或关于这方面的资料,欢迎推荐、交流(QQ:379032449),文章仅用于研究,切勿用在非法用途。在下一篇文章中,我将还原大部分DDOS攻击的场景。

    参考:
    CC攻击
    HTTP FLOOD
    UDP FLOOD
    SNMP GETBULK
    SMURF DDOS ATTACK
    DNS Amplification AttACK
    NTP Amplification AttACKs Using CVE-2013-5211
    SNMP REFLECTION/AMPLIFICATION
    How To Mitigate Slow HTTP DoS AttACKs in Apache HTTP Server
    How to Protect Against Slow HTTP AttACKs
    Temporal Lensing and its Application in Pulsing Denial-of-Service Attacks
    《TCP-IP协议族(第4版)》
    《破坏之王-DDoS攻击与防范深度剖析》


    展开全文
  • DDOS攻击原理防御

    2019-10-07 22:54:12
    什么是DDOS攻击? DOS(Denial of Service)是拒绝服务攻击.  DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小...

    什么是DDOS攻击?

        DOS(Denial of Service)是拒绝服务攻击.
      DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆、万兆、百级级别的网络,这使得DoS攻击的困难程度加大了-目标对恶意攻击包的"消化能力"加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果。
      这时侯分布式的拒绝服务攻击手段(DDoS)就应运而生了。理解了DoS攻击的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。
      分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在Internet上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行
           高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的傀儡机位置可以在分布在更大的范围,选择起来更灵活了.
     
    被DDoS攻击时的现象:
    · 被攻击主机上有大量等待的TCP连接。
    · 网络中充斥着大量的无用的数据包,源地址为假。
    · 制造高流量无用数据,造成网络拥塞,使受害主机无法正常和外界通讯。
    · 利用受害主机提供的服务或传输协议上的缺陷,反复高速的发出特定的服务请求,使受害主机无法及时处理所有正常请求。
    · 严重时会造成系统死机。
     
    DDOS全球实时图
    http://www.digitalattackmap.com/

     

    攻击面
    我们将正常用户访问网站页面的流程分为1-8 八个阶段

    对于目标来说 看可以讲八个阶段分成两类:
    1.上传流量  
     2.下载流量
     
    针对不同的攻击面:
    1-8 2-7 ping tcp包等等
    3-6 需要动态语言处理的请求及响应
    4-5 数据库查询及结果
     
    不同攻击面分别消耗不等资源:1.带宽资源 2.CPU 3.内存 4.硬盘资源
     
    攻击类型
    1>反射型(放大攻击)攻击 - 以小博大
    从攻击服务器性能来看 , 让服务器返回工作并且返回更大的数据量的数据包(比如get请求)能够消耗服务器更多的性能, 造成不能对正常用户的访问做出回应。
    比如说下面要讲的cc攻击。 我们将这种手段称之为反射型攻击。
     
    2>CC攻击
    攻击原理:利用代理服务器向受害者发起大量HTTP Get请求;主要请求动态页面,涉及到数据库访问操作;数据库负载以及数据库连接池负载极高,无法响应正常请求.
     
    3>Syn Flood
    攻击原理:依据tcp建立连接的三次握手。此攻击以多个随机的源主机地址向目的主机发送syn包,而在收到目的主机的syn+ack包后并不回应,目的主机就为这些源主机建立大量的连接队列,由于没有收到ack一直维护这些连接队列,造成资源的大量消耗而不能向正常的请求提供服务。与之类似的攻击方式还有ackflood、s-ackflood、finflood、rstflood、tcpflood 。
     
    等等
    小结: DDOS攻击虽然类型繁多,但是思路相同,不同类型只是用不同的协议来消耗服务器资源。
     
    使用hping3尝试DDOS自己的服务器
    Hping3/Nping: TCP/IP数据包生成工具,用于压力测试、安全审计。
    使用hping3进行DoS攻击:
    # hping3 -c 10000 -d 120 -S -w 64 -p 80 --flood --rand-source testsite.com
    • -c:发送数据包的个数
    • -d:每个数据包的大小
    • -S:发送SYN数据包
    • -w:TCP window大小
    • -p:目标端口,你可以指定任意端口
    • –flood:尽可能快的发送数据包
    • –rand-source:使用随机的IP地址,使得安全设备不能定位实际IP;
    • -a或–spoof:隐藏主机名
    • testsite.com:目的IP地址或网站

    使用hping3实现简单SYN洪水攻击:
    # hping3 -S --flood -V testsite.com

    使用nping实现TCP连接攻击:
    # nping --tcp-connect -rate=90000 -c 900000 -q testsite.com


    抓包可以看到source ip都是随机值:

     

     
    防御
    1.将站点推送CDN , 让CDN承受资源损耗
    2.购买抗D服务

     

    3.保障真实ip的私密性

     

     

    转载于:https://www.cnblogs.com/Unconscious/p/11220950.html

    展开全文
  • 当前市场的CC攻击防御软件,CC防御软件,DDOS防御软件, DDOS攻击防御的防御经验总结.数年前,做为某款游戏服务器管理员,对服务器安全深有感触.如果是做为玩家,服务器卡,服务器进不去,顶多就是,哎呀,服务器...
  • 浅谈JS DDoS攻击原理防御 分布式拒绝服务攻击(DDoS)攻击是一种针对网站发起的最古老最普遍的攻击。Nick Sullivan是网站加速和安全服务提供商CloudFlare的一名系统工程师。近日,他撰文介绍了攻击者如何利用...
  • 随着网络时代的到来,网络安全变得越来越重要。在互联网的安全领域,DDoS...那么,DDoS攻击原理是什么?下面小编就为大家介绍一下相关知识点,我们一起来看看吧!  DDoS攻击原理及防护措施介绍:  一、DDoS攻..
  • DDoS攻击原理是什么?DDoS攻击原理及防护措施介绍 DDoS攻击是由DoS攻击转化的,这项攻击的原理以及表现形式是怎样的呢?要如何的进行防御呢?本文中将会有详细的介绍,需要的朋友不妨阅读本文进行参考 DDoS攻击原理...
  • 应对篇 ——DDoS防御方案 1. 防御基础 1.1 攻击流量到底多大 DDoS防御,首先就是要知道到底遭受了多大的攻击。这个问题看似简单,实际上却有很多不为人知的细节在里面。 以SYN Flood为例,为了提高发送效率在...
  • DDOS攻击原理,种类及其防御

    千次阅读 2018-10-17 17:46:08
    先给大家举个形象例子便于理解: 我开了一家可容纳100人的老陕羊肉泡馍馆,由于用料上等,...上面这个例子讲的就是典型的DDOS攻击,全程是Distributed Denial of Server,翻译成中文就是分布式拒绝服务。一般...
  • DDoS deflate 工作原理每分钟检测一次IP连接状况,当某些IP连接超过配置脚本限制的连接数,程序会自动禁止这些IP一段时间,以达到防御攻击的目的Installation 安装wget ...
  • Ddos攻击原理

    2020-11-12 16:45:46
    接下来的文章中小编将会介绍DDoS攻击原理、表现形式以及防御策略。希望对您有所帮助。 DDoS攻击原理及防护措施介绍 一、DDoS攻击的工作原理 1.1 DDoS的定义 DDos的前身 DoS (DenialofService)攻击,其含义是拒绝服务...
  • 近年来,DDoS攻击越来越多,极大地推动了对最佳防御DDoS解决方案的需求。DDoS攻击通过大量合法的请求占用大量网络资源从而破坏常规网络流量,使得网络瘫痪。较低的攻击成本和极高的收益使得DDoS攻击在短时间内带来了...
  • 从07年的爱沙尼亚DDos信息战,到今年广西南宁30个网吧遭受到DDos勒索,再到新浪网遭受DDos攻击无法提供对外服务500多分钟。DDos愈演愈烈,攻击事件明显增多,攻击流量也明显增大,形势十分严峻,超过1G的攻击流量...
  • 分布式拒绝服务攻击(DDoS)攻击是一种针对网站发起的最古老最普遍的攻击。Nick Sullivan是网站加速和安全服务提供商CloudFlare的一名系统工程师。近日,他撰文介绍了攻击者如何利用恶意网站、服务器劫持和中间人...
  • DDoS攻击是由DoS攻击转化的,这项攻击的原理以及表现形式是怎样的呢?要如何的进行防御呢?本文中将会有详细的介绍,需要的朋友不妨阅读本文进行参考. DDoS攻击原理是什么?随着网络时代的到来,网络安全变得越来越...
  • DDoS(又名"分布式拒绝服务")攻击历史由来已久,但却被黑客广泛应用。我们可以这样定义典型的DDoS攻击:攻击者指使大量主机向服务器发送数据,直到超出处理能力进而无暇处理正常用户的合法请求,最终导致用户无法...
  • 出于打击报复、敲诈勒索、政治需要等各种原因,加上攻击成本越来越低、效果特别明显等趋势,DDoS攻击已经演变成全球性的网络安全威胁。根据卡巴斯基2016Q3的调查报告,DDoS攻击造成61%的公司无法访问其关键业务信息...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,828
精华内容 1,931
关键字:

ddos防御原理