DDoS攻击原理及防御

2023-11-04

转自:微点阅读  https://www.weidianyuedu.com

       随着网络时代的到来,网络安全变得越来越重要。在互联网的安全领域,DDoS(Distributed DenialofService)攻击技术因为它的隐蔽性,高效性一直是网络攻击者最青睐的攻击方式,它严重威胁着互联网的安全。那么,DDoS攻击原理是什么?下面微点阅读小编就为大家介绍一下相关知识点,我们一起来看看吧!

  DDoS攻击原理及防护措施介绍:

  一、DDoS攻击的工作原理

  1.1 DDoS的定义

  DDos的前身 DoS (DenialofService)攻击,其含义是拒绝服务攻击,这种攻击行为使网站服务器充斥大量的要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷而停止提供正常的网络服务。而DDoS分布式拒绝服务,则主要利用 Internet上现有机器及系统的漏洞,攻占大量联网主机,使其成为攻击者的代理。当被控制的机器达到一定数量后,攻击者通过发送指令操纵这些攻击机同时向目标主机或网络发起DoS攻击,大量消耗其网络带和系统资源,导致该网络或系统瘫痪或停止提供正常的网络服务。由于DDos的分布式特征,它具有了比Dos远为强大的攻击力和破坏性。

  1.2 DDoS的攻击原理

  如图1所示,一个比较完善的DDos攻击体系分成四大部分,分别是攻击者( attacker也可以称为master)、控制傀儡机( handler)、攻击傀儡机( demon,又可称agent)和受害着( victim)。第2和第3部分,分别用做控制和实际发起攻击。第2部分的控制机只发布令而不参与实际的攻击,第3部分攻击傀儡机上发出DDoS的实际攻击包。对第2和第3部分计算机,攻击者有控制权或者是部分的控制权,并把相应的DDoS程序上传到这些平台上,这些程序与正常的程序一样运行并等待来自攻击者的指令,通常它还会利用各种手段隐藏自己不被别人发现。在平时,这些傀儡机器并没有什么异常,只是一旦攻击者连接到它们进行控制,并发出指令的时候,攻击愧儡机就成为攻击者去发起攻击了。

  

  之所以采用这样的结构,一个重要目的是隔离网络联系,保护攻击者,使其不会在攻击进行时受到监控系统的跟踪。同时也能够更好地协调进攻,因为攻击执行器的数目太多,同时由一个系统来发布命令会造成控制系统的网络阻塞,影响攻击的突然性和协同性。而且,流量的突然增大也容易暴露攻击者的位置和意图。整个过程可分为:

  1)扫描大量主机以寻找可入侵主机目标;

  2)有安全漏洞的主机并获取控制权;

  3)入侵主机中安装攻击程序;

  4)用己入侵主机继续进行扫描和入侵。

  当受控制的攻击代理机达到攻击者满意的数量时,攻击者就可以通过攻击主控机随时发出击指令。由于攻击主控机的位置非常灵活,而且发布命令的时间很短,所以非常隐蔽以定位。一旦攻击的命令传送到攻击操纵机,主控机就可以关闭或脱离网络,以逃避追踪要着,攻击操纵机将命令发布到各个攻击代理机。在攻击代理机接到攻击命令后,就开始向目标主机发出大量的服务请求数据包。这些数据包经过伪装,使被攻击者无法识别它的来源面且,这些包所请求的服务往往要消耗较大的系统资源,如CP或网络带宽。如果数百台甚至上千台攻击代理机同时攻击一个目标,就会导致目标主机网络和系统资源的耗尽,从而停止服务。有时,甚至会导致系统崩溃。

  另外,这样还可以阻塞目标网络的防火墙和路由器等网络设备,进一步加重网络拥塞状况。于是,目标主机根本无法为用户提供任何服务。攻击者所用的协议都是一些非常常见的协议和服务。这样,系统管理员就难于区分恶意请求和正连接请求,从而无法有效分离出攻击数据包

  二、DDoS攻击识别

  DDoS ( Denial of Service,分布式拒绝服务) 攻击的主要目的是让指定目标无注提供正常服务,甚至从互联网上消失,是目前最强大、最难防御的攻击方式之一。

  2.1 DDoS表现形式

  DDoS的表现形式主要有两种,一种为流量攻击,主要是针对网络带宽的攻击,即大量攻击包导致网络带宽被阻塞,合法网络包被虚假的攻击包淹没而无法到达主机;另一种为资源耗尽攻击,主要是针对服务器主机的政击,即通过大量攻击包导致主机的内存被耗尽或CPU内核及应用程序占完而造成无法提供网络服务。

  2.2 攻击识别

  流量攻击识别主要有以下2种方法:

  1) Ping测试:若发现Ping超时或丢包严重,则可能遭受攻击,若发现相同交换机上的服务器也无法访问,基本可以确定为流量攻击。测试前提是受害主机到服务器间的ICMP协议没有被路由器和防火墙等设备屏蔽;

  2) Telnet测试:其显著特征是远程终端连接服务器失败,相对流量攻击,资源耗尽攻击易判断,若网站访问突然非常缓慢或无法访问,但可Ping通,则很可能遭受攻击,若在服务器上用Netstat-na命令观察到大量 SYN_RECEIVED、 TIME_WAIT, FIN_ WAIT_1等状态,而EASTBLISHED很少,可判定为资源耗尽攻击,特征是受害主机Ping不通或丢包严重而Ping相同交换机上的服务器正常,则原因是攻击导致系统内核或应用程序CPU利用率达100%无法回应Ping命令,但因仍有带宽,可ping通相同交换机上主机。

  三、DDoS攻击方式

  DDoS攻击方式及其变种繁多,就其攻击方式面言,有三种最为流行的DDoS攻击方式。

  3.1 SYN/ACK Flood攻击

  这种攻击方法是经典有效的DDoS攻击方法,可通杀各种系统的网络服务,主要是通过向受害主机发送大量伪造源P和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源都是伤造的故追踪起来比较困难,缺点是实施起来有一定难度,需要高带宽的僵尸主机支持,少量的这种攻击会导致主机服务器无法访问,但却可以Ping的通,在服务器上用 Netstat-na命令会观察到存在大量的 SYN RECEIVED状态,大量的这种攻击会导致Ping失败,TCP/IP栈失效,并会出现系统凝固现象,即不响应键盘和鼠标。普通防火墙大多无法抵御此种攻击。

  攻击流程如图2所示,正常TCP连接为3次握手,系统B向系统A发送完 SYN/ACK分组后,停在 SYN RECV状态,等待系统A返回ACK分组;此时系统B已经为准备建立该连接分配了资源,若攻击者系统A,使用伪造源IP,系统B始终处于“半连接”等待状态,直至超时将该连接从连接队列中清除;因定时器设置及连接队列满等原因,系统A在很短时间内,只要持续高速发送伪造源IP的连接请求至系统B,便可成功攻击系统B,而系统B己不能相应其他正常连接请求。

  

  3.2 TCP全连接攻击

  这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过滤 TearDrop、Land等DOS攻击的能力,但对于正常的TCP连接是放过的,殊不知很多网络服务程序(如:IIS、 Apache等Web服务器)能接受的TCP连接数是有限的,一旦有大量的TCP连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽面被拖跨,从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此此种DDOs攻击方容易被追踪。

  3.3 TCP刷 Script脚本攻击

  这种攻击主要是针对存在ASP、JSP、PHP、CGI等脚本程序,并调用 MSSQL Server、My SQL Server、 Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击方法。一般来说,提交一个GET或POST指令对客户端的耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从上万条记录中去查出某个记录,这种处理过程对资源的耗费是很大的,常见的数据库服务器很少能支持数百个查询指令同时执行,而这对于客户端来说却是轻而易举的,因此攻击者只需通过 Proxy代理向主机服务器大量递交查询指令,只需数分钟就会把服务器资源消耗掉而导致拒绝服务,常见的现象就是网站慢如蜗牛、ASP程序失效、PHP连接数据库失败、数据库主程序占用CPU偏高。这种攻击的特点是可以完全绕过普通的防火墙防护,轻松找一些Poxy代理就可实施攻击,缺点是对付只有静态页面的网站效果会大打折扣,并且有些代理会暴露DDOS攻击者的IP地址。

  四、DDoS的防护策略

  DDoS的防护是个系统工程,想仅仅依靠某种系统或产品防住DDoS是不现实的,可以肯定的说,完全杜绝DDoS目前是不可能的,但通过适当的措施抵御大多数的DDoS攻击是可以做到的,基于攻击和防御都有成本开销的缘故,若通过适当的办法增强了抵御DDoS的能力,也就意味着加大了攻击者的攻击成本,那么绝大多数攻击者将无法继续下去而放弃,也就相当于成功的抵御了DDoS攻击。

  4.1 采用高性能的网络设备

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

  4.2 尽量避免NAT的使用

  无论是路由器还是硬件防护墙设备都要尽量避免采用网络地址转换NAT的使用,除了必须使用NAT,因为采用此技术会较大降低网络通信能力,原因很简单,因为NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间。

  4.3 充足的网络带宽保证

  网络带宽直接决定了能抗受攻击的能力,假若仅有10M带宽,无论采取何种措施都很难对抗现在的 SYNFlood攻击,当前至少要选择100M的共享带宽,1000M的带宽会更好,但需要注意的是,主机上的网卡是1000M的并不意味着它的网络带宽就是千兆的,若把它接在100M的交换机上,它的实际带宽不会超过100M,再就是接在100M的带宽上也不等于就有了百兆的带宽,因为网络服务商很可能会在交换机上限制实际带宽为10M。

  4.4 升级主机服务器硬件

  在有网络带宽保证的前提下,尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包,服务器的配置至少应该为:P4 2.4G/DDR512M/SCSI-HD,起关键作用的主要是CPU和内存,内存一定要选择DDR的高速内存,硬盘要尽量选择SCSI的,要保障硬件性能高并且稳定,否则会付出高昂的性能代价。

  4.5 把网站做成静态页面

  大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给黑客入侵带来不少麻烦,到现在为止还没有出现关于HTML的溢出的情况,新浪、搜狐、网易等门户网站主要都是静态页面。

  此外,最好在需要调用数据库的脚本中拒绝使用代理的访问,因为经验表明使用代理访问我们网站的80%属于恶意行为。

  总结

  DDoS攻击正在不断演化,变得日益强大、隐密,更具针对性且更复杂,它已成为互联网安全的重大威胁,同时随着系统的更新换代,新的系统漏洞不断地出现,DDoS的攻击技巧的提高,也给DDoS防护增加了难度,有效地对付这种攻击是一个系统工程,不仅需要技术人员去探索防护的手段,网络的使用者也要具备网络攻击基本的防护意识和手段,只有将技术手段和人员素质结合到一起才能最大限度的发挥网络防护的效能。

  好了今天小编的介绍就到这里了,希望对大家有所帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DDoS攻击原理及防御 的相关文章

  • 404 标头 - HTTP 1.0 还是 1.1?

    为什么我能找到的几乎每个例子 包括这个问题 https stackoverflow com questions 437256 sending a 404 error in php大约一年前 说 404 标头应该是HTTP 1 0 404 N
  • $http.get() 与 JSON 数据

    我正在编写一个服务器应用程序 并希望客户端使用正文中的数据来参数化我的 GET 方法 如下所示 http v GET http localhost 3000 url text 123 foo bar GET url HTTP 1 1 Acc
  • Node.js:server.setTimeout、server.timeout 和 server.keepAliveTimeout 之间有什么区别

    官方文档是here https nodejs org api http html http server settimeout msecs callback server setTimeout 中没有提及有关服务下一个请求的信息 所以我认为
  • iOS WKWebView 处理文件下载

    我面临以下问题 在 Web 界面中 文件下载是通过锚标记触发的 如下所示 a href bla blabla a 虽然 Safari 浏览器可以处理此请求并打开一个对话框来处理文件 但 WKWebView 将此视为普通链接并且不对其执行任何
  • HTTP Header Key 可以重复吗?

    在 JAVA HttpUrlConnection 中 请求 Header 设置的主要逻辑代码如下 public synchronized void set String k String v for int i nkeys i gt 0 i
  • 如何使用 python 的 http.client 准确读取一个响应块?

    Using http client在 Python 3 3 或任何其他内置 python HTTP 客户端库 中 如何一次读取一个分块 HTTP 响应一个 HTTP 块 我正在扩展现有的测试装置 使用 python 编写 http clie
  • 从 PCAP 嗅探重建数据

    我试图通过 libpcap 嗅探 HTTP 数据 并在处理 TCP 有效负载后获取所有 http 内容 标头 有效负载 根据我的讨论编写 http 嗅探器 或任何其他应用程序级嗅探器 https stackoverflow com ques
  • Flutter http请求上传mp3文件

    我使用这个 api 上传 mp3 文件 使用这种方法 Future
  • 为什么我的 Github 托管网站响应 HTTP 302 而不是 200?

    我拥有该域名penkov id au http penkov id au 我主持一个blog http michael penkov id au blog 2014 01 02 reinventing the wheel html usin
  • 使用 file_get_content 发布数据

    我已经做了一些关于如何使用的研究file get content与帖子 我也读过this one https stackoverflow com questions 2445276 how to post data in php using
  • 以下 Android HTTP 示例/教程 - 为网络活动实现异步任务的问题

    我正在尝试遵循有关发布 HTTP 数据的教程 但是由于 IO 线程上的网络活动 它强制关闭主线程 因此我尝试实现 AsyncTask 正如其他几个有用的 SO 用户所建议的那样 但是我已经屠宰了代码 整个辣酱玉米卷饼的力量就向我逼近了 ht
  • 适用于 Objective-C / iPhone 的良好 HTTP 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPDATE 这个问题显然已经过时了 参见日期 我建议只使用现代 iOS7 功能 例如 NSURLSession 我想 这个问题是为了历史
  • 如何在java中以编程方式访问网页

    有一个网页 我想从中检索某个字符串 为此 我需要登录 单击一些按钮 填充文本框 单击另一个按钮 然后就会出现字符串 我怎样才能编写一个java程序来自动执行此操作 是否有任何有用的库用于此目的 Thanks Try HtmlUnit htt
  • Zoopla 沙箱出现 cURL http 标头错误

    我正在为房地产经纪人开发代码 以通过他们的数据源将房产上传到 Zoopla 我在将所需的配置文件添加到所需的 http 标头时遇到问题 文档中唯一的示例是来自 Linux 的测试 echo branch reference test cur
  • 这个重写规则是什么意思?

    我正在安装 phpancake 有一个像这样的文件夹 application install library public sql schema install html install php 这条规则意味着什么 RewriteEngin
  • http和https在编程中有什么区别[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我只知道 s 代表 安全 用户永远不
  • 如何在c++中使用libcurl发送POST请求并接收它?

    我正在使用 c libcurl 向网页发送 POST 请求 但我正在努力测试它 使用的代码是 include
  • 不加载隐藏图像

    我的网站上有一堆隐藏图像 它们的容器 DIV 具有 style display none 根据用户的操作 某些图像可能会通过 JavaScript 显示 问题是我的所有图像都是在打开页面时加载的 我想通过仅加载最终可见的图像来减轻服务器的压
  • Node.js:在检索 http 请求正文之前断开 http 请求连接

    我正在用 Node js 编写一个 http 服务器 我有一个客户端通过 HTTP POST 多部分 数据 将大文件上传到该服务器 我想接受唯一使用有效文件名上传文件的连接 我有一些条件 在服务器检索数据之前应断开无效文件名连接 我不知道如
  • Rest 和 Http 中“无状态”的含义

    当我阅读有关 REST 是什么的文档时 他们总是说 REST api 应该是无状态的 在这里 我感觉有点尴尬 因为普通的 HTTP 也是无状态的 既然REST可以说是一种使用HTTP协议的特殊架构 那么说REST应该是无状态的似乎是多余的

随机推荐

  • 练习敲代码速度

    2023年9月18日 周一晚上 今晚不想学习 但又不想玩游戏 于是找了一些练习敲代码的网站来玩玩 顺便练习一下敲代码的速度 目录 参考资料 个人推荐 第一个 第二个 第三个 参考资料 电脑打字慢 有哪些比较好的练打字软件 知乎 https
  • C#——Lambda 表达式

    C Lambda 表达式 Lambda 表达式 是采用以下任意一种形式的表达式 表达式 lambda 表达式为其主体 input parameters gt expression 语句 lambda 语句块作为其主体 input param
  • 分布式相关论文

    想从事分布式系统 计算 hadoop等方面 需要哪些基础 推荐哪些书籍 转自知乎 作者 廖君 链接 https www zhihu com question 19868791 answer 88873783 来源 知乎 分布式系统 Dist
  • 线性代数学习之正交性,标准正交矩阵和投影

    正交基和标准正交基 前言 经过上一次线性代数学习之向量空间 维度 和四大子空间的学习 对于空间的概念已经有了非常深刻的认识了 而描述空间很重要的方式除了维度以外 那就是空间的基了 而如小标题所示就是跟空间的基相关 所以先来回忆一下空间基的相
  • autojs获取最近创建的媒体文件,获取本机音频视频图片文件脚本源码,翻译自java

    说明 本文提供的代码仅供参考 不建议用于生产环境 可能有些地方在最新版本的Auto js上面需要做修改 才能运行 Auto js简介 Auto js是利用安卓系统的 辅助功能 实现类似于按键精灵一样 可以通过代码模拟一系列界面动作的辅助工作
  • 宋人千首绝句【全十卷】

    千首宋人绝句 是清代严长明编辑的书籍 全书共十卷 分七言 五言 六言三部分 其中七言七卷 五言两卷 六言一卷 且按帝王 后妃 宫掖 宗室 降王 宋臣 闺媛等分类 收录有王安石 苏轼 黄庭坚 秦观 陆游 杨万里 范成大等著名诗人的六言绝句 编
  • 看了一次strongswan ipsec的设置.

    看了一次strongswan ipsec的设置 这次的设置要求是 Linux 中 strongwans与hillstone防火墙 stoneOS 建立ipsec连接 network network进行通信 要求Linux可以同时与多台防火墙
  • 从2018年以太坊统计数据看区块链发展趋势

    今年6月 我们发布了 以太坊网络状态 重点介绍了整个网络的一些关键数据和统计数据 六个月后 即将在2018年结束时 我们处于长期 加密货币冬天 的尾声 2017年末至今的市场波动已经引起了区块链行业的普遍关注 然而 仔细研究这些数字可以发现
  • Python实现根据磁盘剩余空间对磁盘多次写入和擦除

    实现根据磁盘剩余容量 对剩余容量 预留了1GB 进行多次的写入和删除数据 次数为变量counts 每次写入1GB的数据 即变量data 多次操作 以实现上述功能 通过更改taskTimes变量可以多次写入和删除 from datetime
  • 基于STM32的智能电子秤设计

    硬件设计 本设计是一款基于STM32单片机的电子秤系统 随着科学技术的不断发展 传统的机械秤逐渐被电子秤所取代 相比于计量不精确 费时费力的机械秤 电子秤采用在方便快捷的同时 又保证了结果的准确性 本次设计采用STM32单片机作为处理器 控
  • 03智慧安防

    一张图读懂一个产业之智慧安防 自2015年起 安防行业逐渐引入人工智能技术 智慧安防 一词开始进入大众视野 伴随着政府 平安城市 天网工程 雪亮工程 等项目不断推出 智慧安防快速成为智慧城市应用中落地情况较好 技术与服务相对成熟的领域之一
  • java 实现部门树_Java实现部门模块开发

    一 新增部门接口开发 1 1 DeptParam java 1 2 LevelUtils java 1 4 1 导入 commons lang3 依赖包 1 2 2 实现LevelUtils开发 1 3 在 com yuluomoshang
  • 物联网设备获取北京时间、年月日、星期几,GMT格林威治标准时间转换为北京时间,授时api Fiddler抓包调试

    1 获取北京时间 年月日 授时api 苏宁获取北京时间的api不要太方便 http quan suning com getSysTime do 使用 Fiddler抓包调试 查看HTTP返回报文 双击左侧抓取到的HTTP返回报文 使用 Sy
  • 同步异步BUCK研究

    目录 一 同步时钟 二 异步BUCK电路 1 基本公式推导 2 电感选型计算 三 同步BUCK电路 四 同步异步BUCK电路对比 前言 在硬件设计中 电源模块基本都会接触到 DC DC拓扑电路又是最常见的 所以深入理解DC DC电路至关重要
  • 轻松成为设计高手

    目录 2 Verilog语言基础 2 1 三种描述方法 2 Verilog语言基础 2 1 三种描述方法 1 数据流描述 assign连续赋值语句 2 行为描述 过程赋值语句 always和initial过程块 3 结构化描述 实例化已有的
  • 微服务(SpringCloud)

    1 什么是微服务 将一个大项目中各个业务代码进行拆分 拆分成多个互不相干小项目 每个项目完成自己特有的功能 而且可以通过调用别的项目完成整体功能 2 SpringCloud 是由Spring提供的一套能够快速搭建微服务框架程序的框架集 也被
  • WEB漏洞测试(二)——HTML注入 & XSS攻击

    上一篇介绍了我们安装BWAPP来完成我们的漏洞测试 在BWAPP中 将HTML Injection和XSS做了非常详细的分类 那么为什么要将两个一起讲呢 归根结底 我觉得这两个分明是一个玩意 充其量是攻击的方式不一样 我们先来介绍一下这两种
  • Electron入门应用打包exe(windows)

    最近在学习nodejs 得知Electron是通过将Chromium和Node js合并到同一个运行时环境中 用HTML CSS和JavaScript来构建跨平台桌面应用程序的一门技术 对于之前一直从事flash AIR桌面应用开发的我迫不
  • 【网络】交换机 VLAN 网关 路由器

    网关 含义 网间连接器 协议转换器 在传输层上实现网络互连 PS 二层交换机在链路层 路由 三层交换机在网络层 集线器 中继器在物理层 是最复杂的网络互联设备 仅用于两个高层协议不同的网络互连 网关有很多种 最常用的是TCP IP协议里的网
  • DDoS攻击原理及防御

    转自 微点阅读 https www weidianyuedu com 随着网络时代的到来 网络安全变得越来越重要 在互联网的安全领域 DDoS Distributed DenialofService 攻击技术因为它的隐蔽性 高效性一直是网络