freeCodeCamp/guide/chinese/security/ddos-denial-of-service-attacks/index.md

84 lines
6.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: DDoS Distributed Denial of Service
localeTitle: DDoS分布式拒绝服务
---
拒绝服务DOS攻击是指攻击者试图通过使用多个虚假请求轰炸服务器并阻止实际用户访问服务来破坏服务器的服务。分布式DOS攻击是指攻击从多个位置同时发生使得网络安全团队更难以检测和处理攻击。
分布式拒绝服务DDoS攻击是指通过从多个源生成的大量流量超载来使在线服务或网站不可用的尝试。
与拒绝服务DoS攻击不同其中一台计算机和一台Internet连接用于使用数据包来淹没目标资源DDoS攻击使用许多计算机和许多Internet连接这些连接通常在全球范围内分布在所谓的僵尸网络中。
DDoS攻击通常针对的是大公司几分钟内拒绝服务可能会导致数百万美元的损失。
有几种Ddos攻击最好的攻击是通过检查目标的漏洞来确定的。
### DDoS攻击的类型
DDoS攻击大致可分为三类 -
1. 基于卷的攻击
2. 协议攻击
3. 应用层攻击
### 基于卷的攻击
基于卷的攻击包括TCP泛洪UDP泛洪ICMP泛洪和其他欺骗性数据包泛洪。这些也称为第3层和第4层攻击。在这里攻击者试图使目标站点的带宽饱和。攻击幅度以每秒位数bps为单位。
* **UDP泛洪** - UDP泛洪用于泛洪远程主机上具有大量UDP数据包的随机端口更具体地说是端口号53.专用防火墙可用于过滤或阻止恶意UDP数据包。
* **ICMP Flood** - 类似于UDP flood用于泛洪具有大量ICMP Echo请求的远程主机。这种类型的攻击可以消耗传出和传入带宽并且大量的ping请求将导致整个系统减速。
* **HTTP Flood** - 攻击者将HTTP GET和POST请求发送到大容量的目标Web服务器服务器无法处理这些请求导致拒绝来自合法客户端的其他连接。
* **放大攻击** - 攻击者发出一个请求生成一个大的响应其中包括对大型TXT记录的DNS请求和对大型文件如图像PDF或任何其他数据文件的HTTP GET请求。
### 协议攻击
协议攻击包括SYN泛洪Ping of Death分段数据包攻击Smurf DDoS等。此类攻击消耗实际的服务器资源和其他资源如防火墙和负载均衡器。攻击幅度以每秒数据包数量来衡量。
* **DNS泛滥** - DNS泛滥用于攻击基础架构和DNS应用程序以淹没目标系统并消耗其所有可用的网络带宽。
* **SYN Flood** - 攻击者发送TCP连接请求的速度比目标计算机可以处理的速度快从而导致网络饱和。管理员可以调整TCP堆栈以减轻SYN泛洪的影响。要减少SYN泛滥的影响可以减少超时直到堆栈释放分配给连接的内存或者使用防火墙或iptables选择性地丢弃传入连接。
* **Ping of Death** - 攻击者使用简单的ping命令发送格式错误或超大的数据包。 IP允许发送65,535字节数据包但发送大于65,535字节的ping数据包违反了Internet协议可能导致目标系统上的内存溢出最终导致系统崩溃。为了避免Ping of Death攻击及其变种许多站点在其防火墙上完全阻止了ICMP ping消息。
### 应用层攻击
应用层攻击包括Slowloris零日DDoS攻击针对ApacheWindows或OpenBSD漏洞的DDoS攻击等。这里的目标是使Web服务器崩溃。攻击幅度以每秒请求数来衡量。
* **应用程序攻击** - 这也称为第7层攻击攻击者进行过多的登录数据库查找或搜索请求以使应用程序过载。检测第7层攻击非常困难因为它们类似于合法的网站流量。
* **Slowloris** - 攻击者向目标Web服务器发送大量HTTP标头但从未完成请求。目标服务器保持每个这些错误连接都打开并最终溢出最大并发连接池并导致拒绝来自合法客户端的其他连接。
* **NTP扩充** - 攻击者利用可公开访问的网络时间协议NTP服务器使用用户数据报协议UDP流量淹没目标服务器。
* **零日DDoS攻击** - 零日漏洞是供应商以前不知道的系统或应用程序漏洞,尚未修复或修补。这些是日复一日的新型攻击,例如,利用尚未发布补丁的漏洞。
### 如何修复DDoS攻击
根据DDoS攻击的类型您可以应用相当多的DDoS保护选项。
您的DDoS保护从识别和关闭系统中所有可能的操作系统和应用程序级漏洞开始关闭所有可能的端口从系统中删除不必要的访问权限并将服务器隐藏在代理或CDN系统之后。
如果您发现DDoS的数量很小那么您可以找到许多基于防火墙的解决方案它们可以帮助您过滤掉基于DDoS的流量。但是如果您有大量的DDoS攻击如千兆位甚至更多那么您应该接受DDoS保护服务提供商的帮助该提供商提供更全面主动和真实的方法。
在接近并选择DDoS保护服务提供商时必须小心。有许多服务提供商想要利用您的情况。如果您通知他们您受到DDoS攻击那么他们将开始以不合理的高成本为您提供各种服务。
我们可以为您提供一个简单而有效的解决方案首先要搜索一个足够灵活的DNS解决方案提供商以便为您的网站配置A和CNAME记录。其次您需要一个能够处理大DDoS流量的好CDN提供商并为您提供DDoS保护服务作为其CDN包的一部分。
假设您的服务器IP地址是AAA.BBB.CCC.DDD。然后你应该做以下DNS配置 -
* 在DNS区域文件中创建一个记录如下所示带有DNS标识符例如ARECORDID并将其与外界保密。
* 现在请求您的CDN提供商将创建的DNS标识符与URL链接例如cdn.someotherid.domain.com。
* 您将使用CDN URL cdn.someotherid.domain.com创建两个CNAME记录第一个指向www第二个记录指向@,如下所示。
您可以从系统管理员那里获得帮助以了解这些要点并适当地配置DNS和CDN。最后您将在DNS上进行以下配置。
### 更多信息
* [了解拒绝服务攻击](https://www.us-cert.gov/ncas/tips/ST04-015)
* [全球DDoS攻击的可视化](http://www.digitalattackmap.com/#anim=1&color=0&country=ALL&list=0&time=17462&view=map "全球DDoS攻击的可视化")
* [关于DDoS的Kotaku文章](https://kotaku.com/how-ddos-attacks-work-and-why-theyre-so-hard-to-stop-1676445620)